Форум русской поддержки Joomla! CMS |

23.04.2010, 20:28:50

Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Вам не пришло письмо с кодом активации? Войти

|  | Начало |  | Поиск | Joomla 1.5 FAQ | Joomla 1.0 FAQ | Правила форума | Новости Joomla | Войти | Регистрация | Помощь |

Страниц: [1] Вниз |

| Добавить закладку | Печать |

| Автор | Тема: Типы параметров модуля/плагина (Прочитано 2481 раз)
0 Пользователей и 1 Гость смотрят эту тему.

userxp Администратор Репутация: +341/-6 Offline Пол:
Сообщений: 2999
Joomla! Extensions Developer

| Типы параметров модуля/плагина « : 03.01.2007, 17:59:37 » |

В установочных файлах (XML) модулей и плагинов есть параметры, отображаемые в их настройках
Например:
<params>
<param name="@spacer" type="spacer" default="" label="" description="GENERALDESC" />
<param name="data_format" type="text" default="d.m.Y" label="DATAFORMATLABEL" description="DATAFORMATDESC" />
<param name="category" type="category" default="" label="Category" description="CATEGORYDESC" />
<param name="file_select" type="filelist" default="index.php" label="FRONTTEMPLATELABEL" directory="/plugins/content" filter="\.htm$|\.html$|\.php$" hide_none="1" hide_default="1" description="FRONTTEMPLATEDESC" />
name - Имя параметра (обращение к параметру в коде ..)
type - тип параметра (см. ниже)
default, label, description - общие тэги параметров
directory, filter, hide_none... - дополнительные тэги и зависят от типа параметра.
У каждого параметра есть тип отображения и, зависящие от этого, дополнительные тэги.
Типы параметров бывают (в скобках указаны аналоги для 1.0):

- category (mos_category) - список категорий
  доп.тэги:
  class - класс оформления элемента (если не указано, то будет использован класс "inputbox" )
  section - область просмотра (scope) разделов, по которым будут отбираться категории (если не указано, то будет использована область "content" )
  scope - область просмотра раздела (то же самое, что и section)
- calendar - поле с календарем
  доп.тэги:
  class - класс оформления элемента (по умолчанию "inputbox" )
  format - формат даты (по умолчанию '%Y-%m-%d')
- editors - ниспадающий список доступных редакторов
- filelist (filelist) - список файлов из указанной папки
  доп.тэги:
  directory - папка листинга файлов
  filter - список фильтров расширений (на regex-е)
  exclude - перечень исключаемых файлов
  stripext - фильтр отображаемого текста
  hide_none - 0 или 1. Указывает скрывать значение "не выбрано". Если не использовать тэг, то показывать.
  hide_default - 0 или 1. Указывает скрывать значение "по-умолчанию". Если не использовать тэг, то показывать.
- folderlist - список файлов из указанной папки
  доп.тэги:
  filter - regex-фильтр имен папок
  exclude - перечень исключаемых папок
  directory- папка листинга файлов
  hide_none - 0 или 1. Указывает скрывать значение "не выбрано". Если не использовать тэг, то показывать.
  hide_default - 0 или 1. Указывает скрывать значение "по-умолчанию". Если не использовать тэг, то показывать.
- helpsites - список сайтов помощи (на разных языках)
  перечень сайтов помощи (по-умолчанию, берётся из файла /administrator/help/helpsites-15.xml )
- hidden - обычное скрытое поле
  доп.тэги:
  class - по умолчанию "text_area"
- imagelist (imagelist) - список графических файлов из указанной папки (то же, что и filelist, но с заранее предустановленным фильтром: .png, .gif, .jpg, .bmp, .ico)
  доп.тэги:
  filter - regex-фильтр имен файлов, по умолчанию '\.png$|\.gif$|\.jpg$|\.bmp$|\.ico$'
- languages - список языков
  доп.тэги:
  client - тип доступа (по имени пользователя)
- list(list) - список перечисленных опций
  доп.тэги:
  class - класс оформления элемента
  value - перечисление через <option ...
- menu (mos_menu) - список меню
- menuitem - список пунктов указанного меню
  доп.тэги:
  state - опубликовано/неопубликовано
  disable - даже не знаю, какой смысл в этом параметре
- password - поле ввода пароля
  доп.тэги:
  class - класс оформления элемента
  size - ширина поля
- radio (radio) - список "радиокнопок" (выбор указанной опции через <option...)
- section (mos_section) - список разделов
- spacer (spacer) - разделитель
- sql - получить список запросом из БД
  доп.тэги:
  query - SQL-запрос
  key_field - имя ключевого поля списка
  value_field - имя поля данных списка
- text (text) - обычное текстовое поле
  доп.тэги:
  class - класс оформления элемента
  size - ширина поля
- textarea (textarea) - текстовое многострочное поле
  доп.тэги:
  class - класс оформления элемента, по умолчанию "text_area"
  cols - ширина поля
  rows - кол-во строк поля
- timezones - список выбора временной зоны
- usergroups - список групп пользователей
  class - класс оформления элемента, по умолчанию "inputbox"
  size - ширина поля
  multiple - вкл/выкл множественный выбор

« Последнее редактирование: 26.04.2009, 19:56:26 от userxp » | Записан

userxp Администратор Репутация: +341/-6 Offline Пол:
Сообщений: 2999
Joomla! Extensions Developer

| Re: Типы параметров модуля/плагина « Ответ #1 : 27.04.2009, 12:12:44 » |

Спасибо beliyadm, напомнил про группировку параметров.
Итак, группировка параметров в стиле "аккордеона" осуществляется "обрамлением" списка параметров с указанием именем группы.
Вот такая схема:
<params>
... список параметров ...
</params>
<params group="advanced">
... список паарметров ...
</params>
если имя группы не указывать, то она считается группой "по умолчанию"
теперь более полный пример:
Код

    <params group="email">
    	<param name="show_email_form" type="radio" default="1" label="Email Form" description="Show/Hide the email to form">
    		<option value="0">Hide</option>
    		<option value="1">Show</option>
    	</param>
    	<param name="email_description" type="text" size="30" default="" label="Description text" description="PARAMEMAILDESCTEXT" />
    	<param name="show_email_copy" type="radio" default="1" label="Email Copy" description="PARAMEMAILCOPY">
    		<option value="0">Hide</option>
    		<option value="1">Show</option>
    	</param>
    	<param name="banned_email" type="textarea" default="" label="BANNED EMAIL LABEL" rows="3" cols="30" description="BANNED EMAIL DESC" />
    	<param name="banned_subject" type="textarea" default="" label="BANNED SUBJECT LABEL" rows="3" cols="30" description="BANNED SUBJECT DESC" />
    	<param name="banned_text" type="textarea" default="" label="BANNED TEXT LABEL" rows="3" cols="30" description="BANNED TEXT DESC" />
    </params>

| Записан

.:The True Gallery:.

userxp Администратор Репутация: +341/-6 Offline Пол:
Сообщений: 2999
Joomla! Extensions Developer

| Re: Типы параметров модуля/плагина « Ответ #2 : 28.04.2009, 01:54:06 » |

так. нарисовалась интересная штука -
при указании группы параметров можно применять атрибут addpath. например:
<params addpath="/modules/папка_модуля/путь...">
...
<param ... type="имятипа" ... />
...
</params>
в результате, Joomla из указанной папки подгрузит файлы ,в которых будет подключать....классы для дополнительных форматов типов параметров
содержимое файла:
class JElementИмяТипа extends JElement {
var $_name = 'ИмяТипа';
function fetchElement($name, $value, &$node, $control_name) {
...
return ...
}
}

| Записан

.:The True Gallery:.

Страниц: [1] Вверх |

| Добавить закладку | Печать |

Перейти в:

| Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC |

Загружается...