-
Публікації
2 022 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем ocdev_pro
-
-
В том, то и дело, что для 1й категории, а в моем решении, можно сразу для нескольких назначить, просто выбрав из админки схему отображения
-
Задача не раз подымалась - "Как сделать свой шаблон для категорий?"
И вот тоже столкнулся с такой штукой, но все что пишут в "интернетах" не подходит, так как по тем инструкциям можно назначить шаблон только для категории с определенным ID.
Я решил сделать все по-другому. Может быть не совсем правильно, но все же думаю идея заслуживает внимания.
И так, нам надо вывести категорию (или несколько категорий) с другим шаблоном. Для этого я решил использовать схемы вывода.
Создаем новую схему - Система - Дизайн - Схемы - Назовем ее "Подкатегория" и id у нее - '12'
В админке у нужной категории на вкладке "Дизайн" выбираете созданную схему "Под категория"
Теперь в папке с шаблоном создаете шаблон для вывода вашей "особенной" категории к примеру catalog/view/theme/.../product/subcategory.tpl - содержимое можно взять с оригинала category.tpl (и изменить под себя)
Теперь в контролере категорий -
catalog/controller/product/category.php
Задаем определение схемы отображения:
после 10 строки $this->load->model('tool/image');
добавляем
if ('product/category' && isset($this->request->get['path'])) { $path = explode('_', (string)$this->request->get['path']); $this->data['layout_id'] = $this->model_catalog_category->getCategoryLayoutId(end($path)); }
дальше находим примерно 405 строка (в версии 1.5.4.1 - 350 строка)
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) {$this->template = $this->config->get('config_template') . '/template/product/category.tpl'; } else { $this->template = 'default/template/product/category.tpl'; }
И заменяем на
if ($this->data['layout_id'] == 12) {$this->template = $this->config->get('config_template') . '/template/product/subcategory.tpl'; } elseif (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/product/category.tpl')) { $this->template = $this->config->get('config_template') . '/template/product/category.tpl'; } else { $this->template = 'default/template/product/category.tpl'; }
где 12 это id вашей схемы "Подкатегория", а subcategory.tpl ваш файл с шаблоном вывода категории
Все теперь шаблон для вашей категории будет браться из файла subcategory.tpl
Аналогично можно сделать и для информационных страниц!!!
Не забудьте, что модули тоже придется вывести в схему "Подкатегория"
-
Сколько раз сталкивался с этой говно-сброкой, постоянно проблемы! У автора просто руки из пятой точки растут.
-
Плюсанул за старательность но не проще ли добавить 2 строки ? одну в контроллер вторую в тпл ? по аналогии как это сделано с корзиной ?
В том, то и дело, что например слайдшоу или скажем модуль кастомного меню, ну никак не хочет работать. Сам пробовал 2мя строчками, по аналогии с корзиной, но начали выскакивать ошибки типа undefine index $menu_id и так далее. Поэтому решил придумать вот такой велосипед))
(Для модулей у которых сложный функционал или если есть модель, вообще идеально подойдет мое решение)
- 1
-
В очередной раз столкнулся с такой тривиальной задачей как - вывести в шапке сайта модуль (не в позицию content_top).
Раньше приходилось создавать отдельную позицию, но это относительно не удобно. Нужно создавать новые файлы и именно в header.tpl все равно вывода нет.
Копаясь в коде решил сделать свой "велосипед", может кому пригодится.
Что дает:
- вывод любого модуля в шапку или в подвал (именно в header.tpl/footer.tpl)
- вывод на всех страницах без создания новых схем.
Начнем.
1.Открываем catalog/controller/common/header.phpперед строкой
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
Добавляем код который отвечает за вывод модулей в позиции header
$layout_id = 0; if (!$layout_id) { $layout_id = $this->model_design_layout->getLayout($route); } if (!$layout_id) { $layout_id = $this->config->get('config_layout_id'); } $module_data = array(); $this->load->model('setting/extension'); $extensions = $this->model_setting_extension->getExtensions('module'); foreach ($extensions as $extension) { $modules = $this->config->get($extension['code'] . '_module'); if ($modules) { foreach ($modules as $module) { if ($module['layout_id'] == $layout_id && $module['position'] == 'header' && $module['status']) { $module_data[] = array( 'code' => $extension['code'], 'setting' => $module, 'sort_order' => $module['sort_order'] ); } } } } $sort_order = array(); foreach ($module_data as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $module_data); $this->data['modules'] = array(); foreach ($module_data as $module) { $module = $this->getChild('module/' . $module['code'], $module['setting']); if ($module) { $this->data['modules'][] = $module; } }
2. В шаблоне вывода catalog/view/theme/default/common/header.tpl добавляем код для выводя модулей
<?php foreach ($modules as $module) { ?> <?php echo $module; ?> <?php } ?>
...можно обернуть в div блок
Позиция header у нас теперь существует, осталось добавить информацию для выводимого модуля о позиции header
для этого открываем файл вывода вашего модуля в админке admin/view/template/module/your_module.tplи после строчек
<option value="column_right"><?php echo $text_column_right; ?></option> <?php } ?>
добавляем
<?php if ($module['position'] == 'header') { ?> <option value="header" selected="selected"><?php echo $text_header; ?></option> <?php } else { ?> <option value="header"><?php echo $text_header; ?></option> <?php } ?>
и ниже в этом же файле после
html += ' <option value="column_right"><?php echo $text_column_right; ?></option>';
добавляем
html += ' <option value="header"><?php echo $text_header; ?></option>';
3. В контролере модуля admin/controller/module/your_module.php
после
$this->data['text_column_right'] = $this->language->get('text_column_right');
добавляем$this->data['text_header'] = $this->language->get('text_header');
4. Дальше в языковом admin/language/russian/module/your_module.php после
$_['text_column_right'] = 'Правая колонка';
добавляем
$_['text_header'] = 'В шапке сайта';
ВСЕ! У вас модуль знает такую позицию как "В шапке сайта" выбираете и он выводится туда.
ЕСЛИ НУЖНО ВЫВЕСТИ МОДУЛЬ НА ВСЕХ СТРАНИЦАХ
То в первом шаге нужно вставить код без определения схемы (без layout)
$module_data = array(); $this->load->model('setting/extension'); $extensions = $this->model_setting_extension->getExtensions('module'); foreach ($extensions as $extension) { $modules = $this->config->get($extension['code'] . '_module'); if ($modules) { foreach ($modules as $module) { if ($module['position'] == 'header' && $module['status']) { $module_data[] = array( 'code' => $extension['code'], 'setting' => $module, 'sort_order' => $module['sort_order'] ); } } } } $sort_order = array(); foreach ($module_data as $key => $value) { $sort_order[$key] = $value['sort_order']; } array_multisort($sort_order, SORT_ASC, $module_data); $this->data['modules'] = array(); foreach ($module_data as $module) { $module = $this->getChild('module/' . $module['code'], $module['setting']); if ($module) { $this->data['modules'][] = $module; } }
Что бы вывести модули в footer, все тоже самое только в файлах которые отвечают за подвал сайта и везде значение header меняете на footer
- 9
-
Кто-нибудь разобрался как это сделать?
Что тут понимать, ненужные скрипты отвечающие за подгрузку доп. функционала (colorbox, jquery.ui) и счетчики яндекса поместите в footer.tpl до закрывающего тега body.
Если есть несколько каруселей товаров на главной, то сделайте подгрузку этих скриптов по условию, что если на главной грузим скрипт в противном не грузим..
Как-то так )))
Если заняться оптимизацией opencart, то можно и самому минифицировать скрипты и css вручную, и картинки загружать сразу сжатые. А еще для магазинов с более 3000 товаров, лучше не брать простой хостинг, а хотя бы самый дешевый VPS. И будет хорошо.
-
Помогите решить такую задачу
Допустим есть site.ru где используем для ЧПУ seo_pro
для товаров все ок ссылка на товар site.ru/tovar1
Как сделать такое же и для категорий
Пример как сейчас site.ru/category/subcat/subsubcat
А нужно сделать вывод только последней вложенной, что бы было site.ru/subsubcat
но при этом хлебные крошки сохраняли иерархию site.ru/category/subcat/subsubcatИскал по форуму инфу, так решения и не нашел.
С меня на пиво за решение)
-
Купил мод, все хоршо, вот только интересует, можно сделать автоматическую выгрузку указанных из списка заказов в Pickpoint?
Тоесть - в настройках модуля вбиваем Логин и Пароль пикпоинта, затем в Заказах
"галочками" Выбрали нужные заказы и нажали Експортировать - и все вуаля ))
Было бы круто, ну и немного денежек в стоимость модуля добавить для обновления до такой фичи. -
Есть еще 1 неплохой вариант, который добавляет класс для любого елемента у которого уже назначен класс например "nav":
В header.tpl перед закрывающим тегом headПишем
<script language="JavaScript" type="text/javascript"> function highlight(){ var tags=document.getElementsByTagName("li"); for(i in tags){ if(tags[i].className=="nav"){ if(document.location.href==tags[i].firstChild.href){ tags[i].className +=" active"; } } } } </script>
где nav это класс элемента к которому нужно дописать active при активном пункте
Дальше после самого меню добавляем
<script language="JavaScript" type="text/javascript">highlight()</script>
- 1
-
Убрать панель - Админка - Учитывать в заказе - Доставка - Оценка стоимости доставки - Отключено
А переименовать надпись можно в языковом файле, который отвечает за ваш модуль доставки (вроде это language/russian/shipping/flat.php или cytilink.php)
- 1
-
На самом деле проблема как раз в скриптах была, на сайте на товар установлен скрипт который при наведении показывает кнопку купить и цену, мы переделали эту фишку через css (diplay: none - display: block) и стало работать. Но к сожалению сайту буду делать редизайн и полную адаптивность под все устройства так что заморачивался зря))
-
-
А почему нельзя было сделать чистый перевод?
Обязательно в каждий файл лепить ?/***********************************************************************************************************************
Version 1.5.5.1
Created 19:13 20.05.2013 UTF-8
Copyright © 2010 Ukrainian Localization by OpenCart Ukrainian Team (http://opencart.ua). All rights reserved.
Responsible for Translation:
Eugene Kuligin ([email protected])
License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
Ask a question http://forum.opencart.ua
************************************************************************************************************************/а потом еще кучу комментов по типу "#43137" - зачем это нужно?
Такое чувство, что все надо делать своими руками!
Не пожалею времени сделаю нормальный перевод, у вас он даже еще местами кривой.
- 1
-
-
Проверил, все работает. Проверялось только на стандартной теме, поэтому я не могу точно сказать в чем у вас проблема.
-
Друзья собственно вопрос таков,как убрать ограничение для загружаемых фотографий?И как увеличить размер всплывающего изображения,ставлю 900 на 1000 толку нет,размер такой же как и при 500x 500.Зарание спасибо
Для того что бы снять ограничения (вернее увеличить их) для загружаемых фотографий, нужно изменить файл admin/controller/common/filemanager.php
Ищем строчку 136 (отвечает за размер в px фото)
while (($size / 1024) > 1) { $size = $size / 1024; $i++; }
Меняем значение 1024 на 2048 к примеру
дальше ищем 438
if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); }
Значение 300000 это 300КБ - Сюда напишите сколько вам нужно к примеру 1024000 (10МБ)
Сохраняем и имеем размер загружаемого фото не больше 2048px и не больше чем 10МБ
Enjoy
- 4
-
Notice: Undefined index: route in /home/catalog/controller/module/showproductall.php on line 61
Замените в 61 строчке
$current_page = ($this->request->get['route']);
На
if (isset($this->request->get['route'])){ $current_page = ($this->request->get['route']); }else{ $current_page = 'common/home'; }
Должно помочь!
-
Waha, а можно ли ограничить количество выводимых товаров? Мне надо и все, и не все, как это сделать?
Реализовано только выбор количества отображаемого на странице, то есть 15 25 50 100
изначально это 15 товаров.
-
- 1
-
1. Модуль "Все товары" - выводит все товары магазина в любую позицию.
- встроенный вид (Список и сетка)
- Сортировка
- Количество на странице
- постраничная навигация
Тестировалось на Opencart (ocStore) 1.5.1.3 - 1.5.4.1
Никакой замены файлов!!! Без vqmod!
Два языка (English, Russian)
Установка:
1. Просто копируем содержимое папки upload в корень сайта
2. В Админ панели заходим Система - Поkьзователи - Группы пользователей - выбираем наш модуль - жмем Сохранить
3. Дальше в Дополнения - Модули ищем "Все товары"
- заходим публикуем куда надо (на любую страницу)
- тискаем Сохранить.
Демо работы модуля - http://big.swim-wear.ru/
2. Отдельная страница "Все товары" - выводит все товары магазина, аналогично модулю, но является просто страницей (как контакты или информация...) на которую можно публиковать другие модули.
Тестировалось на Opencart (ocStore) 1.5.1.3 - 1.5.4.1
Никакой замены файлов!!!
Два языка (English, Russian)
Установка:
1. Просто копируем содержимое папки upload в корень сайта
2. Ссылка на страницу http://"ВАШ АДРЕС"/index.php?route=product/showproductall
- можете вставлять ее куда угодно.
3. Еще можно использовать модификацию Vqmod (работает для тем на дефолтном шаблоне):
(добавляет ссылку на страницу в шапку сайта - "Все товары Магазина" "Главная"... и.т.д)
- Если у вас установлен vqmod - скопируйте папку vqmod в корень вашего сайта!
4. Если вам надо выводить модули (Категории, банер или еще что) вместе со страницей "Все товары"
- зайдите в админку Система - Дизайн - Схемы (добавляем новую схему для нашей страницы)
нажимаем "Добавить" Пишем "Название макета (к примеру) "Все товары"
жмем добавить путь и вставляем туда "product/showproductall"
жмем сохранить.
Теперь у всех наших модулей будет в списке Схем наша страница "Все товары" куда и будем их выводить!- 5
-
Здравствуйте. Есть корзина /index.php?route=checkout/cart и оформление через Simple /index.php?route=checkout/simplecheckout
Если задать url для checkout/cart, то при заходе на этот url открывается checkout/simplecheckout а не checkout/cart
Дак тут дело в том что в system/library/url.php - установлена переадресация, то есть при заходе checkout/cart нас перекидывает на checkout/simplecheckout
с 14 по 27 строчку смотрите
-
в контролере твоего модуля в массиве $this->data['record'][] = array( найди строчку - " 'date_added' => $result['date_added']," и замени ее на 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
Таким образом можно будет через файл language/russiam/russian.php изменять формат даты.- 1
-
Могу дать модификацию для VQmod что бы работал поиск по модели и артикулу - babymarket.ua тут вот делал, работает
-
Спасибо...понял.
[Поддержка] Товары из категорий Opencart 1.5-2.x
в Модулі та розширення
Опубліковано:
10
Завантажити / Придбати розширення
Товары из категорий Opencart 1.5-2.x
Модуль выводит товары из выбранной категории на любую страницу (схему) на вашем сайте
Возможности:
Установка:
Тестировался на Opencart 2.x 2.1, ocStore 2. Opencart 2.3
В комплект входит версия для Opencart 1.5.x, Opencart 2.0 - 2.3
Также рекомендую:
- Смс уведомления для Opencart
- Просмотренные товары
- Таблица размеров, размерная сетка
- Все товары магазина (Каталог товаров)
- Акционные товары, модуль с таймером
- Редактор изображений Image Cropper
2.2
2.1
1.5.5.1.2
1.5.5.1.1
1.5.5.1
1.5.4.1.2
1.5.4.1.1
1.5.4.1
1.5.3.1
1.5.2.1
1.5.1.3