Чтение онлайн

на главную

Жанры

Разрботка расширений для CMS Joomla
Шрифт:

$name - название элемента <select>; $extension - расширение, к которому относятся категории; $selected - выбранное по умолчанию значение; $javascript - дополнительный код Javascript, который будет выведен внутри тега <select>; $size - высота списка (значение атрибута size тега <select>); $sel_cat - при null строки " Выберите категорию" в списке не будет.

Пример:

echo JHTML::_('list.category', 'catlist', 'com_content', 2, 'onclick="someFunc"', 'id', 1, 1);

Данный код выведет на экран список, представленный на рис. 3.7.

Рис. 3.7.

Список для выбора категории

JHTMLMenu

Класс используется для отображения элементов меню и не представляет интереса для использования в расширениях.

JHTMLSelect

Класс JHTMLSelect используется для генерации кода списков.

Выпадающий список

string genericlist(array $data, string $name, mixed $attribs = null, string $optKey = 'value', string $optText = 'text', mixed $selected = null, mixed $idtag = false, bool $translate = false)

где

$data - массив данных для отображения. Каждый элемент может быть сгенерирован с помощью метода JHTMLSelect.option или другим образом; $name - имя элемента HTML; $attribs - дополнительные атрибуты тега <select>. Могут быть заданы как массив атрибутов или массив опций с ключами list.attr, id, list.select и др.; $optKey - из какого поля объекта, представляющего собой элемент массива $data, брать значение элементов <option>. При $optkey = null будут использованы ключи массива; $optText - из какого поля объекта, представляющего собой элемент массива $data, брать текст элементов <option>. Тег <option> формируется так: <option value="$optkey">$optText</option>; $selected - значение выбранного по умолчанию элемента; $idtag - id тега <select>; $translate - пропускать ли текст через функцию JText::_.

Пример:

$query = 'SELECT id,title FROM #__content'; $db =& JFactory::getDBO; $db->setQuery($query); $content = $db->loadObjectList; echo JHTML::_('select.genericlist', $content, 'genlist', 'size='.count($content), 'id', 'title', 2);

Так как мы передали в функцию genericlist $selected=2, то в сгенерированном списке по умолчанию выделен элемент с id, равным 2 (рис. 3.8).

Рис. 3.8. Список для выбора материала

Объект, представляющий элемент <option> выпадающего списка

object option(string $value, string $text = '', mixed $optKey = 'value', string $optText = 'text', bool $disable = false)

где

$value - значение элемента <option>; $text - текст элемента; $optKey - если это строка, то имя того поля возвращаемого объекта, в котором будет храниться значение элемента <option>. Если массив, то это параметры. Возможные ключи массива: attr, disable, label, option.attr, option.disable, option.key, option.label, option.text; $optText - имя того поля возвращаемого объекта, в котором будет храниться текст элемента <option>; $disable - добавлять ли к

тегу атрибут disable.

Рассмотрим пример:

$query = 'SELECT id,title FROM #__content'; $db =& JFactory::getDBO; $db->setQuery($query); $content = $db->loadObjectList; foreach ($content as $c) $data[] = JHTML::_('select.option', $c->id, $c->title, 'my_value', 'my_text'); echo JHTML::_('select.genericlist', $data, 'genlist', 'size='.count($data), 'my_value', 'my_text', 2);

В данном примере для каждого материала сайта с помощью метода JHTMLSelect.option создается объект, представляющий элемент <option>:

JObject Object ([_errors:protected]=>Array [my_value]=>1 [my_text]=>Материал #1 [disable]=>)

Таким образом, значения $optKey и $optText, переданные в функцию option, стали названиями полей получившегося объекта, а значения $c->id и $c->title - значениями этих полей. Теперь в функцию JHTMLSelect.genericlist необходимо передать те же названия полей, что и в option. Если не передать их, то функция genericlist будет по умолчанию искать в объектах массива $data поля $value и $text, которых там нет.

Результат работы данного примера будет выглядеть так же, как и результат предыдущего.

Список целых чисел

string integerlist(int $start, int $end, int $inc, string $name, mixed $attribs = null, mixed $selected = null, string $format = '')

где

$start - первое число последовательности; $end - последнее число последовательности; $inc - шаг; $name - имя тега; $attribs - массив атрибутов тега; $selected - значение выбранного по умолчанию элемента; $format - формат вывода числа для функции printf.

Пример:

echo JHTML::_('select.integerlist', 1, 10, 1, 'intlist', 'size=10', 3, '%02d');

Этот код выведет список, представленный на рис. 3.9.

Рис. 3.9. Список для выбора числа

Группа переключателей

string radiolist(array $data, string $name, mixed $attribs = null, mixed $optKey = 'value', string $optText = 'text', string $selected = null, bool $idtag = false, bool $translate = false)

где

$data - массив объектов; $name - имя, общее для всех переключателей; $attribs - дополнительные атрибуты тега <input> (могут быть заданы сразу в виде строки); $optKey - из какого поля объекта, представляющего собой элемент массива $data, брать значения элементов <input>; $optText - из какого поля объекта, представляющего собой элемент массива $data, брать текст элементов <input>; $selected - значение выбранного по умолчанию элемента; $idtag - префикс id сгенерированных тегов. Для каждого тега <input> id станет равным $idtag<key>, где <key> - значение поля под названием $optKey в соответствующем объекте из массива $data. Если $idtag не задан, то вместо него будет использовано значение $name. В Joomla 1.7 в этой функции имеется ошибка: если объекты массива $data содержат поле с названием id, то к каждому элементу <input> добавляется второй id со значением, взятым из этого поля; $translate - пропускать ли текст через функцию JText::_.

Поделиться:
Популярные книги

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Эффект Фостера

Аллен Селина
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Эффект Фостера

Не грози Дубровскому! Том VIII

Панарин Антон
8. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том VIII

СД. Том 17

Клеванский Кирилл Сергеевич
17. Сердце дракона
Фантастика:
боевая фантастика
6.70
рейтинг книги
СД. Том 17

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Пипец Котенку!

Майерс Александр
1. РОС: Пипец Котенку!
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Пипец Котенку!

Неудержимый. Книга IV

Боярский Андрей
4. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга IV

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Я – Орк. Том 6

Лисицин Евгений
6. Я — Орк
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 6

Отмороженный

Гарцевич Евгений Александрович
1. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный

Безродный

Коган Мстислав Константинович
1. Игра не для слабых
Фантастика:
боевая фантастика
альтернативная история
6.67
рейтинг книги
Безродный