COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

bazilio

Соучастники
  • Публикации

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

  • Посещение

  • Days Won

    2

Изменения репутации

  1. Upvote
    bazilio получил репутацию от satyr в Правильные URL во встроенном блоге   
    А почему в файле catalog/controller/startup/seo_pro.php вместо этого
    case 'blog/article': if (isset($data['article_id'])) { $tmp = $data; $data = array(); if ($this->config->get('config_seo_url_include_path')) { $data['blog_category_id'] = $this->getPathByArticle($tmp['article_id']); if (!$data['blog_category_id']) return $link; } $data['article_id'] = $tmp['article_id']; } break; не сделать так?
    case 'blog/article': if (isset($data['article_id'])) { $tmp = $data; $data = array(); if ($this->config->get('config_seo_url_include_path')) { $bcid = $this->getPathByArticle($tmp['article_id']); if ($bcid) { $data['blog_category_id'] = $bcid; } } $data['article_id'] = $tmp['article_id']; } break; Тогда работает и с категориями и без.
  2. Upvote
    bazilio изменил репутацию shturmavik в Проверить есть ли товар в Wishlist   
    Добавил код в catalog/model/account/wishlist.php   public function getAllWishlist() { // by nix if ($data = $this->getWishlist()) { $out = array(); foreach ($data as $key => $value) { $out[] = $value['product_id']; } return $out; } else if (isset($this->session->data['wishlist'])) { return $this->session->data['wishlist']; } }  
      Добавил код в catalog/controller/product/product.php $this->load->model('account/wishlist');         $zol_wish = $this->model_account_wishlist->getAllWishlist();         if (isset($product_id) && isset($zol_wish)) {           if (in_array($product_id, $zol_wish)) {             $data['AllWishlist'] = true;           }           } Выше этого кода: if ($product_info) {             $url = '';             if (isset($this->request->get['path'])) {  
     
      В файл catalog/view/theme/default/template/product/product.tpl заменил кнопку сердечка на такой код: <?php if ($logged) { ?> <script type="text/javascript"> function ChangeColor(Element) { Element.style.color = 'red'; } </script> <button <?php if(isset($AllWishlist)) { ?> style="color: red" <?php } ?> type="button" data-toggle="tooltip" class="btn btn-default" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product_id; ?>'); ChangeColor(this);"><i class="fa fa-heart"></i></button> <?php } ?>  
    Добавил код в catalog/controller/product/category.php   Вот такой код: $this->load->model('account/wishlist'); $data['AllWishlist'] = $this->model_account_wishlist->getAllWishlist(); Выше этого кода:
    $data['breadcrumbs'] = array(); В файл catalog/view/theme/default/template/product/category.tpl заменил кнопку сердечка на такой код:
    <?php if ($logged) { ?> <script type="text/javascript"> function ChangeColor(Element) { Element.style.color = 'red'; } </script> <button <?php if(isset($AllWishlist)) { ?> <?php if(in_array($product['product_id'], $AllWishlist)) { ?> style="color: red" <?php } ?> <?php } ?> type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>'); ChangeColor(this);"><i class="fa fa-heart"></i></button> <?php } ?> Теперь если мы залогинимся, то у товара появиться сердечко. Если нажмём, то оно загорится красным и товар добавиться в закладки. Если удалил из закладок, то сердечко перестанет быть красным.

    Пример http://best-socks.ru/
     
  3. Upvote
    bazilio изменил репутацию savage4pro в Замена символа рубля   
    Замена символа рубля
    Мод заменяет знак валюты рубля на симпатичный почти уже стандартный символ (U+20BD), представленный в наборе глифов шрифта "Roboto" от Christian Robertson.
    Подходит для любого шаблона OpenCart / Ocshop (OpenCart.PRO/CMS) / OcStore версий 2.x при отсутствии прямых модификаций ядра.
     
    Схема работы:
    добавляет в БД новую таблицу `oc_currency_modsymbols` с одной записью - для валюты с кодом RUB на этапе выборки данных о валютах оборачивает оригинальный символ в конструкцию для обработки подключаемыми при загрузке страницы стилями не ломает возможность менять оригинальный символ в админке, который будет показан при выводе шаблонов, в которых нет возможности подключать дополнительные стили (например, почтовые уведомления), пробелы до/после оригинального символа выносятся за пределы конструкции, т.е. сохраняются после установки можно вручную добавлять записи в таблицу `oc_currency_modsymbols` для форматирования символов валют по желанию (для включения в конечную строку стандартного значения, т.е. для автозамены, вместо него следует указать "_default_symbol_") мод можно безболезненно отключать/удалять, функциональность при этом вернется к стандартной  
    Установка:
    Бекап! загрузить модуль через Extensions / Extension Installer обновить кэш модификаций на странице Extensions / Modifications обновить системный кэш  
    Удаление:
    Бекап! удалить мод на странице Extensions / Modifications, там же обновить кэш модификаций обновить системный кэш вручную удалить из БД таблицу `oc_currency_modsymbols` вручную удалить файлы catalog/view/theme/default/stylesheet/roboto-forced.css и roboto-forced.min.css вручную удалить файлы catalog/view/theme/default/stylesheet/font/google/roboto-subset-latin-ext-*.*  
    При обновлении с предыдущих версий рекомендуется полное их удаление.
     
    В случае некорректного отображения блока с форматированной ценой (например, вылезающие закрывающие теги вида: руб." />") необходимо в шаблоне, где эта цена выводится, оборачивать её вывод в strip_tags();
     
    С 2016-11-28 (v.2.5.1) в комплекте идет сабсет (latin-ext, webfont) шрифта Roboto для совместимости с браузерами, которые блокируют подгрузку внешних шрифтов (да, это про тебя, IE9, гори в аду!)
    Автор savage4pro Добавлен 21.10.2015 Категория 2.х  
    pt-sans-ruble-symbol.ocmod.zip
    roboto-ruble-symbol.ocmod.zip
    roboto-rouble-symbol-2.5.ocmod.zip


  4. Upvote
    bazilio получил репутацию от dadamacdirolog в Фото товара в заказе админки   
    Фото товара в заказе админки
    Это расширение добавляет фото товарам в заказе админки.
    Автор bazilio Добавлен 02.08.2017 Категория 2.х
    Скачать Фото товара в заказе админки
    photo_order_admin.ocmod.xml

  5. Upvote
    bazilio изменил репутацию savage4pro в Хаотичное отображение списка категорий в товаре на вкладке "связи"   
    немного не то правите
    для сортировки "по алфавиту" следует заменить
    $categories = $this->model_catalog_category->getAllCategories(); $data['categories'] = $this->model_catalog_category->getCategories($categories); на
    $filter_data = array( 'sort' => 'name', ); $data['categories'] = $this->model_catalog_category->getCategories($filter_data); а строка
    $categories = $this->model_catalog_category->getAllCategories(); не нужна, т.к. ее данные не соответствуют принимаемым методом модели getCategories, а далее переменная $categories все равно переопределяется
     
     
    и в нагрузку:
    если хочется, чтобы было как в списке категорий, тогда правим еще и метод getCategories модели ModelCatalogCategory
     
    меняем
    $sql = "SELECT cp.category_id AS category_id, GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR '&nbsp;&nbsp;&gt;&nbsp;&nbsp;') AS name, c1.parent_id, c1.sort_order, c1.noindex FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category c1 ON (cp.category_id = c1.category_id) LEFT JOIN " . DB_PREFIX . "category c2 ON (cp.path_id = c2.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (cp.path_id = cd1.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id = cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'"; на
    $sql = "SELECT cp.category_id AS category_id, GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR '&nbsp;&nbsp;&gt;&nbsp;&nbsp;') AS name, REPLACE(RPAD(GROUP_CONCAT(c2.sort_order ORDER BY cp.level SEPARATOR '-'),10,'-0'),'-','')+0 AS basesort, c1.parent_id, c1.sort_order, c1.noindex FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category c1 ON (cp.category_id = c1.category_id) LEFT JOIN " . DB_PREFIX . "category c2 ON (cp.path_id = c2.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (cp.path_id = cd1.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id = cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'"; и
    $sort_data = array( 'name', 'sort_order', 'noindex' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { $sql .= " ORDER BY " . $data['sort']; } else { $sql .= " ORDER BY sort_order"; } на
    $sort_data = array( 'name', 'sort_order', 'noindex', 'basesort' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'basesort') { $sql .= " ORDER BY basesort " . ((isset($data['order']) && ($data['order'] == 'DESC'))?'DESC':'') . ", " . $data['sort']; } else { $sql .= " ORDER BY " . $data['sort']; } } else { $sql .= " ORDER BY sort_order"; } и в контроллере вместо 'sort' => 'name' пишем 'sort' => 'basesort'
     
    но тут следует иметь в виду, что порядок сортировки должен быть явно задан для категорий, иначе в выборке будет бардак