/administrator/components/com_contact/views/contacts/view.html.phpの34行目を見ています。ここで$this->items = $this->get('Items');
と表示されています。理解できないのは、実際にprotected function getListQuery()
/administrator/components/com_contact/models/contacts.phpの123行目
他にも、どのように機能しているかわからないことがいくつかあります...
$this->pagination = $this->get('Pagination');
$this->state = $this->get('State');
これらは何を呼んでいますか? 「get()」のドキュメントを見ましたが、getPagination、getState、getItemsというメソッドが表示されないため、実際に何が呼び出されているのかわかりません... get( 'Items')はどういうわけか魔法のようにgetListQuery()を呼び出します。
ここでは1.7/2.5 +だと思います...
Joomla!のMVCでは、ビューcontacts
(ContactViewContacts
which _extends JView
_)はモデルを自動的にロードしますcontacts
(またはJ!の用語ではContactModelContacts
)これはクラスとして_extends JModelList
_。
get()
はビューを調べて、登録されたモデルまたはビューのプロパティからデータを取得します。
そう;
_$this->items = $this->get('Items');
_
実際には、ContactModelContacts
に一致するgetItems()
があるモデルparent
への呼び出しです。
モデルファイル_com_contact/models/contacts.php
_は独自のgetItems()
を実装していないため、JModelList
クラスのgetItems()
が使用されます(_/libraries/joomla/application/component/modellist.php
_にあります)。 )。
これにより、getListQuery()
が呼び出されます。継承だけの魔法はありません。
$this->get('Pagination')
は同じことをしています。つまり、モデルの親の実装にアクセスします。
$this->get('State')
はおそらくJModel
の実装にまでさかのぼります。