Модуль. Автоматическое заполнение картинок в категориях Ubercart

Главные вкладки

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 2 ноября 2010 в 2:15

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

Но сегодня я словил себя на мысли, что при определённом количестве категорий вручную грузить по картинке для человека интеллектуального труда довольно утомительно. Что если для картинки категории использовать какую-то картинку товара, который находится в этой категории? Релевантность будет соблюдена.

Я написал простой модулёк под кодовым названием uc_cat_auto_pic который занимается тем, что добавляет чекбокс и селект выбора доступных пресетов на страницу настроек каталога (admin/store/settings/catalog/edit).

Если чекбокс отмечен, ссылки категорий, для которых не загружена картинка, заимеет картинку из вложенных в эту категорию нод (поле field_image_cache или что там у вас). Также теперь мы можем быстро изменять пресет картинок категорий, который по дефолту намертво зашит в код uc_category

Установка модуля подразумевает некое таинство. Чтобы переопределить функцию theme_uc_catalog_browse() я не нашёл ничего лучшего, как вставить в template.php такое:

<?php

function phptemplate_uc_catalog_browse($tid 0) {  
    
$catalog uc_catalog_get_page($tid);    
    if (
variable_get('uc_cat_auto_pic'FALSE) && module_exists('uc_cat_auto_pic') && !empty($catalog->children)) {
    return 
uc_cat_auto_pic_catalog_browse($tid); // Catalog Auto pictures handler
    
}     
    else if (
module_exists('uc_advanced_catalog') && empty($catalog->children)) {        
    return 
uc_advanced_catalog_browse($tid); // Advanced catalog handler
    
} else {
    return 
theme_uc_catalog_browse($tid); // Default Ubercart handler
    
}
}

?>

Если у вас стоит модуль uc_advanced_catalog, то подобная переопределяющая функция скорее всего есть уже у вас, поэтому её нужно заменить на код выше, отчего uc_advanced_catalog не должен пострадать.

ВложениеРазмер
Иконка пакета uc_cat_auto_pic.zip3.61 КБ