PHPShopShopCatalogElement

Материал из PHPShop

Перейти к: навигация, поиск

PHPShopShopCatalogElement - элемент оформления вывода дерева категорий товаров. Используется для отображения навигации, является наследником основного класса вывода элементов оформления PHPShopProductElements,PHPShopElements и обладает всеми их методами и свойствами.

PHPShopShopCatalogElement находится в phpshop/inc/shopelements.inc.php. PHPShopShopCatalogElement активируется в phpshop/inc/autoload.inc.php

Содержание

Методы

  • leftCatal() - вывод навигации каталогов (обычно с левой стороны)
  • leftCatalTable() - вывод таблицы категорий с иконками на главную страницу (опционально)
  • template_cat_table() - Шаблон вывода категорий каталогов с иконками
  • subcatalog() - Вывод подкаталогов в каталоге. Можно использовать для вывода блока категорий из определенного каталога при указании аргумента $n, равному ИД категории.

Свойства

  • $chek_catalog - Проверять на единичные каталоги. [false] - для больших каталогов, сокращает запросы к БД

Хуки

Элемент оформления PHPShopShopCatalogElement поддерживает перехват, изменение методов и свойств через хуки. Хук внедрить можно через модуль или дизайн-хуков.

template_cat_table()

Поддерживает хук в начале функции с возможностью прерывания дальнейшего выполнения функции для экономии ресурсов.

Пример:

 
/**
 * Изменение ссылки на категории в таблице категорий
 * @param array $obj объект
 * @param array $row объект
 */
function template_cat_table_hook($obj,$row) {
    $seourl=myseamplyseourlgenerator($val['id']);
    return PHPShopText::a($seourl,$val['name'],$val['name']).' / ';
}
 
$addHandler=array
        (
        'template_cat_table'=>'template_cat_table_hook'
         );

leftCatalTable()

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

Пример:

 
/**
 * Изменение сетки таблицы категорий на главной"
 * @param array $obj объект
 */
function leftCatalTable_hook($obj) {
    $obj->cell=1;
}
 
$addHandler=array
        (
        'leftCatalTable'=>'leftCatalTable_hook'
         );


leftCatal()

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

Пример:

 
/**
 * Персональная функция навигации категорий
 * @return string
 */
function mycatalogmenu(){
    ......
    $disp=...
    return $disp;
}
 
/**
 * Изменение формы навигации категорий на персональную функцию (создается отдельно)
 * @return string
 */
function leftCatal_hook($obj,$row,$rout) {
    if($rout == 'START') 
      return mycatalogmenu();
}
 
$addHandler=array
        (
        'leftCatal'=>'leftCatal_hook'
         );

subcatalog()

Поддерживает хук в середине функции с возможностью настройки параметров оформления шаблона блока.

Пример:

 
/**
 * Изменение title в ссылке подкаталога
 * @param array $obj объект
 * @param array $row массив данных
 */
function subcatalog_hook($obj,$row) {
    $obj->set('catalogTitle','Перейти в категорию '.$row['name']);
}
 
$addHandler=array
        (
        'subcatalog'=>'subcatalog_hook'
         );

Шаблонизация

В элементе присутствуют функции стилизация оформления выводов ссылок на категории.

template_cat_table()

Настраивает вид ссылок на категории в таблице категорий с иконками на главной странице, располагается в phpshop/templates/имя шаблона/catalog/catalog_table_forma.tpl

Переменные

  • @catalogContent@ - Описание каталога. Выводится, если описание каталога менее 150 символов в расчете, что должна выводится иконка каталога. Можно поставить на эту переменную ссылку (/shop/CID_@catalogId@.html).
  • @catalogName@ - Наименование каталога
  • @catalogPodcatalog@ - Список подкаталогов первого вложения.