Создание php скриптов различных направлений

Гостевые, новостные движки, а также различные парсеры других ресурсов и прочее. Доработка готовых скриптов, "доводка" их до желаемого, а также расширения функционала.

Разработка Windows приложений

Прикладные приложения: взаимодействие с БД, web службами, генерация отчетов (xls, doc, htm)
Техподдержка разработок на разумных условиях.

Подробнее...

 

Контакты:

  • mail mail@sergebezborodov.com
  • icq 580408949
  • skype sergebezborodov
  • phone +380 66 777 92 25

Создание выпадающего списка с помощью JHTML в Joomla

Класс JHTML используется повсеместно в Joomla, но в тоже время он может показаться несколько загадочным классом, т.к. обычно мы видим странный вызов JHTML::_(), куда через параметр передаются какие то загадочные строки из которых потом получается не менее загадочный HTML.

Первое, что необходимо знать, JHTML – это сервисный класс, который вызывает классы потомки, исходя из входящих параметров. До конца не понятно, почему бы сразу не вызывать класс потомок, но коль уж решили разбираться в стиле кодирования под Joomla, то нужно делать так как предписывает сообщество, чтобы код смогли понять и другие разработчики.

Для того, чтобы начать работу с этим зверем, мы рассмотрим, как создать простейший раскрывающийся список.

Прежде чем начать, логично разобрать API класса потомка JHTMLSelect с которым мы будет работать. Мы будем использовать наиболее простой метод называющийся genericlist:

string genericlist (array
$arr, string $name, [string $attribs = null], [string $key = 'value'], [string $text = 'text'], [mixed $selected = NULL], [
$idtag = false], [
$translate = false])

  • $arr – массив, который содержит элементы для списка
  • $name – название тега, которое используется для определения выбранного значения. Другими словами, это атрибут name тега <select>
  • $attribs – дополнительные атрибуты для тега <select>. В большинстве случает нет необходимости использовать данную возможность, достаточно передать в качестве параметра NULL.
  • $key – относится к значению в $arr, который обращается к значению опции. Это – значение, которое Вы будете фактически получать, когда Вы сделаете обработку. В большинстве случаев установлено в ‘value’
  • $selected – устанавливает выбранный элемент списка. Должен являться одним из элементов массива $arr.
  • $idtag – устанавливает значение атрибута id, в основном используется для определения стилей через CSS и использования AJAX, др.
  • $translate – установив данный параметр true, каждый элемент <select> будет прогоняться через JTEXT. Я бы рекомендовал использовать JTEXT во время заполнения массива $arr и установить данную переменную в false.

Давайте посмотрим, как создать массив значений для списка:

$arr = array(			
  JHTML::_('select.option', 'dog', JText::_('Dog')),
  JHTML::_('select.option', 'cat', JText::_('Cat')),
  JHTML::_('select.option', 'rat', JText::_('Rat'))		
);

Здесь мы создаем элементы для списка с помощью вызова JHTML, первый параметр должен быть всегда установлен ’select.option’, второй параметр устанавливает значение элемента списка, третий параметр – как отображать данный элемент списка.

Собственно дело осталось за малым – создать сам список:

$currentValue = 'cat'; // текущее значение (например выбрано из БД) 			

echo JHTML::_('select.genericlist', $arr, 'animals', null, 'value', 'text', $currentValue);

Глядя на первый параметр, несложно догадаться, что вызов JHTML::_ будет преобразован в вызов JHTMLSelect::genericlist(), который уже и создать необходимый html список. С помощью других функций можно также создать список радиокнопок вместо выпадающего. Документация Joomla хоть и очень краткаялаконичная, но с её помощью всегда можно найти описание необходимых функций и классов.

Категория:Без рубрики

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