मैं दोनों PHP और जूमला विकास के साथ शुरू कर रहा हूं, और कुछ सरल सामग्री करने के लिए जूमला के भीतर मुश्किल काम करना ढूंढ रहा हूं। जूमला एमवीसी उदाहरण और लिंडा (और अब तक कुछ सरल विचारों का निर्माण किया है) के माध्यम से चला गया।जूमला: मॉडल के भीतर से सहायक कार्य कॉल करें?
मेरे पास एक सहायक फ़ाइल/कक्षा/फ़ंक्शन है जो "पूर्ण" तालिका में मौजूद सभी उपयोगकर्ता आईडी आउटपुट करता है, इसलिए मैं उस उपयोगकर्ता के आधार पर या तो एक नए रिकॉर्ड के लिए एक लिंक प्रदर्शित कर सकता हूं या मौजूदा उपयोगकर्ता के रिकॉर्ड को संपादित कर सकता हूं।
मैंने पहले से ही इस सहायक फ़ाइल में घटक (Joomla: Write and call a helper function in a component) में सफलतापूर्वक एक अलग फ़ंक्शन का उपयोग किया है।
जब मैं मॉडल में एक ही काम करता हूं, तो मुझे यह मिल रहा है: "घातक त्रुटि: संरक्षित विधि पर कॉल करें JModel :: _ createFileName() संदर्भ में 'JView' से संदर्भित करें: \ wamp \ www \ ilplocal \ पुस्तकालय लाइन 773 पर \ joomla \ application \ घटक \ view.php "। जब मैं इसे दृश्य में आज़माता हूं, ठीक काम करता है - लेकिन मुझे मॉडल में आउटपुट की आवश्यकता है।
कोड:
lookups.php
abstract class LookupHelper {
public function other_functions($vars){
...
}
public function completions_exist() {
$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$query->SELECT(' #__completed.completed_userid as UserID');
$query->FROM (' #__completed');
$query->GROUPBY (' #__completed.completed_userid ');
$db->setQuery($query);
$result = $db->loadResultArray(0);
return $result;
}
}
मॉडल में:
$completions_exist = Jview::loadHelper('lookups');
$completions_exist = LookupHelper::completions_exist();
इस लाइन त्रुटि फेंक है: $completions_exist = Jview::loadHelper('lookups');
मैं वास्तव में कुछ अस्पष्ट पाया है JLoader नामक किसी चीज़ के संदर्भ :: सहायक कार्यों में खींचने के लिए रजिस्टर bu जूमला में उस पर कोई भी अच्छा दस्तावेज नहीं मिल रहा है, इसके अलावा हर किसी को इसका इस्तेमाल करने के लिए कहा जाता है। \ मॉडल \ नहीं \ lookups.php करने को \ \ WAMP \ पथ \: तो मैं इतना है कि यह उपयोग करने की कोशिश:
JLoader::register('LookupHelper', dirname(JPATH_COMPONENT_ADMINISTRATOR).DS.'helpers'.DS.'lookups.php');
$completions_exist = LookupHelper::completions_exist();
जो इस त्रुटि फेंकता है: गंभीर त्रुटि ": क्लास 'LookupHelper' सी में नहीं मिला। JLoader :: रजिस्टर (यहां सब कुछ) में हेरफेर करने का प्रयास किया और यह त्रुटि संदेश के पथ को प्रभावित नहीं करता है।
विचार? यह एक दृश्य में क्यों काम करता है और मॉडल में नहीं? मैं सहायक कार्यों का उपयोग कैसे करूं एक मॉडल के भीतर?
धन्यवाद!
##### संपादित करें@cppl के लिए धन्यवाद ऐसा लगता है कि यह कोड के दूसरे बिट के साथ एक पथ मुद्दा है। इसके अलावा मैंने पढ़ा कि .DS। अंकन भविष्य के संस्करणों में चरणबद्ध तरीके से समाप्त हो जाएगा - तो कोड है कि काम कर रहा है है:
JLoader::register('LookupHelper', JPATH_COMPONENT_ADMINISTRATOR.'/helpers/lookups.php');
$completions_exist = LookupHelper::completions_exist();
1) जांचें। 2) यह मेरे भाग पर एक आंशिक derp था - yup, यह काम किया 3) अहह्ह्ह - मुझे नहीं पता था कि एक PHP कॉल था, मैंने पथ को प्रतिबिंबित किया और सही होने तक समायोजित किया। बहुत बढ़िया! 4) आह, समझ गया! कोई विचार क्यों 'ज्यूव :: लोडहेल्पर (' लुकअप ');' एक त्रुटि फेंक दी? मैंने सोचा कि यह आप कैसे करते हैं, अब मुझे यकीन नहीं है कि किस का उपयोग करना है। आपको बहुत - बहुत धन्यवाद! – Gisto
मदद करने के लिए खुशी हुई। त्रुटि शायद इसलिए है क्योंकि पथ '।' से शुरू होता है। जो वर्तमान निर्देशिका के बराबर है। – Craig