Добрый день.
Как можно сделать, чтобы в разделе сначала выводились только тайтлы всех дочерних страниц, а потом - все тизеры?
пробовал использовать в listpages.php последовательно два цикла
<?php while (z_nextpage()) : ?> .... <?php if (z_havepages()) { echo '<div class="delimiter"></div>'; } endwhile; ?>
но первый проходит, выводит тайтлы, а второй, который должен вывести тизеры - не стартует, потому что перебор страниц уже закончен, как я понимаю.
Как сбросить "счетчик"? Либо есть какие-то еще решения?
Спасибо.
0
Вывести список дочерних страниц - сначала только тайтлы, потом тизеры
Автор
blacktop
, 04.08.2011, 06:54
Сообщений в теме: 6
#1
Отправлено 04.08.2011, 06:54
#2
Отправлено 04.08.2011, 13:31
Ответ:
просто вставить в нужное место в шаблон listpages.php
<?php z_listpages(); ?>
Еще один вопрос: каким образом передать параметр сортировки?
Я конечно в движке поменял в файле zwidget\listpages.php
'order' => 'time asc'
на
'order' => 'time desc'
Но как это сделать корректнее?
просто вставить в нужное место в шаблон listpages.php
<?php z_listpages(); ?>
Еще один вопрос: каким образом передать параметр сортировки?
Я конечно в движке поменял в файле zwidget\listpages.php
'order' => 'time asc'
на
'order' => 'time desc'
Но как это сделать корректнее?
#3
Отправлено 05.08.2011, 04:09
blacktop (04.08.2011, 13:31) писал:
Еще один вопрос: каким образом передать параметр сортировки?
Я конечно в движке поменял в файле zwidget\listpages.php
'order' => 'time asc'
на
'order' => 'time desc'
Но как это сделать корректнее?
Я конечно в движке поменял в файле zwidget\listpages.php
'order' => 'time asc'
на
'order' => 'time desc'
Но как это сделать корректнее?
<?php $sidebar->addWidget(new zwidget_listpages('id', array( 'order' => 'time desc' ))); ?>
#4
Отправлено 05.08.2011, 06:07
Спасибо за ответ!
Еще вопрос.
Упрощенная структура pages.txt
##Главная
##Отечественный автопром
###Легковые
####Жигули
контент про Жигули
####Москвич
контент про Москвич
###Грузовые
####Камаз
контент про Камаз
####Маз
контент про Маз
###Джипы
####УАЗ
контент про УАЗ
####ЛУАЗ
контент про ЛУАЗ
####Нива
контент про Нива
Задача: при выводе, например, страницы "отечественный автопром", организовать следующим образом:
Легковые <= просто подзаголовок
Жигули <= ссылка на страницу про Жигули
Москвич <= ссылка на страницу про Москвич
Грузовые <= просто подзаголовок
Камаз <= ссылка на страницу про Жигули
Маз <= ссылка на страницу про Жигули
Джипы <= просто подзаголовок
УАЗ <= ссылка на страницу про УАЗ
ЛУАЗ <= ссылка на страницу про ЛУАЗ
Нива <= ссылка на страницу про Нива
=====
Или, другими словами, как сделать так, чтобы
zmodule_listpages, учитывая структуру родительских и вложенных страниц и на их основе формируя подзаголовки, выводил тайтлы (или тизеры) дочерних страниц всех (или n) уровней
Еще вопрос.
Упрощенная структура pages.txt
##Главная
##Отечественный автопром
###Легковые
####Жигули
контент про Жигули
####Москвич
контент про Москвич
###Грузовые
####Камаз
контент про Камаз
####Маз
контент про Маз
###Джипы
####УАЗ
контент про УАЗ
####ЛУАЗ
контент про ЛУАЗ
####Нива
контент про Нива
Задача: при выводе, например, страницы "отечественный автопром", организовать следующим образом:
Легковые <= просто подзаголовок
Жигули <= ссылка на страницу про Жигули
Москвич <= ссылка на страницу про Москвич
Грузовые <= просто подзаголовок
Камаз <= ссылка на страницу про Жигули
Маз <= ссылка на страницу про Жигули
Джипы <= просто подзаголовок
УАЗ <= ссылка на страницу про УАЗ
ЛУАЗ <= ссылка на страницу про ЛУАЗ
Нива <= ссылка на страницу про Нива
=====
Или, другими словами, как сделать так, чтобы
zmodule_listpages, учитывая структуру родительских и вложенных страниц и на их основе формируя подзаголовки, выводил тайтлы (или тизеры) дочерних страниц всех (или n) уровней
#5
Отправлено 05.08.2011, 07:29
Опять получается: сам спросил - сам ответил)
Вариант, правда, похож на анальную ампутацию гланд, но без рабирательств в коде не смог придумать ничего лучше:
1. Немного изменяем структуру контента:
##Главная
##Отечественный автопром
###Жигули
@@podrazdel=Легковые
контент про Жигули
###Москвич
контент про Москвич
2. Добавляем в первую страницу подраздела пользовательское свойство, например @@podrazdel=Легковые (как указано в п.1 - Жигули)
3. В шаблоне в файле listpages.php добавляем код
$podrazdel = z_page()->getProperty('podrazdel');
if ($podrazdel != NULL) { %вывод_подраздела_в_соответствии_с_шаблоном% }
Отмечу, что в этом случае необходимо жестко следить за порядком публикации подстраниц (я использую @@time для каждой)
Несмотря на частичное решение задачи, вопрос из предыдущего поста актуален.
Вариант, правда, похож на анальную ампутацию гланд, но без рабирательств в коде не смог придумать ничего лучше:
1. Немного изменяем структуру контента:
##Главная
##Отечественный автопром
###Жигули
@@podrazdel=Легковые
контент про Жигули
###Москвич
контент про Москвич
2. Добавляем в первую страницу подраздела пользовательское свойство, например @@podrazdel=Легковые (как указано в п.1 - Жигули)
3. В шаблоне в файле listpages.php добавляем код
$podrazdel = z_page()->getProperty('podrazdel');
if ($podrazdel != NULL) { %вывод_подраздела_в_соответствии_с_шаблоном% }
Отмечу, что в этом случае необходимо жестко следить за порядком публикации подстраниц (я использую @@time для каждой)
Несмотря на частичное решение задачи, вопрос из предыдущего поста актуален.
#6
Отправлено 05.08.2011, 09:58
blacktop (05.08.2011, 06:07) писал:
Или, другими словами, как сделать так, чтобы
zmodule_listpages, учитывая структуру родительских и вложенных страниц и на их основе формируя подзаголовки, выводил тайтлы (или тизеры) дочерних страниц всех (или n) уровней
zmodule_listpages, учитывая структуру родительских и вложенных страниц и на их основе формируя подзаголовки, выводил тайтлы (или тизеры) дочерних страниц всех (или n) уровней
Что касается вывода, то можно попробовать обойтись и без изменения модуля. Можно изменить шаблон listpages (опять же, можно создать отдельный шаблон, а модулю указать, чтобы он использовал его вместо стандартного).
Используя функцию z_page() можно получить объект страницы, информацию о которой необходимо выводить. Перебрать все дочерние страницы можно следующим циклом:
<ul><?php foreach (z_page()->getPageInfo() as $child) { echo '<li><a href="' . $child->link . '">' . $child->name() . "</a></li>"; } ?></ul>
$child->name() --- выводит название пункта меню
Для вывода названия страницы можно использовать более медленный путь: $child->getPage()->getTitle().
Код я не проверял, если возникнут проблемы, пишите.
#7
Отправлено 06.08.2011, 03:20
Спасибо, получилось очень гибкое решение.
Количество пользователей, читающих эту тему: 5
0 пользователей, 5 гостей, 0 скрытых пользователей