Доброго дня! Сделал отдельный загрузчик для баннера категорий. По дефолту выводится изображение категории, что весьма неудобно, если есть необходимость выводить большое изображение в качестве баннера. 1) Для начала в БД в таблице category создаём столбец banner (Тип - varchar, Длина/Значение - 255, По умолчанию - Null) 2) В контроллере catalog/controller/product/category.php меняем... PHP: if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['banner'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));} else { $data['thumb'] = '';} на... PHP: if ($category_info['banner']) { $data['thumb'] = $this->model_tool_image->resize($category_info['banner'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));} else { $data['thumb'] = '';} 3) Добавляем загрузчик баннера в настройках категории в админке - admin/view/template/catalog/category_form.tpl После... Код: <div class="form-group"> <label class="col-sm-2 control-label" for="input-image"><?php echo $entry_image; ?></label> <div class="col-sm-10"><a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a> <input type="hidden" name="image" value="<?php echo $image; ?>" id="input-image" /> </div> </div> Добавляем... Код: <div class="form-group"> <label class="col-sm-2 control-label" for="input-banner"><?php echo $entry_banner; ?></label> <div class="col-sm-10"><a href="" id="thumb-banner" data-toggle="image" class="img-thumbnail"><img src="<?php echo $category_banner; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a> <input type="hidden" name="banner" value="<?php echo $banner; ?>" id="input-banner" /> </div> </div> 4) Добавим перевод в файле admin/language/russian/catalog/category.php После... PHP: $_['entry_image'] = 'Изображение категории'; Добавляем... PHP: $_['entry_banner'] = 'Баннер категории'; 5) Заходим в контроллер admin/controller/catalog/category.php 5.1 После... PHP: $data['entry_image'] = $this->language->get('entry_image'); Добавляем... PHP: $data['entry_banner'] = $this->language->get('entry_banner'); 5.2 После... PHP: if (isset($this->request->post['image'])) { $data['image'] = $this->request->post['image'];} elseif (!empty($category_info)) { $data['image'] = $category_info['image'];} else { $data['image'] = '';} Добавляем... PHP: if (isset($this->request->post['banner'])) { $data['banner'] = $this->request->post['banner'];} elseif (!empty($category_info)) { $data['banner'] = $category_info['banner'];} else { $data['banner'] = '';} 5.3 После... PHP: if (isset($this->request->post['image']) && is_file(DIR_IMAGE . $this->request->post['image'])) { $data['thumb'] = $this->model_tool_image->resize($this->request->post['image'], 100, 100);} elseif (!empty($category_info) && is_file(DIR_IMAGE . $category_info['image'])) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], 100, 100);} else { $data['thumb'] = $this->model_tool_image->resize('no_image.png', 100, 100);} Добавляем... PHP: if (isset($this->request->post['banner']) && is_file(DIR_IMAGE . $this->request->post['banner'])) { $data['category_banner'] = $this->model_tool_image->resize($this->request->post['banner'], 100, 100);} elseif (!empty($category_info) && is_file(DIR_IMAGE . $category_info['banner'])) { $data['category_banner'] = $this->model_tool_image->resize($category_info['banner'], 100, 100);} else { $data['category_banner'] = $this->model_tool_image->resize('no_image.png', 100, 100);} 6) Заходим в модель admin/model/catalog/category.php В функции addCategory($data) после... PHP: if (isset($data['image'])) { $this->db->query("UPDATE " . DB_PREFIX . "category SET image = '" . $this->db->escape($data['image']) . "' WHERE category_id = '" . (int)$category_id . "'");} Добавляем... PHP: if (isset($data['banner'])) { $this->db->query("UPDATE " . DB_PREFIX . "category SET banner = '" . $this->db->escape($data['banner']) . "' WHERE category_id = '" . (int)$category_id . "'");} Тоже самое делаем чуть ниже в функции editCategory($category_id, $data). !!!!!!!Обновляем модификаторы!!!!!! В итоге имеем следующее: - настройка категорий в админке - витрина Размер баннера прописываем в настройках изображений! При необходимости правим стили.
@ambalocha69 честно говоря ни разу не создавал модификаторы. Хотя я полагаю, что это практически тоже самое, что и написать подобный пост. Только синтаксис другой Ну и на тот момент, когда я за это взялся, понятия не имел, что и где нужно править. Поэтому делал изменения напрямую в коде! Завтра может и решусь сделать модификатор.
я это делал через vqmod 2 года назад для 1.5.х. + ссылка к каждому банеру + тайтл к каждому банеру + выбор режима перехода по ссылке - обычный\в новом окне за 2 года никого это не заинтересовало - 0 продаж
Я в общем то решил свою проблему под собственный сайт и решил поделится с людом. Писать модификаторы на продажу даже и в мыслях не было. Странно конечно что это никому не нужно! Баннеры в категориях вроде бы неплохое решение в плане дизайна. Но меня очень смутило решение по дефолту - вывели баннер, который есть ничто иное как изображение категории, но при этом дали возможность управлять размером. В теории оно может и норм, а вот на практике одно с другим не вяжется.
Вот это кстати отличное решение если есть необходимость рекламировать конкретный товар в категориях. И неплохо было бы сделать слайдшоу. т.е. сделать возможность загружать несколько баннеров. Тут наверное стоит глянуть как сделан модуль slideshow.
большинство покупает готовые шаблоны и не парится. шаг вправо\шаг влево для них - это подвиг! чтобы поменять цвет фона или какой нибудь отступ ищут фрилансера
@ambalocha69 , так ведь шаблон для всех категорий один. А мне нужно, чтоб у каждой категории были свои собственные баннеры. Разве что можно доделать сам модуль - в настройках сделать возможность выбора в какой категории отображать. Либо в настройках категории выбирать из уже созданных слайдшоу. Правда я слабо представляю как это реализовать.
в схемах создаешь новую типа "РАЗНОЕ" как клон схемы категории и модуль слайдшоу привязываешь к ней. не очень удобно - потребуется создать свои схемы для каждой категории. но зато никакого кодинга. либо влезать в настройки слайдшоу (делать клон) и добавлять поле выбора категории - но здесь другая Ж: в схему категории придется добавить хренову тучу слайдшоу
Мне кажется, что самым верным решением будет создание дополнительной вкладки в настройках категории - Слайдшоу. Клонировать туда модуль штатный Слайдшоу, только дополнить в БД столбец category_id, по которому собственно и будет происходить выборка необходимых изображений.
Ну вроде как хочется не только как проще, но и чтоб всё было логично и на своих местах. Но это видимо тараканы в моей голове)))).
Всё же тараканов "потравил" Начал с того, что вывел существующие Баннеры в настройки категории Создал в БД в таблице category столбец slideshow_id. Я так понимаю, что теперь при сохранении категории, если выбрано то или иное слайдшоу (т.е. баннер), необходимо передать в БД id этого слайдшоу, и уже в контроллере каталога извлекать его из базы.
Все верно. Но смысл в инструкциях есть. 1. Заставляет читателя немного думать и разбираться в коде, переменных итд. 2. Дает толчок тем людям, которые желают разобраться в коде. 3. Дают приблизительную оценку стоимости работ (каждый пункт нужно придумать, проверить, протестировать) В случаи с модификатором, это решение для "чайников" и как мне кажется хорошо подталкивает к платным услугам )
Хотел создать модификатор, но в данном файле нет, кода: PHP: if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['banner'], $this->config->get('config_image_category_width'), $this->config->get('config_image_category_height'));} else { $data['thumb'] = '';} Есть такой код: PHP: if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get($this->config->get('config_theme') . '_image_category_width'), $this->config->get($this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } Может опечатка?
Аналогично, только вот в Вашем случае Вы заменяете главную категорию на баннер. Я добавил dopimages В админке вижу в БД вижу что добавлял а вот на странице категории нет. Вот кусок код со страницы category.tpl HTML: <?php if ($thumb || $description) { ?> <div class="category-info"> <?php if ($thumb) { ?> <div class="image"><img width="<?php echo $this->journal2->settings->get('config_image_width'); ?>" height="<?php echo $this->journal2->settings->get('config_image_height'); ?>" src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /> <img src="<?php echo $category_dopimages; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></div> <?php } ?> <?php if ($description) { ?> <?php echo $description; ?> <?php } ?> </div> <?php } ?> Может знаете как правильно ввести рядом с главной картинки, доп картинку.