Использование параметров в модуле
рейтинг: 7.9/10, голосов: 8
Как вы уже могли заметить, практически все модули имеют настройки, параметры. Так, например, стандартный модуль Навигатор имеет такие настройки как Показать главную, Разделитель текста и прочее. Наш модуль может быть ни чем не хуже. Добавим в пример модуля из предыдущего раздела несколько настроек.
Итак, например мы хотим создать модуль который будет приветствовать пользователя по имени, либо просто общее сообщение для гостей. Для этого в настройках должно быть определено два сообщения. Параметры модуля будем определять в файле XML с использованием готового набора параметров в Joomla. Выглядит это все следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<install type="module" version="1.5.0">
<name>testmodule3</name>
<author>Joomla-book.ru</author>
<version>1.0</version>
<description>TEST #3 Joomla-book.ru module</description>
<files>
<filename module="mod_testmodule3">mod_testmodule3.php</filename>
</files>
<params>
<param name="saluteguest" type="text" default="Hello stranger" label="gsalute" description="Salute text for guests" />
<param name="saluteregistered" type="text" default="Welcome" label="rsalute" description="Salute text for registered users" />
</params>
</install>
Таким образом мы объявим два текстовых поля (одно строчных). В панели администратора это будет выглядеть примерно так:

А в следующем листинге мы получим значение установленных настроек в коде нашего модуля
<?php
defined('_JEXEC') or die('Restricted access');
$user = JFactory::getUser();
// Получаем установленные параметры
$saluteg = $params->get("saluteguest");
$saluter = $params->get("saluteregistered");
// В зависимости от типа посетителя сайта, выводим сообщение
if ($user->guest) {
echo "<p>$saluteg</p>";
} else {
echo "<p>$saluter</p>";
}
?>
Следующим шагом, расширим параметры нашего модуля полем типа textarea, и переключателем со значениями Да и Нет.
<params>
<param name="tosalute" type="radio" default="1" label="Salute users?" >
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="saluteguest" type="textarea" default="" rows="4" cols="40" label="Guest users salute" description="Salute text for guests" />
<param name="saluteregistered" type="textarea" default="" rows="4" cols="40" label="Registered users salute" description="Salute text for registered users" />
</params>
Выглядит это следующим образом

Использование настроек модуля в php для других типов настроек ничем не отличается:
<?php
defined('_JEXEC') or die('Restricted access');
$user = JFactory::getUser();
// Получаем значения настроек
$tosalute = $params->get("tosalute");
$saluteg = $params->get("saluteguest");
$saluter = $params->get("saluteregistered");
if ($tosalute) {
if ($user->guest) echo "<p>$saluteg</p>";
else echo "<p>$saluter</p>";
}
?>
Каким образом можно сделать список с множественным выбором в качестве параметра? Нужно, чтобы в админке можно было выбрать несколько взятых из базы названий. Где про это почитать? (можно по-английски)
Что-то под 1.7 не работает пример.
Что тут надо поправить?
Подскажите пожалуйста а как добавить в модуль текстовый редактор по типу как сделано в модуле mod_custom?
Отличная инфа, очень помогло!