Как программно изменить параметры компонента в Joomla 3?

  • Суббота, 04 января 2014

Периодически возникает необходимость изменить программно тот или иной параметр одного из компонентов Joomla. Например, в Joomla 3.1.5 и Joomla 3.2 по умолчанию в компоненте com_user установлено неверное значение параметра «Группа пользователей для Гостей» — указан идентификатор 13, а должно быть 1 (Public) или 9 (Guest). В этой заметки мы рассмотрим как решить эту задачу программно.

Итак, сначала немного кода:

<?php
// получаем параметры компонента com_users
$params = JComponentHelper::getParams('com_users');
// устанавливаем требуемое значение
$params->set('guest_usergroup', '1');

// записываем измененные параметры в БД
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->update($db->quoteName('#__extensions'));
$query->set($db->quoteName('params') . '= ' . $db->quote((string)$params));
$query->where($db->quoteName('element') . ' = ' . $db->quote('com_users'));
$query->where($db->quoteName('type') . ' = ' . $db->quote('component'));
$db->setQuery($query);
$db->execute();
?>

В данном примере важно обратить внимание на приведение переменной $params к типу string. В результате этого приведения объект JRegistry будет преобразован в формат JSON, который и требуется записать в поле params таблицы #__extensions.

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Коротко о главном в Joomla

Новости портала

Новое в блогах

Видео