Вход для клиентов и партнеров
в начало сайта
Партнерская программаОнлайн демоСкачатьКарта сайта
 

Регламент
Документация
Часто задаваемые вопросы (FAQ)
Решения типовых вопросов
Форум поддержки
Библиотека разработчика

Посмотрите демо-ролики и убедитесь в том, что "Twilight CMS" очень удобна в управлении, понятна и проста.

Бесплатно скачайте "Twilight.Basic", установите на своем компьютере и изучите систему более детально.

Если вам нужно установить "Twilight CMS" на существующий сайт или разработать новый - обращайтесь в отдел интеграции.

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Книга рецептов (Cookbook) // Руководство по сборке сайта //

    Каталоги


    Примечание: в "Руководстве разработчика" и других источниках могут быть описаны немного другие процедуры подключения каталога на сайт. Мы плавно упрощаем процедуры для разработчика, избавляя его от лишней ручной работы и возможных ошибок. Тем не менее, и все что документировалось ранее остается рабочим, т.к. мы обеспечиваем полную обратную совместимость версий системы. Ну, почти полную.

    С чего начать

    Чтобы подключить каталог на проект (предполагаем, что никаких каталогов на проекте еще нет), необходимо для начала понять основные концепции.

    Каталоги используются для вывода любых древовидных структур. Это могут быть каталоги товаров или услуг, иерархически категоризированные вопросы и ответы, организационные структуры предприятия, комментарии пользователей и многое другое. В частности, данный раздел создан также с использованием механизма каталога.

    Любой каталог делится условно две составляющие: на структуру (состоящую из папок-категорий и элементов-товаров и хранимую в файле Content/catalog.xml) и данные, которые обычно располагаются в файле Data/catalogitems.xml. Каждый товар редактируется в админзоне в соответствии с сущностью, которая назначена папке, где он расположен. Если у папки сущность напрямую не назначена, она будет наследоваться у вышестоящей папки. Назначение сущности происходит в момент создания папки, поменять сущность можно только удалив папку и создав её заново. Этот механизм позволяет хранить в папке элементы только одного типа, что гарантирует, что разработчик не столкнется с ситуацией, когда нужно вывести в одном списке товары с разным набором полей.

    Навигация по каталогу опирается на два параметра, которые передаются через URL: iid и sid. iid - это идентификатор товара, который сейчас просматривается пользователем на данной странице. Обычно, он используется в фильтре макроса CatalogList. Обычно, когда пользователь ходит по подкатегориям iid пустой. Он становится непустым только при попадании на страницу с описанием элемента/товара. sid - идентификатор категории, в которой находится пользователь. Если параметр пустой, ему присваивается системное значение root и считается что пользователь в корне каталога. Примеры того, как работать с данными параметрами можно посмотреть в демонстрационном магазине.

    Разработчику остается только корректно конструировать ссылки в нужном формате даже если в итоговом HTML указанные параметры и их значения будут заменены на ЧПУ. То есть, если данная страница на сайте имеет URL http://www.twl.ru/tsdn/documentation/how_to_add_catalog, то разработчик должен понимать, что tsdn - это alias страницы, на которой рисуется данный контент, documentation - это на самом деле sid=ИДЕНТИФИКАТОР_КАТЕГОРИИ, а how_to_add_catalog - это iid=ИДЕНТИФИКАТОР_ЭЛЕМЕНТА.

    Более подробно о алгоритме работы с параметрами iid и sid см. в описании макроса CatalogTree, которым обычно реализуют навигацию по каталогам.

    Управление каталогом

    Управление каталогом производится полностью через админзону и сводится к созданию/клонированию/редактированию/удалению папок, элементов и ярлыков. Все операции доступны в контекстном меню конкретного элемента, перенос элементов в дереве производится с помощью мыши. Некоторые свойства редактируются только в "режиме разработчика", поскольку при управлении сайтом редактору они не нужны.

    Ярлыки, это ссылки на элементы каталога. Создаются в контектном меню конкретного товара, или пакетно, если выбрать пункт "Создать ярлыки" в контекстном меню категории. Полностью аналогичны по идее "ссылкам" или "shortcuts" на файлы в любой операционной системе. Предположим, нужно поместить товар в каталоге в папку "Портфели". Но одновременно, хотелось бы положить его и в папку "Выбор месяца". Но при этом не хочется делать клонирование товара, что приведет к созданию независимой копии товара, и любое изменение придется делать в двух местах. Создание ярлыка даст возможность редактировать один товар, который будет отображаться на сайте в нескольких категориях. Каждый ярлык имеет свое независимое свойство "опубликован".

    Шаги, требуемые для подключения каталога на сайт

    1. Если каталог добавляется с нуля: убедиться, что в папке Content нет файла catalog.xml, а в папке Data нет файла catalogitems.dat, которые могли остаться при использовании другого проекта в качестве основы. Если файл есть - удалить.

    2. Войти в "режим разработчика". Выбрать папку в "Служебных функциях", или использовать корень этого раздела. Ткнуть правой кнопкой мыши для вызова контекстного меню. Выбрать пункт "Добавить стандартный элемент". Выбрать в качестве "Элемента" пункт "Каталог" из выпадающего списка. Дать название, или оставить строку по умолчанию. Нажать "ОК".

    Система добавила в структуру сайта пункт "Каталог", при последующем обращении к которому будет автоматически создана пустая структура в файле Content/catalog.xml (не путать с пустым файлом).

    3. По умолчанию, все товары каталога будут созданы как экземпляры сущности "good" ("товар"). Разработчику требуется создать сущность в файле entities.xml с таким id. Либо, создать сущность (или несколько для разных типов товаров) и прописать их id в файле catalog.xml вручную.

    Когда редактор сайта будет добавлять папки, система будет ему предлагать выбрать сущность для новой папки, или использовать ту, которая была использована для родительской папки. При этом, в выпадающем списке будут перечислены все доступные сущности из entities.xml, что не очень удобно в большинстве случаев. Чтобы система предлагала только строго ограниченный набор сущностей, специально предназначенных для каталога, разработчик должен у выбранных сущностей прописать в атрибутах assign="catalog" (в entities.xml). Более того, если такая сущность будет всего одна, система не будет докучать пользователю вопросом "какую сущность назначить создаваемой папке" и будет использовать её по умолчанию.

    Как только сущности для каталога созданы и их идентификаторы указаны для нужных папок в catalog.xml (введены прямо в файле, либо были указаны при создании папок в админзоне), редактор сайта может приступать к заполнению каталога данными.

    4. Разработчику остается только решить вопрос отображения каталога, точнее данных в нем, на сайте. Сделать это можно с помощью трех основных макросов:

    CatalogTree. Выводит древовидную структуру каталога для целей навигации. Обычно используется для отрисовки меню каталога и "хлебных крошек". По использованию очень похож на макрос отрисовки меню $Menu[]$.

    CatalogFullTree. То же самое, только умеет выводить помимо категорий еще и элементы каталога, за счет чего работает немного медленнее и более требователен к системным ресурсам.

    CatalogList. Выводит список элементов из указанной категории. Используется для отрисовки списка товаров, или конкретного товара на странице с детальным описанием. По использованию очень похож на макрос $News[]$.

    Поскольку данные хранятся в таблице catalogitems.dat, данные можно также получать через макросы News и DataField. Но следует учитывать, что это подходит не для всех ситуаций, т.к. в этой таблице нет информации о том опубликован данный товар или нет. Эта информация хранится только в XML со структурой каталога и её обрабатывают только CatalogTree, CatalogFullTree и CatalogList.

    Примеры использования всех описанных макросов можно найти в TSDN и посмотреть в собранном виде в демонстрационном магазине (www.twl.ru/download). Обратите внимание на:

    • файл Content/catalog.txt, где производится вывод всех трех типовых страниц в каталоге - вывод содержимого текущей категории, вывод списка товаров и вывод карточки выбранного товара.
    • файл entites.xml и сущность good.
    • дизайны catalog_design.xml и catalog_items_design.xml в Templates.
    • файл Content/catalog.xml.
    • подключение страницы /catalog в файле Content/menu.xml и редактора каталога в секции "Служебные функции".
    « к списку

    версия для печати

     
    © 2003-17 Страта Технологии (создание сайтов, разработка cms), Twilight CMS in english.
    Наш адрес: Москва, пр. Маршала Жукова д.51
    Тел.: (495) 222-6436, E-mail: , карта сайта, условия использования информации о CMS
    Звоните через Skype:  

    Реклама: