Poster
Новичок
Хитрое решение - xtemplate. Или простое?
Господа, вопрос.
Нужно выводить публикации списком. Если группа публикаций меняется - вывести ее название и затем публикации этой группы.
Группа изменилась - снова название группы и ее публикации.
Есть такая схема.
Определяю массив для вывода в шаблон:
массив:
[0] => Array
(
[id] => 31
[name] => Как выбрать элитное французское вино?
[shorttext] =>
[pc] => 18
[pcname] => Напитки
)
[1] => Array
(
[id] => 30
[name] => Правило четырех "К"
[shorttext] =>
[pc] => 18
[pcname] => Напитки
)
[2] => Array
(
[id] => 29
[name] => Проба пера
[shorttext] =>
[pc] => 3
[pcname] => Аксессуары
)
Теперь обработка для шаблона:
$group_ch - флажок изменения группы, при 1 нужно вывести название группы;
Вот так обрабатываю в шаблоне:
<!-- BEGIN: publications -->
<!-- BEGIN: row -->
<!-- BEGIN: group_changed -->
<div class="newsdate"><img src="/img/icon_time.gif" width="9" height="9" class="tc" />группа {ROW.pcname}</div>
<!-- END: group_changed -->
<div class="news1"><a href="/{PUBLICATIONS_ALIAS}/{ROW.id}.html" class="newstitlewithling">{ROW.name}</a></div>
<div class="news2"> </div>
<!-- END: row -->
<!-- END: publications -->
Теперь собственно сам вопрос:
Как обработать блочок group_changed в шаблоне?
то есть когда происходит parse('main.publications') - блок group_changed еще не отпарсился... или отпарсился, но в него не попадает {ROW.pcname} - название группы.
Подскажите пожалуйста как делается такая вещь. Как вы делаете подобную схему в шаблонах?
Спасибо!
Господа, вопрос.
Нужно выводить публикации списком. Если группа публикаций меняется - вывести ее название и затем публикации этой группы.
Группа изменилась - снова название группы и ее публикации.
Есть такая схема.
Определяю массив для вывода в шаблон:
PHP:
$publicationz = $db -> select("SELECT p.id, p.name AS name, p.shorttext, p.pc, pcats.name AS pcname FROM publications p
LEFT JOIN publicationscats pcats ON (p.pc = pcats.id)
WHERE p.section = '".$endid."' AND p.active = 'y' ORDER BY pc DESC, date DESC, id DESC LIMIT $first, $per_page");
[0] => Array
(
[id] => 31
[name] => Как выбрать элитное французское вино?
[shorttext] =>
[pc] => 18
[pcname] => Напитки
)
[1] => Array
(
[id] => 30
[name] => Правило четырех "К"
[shorttext] =>
[pc] => 18
[pcname] => Напитки
)
[2] => Array
(
[id] => 29
[name] => Проба пера
[shorttext] =>
[pc] => 3
[pcname] => Аксессуары
)
Теперь обработка для шаблона:
PHP:
$group_ch = 1;
foreach ($publicationz as $key => $val) {
$current_group = $publicationz[$key-1]['pc'];
$next_group = $publicationz[$key]['pc'];
if (($current_group <> $next_group) || $key == 0) $group_ch = 1;
if ($group_ch == 1)
$t -> parse('main.publications.row.group_changed');
$t -> insert_loop('main.publications.row', 'ROW', $val);
$group_ch = 0;
}
$t -> parse('main.publications');
Вот так обрабатываю в шаблоне:
<!-- BEGIN: publications -->
<!-- BEGIN: row -->
<!-- BEGIN: group_changed -->
<div class="newsdate"><img src="/img/icon_time.gif" width="9" height="9" class="tc" />группа {ROW.pcname}</div>
<!-- END: group_changed -->
<div class="news1"><a href="/{PUBLICATIONS_ALIAS}/{ROW.id}.html" class="newstitlewithling">{ROW.name}</a></div>
<div class="news2"> </div>
<!-- END: row -->
<!-- END: publications -->
Теперь собственно сам вопрос:
Как обработать блочок group_changed в шаблоне?
то есть когда происходит parse('main.publications') - блок group_changed еще не отпарсился... или отпарсился, но в него не попадает {ROW.pcname} - название группы.
Подскажите пожалуйста как делается такая вещь. Как вы делаете подобную схему в шаблонах?
Спасибо!
спасибо