RSS   Twitter   Copiny   Copiny
Нашел ошибку? 

Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!

Использование параметров в модуле

Как вы уже могли заметить, практически все модули имеют настройки, параметры. Так, например, стандартный модуль Навигатор имеет такие настройки как Показать главнуюРазделитель текста и прочее. Наш модуль может быть ни чем не хуже. Добавим в пример модуля из предыдущего раздела несколько настроек.

Итак, например мы хотим создать модуль который будет приветствовать пользователя по имени, либо просто общее сообщение для гостей. Для этого в настройках должно быть определено два сообщения. Параметры модуля будем определять в файле 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>";
    }
?>

Смотрите также:
Комментарии (9) Добавить комментарий
  • Роман
    Роман
    13 Августа 2011, 21:27
     ↑  +6  ↓     ответ

    Каким образом можно сделать список с множественным выбором в качестве параметра? Нужно, чтобы в админке можно было выбрать несколько взятых из базы названий. Где про это почитать? (можно по-английски)

  • Денис
    Денис
    24 Августа 2011, 23:49
     ↑  0  ↓     ответ

    Что-то под 1.7 не работает пример.

    Что тут надо поправить?

    • Ольга
      Ольга
      15 Февраля 2012, 21:04
       ↑  +4  ↓     ответ

      XML файл будет выглядеть немного по-другому для Joomla 1.7

  • Пётр
    Пётр
    16 Октября 2011, 03:22
     ↑  +1  ↓     ответ

    Подскажите пожалуйста а как добавить в модуль текстовый редактор по типу как сделано в модуле mod_custom?

    • job
      job
      18 Марта 2014, 23:49
       ↑  +1  ↓     ответ

      Все просто, описал как это делается slovu.net/coding/joomla/1057-rasshiryaem-nastrojki-modulya-dobavlyaem-tekstovyj-redaktor-kak-v-module-mod-custom

  • Ирина
    Ирина
    20 Января 2012, 16:22
     ↑  +1  ↓     ответ

    Отличная инфа, очень помогло!

  • Денис
    Денис
    02 Июня 2014, 15:05
     ↑  0  ↓     ответ

    Добрый день.

    Вопрос - есть ли какие то нюансы при работе с Joomla 3.0. Или же данный урок подходит для сей CMS без каких бы то нибыло изменений?

  • Егор
    Егор
    21 Декабря 2014, 23:52
     ↑  0  ↓     ответ

    Доброго времени суток. Подскажите пожалуйста как получить значение например из email

    <field name="email"

    type="text"

    default=""

    label="EMAIL"

    description="EMAIL">

    </field>

  • Егор
    Егор
    22 Декабря 2014, 01:05
     ↑  +1  ↓     ответ

    если в modules/modules_mod/tmpl/default.php

    вставить echo $email; то выведет значение. А если для отправки почты я использую отдельный файл. Как в нем получить значение?

Оставить комментарий




* обязательно для заполнения

1 введенный почтовый адрес используется только для обратной связи при ответах в комментариях и сервиса gravatar.com
.