ฉันจะใช้ jQuery 1.7 โดยไม่มีปัญหาในหน้าผู้ดูแลระบบได้อย่างไร


11

มีใครเรียกใช้ jQuery 1.7 สำเร็จหรือไม่ ฉันใช้ jQuery บนหน้าของฉันซึ่งต้องการ jQuery 1.7 ขึ้นไป รุ่นนี้ทำให้เกิดผลข้างเคียงที่ไม่พึงประสงค์ใน UI ของผู้ดูแลระบบเช่นช่องทำเครื่องหมายที่เลือกซึ่งจะไม่เปิดเผยการควบคุมเพิ่มเติมเมื่อมีหรือไม่มีการใช้งานวิดเจ็ตภาคสนาม

ฉันสงสัยว่ามีวิธีแก้ปัญหาที่ทำให้ฉันสามารถทำงานกับ jQuery 1.7 ได้อย่างง่ายดายหรือไม่

ฉันเห็นคำตอบนี้ก่อนถาม เท่าที่ฉันเข้าใจมี 2 ประเด็นแยกต่างหาก: อัปเดต src ของ jQuery เป็น 1.7.x และอัปเดต javascript ที่ใช้โดยผู้ดูแลระบบ ฉันพยายามใช้ภาพรวมการพัฒนา jquery_update ล่าสุดและใช้โปรแกรมปะแก้ แต่ก็ไม่ได้แก้ปัญหาดังกล่าวข้างต้นกับ UI


นโยบายบอกว่าการอัพเกรดรุ่น Drupal ไม่ควรทำลายสิ่งที่ต้องพึ่งพา jQuery ดังนั้นเวอร์ชันดังกล่าวจึงมีความสอดคล้องกัน
mpdonadio

ในทางเทคนิคแล้วปัญหานี้เป็นปัญหาของdrupal.stackexchange.com/a/41394/809และฉันก็มีอคติเล็กน้อย แต่คำถามอื่น ๆ ก็มีคำตอบที่ดีกว่า
ericduran

คำตอบ:


11

ฉันจะดูคำแนะนำของไคลฟ์ในการทำด้วยตนเองที่นี่:

ฉันจะอัพเดต jQuery เป็นเวอร์ชันล่าสุดที่ฉันสามารถดาวน์โหลดได้อย่างไร

และเพิ่มความฉลาดให้กับสคริปต์เพื่อไม่ให้ทำในหน้าผู้ดูแลระบบเช่น:

if (arg(0)=='admin') {
  return;
}

นอกจากนี้คุณยังต้องทำเช่นนั้นบนnode/#/addและnode/#/editหน้าอื่น ๆ เพื่อที่จะไม่ทำลาย "แกน" ของสิ่งนั้นที่นั่นหรือถ้าคุณต้องการดำดิ่งลงไปในแกน drupal และนำทุกอย่างอื่นมารวมกันที่ 1.7

ทั้งนี้ขึ้นอยู่กับรุ่นของ Drupal ที่คุณกำลังใช้งานซึ่งอาจทำงานได้:

function YOURTHEME_preprocess_page(&$vars) {
  if (YOUR CONDITION HERE) {
    $scripts = drupal_add_js('PATH TO YOUR JQUERY FILE');
    unset($scripts['core']['PATH TO DRUPAL JQUERY FILE']);
    $variables['scripts'] = drupal_get_js('header', $scripts);
  }
}

ที่ซึ่งคุณสามารถตั้ง "เงื่อนไขของคุณที่นี่" เป็นหน้าใด ๆ ที่คุณต้องการ jQuery ใหม่เช่นarg(0)!='admin'ฯลฯ


ขอบคุณ Jimajamma ฉันไม่ได้ใช้รหัสของคุณ แต่คำตอบของคุณทำให้ฉันถูกทาง ฉันพบแพตช์ที่ดีที่เพิ่ม UI ไปยังหน้าจอการกำหนดค่า jquery_update ที่ช่วยให้คุณใช้ jQuery เวอร์ชันต่างๆสำหรับผู้ดูแลระบบ drupal.org/node/1524944 ทำงานได้ดีจนถึงตอนนี้
Artur

2
โปรดทราบว่า ctools มีประวัติการแตกหักด้วยด้วยการอัพเดต jquery คุณอาจต้องปรับเปลี่ยนโปรแกรมแก้ไขนี้
mpdonadio

ขอบคุณที่ชี้นำสิ่งนี้ คุณมีความคิดว่าจะเป็นวิธีที่ดีที่สุดในการทดสอบกับที่?
Artur

3
+1 วิธีง่ายๆในการรับรายการหน้าผู้ดูแลระบบทั้งหมดที่ไม่มี 'admin' ใน url คือ:$pages = module_invoke_all('admin_paths');
Clive

1
@Clive นี้จะจับ AJAX URL ของ ctools หรือไม่ เช่นเดียวกับเมื่อคุณใช้วิดเจ็ต ctools ในหน้า "ปกติ"?
mpdonadio

2

ตอนนี้jQuery Updateมีความสามารถในการเปิดใช้งาน jQuery รุ่นต่างๆสำหรับส่วนหน้าและส่วนหลัง ดาวน์โหลดเวอร์ชัน dev ล่าสุดและคุณทำได้ดี: 1.5 ในแบ็กเอนด์ดังนั้นจึงใช้งานได้กับ Views UI และ 1.7 หรือ 1.8 ในส่วนหน้าเพื่อความดีของ jQuery

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.