J3 को अपग्रेड करने से JHtmlBehavior :: mootools नहीं मिले


9

मुझे 500 त्रुटि मिली है JHtmlBehavior::mootools not found। मुझे पता है कि यह J3 में हटा दिया गया है, लेकिन मेरी समस्या यह जानने की कोशिश कर रही है कि यह मुद्दा कहां है।

मुझे संदेह है कि यह किसी प्रकार का विस्तार है लेकिन मुझे लगता है कि मैंने उन सभी को अपडेट कर दिया है। बेशक नहीं। मैं अपने php लॉग या डेवलपर टूल कंसोल में कुछ भी नहीं देख रहा हूं कि समस्या कहां हो सकती है। मैं भी JHtmlBehavior के लिए grep और कुछ भी नहीं के साथ आते हैं।

कैसे मैं यह डिबग कर सकते हैं पर कोई सुझाव?

जवाबों:


9

अपने स्वयं के कस्टम घटक में समस्या मिली ... उह। मुझे आपत्तिजनक कोड नहीं मिला क्योंकि मैं ढूंढ रहा था JHtmlBehavior::mootools

लेकिन आपत्तिजनक कोड यह था:

JHTML::_('behavior.mootools');

इसे इसे बदलने से समस्या ठीक हो जाती है:

JHtml::_('behavior.framework');

3

हालाँकि MooTools Joomla 3 में पदावनत है, यह अभी भी उपलब्ध है (लेकिन भविष्य के संस्करणों में इसे हटाया जा सकता है)।

आप जोड़कर फ्रेमवर्क लोड कर सकते हैं

JHtml::_('behavior.framework');

(या यदि आपको कोर और अधिक लाइब्रेरी दोनों की आवश्यकता है):

JHtml::_('behavior.framework', true);

अपने टेम्पलेट की index.phpफ़ाइल के लिए।

यह कम से कम एक अस्थायी सुधार होगा, जब तक कि आप मुटूल कोड का उपयोग करके फ़ाइल / एक्सटेंशन नहीं ढूंढते। अपराधी को ढूंढना कठिन हो सकता है, लेकिन मेरा सुझाव है कि आप अपने ब्राउज़र डेवलपर टूल ( F12अधिकांश ब्राउज़र में) से शुरू करें और जावास्क्रिप्ट त्रुटियों को देखें, यह आपको संकेत दे सकता है।


धन्यवाद, लेकिन मैंने दोनों की कोशिश की और अभी भी एक ही त्रुटि मिलती है। डेवलपर टूल (या फायरबग) मुझे 500 आंतरिक सर्वर त्रुटि के अलावा और कुछ नहीं बताता है। कोई अन्य विचार?
टॉम

क्या आप वाकई कोड को सही तरीके से जोड़ रहे हैं JOOMLAROOT/templates/YOURTEMPLATE/index.php? आप इसे सीधे जोड़ सकते हैं defined('_JEXEC') or die;। जांचें कि क्या फायरबग में टाइप करके म्यूटूल लोड किया गया है window.MooTools, इसे वापस आना चाहिए Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }या इसी तरह।
johanpw

उन JHtml::कॉलों को जोड़ने से त्रुटि बंद नहीं होगी, जो कहीं न कहीं साइट पर PHP में एक अमान्य कॉल का परिणाम है।
क्रेग

2

यह एक PHP त्रुटि है जिसके परिणामस्वरूप जूमला एक त्रुटि फेंकती है, इसलिए, जावास्क्रिप्ट त्रुटि नहीं है और कुछ PHP को जोड़कर तय नहीं किया जाना चाहिए। जैसा कि आपको संदेह है कि आपको गलत PHP कॉल के स्रोत को खोजने की आवश्यकता है।

पहली बात यह है कि अपनी त्रुटि रिपोर्टिंग को "विकास" में बदल दें और देखें कि आपको कोई नई जानकारी मिलती है, अगर कोई नई जानकारी नहीं है जो आपको त्रुटि के स्रोत को ट्रैक करने में मदद करती है तो यह मैनुअल स्लाइस और पासा दृष्टिकोण बन जाता है।

एक अंतर्निहित टेम्पलेट को संक्षिप्त रूप से स्वैप करने का प्रयास करें और देखें कि क्या समस्या दूर हो जाती है - यदि ऐसा होता है तो या तो टेम्पलेट या एक मॉड्यूल है जिसे अब नहीं बुलाया जाता है क्योंकि इसे असाइन किया गया स्थान डिफ़ॉल्ट टेम्पलेट में मौजूद नहीं है जिसे आपने स्वैप किया है। यदि यह टेम्प्लेट नहीं है तो आप बहुत जल्दी मॉड्यूल को ट्रैक कर सकते हैं।

अंत में, अगर वह मदद नहीं करता है, तो 50% विधि का उपयोग करके जल्दी से संकीर्ण करें कि घटक, मॉड्यूल या प्लगइन्स का समूह समस्या का स्रोत है।


2

कोड कहां से आ रहा है, यह जानने के लिए यहां कुछ चरण दिए गए हैं:

  1. वैसे सबसे अच्छा तरीका यह है कि वेबसाइट की एक पूरी प्रति डाउनलोड करें, और JHTML :: _ ('व्यवहार.mootools') के लिए अपनी निर्देशिका के अंदर एक OS सिस्टम खोज करें ; । आमतौर पर आपका कंप्यूटर उन सभी फ़ाइलों के साथ एक सूची लौटाएगा जिसमें यह विशिष्ट स्ट्रिंग है।

  2. यदि पहला कदम संभव नहीं है, या आप किसी भी कारण से कोई परिणाम नहीं पा सकते हैं, तो आपको एक्सटेंशन अक्षम करना शुरू कर देना चाहिए।

    ए। पहले टेम्प्लेट को स्विच करें - कोर जूमला 3 प्रोटॉस्टर टेम्पलेट पर। यदि समस्या सबसे अधिक दूर हो जाती है, तो यह आपका टेम्पलेट है जिसमें पदावनत कोड शामिल है।

    ख। फिर आप मॉड्यूल और प्लगइन्स को स्विच करना शुरू कर सकते हैं।

    सी। अंत में, देखें कि क्या समस्या केवल 3 पार्टी घटकों के विशिष्ट पृष्ठों पर दिखाई देती है।

जूमला डॉक्यूमेंटेशन पर जूमला पर जावास्क्रिप्ट फ्रेमवर्क लोड करने के तरीके के बारे में अधिक जानकारी प्राप्त करें

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