it-swarm-tr.com

Bileşenimde başka bir bileşen modelini nasıl kullanabilirim?

Bir bileşen oluşturuyorum ve #__content tablosuna erişmesi gerekiyor. Com_content bileşeni, bileşenimin bu tabloda yapması gereken her şeyi yapar. Com_content modellerini bileşenimdeki denetleyicilere nasıl alabilirim?

Kendi tabloumu oluşturmak için var olan bir tabloyu kullanmak iyi bir uygulama mudur? Bileşenim yorum içeren bir fotoğraf galerisi gösterecek ve yorumları saklamak için #__content tablosunu kullanmak istiyorum. Yorumlara yeni bir tablo oluşturmalı mıyım?

8
csbenjamin

addIncludePath() yöntemini kullanarak com_content Modellerini denetleyiciye alabilirsiniz:

JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_content/models', 'ContentModel');

addIncludePath() yöntemi, JModelLegacy'nin modelleri araması gereken bir dizin ekler. İlk parametre olarak bir dize veya bir dizin dizisi iletebilirsiniz. İkinci parametre olarak modeller için sınıf öneki belirleyebilirsiniz (isteğe bağlı).

Sonra getInstance() yöntemini kullanın:

$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));

İlk parametre örneklenecek model türüdür, ikincisi model sınıfı adı için önek (isteğe bağlı) ve üçüncü parametre model için yapılandırma dizisidir (isteğe bağlı).

Ancak özel bileşenler için mevcut çekirdek bileşenleri tablolarını kullanmamayı tercih ediyorum.

16
Dmitry Rekun