2012-03-05 20 views
15

Tôi đang xem dòng 34 của /administrator/components/com_contact/views/contacts/view.html.php ở đây là $this->items = $this->get('Items'); Điều tôi không hiểu là làm thế nào thực sự là cách gọi protected function getListQuery() trên đường dây 123 của /administrator/components/com_contact/models/contacts.phpJoomla get ('Items') và cách nó hoạt động

Ngoài ra còn có một số thứ khác tôi không hiểu làm thế nào đang làm việc ... như

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

Những cuộc gọi này là gì? Tôi nhìn vào tài liệu cho "get()" nhưng nó không nói những gì đang thực sự kêu gọi bởi vì tôi không thấy bất kỳ phương pháp được gọi là getPagination, getState hoặc getItems ... Nó xuất hiện get ('Items') bằng cách nào đó kỳ diệu gọi getListQuery().

Trả lời

31

Tôi giả sử 1,7/2,5 + ở đây ...

Trong MVC của Joomla! Quan điểm contacts (ContactViewContactsextends JView) sẽ tự động tải các mô hình contacts (hoặc trong J! Ngữ ContactModelContacts) mà như một lớp học extends JModelList.

get() có giao diện để lấy dữ liệu từ mô hình đã đăng ký hoặc thuộc tính của chế độ xem.

Vì vậy;

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

thực sự là một cuộc gọi đến mô hình ContactModelContacts trong đó có một phù hợp với getItems() trong nó parent.

Mô hình tập tin com_contact/models/contacts.php không thực hiện riêng của nó getItems(), vì vậy getItems() từ lớp JModelList được sử dụng (tìm thấy trong /libraries/joomla/application/component/modellist.php).

Điều này lần lượt gọi getListQuery() - không có phép thuật thừa kế.

$this->get('Pagination') đang thực hiện tương tự, ví dụ: truy cập vào việc thực hiện trong mô hình cha mẹ.

$this->get('State') có thể sẽ quay trở lại triển khai JModel.

+1

Người đàn ông làm tôi cảm thấy như một moron ... Điều đó có ý nghĩa quá nhiều. Tôi đoán tôi chưa bao giờ nhìn thấy một phương pháp kế thừa được gọi và sau đó gọi một phương thức phân lớp. Tôi nghĩ tôi đã gõ đúng. Dù bằng cách nào - THANK YOU! – dingerkingh

+8

Hướng dẫn phát triển thành phần Joomla chịu trách nhiệm về mớ hỗn độn này. Tôi lãng phí thời gian lớn lang thang về mớ hỗn độn này (tôi tưởng tượng điều này sẽ là cách nhưng trong hướng dẫn nó không có trong 1,5 hoặc 2,5). Cảm ơn bạn rất nhiều cho câu trả lời. – Ruwantha

+4

Tôi muốn thêm rằng nếu bất kỳ ai, kể cả Ruwantha, không hài lòng với bất kỳ tài liệu nào của Joomla, bạn có thể đóng góp để cải thiện nó. Joomla là một dự án tình nguyện và tất cả mọi người đều giúp đỡ để làm cho nó tốt hơn. – betweenbrain

Các vấn đề liên quan