Показать сообщение отдельно
Старый 15.09.2011, 12:01   #5
Seo-man

Администратор

 
Аватар для Seo-man
 
Регистрация: 08.05.2008
Адрес: Молдова/ПМР, Тирасполь
Сообщений: 3,554
Вы сказали Спасибо: 95
Поблагодарили 137 раз(а) в 124 сообщениях
Репутация: 1596
По умолчанию

4. Создание шаблонов для отображения списков



Один и тот же список можно отображать с помощью разных шаблонов:

1. как выпадающий список (<SELECT>)

2. как список с множественным выбором (<SELECT multi>)

3. как набор флажков/чекбоксов (<INPUT TYPE=CHECKBOX>)

4. как набор радио-кнопок (<INPUT TYPE=RADIO>)



Для каждого типа отображения списка можно создать любое число шаблонов. То есть, например, список комплектации автомобиля (ABS, MP3 магнитола, Гидроусилитель…) можно отобразить как список с множественным выбором или как набор чекбоксов, причем для разных рубрик с разным стилем оформления.



Шаблоны для отображения списков должны находиться в директории:



\modules\qplboard\templates\custom\user\list\ - для отображения пользователю



\modules\qplboard\templates\custom\admin\list\ - для отображения администратору



Для всех четырех типов списков нужно создать набор шаблонов по 8 в каждом (2 для администратора и 6 для пользователя):



1. Шаблон для отображения списка при подаче объявления (_edit.tpl)

2. Шаблон для отображения списка при поиске объявлений (_search.tpl)

3. Шаблон для отображения списка при выводе объявления (_pr.tpl)

4. Шаблон для отображения списка при выводе последних объявлений во всплывающем окне на стартовой странице (_nf.tpl)

5. Шаблон для отображения списка при выводе VIP объявлений во всплывающем окне на стартовой странице (_sf.tpl)

6. Шаблон для отображения списка при выводе объявления в таблице с результатами поиска (_f.tpl)





Названия шаблонов (для пользователя и для администратора имена файлов совпадают):


check_edit.tpl

check_pr.tpl

check_search.tpl

check_nf.tpl

check_sf.tpl

check_f.tpl
multiselect_edit.tpl

multiselect_pr.tpl

multiselect_search.tpl

multiselect_nf.tpl

multiselect_sf.tpl

multiselect_f.tpl
radio_edit.tpl

radio_pr.tpl

radio_search.tpl

radio_nf.tpl

radio_sf.tpl

radio_f.tpl
select_edit.tpl

select_pr.tpl

select_search.tpl

select_nf.tpl

select_sf.tpl

select_f.tpl




Имя файла шаблона состоит из двух частей. Первая – тип списка, вторая – место использования.



Префикс (тип списка):

check – тип “чекбокс/флажок”

multiselect – тип “список с множественным выбором”

radio – тип “радио-кнопка”

select – тип “выпадающий список”



Формат файла шаблона списка



Каждый файл шаблона списка состоит из трех секций:



1. Шаблон таблицы

2. Шаблон столбца

3. Шаблон элемента

4. Разделитель элементов списка



Четыре секции разделены между собой последовательностью



################################################## ###################



Пример шаблона для чекбоксов (флажков) check_edit.tpl:



<table cellspacing=0 cellpadding=0 border=0 width=”100%”>

<tr valign=top><# CONTENT #></tr>

</table>

################################################## ###################

<td width=33%><# COL #></td>

################################################## ###################

<input type=checkbox name="<# FORM_NAME #>_<# ID #>" <# CHECKED #> > <# NAME #>

################################################## ###################

<br>

################################################## ###################



Рассмотрим каждую секцию детально.



Секция “разделитель элементов списка”



<br>



При отображении чекбоксов они будут разделяться переводом строки. Как альтернатива, их можно, например, разделять пробелом или тегом <hr>



Секция “шаблон элемента”



<input type=checkbox name="<# FORM_NAME #>_<# ID #>" <# CHECKED #> > <# NAME #>



Для чекбокса каждый элемент будет сформирован как <INPUT TYPE=CHECKBOX>.



name="<# FORM_NAME #>_<# ID #>"



Имя чекбокса будет сформировано автоматически доской и состоять из имени формы и идентификатора элемента списка. То есть будет для каждого – уникальным. С помощью мета-тега <# CHECKED #> доска может управлять статусом чекбокса (отмечен/не отмечен).



<# NAME #> заменяется на имя элемента списка.



Таким образом в данном примере генерируются все элементы списка в виде чекбоксов и между ними вставляется разделитель <br> для каждого столбца.



Секция “шаблон столбца”



<td width=33%><# COL #></td>



Каждый столбец – это ячейка таблицы. В данном примере элементы списка отображаются по горизонтали в несколько столбцов (кол-во будет определяться параметром COLNUM, см. выше).

Для того, чтобы столбцы стали строками измените шаблон выше на этот:



<table cellspacing=0 cellpadding=0 border=0 width=”100%”>

<# CONTENT #>

</table>

################################################## ###################

<tr><td width=33%><# COL #></td></tr>

################################################## ###################

<input type=checkbox name="<# FORM_NAME #>_<# ID #>" <# CHECKED #> > <# NAME #>

################################################## ###################

<br>

################################################## ###################





Секция “шаблон таблицы”



<table cellspacing=0 cellpadding=0 border=0 width=”100%”>

<tr valign=top><# CONTENT #></tr>

</table>



Алгоритм построения списка следующий:



1. Из базы данных выбираются все элементы указанного списка

2. Определяется кол-во элементов в столце путем деления общего кол-ва элементов списка на указанное кол-во столбцов

3. Для каждого столбца склеиваются элементы с разделителем

4. Полученный код вставляется в шаблон таблицы



Для формирования выпадающего списка <SELECT> и списка с множественным выбором <SELECT multi> кол-во столбцов равно 1. Шаблон будет выглядеть проще:



<select name="<# FORM_NAME #>"> <# CONTENT #></select>
################################################## ###################
<# COL #>
################################################## ###################
<option value="<# ID #>" <# SELECTED #>><# NAME #></option>
################################################## ###################
################################################## ###################



Как вы можете заметить, здесь нет разделителя, так как для склейки тегов <OPTION …> разделитель не нужен. Также проще стал и шаблон столбцов, так как их всего один. Таблицы в данном случае нет.



Примеры для всех типов списков вы можете посмотреть в комплекте шаблонов, поставляющихся с доской.
__________________
Недорогой хостинг! forum-seo.net/showthread.php?p=10754
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 30 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Seo-man вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо Seo-man за это полезное сообщение:
Leon (04.11.2012)