2012-03-05 4 views
15

मैं /administrator/components/com_contact/views/contacts/view.html.php की लाइन 34 देख रहा हूं कहां कहता है $this->items = $this->get('Items'); जो मुझे समझ में नहीं आता है वह यह है कि वास्तव में /administrator/components/com_contact/models/contacts.phpजूमला ('आइटम') और यह कैसे काम करता है

की लाइन 123 पर protected function getListQuery() बुला रहा है वहाँ भी कुछ अन्य बातों मुझे समझ नहीं आता कैसे काम कर रहे हैं रहे हैं ... जैसे

$this->pagination = $this->get('Pagination'); 
$this->state  = $this->get('State'); 

ये कॉलिंग क्या हैं? मैंने "get()" के लिए प्रलेखन को देखा लेकिन यह नहीं कहता कि ये वास्तव में क्या कह रहे हैं क्योंकि मुझे GetPagination, getState या getItems नामक कोई भी विधि दिखाई नहीं दे रही है ... ऐसा लगता है कि प्राप्त ('आइटम') किसी भी तरह है जादुई रूप से getListQuery() कॉलिंग।

उत्तर

31

मैं 1.7/2.5 + यहाँ ...

दृश्य contacts (ContactViewContacts जो extends JView) स्वचालित रूप से मॉडल contacts लोड करता है यह मानते हुए कर रहा हूँ जूमला! के MVC में (या जम्मू में! शब्दावली ContactModelContacts) जो एक वर्ग extends JModelList के रूप में।

get() किसी पंजीकृत मॉडल या दृश्य की संपत्ति से डेटा प्राप्त करने के लिए दृश्य में दिखता है।

तो;

$this->items = $this->get('Items'); 

वास्तव में मॉडल ContactModelContacts जो एक मिलान getItems() है में यह parent है के लिए एक कॉल है।

मॉडल फ़ाइल com_contact/models/contacts.php यह खुद getItems() है को लागू नहीं करता, इसलिए getItems()JModelList वर्ग से प्रयोग किया जाता है (/libraries/joomla/application/component/modellist.php में पाया)।

बदले में यह getListQuery() पर कॉल करता है - कोई जादू सिर्फ विरासत नहीं है।

$this->get('Pagination') वही काम कर रहा है, यानी। मॉडल माता-पिता में कार्यान्वयन का उपयोग करना।

$this->get('State') शायद JModel कार्यान्वयन पर वापस जा रहा है।

+1

मैन मुझे मूर्खता की तरह महसूस करता है ... इससे बहुत अधिक समझदारी होती है। मुझे लगता है कि मैंने कभी भी एक विरासत विधि को कभी नहीं देखा है और फिर उप-वर्ग विधि को कॉल किया है। मुझे लगता है कि मैंने इसे सही टाइप किया है। किसी भी तरह से - धन्यवाद! – dingerkingh

+8

जूमला घटक डेवलपर ट्यूटोरियल इस गड़बड़ी के लिए ज़िम्मेदार है। मैं इस गड़बड़ी के बारे में घूमने में बड़ा समय बर्बाद करता हूं (मैंने कल्पना की कि यह रास्ता होगा लेकिन ट्यूटोरियल में यह 1.5 या 2.5 में नहीं था)। उत्तर के लिए बहुत बहुत धन्यवाद। – Ruwantha

+4

मैं यह जोड़ना चाहता हूं कि अगर रुवांथा समेत कोई भी जूमला दस्तावेज से नाखुश है, तो आप इसे सुधारने में योगदान दे सकते हैं। जूमला एक स्वयंसेवी परियोजना है और इसे बेहतर बनाने के लिए हर किसी की मदद लेती है। – betweenbrain

संबंधित मुद्दे