lexxkrt
-
Публікації
347 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем lexxkrt
-
-
10 minutes ago, sahman said:
Для примера я хочу чтобы категории второго уровня были красным цветом а категории третьего уровня были написаны зеленым цветом
в стилях в файле catalog/view/theme/ВашаТема/stylesheet/stylesheet.css
для второго уровня
#menu .dropdown-inner a
для 3 уровня, как в моем примере, добавить стиль
#menu .subcategory
-
стандартный фильтр в категориях, работает по такому принципу
допустим первая группа фильтров "производители". выбираем производителя. показываются в списке только товары данного производителя, здесь все нормально.
вторая группа фильтров "мощность" выбираем мощность, показываются и производители ранее выбранной группы и товары у которых указана данная мощность других производителей, что уже в корне не верно.
правильно было бы если показывались товары только выбранного производителя с указанной мощностью
рассматривая код фильтра товара понимаешь что правильно он работать и не будет
if (!empty($data['filter_filter'])) { $implode = array(); $filters = explode(',', $data['filter_filter']); foreach ($filters as $filter_id) { $implode[] = (int)$filter_id; } $sql .= " AND pf.filter_id IN (" . implode(',', $implode) . ")"; }
исправил код, кривовато на мой взгляд, но работает
if (!empty($data['filter_filter'])) { $implode = array(); $filters = explode(',', $data['filter_filter']); foreach ($filters as $filter_id) { $implode[] = (int)$filter_id; } $results = $this->db->query("SELECT * FROM ".DB_PREFIX."filter WHERE filter_id IN (" . implode(',', $implode) . ")"); $arr = array(); foreach ($results->rows as $row) { $arr[$row['filter_group_id']][] = $row['filter_id']; } $pids = array(); foreach ($arr as $key=>$value) { if(count($pids)==0){ $results = $this->db->query("SELECT p.product_id FROM ".DB_PREFIX."product p INNER JOIN ".DB_PREFIX."product_filter pf ON p.product_id=pf.product_id where pf.filter_id IN (".implode(",",$value).")"); if($results->num_rows){ foreach ($results->rows as $row) { $pids[] = $row['product_id']; } } if(count($pids)==0) break; } else { $results = $this->db->query("SELECT p.product_id FROM ".DB_PREFIX."product p INNER JOIN ".DB_PREFIX."product_filter pf ON p.product_id=pf.product_id where p.product_id IN (".implode(',',$pids).") AND pf.filter_id IN (".implode(",",$value).")"); $pids = array(); if($results->num_rows){ foreach ($results->rows as $row) { $pids[] = $row['product_id']; } } if(count($pids)==0) break; } } if(count($pids)){ $sql .= "AND p.product_id in (".implode(',',$pids).")"; } else { $sql .= "AND p.product_id in (0)"; } }
-
уже 5 подобная тема на форуме за последнее время
Народ какие стили вы о чем вообще.
ему надо 4 колонки и картинку, по колонкам проблема с копипастом одноколончатого размещения в 4 колончатый, проверяйте переменные в цикле вместо child стоит categories/category
и картинку ищи на форуме я писал решение, по умолчанию картинка субкатегории не передается
-
пример
контроллер catalog/common/menu.php
<?php class ControllerCommonMenu extends Controller { public function index() { $this->load->language('common/menu'); // Menu $this->load->model('catalog/category'); $this->load->model('catalog/product'); $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { // Level 2 $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { // Level 3 $children_data1 = array(); $children1 = $this->model_catalog_category->getCategories($child['category_id']); foreach ($children1 as $child1) { $filter_data = array( 'filter_category_id' => $child1['category_id'], 'filter_sub_category' => true ); $children_data1[] = array( 'name' => $child1['name'].($this->config->get('config_product_count') ? ' ('.$this->model_catalog_product->getTotalProducts($filter_data).')' : ''), 'href' => $this->url->link('product/category', 'path='.$category['category_id'].'_'.$child['category_id'].'_'.$child1['category_id']) ); } $filter_data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $children_data[] = array( 'name' => $child['name'].($this->config->get('config_product_count') ? ' ('.$this->model_catalog_product->getTotalProducts($filter_data).')' : ''), 'children' => $children_data1, 'href' => $this->url->link('product/category', 'path='.$category['category_id'].'_'.$child['category_id']) ); } // Level 1 $data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path='.$category['category_id']) ); } } return $this->load->view('common/menu', $data); } }
menu.twig
{% if categories %} <div class="container"> <nav id="menu" class="navbar"> <div class="navbar-header"><span id="category" class="visible-xs">{{ text_category }}</span> <button type="button" class="btn btn-navbar navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"><i class="fa fa-bars"></i></button> </div> <div class="collapse navbar-collapse navbar-ex1-collapse"> <ul class="nav navbar-nav"> {% for category in categories %} {% if category.children %} <li class="dropdown"><a href="{{ category.href }}" class="dropdown-toggle" data-toggle="dropdown">{{ category.name }}</a> <div class="dropdown-menu"> <div class="dropdown-inner"> {% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %} <ul class="list-unstyled"> {% for child in children %} <li><a href="{{ child.href }}">{{ child.name }}</a></li> {% if child.children %} {% for child3 in child.children %} <li class="subcategory"><a href="{{ child3.href }}">{{ child3.name }}</a></li> {% endfor %} {% endif %} {% endfor %} </ul> {% endfor %}</div> <a href="{{ category.href }}" class="see-all">{{ text_all }} {{ category.name }}</a> </div> </li> {% else %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endif %} {% endfor %} </ul> </div> </nav> </div> {% endif %}
можно вообще сделать рекурсией и тогда вообще не зависеть от вложенности категорий
- 1
-
9 hours ago, anboza said:
Поздравляю!
Измените событие с onclick на onmouseover
какое нафиг событие? стили надо прописать с приставкой :hover.
9 hours ago, sahman said:как вывести на главной странице в выпадающем меню категории 3-го уровня?
откуда взялись категории 3его уровня. в опенкарте в меню только второго загружаются
-
On 11/30/2018 at 8:49 PM, omar572 said:
Подскажите кто знает и есть ли вообще возможность добавления картинок в подкатегории на opencart Version 3.0.2.0 как на картинке
можно, элементарно
контроллер product/category.php
$results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); // добавить отсюда if ($result['image']) { $thumb = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $thumb = ''; } // досюда $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) // добавить ,'thumb' => $thumb ); }
далее в шаблоне product/category.twig добавить.
{% if category.thumb %}<img src="{{ category.thumb }}" /> {% endif %}
ну и сделать соответствующую разметку
-
On 11/29/2018 at 11:37 PM, krutoperdoff said:
В шаблоне вообще такого файла нет, только в дефолтном
ну тогда обращайтесь к разработчику шаблона. я написал из чего получается данная ошибка, больше там вариантов возникновения данной ошибки нет
-
53 minutes ago, chukcha said:
На данном этапе - в памяти
т.е. еще и память занимает)))
-
On 11/23/2018 at 6:45 PM, niger said:
Запросы к базе берутся из модели. А языковые шняги(не для товаров и категорий), как и powered берутся из файлов языковых версий.
И удаление запроса о валюте это экономия на спичках.
да ладно???
$data['powered'] = sprintf($this->language->get('text_powered'), $this->config->get('config_name'), date('Y', time()));
по твоему конфиги где хранятся? -
On 11/28/2018 at 4:19 PM, Muvka said:
Здравствуйте. Нужно сделать так, чтобы перед resize изображения, обрезался белый фон у изображения до контента. Т.е. не удалялся белый фон, а именно обрезался фон до самой картинки. Есть у кого модифицированный resize? Или подскажите, как это можно сделать? Аналог тримминг в ФШ.
Если есть модуль, то бесплатный.
в library/image.php
public function trim(){ if($this->image){ $im = imagecropauto($this->image,IMG_CROP_DEFAULT); if($im!==false){ $this->image = $im; $this->width = imagesx($this->image); $this->height = imagesy($this->image); } } return $this; }
в catalog/model/tool/image.php в функции resize
if ($width_orig != $width || $height_orig != $height) { $image = new Image(DIR_IMAGE . $image_old); $image->trim(); $image->resize($width, $height); $image->save(DIR_IMAGE . $image_new); } else { copy(DIR_IMAGE . $image_old, DIR_IMAGE . $image_new); }
добавить вызов trim перед вызовом resize
ну или модификатор
- 1
-
ищите уже было на форуме.
это не имеет отношения к тройке, это коряво сделан шаблон
в шаблоне product/category.twig вывода подкатегорий перепутана переменная,
вместо {% for child in category %}
написано
{% for category in categories %}
сравнивайте с дефолтным шаблоном данный файл
-
1 hour ago, Tom said:
Он же прям в заголовке...Как у картинок убрать белые поля....
И тут же решение
может модераторы видят больше?) я вопроса в заголовке не вижу. в вашем посте вижу а в заголовке фраза больше на название романа похожа.
а по теме вопроса imagecropauto при создании кэша картинки до ресайза
если картинок мало то фотошоп вполне сгодится
-
ну и в чем вопрос? откуда опенкарт будет знать про картинки из загружаемого "файла с каталогом"
-
Тема лежит в разделе "общие вопросы", соответственно вопрос к топикстартеру: Какой собственно вопрос?
-
10 hours ago, Dimasscus said:
да перепробовал все. не помогает
в таблицу seo url маршрут common/home с ключом " " добавьте
-
On 11/8/2018 at 2:04 AM, Dimasscus said:
Всем привет. не знаю что там может или не может встроенный чпу, но проблему с index.php?route=common/home он точно не осилил.
Подскажите как эту глюч в тройке убрать? и .htaccess правил
и с бубном танцевал- без результата.
cjmmon/home не работает в стандартном сео.
https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=27700
и вроде как в Опенкарт Русская сборка, данная проблема пофикшена.
-
обсуждение такого же вопроса
-
On 11/10/2018 at 10:14 PM, asukhoia said:
а как он может быть попутан?
вопрос задайте тому кто шаблон писал
вместо переменных child и category подставлены category и categories соответственно, в указанной мной позиции.
знаю потому что была такая же ерунда у меня при редактировании шаблона.
-
24 minutes ago, kJlukOo said:
вот те арей сиарч
{% if myVar in someOtherArray|keys %}
и где тут проблема? и это не array_search() это array_key_exists(). какую это может вызвать проблему? это все-таки не $this->db->query(...)
а наговнокодить можно и hello world написав
мне нравится твиг потому что {{ var }} вместо <?php echo isset($var)?$var:""; ?> намного удобнее, это одна из причин
-
в контроллер common/home в массив $data добавь
$data['home'] = true;
-
15 minutes ago, chukcha said:
подразумевается использование в гавномодулях запросы из шаблонов
как ты сделаешь запросы из шаблонов в твиге?
-
22 hours ago, asukhoia said:
на данной странице в основном поле показываются подкатегории в 4 столбца одинаковых. как их убрать
сравни в дефолтном шаблоне как сделан вывод вложенных категорий, скорее всего перепутана переменная
{% if categories|length <= 5 %} <div class="row"> <div class="col-sm-3"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> </div> {% else %} <div class="row">{% for category in categories|batch((categories|length / 4)|round(1, 'ceil')) %} <div class="col-sm-3"> <ul> {% for child in category %} <li><a href="{{ child.href }}">{{ child.name }}</a></li> {% endfor %} </ul> </div> {% endfor %}</div> <br /> {% endif %}
{% for child in category %} вот здесь вероятно цикл попутан
-
7 hours ago, kJlukOo said:
ну чето скорость тройки от твига умирает ... админка зависает на пару секунд при любом запросе
кэш включи
7 hours ago, kJlukOo said:и еще в твиге есть всякие функции типа аррей сиарч и тд.
нет там таких функций
7 hours ago, kJlukOo said:обычно эти функции и используют в говномодулях или шаблонах
твиг не используется в модулях, только в шаблонах
- 1
-
Не редактируется header.twig
в Opencart 3.x: Загальні питання
Опубліковано:
так должно работать. попробуйте обновить еще модификаторы