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

  • 04.01.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.

Это интересно:

Комментарии  

Аркадий Седельников
0 # Аркадий Седельников 25.01.2015 20:50
В запросе не хватает еще одного условия
Цитата:
$query->where($db->quoteName('type') . ' = ' . $db->quote('component'));
Иначе может получиться путаница с сеф-плагинами.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
smart
0 # smart 26.01.2015 13:17
добавил условие в статью, спасибо!
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Асым
0 # Асым 27.03.2016 07:14
Добрый день. Начинающий по joomla. Мне сделали сайт на базе joomla. Вопросы: 1. как узнать какая версия joomla. 2. как войти в админ для добавление страницы. 3. как заменить пароль(мне посоветовал, создатель, его заменить). Сайт создан на хостинге edurm. Спасибо, Жду ответа.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
Вадим Куницын
0 # Вадим Куницын 27.03.2016 11:41
1. В админ панели сайта отображается версия Joomla.
2. Админ панель находится site.ru/administrator/
3. Вообще странно, что вас не проконсультировали, как пользоваться сайтов. Сайт все таки технически сложный продукт.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору

Добавить комментарий

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

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

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

Скачать Joomla! 3 Документация Joomla! CMS Свернуть

Расширения Joomla

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

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

Видео