Как получить глобальные параметры статьи в Joomla? - PullRequest
1 голос
/ 20 марта 2012

Я программирую модуль в Joomla!2.5.Модуль отображает статью в заданной позиции.Мне нужны атрибуты статьи (то есть show_title, link_title ecc.). С помощью этого кода я получаю специфические атрибуты статьи:

$db =& JFactory::getDBO();
$query = 'SELECT * FROM #__content WHERE id='.$id.' AND state=1';
$db->setQuery($query);
$item = $db->loadObject();
$attribs = json_decode($item->attribs, true);

Если я var_dump переменная $attribs, которую я получаю:

array(26) {
  ["show_title"]=>
  string(0) ""
  ["link_titles"]=>
  string(0) ""

  [...]

}

Переменная $attribs представляет специфические атрибуты статьи.Когда для элемента установлено значение "", это означает «использовать глобальную конфигурацию».

Я могу получить глобальную конфигурацию с помощью этого запроса:

SELECT params from #__extensions where extension_id=22;

Где 22 - идентификатор com_component расширение.Затем я могу объединить результаты здесь с результатами для конкретной статьи.

НО Есть ли простой способ достичь этого?Ли Joomla!есть определенный класс в рамках для этого?

1 Ответ

3 голосов
/ 20 марта 2012

Я бы начал с загрузки модели для статей:

// Get an instance of the generic articles model
$model = JModel::getInstance('Article',
                             'ContentModel',
                             array('ignore_request' => true));

Получить конкретную статью ...

$model->getItem($id)

Чтобы получить компоненты глобальных параметров, я думаю, вы можете использовать:

$params = &JComponentHelper::getParams( 'COMPONENT_NAME' );

В вашем случае вам понадобится что-то вроде:

jimport('joomla.application.component.helper'); // load component helper first
$params = JComponentHelper::getParams('com_content');

Я бы посоветовал вам взглянуть на код модулей статей, которые поставляются с Joomla! 2.5.x, поскольку они делают много вещей, похожих на то, что вы пытаетесь создать. Вы также можете прочитать эту статью , она немного устарела, но я думаю, что она в основном остается верной (за исключением того, что jparams заменяется на jforms).

...