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

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

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

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

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

 

Ваше имя
Ваш Email
Вопрос
Twilight.basic
  • Узнайте больше
  • Сравните версии
  • Twilight.selection
  • Узнайте больше
  • Сравните версии
  • Twilight.evolution
  • Узнайте больше
  • Сравните версии
  •  
    Главная // Библиотека разработчика // Справочники // Макроподстановки //

    CompareTable


    Назначение

    Макрос рисует таблицу сравнения товаров, выбранных пользователем в каталоге или интернет-магазине.

    Ключи

    source Перечень таблиц, из которых нужно брать данные, для отрисовки свойств товаров, через запятую. Если ключ не задан, по умолчанию будет использоваться таблица catalogitems.

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

    designfile Имя файла с дизайном для макроса, по умолчанию используется файл comparetable_design.xml, формат которого описан здесь.
    design Идентификатор дизайна в файле с дизайнами для макроса.
    rows Описание структуры таблицы, которую нужно получить в формате:

    field_title1=db_field_name1|field_title2=db_field_name2|...

    field_title - это название свойства, которое должно быть написано в первой клетке каждой строки. Например, "цвет".

    db_field_name - это имя поля в базе данных, которое содержит свойство, которое сравнивается. Например, "color".

    Строки в таблице сравнения товаров будут отрисовываться в том порядке, как они будут заданы в этом ключе.

    cookie_name Имя cookie, в котором хранится набор сравниваемых товаров. Cookie должно иметь формат как для "корзины" товаров (см. макрос ShoppingCart).
    sort Параметр сортировки товаров для вывода столбцов в определенном порядке, формат идентичен макросу News, включая специальные значения random, reverse и extrafield.
    extrafield Perl выражение, позволяющее конструировать вычисляемое на лету дополнительное поле для товара. Полностью аналогично функциональности макроса News.
    condition Составное условие выполнения макроса.

    Комментарии

    Javascript функции интернет-магазина уже содержат функции добавления/удаления товаров из корзины. Поэтому, разработчик может использовать их же для формирования "набора товаров для сравнения". Формируемый набор данных будет использован макросом CompareTable, чтобы отрисовать таблицу, где по горизонтали будут располагаться сравниваемые свойства товаров, а по вертикали - сами товары. Примерно так:

    Макрос по очереди рисует строки таблицы по клеткам, разработчик может формировать нужный ему HTML код через файл с дизайном. Можно сделать такую таблицу с помощью DIVов, но мы рекомендуем не изобретать велосипед и делать таблицы с помощью таблиц. То есть, набором TR и TD внутри обычного TABLE.

    Ограничения

    1. На текущий момент макрос не умеет ограничивать вывод только теми строками, которые содержат отличающиеся значения. Эту функцию можно реализовать на javascript.
    2. Также, макрос всегда рисует свойства по горизонтали, а товары - по вертикали (как на картинке выше). Если нужно транспонировать таблицу (сделать столбцы строками, а строки - столбцами), это также придется делать с помощью javascript.
    3. Количество товаров в наборе для сравнения ограничивается длиной куки (4Кб) и зависит от количества свойств, хранимых в корзине (обычно менее 100 байт на товар). Но для практических задач этого количества более чем достаточно.
    4. В ключе rows в качестве разделителя применяется знак конвейера ("|"), а в качестве разделителя title и имени поля - знак равенства. Если разработчик понимает, что в значениях, которые он использует, могут использоваться эти символы, которые приведут к неверной интерпретации макроса, их придется заменять макросом Replace на HTML entities, или избавляться от них каким-то еще способом.

    Примеры

    Простой пример

    $CompareTable[source: catalogitems; design: compare; rows: Цвет=color|Вес=weight|Стоимость=price; cookie_name: compare]$

    Предполагается, что в таблице catalogitems есть поля color, weight и price.

    Более сложный пример

    $CompareTable[source: catalogitems; design: compare; rows: $News[source: compare_list;  design: compare]$; cookie_name: compare]$

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


    « к списку макроподстановок

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

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

    Реклама: