Перейти к содержанию

lexxkrt

Пользователи
  • Публикаций

    184
  • Зарегистрирован

  • Посещение

Репутация

17 Хороший

1 Подписчик

Информация о lexxkrt

  • Звание
    Продвинутый пользователь

Посетители профиля

1 109 просмотров профиля
  1. если открыть ссылку в новой вкладке, то все работает, значит проблема где то у вас в скрипте, проверяйте ссылки куда перенаправляет
  2. как раз это вы не понимаете. если хотите говорить об оптимизации то вам куда-то сюда https://github.com/opencart/opencart/issues к Даниэлю Керру. Быть может он вас выслушает, а не "пошлет" как всех остальных. у всех есть много вопросов по "оптимизации", у меня вот первый же вопрос это по хлебным крошкам, конкретно про дублирование кода в каждом шаблоне. почему бы его не вынести в отдельный код, как например меню или строка сирч в хидере, притом что то что в хидере можно было и не выносить потому что используется только один раз. но мы пользуемся тем что есть, либо меняем под себя так как нам надо. не нравится роутер сделайте свой, выложите его, будет востребован заработаете денег на продаже его.
  3. обработчику насрать if там или switch/case, он все равно в двоичный код переводит, а в двоичном коде нет команды switch, он это все равно в сравнение преобразует. использование If это просто стиль написания автора такой, но данная тема не имеет отношения к теме чпу системных страниц. если вам не нравится как сделан роутер в опенкарте то не используйте опенкарт, либо сделайте свой роутер. это бесплатный продукт и вам никто ничего не должен. тысячи магазинов вполне устраивает
  4. а чем стандартный модуль категории не устраивает?
  5. могу подсказать, битрикс. такого говнокода вы точно нигде не увидите. перечитал все вышесказанное, кроме воплей как все хреново не увидел ни одного примера говнокода.
  6. не работает наверное потому что это раздел опенкарта 3 а вообще в тему поддержки расширений обратится не пробовали?
  7. в контроллере естественно, например в product/category.php $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100));
  8. так должно работать. попробуйте обновить еще модификаторы
  9. в стилях в файле catalog/view/theme/ВашаТема/stylesheet/stylesheet.css для второго уровня #menu .dropdown-inner a для 3 уровня, как в моем примере, добавить стиль #menu .subcategory
  10. стандартный фильтр в категориях, работает по такому принципу допустим первая группа фильтров "производители". выбираем производителя. показываются в списке только товары данного производителя, здесь все нормально. вторая группа фильтров "мощность" выбираем мощность, показываются и производители ранее выбранной группы и товары у которых указана данная мощность других производителей, что уже в корне не верно. правильно было бы если показывались товары только выбранного производителя с указанной мощностью рассматривая код фильтра товара понимаешь что правильно он работать и не будет 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)"; } }
  11. уже 5 подобная тема на форуме за последнее время Народ какие стили вы о чем вообще. ему надо 4 колонки и картинку, по колонкам проблема с копипастом одноколончатого размещения в 4 колончатый, проверяйте переменные в цикле вместо child стоит categories/category и картинку ищи на форуме я писал решение, по умолчанию картинка субкатегории не передается
  12. пример контроллер 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 %} можно вообще сделать рекурсией и тогда вообще не зависеть от вложенности категорий
  13. какое нафиг событие? стили надо прописать с приставкой :hover. откуда взялись категории 3его уровня. в опенкарте в меню только второго загружаются
  14. можно, элементарно контроллер 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 %} ну и сделать соответствующую разметку
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.