मैं व्यवस्थापक पृष्ठों में समस्याओं के बिना jQuery 1.7 का उपयोग कैसे कर सकता हूं?


11

क्या कोई सफलतापूर्वक jQuery 1.7 चला रहा है? मैं अपने पृष्ठों पर एक jQuery घटक का उपयोग कर रहा हूं जिसके लिए jQuery 1.7 या बाद के संस्करण की आवश्यकता है। यह संस्करण व्यवस्थापक UI में कुछ अवांछित दुष्प्रभावों का कारण बनता है, जैसे चेक किए गए चेकबॉक्स जो उपलब्ध होने पर अतिरिक्त नियंत्रण प्रकट नहीं करते हैं, या फ़ील्ड विजेट सक्रिय नहीं हो रहा है।

मैं सोच रहा था कि क्या कोई समाधान है जो मुझे आसानी से jQuery 1.7 के साथ काम करने दे सकता है।

मैंने पूछने से पहले इसका जवाब देखा । जहां तक ​​मैं समझता हूं, 2 अलग-अलग मुद्दे हैं: jQuery के src को 1.7.x पर अपडेट करना, और व्यवस्थापक द्वारा उपयोग की गई जावास्क्रिप्ट को अपडेट करना। मैंने नवीनतम jquery_update विकास स्नैपशॉट का उपयोग करने की कोशिश की, और एक पैच लागू किया , लेकिन यह यूआई के साथ उपर्युक्त समस्याओं को हल नहीं करता है।


यह नीति बहुत हद तक तय करती है कि Drupal संस्करणों को अपग्रेड करने से jQuery पर निर्भर कुछ भी टूटना नहीं चाहिए, इसलिए संस्करण सुसंगत रहता है।
mpdonadio

तकनीकी रूप से यह मुद्दा drupal.stackexchange.com/a/41394/809 का एक डुप्लिकेट है, इसके अलावा मैं थोड़ा पूर्वाग्रह हूं, लेकिन दूसरे प्रश्न का बेहतर उत्तर है।
एरिकड्यूरन

जवाबों:


11

मैं इसे यहाँ मैन्युअल रूप से करने पर क्लाइव की सलाह को देखूंगा:

मैं नवीनतम संस्करण को डाउनलोड करने के लिए jQuery को कैसे अपडेट कर सकता हूं?

और स्क्रिप्ट में कुछ और बुद्धिमत्ता जोड़ें, इसे व्यवस्थापक पृष्ठों पर न करें, जैसे:

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

आपको यह भी करना होगा कि वहाँ पर node/#/addऔर node/#/editपृष्ठों इत्यादि के रूप में वहाँ कुछ भी "कोर" को बाधित न करें, या, यदि आप चाहें, तो ड्रुपल कोर में गोता लगाएँ और 1.7 के साथ ही बाकी सब कुछ भी लाएं।

ड्रुपल के किस संस्करण के आधार पर आप चल रहे हैं, यह भी काम कर सकता है:

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'आदि।


थैंक्स जिमजम्मा, मैंने आपके कोड का इस्तेमाल नहीं किया, लेकिन आपके जवाब ने मुझे सही रास्ते पर ला दिया। मुझे jquery_update config स्क्रीन में UI जोड़ने के लिए एक अच्छा पैच मिला, जो आपको व्यवस्थापक के लिए jQuery के विभिन्न संस्करणों का उपयोग करने की अनुमति देता है। drupal.org/node/1524944 । अभी तक अच्छा काम कर रहे हैं।
Artur

2
ध्यान रखें कि ctools का ब्रेकिंग का इतिहास रहा है, भी, jquery अपडेट के साथ। इसके लिए आपको पैच को समायोजित करने की आवश्यकता हो सकती है।
mpdonadio

इस पर ध्यान दिलाने के लिए धन्यवाद। क्या आपके पास एक विचार है कि उस के खिलाफ परीक्षण करने का सबसे अच्छा तरीका क्या होगा?
आर्टूर

3
+1 एक अच्छा साधारण सभी व्यवस्थापक पृष्ठों कि URL में 'व्यवस्थापक' की जरूरत नहीं है की एक सूची प्राप्त करने के लिए तरीका है:$pages = module_invoke_all('admin_paths');
क्लाइव

1
@ क्लिक करें, क्या यह ctools AJAX URL को पकड़ता है? जब आप "सामान्य" पृष्ठ पर ctools विजेट का उपयोग करते हैं?
mpdonadio

2

jQuery के अपडेट में अब फ्रंट-एंड और बैक-एंड के लिए अलग-अलग jQuery संस्करणों को सक्षम करने की क्षमता है। नवीनतम देव संस्करण डाउनलोड करें और आप जाने के लिए अच्छे हैं: बैकएंड में 1.5, इसलिए यह दृश्य UI के साथ काम करता है, और अतिरिक्त jQuery की अच्छाई के लिए दृश्यपटल में 1.7 या 1.8 है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.