форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Страниц: 1
Для того, чтобы сразу было понятно о чем идет речь и как все должно выглядеть в итоге - http://las.kiev.ua/demo
Схема структуры такая -
Главная страница > раздел (Travel, Business, ... ) > Город (Киев, ... ) > Подраздел (Excursions, Hotels, ... ) > Статья.
В процессе было перепробовано несколько вариантов постройки структуры. Остановился на этой схеме, т. к. только она наиболее полно реализует техзадание заказчика. Во всех остальных вариантах были какие-то грабли в навигации по уровням структуры.
Все подробности мыслительного процесса уже не помню, поэтому опишу в общих чертах. В принципе все должно быть понятно.
Атрибуты плагинов и тегов тоже не буду расшифровывать - всю информацию можно найти в документации к ним.
Итак.
-----------------------------------------------------------------------
Главная страница.
Здесь все просто -
Созаем секцию "main", шаблон "main" для этой секции, и устанавливаем эту секцию для отображения по дефолту.
Меню навигации по разделам. Каждый раздел - отдельная секция со своим шаблоном.
Текст на главной -
<txp:article_custom id="id статьи" />
----------------------------------------------------------------------
Раздел.
Контент -
<txp:if_category name=""> <txp:article /> <txp:else /> <txp:article_custom id="id статьи" /> // текст на front-page раздела // </txp:if_category>
Навигация по городам -
<txp:if_category name=""> <txp:php> echo stw_category_tree(array( 'start' => section(array()), 'section' => category(array()) )); </txp:php> <txp:else /> <txp:stw_category_tree start="cities" section="*"/> </txp:if_category>
Если мы на главной странице раздела, выводится список городов.
Если мы перешли в определенный город - список подразделов.
Со следующего уровня, категории и секции как-бы меняются местами. Для этого плагину stw_category_tree передается название текущей категории для формирования линка на секцию.
Так мы попадаем в
--------------------------------------------------------------------
Подраздел
Для вывода подраздела используется секция с названием города и шаблоном "default". Таким образом, все секции городов используют один шаблон. Это удобно при добавлении нового города на сайт.
В шаблоне -
Навигация по контенту:
<txp:if_category name="travel,business"> < txp:stw_category_tree start="*" section="*" /> <txp:else/> <txp:if_individual_article> <txp:php> echo article_custom(array( 'form' => 'linklist', 'section' => section(array()), 'category' => category1(array()) )); </txp:php> <txp:php> echo stw_category_tree(array( 'minlevel' => '2', 'section' => '*', 'prune' => 'y', 'cat' => category1(array()) )); </txp:php> <txp:else/> <txp:php> echo article_custom(array( 'form' => 'linklist', 'section' => section(array()), 'category' => category(array()) )); </txp:php> </txp:if_individual_article> <txp:php> echo stw_category_tree(array( 'localized' => 'y', 'minlevel' => '2', 'section' => '*', 'prune' => 'y', 'cat' => category(array()) )); </txp:php> < /txp:if_category>
Контент:
<txp:if_individual_article> <txp:article /> <txp:else/> <txp:php> echo article_custom(array( 'limit' => '1', 'section' => section(array()), 'category' => category(array()) )); < /txp:php> < /txp:if_individual_article>
-------------------------------------------------------------------------
По коду, кажется, все.
Теперь о том, как все выглядит для пользователя.
Создаются категории и подкатегории.
Cities > Город1, Город2, ...
Business > Conference Halls, Exhibitions, ...
Travel > Excursions, Hotels, ...
Создается секция для каждого города.
Для текста (статей) на front-page разделов устанавливается
и категория и секция однименная разделу.
Для текста на front-page города - категория одноименная городу, секция - соответствующая разделу (Business, Travel).
Для статей, описывающих отели, концертные залы и т. д. -
соответствующая категория.
Cекция, соответствующая городу, в котором весь этот stuff расположен.
-------------------------------------------------------------------------
Резюме:
Средствами Textpattern такую, достаточно сложную структуру, реализовать можно.
Из отрицательных моментов:
1) Некоторые неудобства для пользователя. Нужно запомнить как жонглировать секциями и категориями при добавлении статьи.
Но эта проблема решается созданием короткой и понятной инструкции для пользователя.
2) C подсветкой текущего раздела/категории в менюшках явная лажа. При такой структуре не нашел решения проблемы.
Тем, кто осилил сей талмуд - спасибо за внимание).
Буду рад услышать отзывы и мнения.
Неактивен
Плохо, что Urlы получаются нелинейные И вообще очень мудрено, конечно - как-то не лежит душа к такому решению. Но пока не столкнусь с ситуацией, когда надо будет осуществить подобное, вряд ли займусь.
Неактивен
Под данную задачу -- очень круто.
Думал-думал, не придумал, как с такой инфой соблюсти правило двух кликов.
Хотя... Если сделать навигацию по дереву категорий с тем же плагином, можно просто получить структуру любого уровня вложенности. А секции задействовать для разделов верхнего уровня...
А! Вот что не понял -- зачем отдельносоздавать секцию main? Чем плох обычный встроенный default?
Отредактированно glebotr (29-01-2007 00:31:53)
Неактивен
Страниц: 1