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

Доска почета

Популярные сообщения

Showing content with the highest reputation on 03/11/16 везде

  1. ну не то чтобы нельзя, но некоторые вещи, как вы уже подметили, потянет за собой, да спрошу на всякий случай после того как открывали в новом браузере, с пустым Local Storage? вообще рекомендую при ковырянии стилей, js-ов, сессий и прочего, так или иначе касающегося устройств/браузеров, использовать "Режим инкогнито" (private), он есть во всех популярных браузерах, и крайне полезен тем, что не хранит данные
    2 points
  2. admin

    Меню в ocShop 2 (OpenCart 2)

    добавил теперь пустит они в шаблоне я говорил про картинки категорий которые задаются в настройках категорий
    1 point
  3. WarStyle

    Меню в ocShop 2 (OpenCart 2)

    Я до сих пор наяриваю на неё =)))
    1 point
  4. admin

    Меню в ocShop 2 (OpenCart 2)

    Ну тут сразу есть проблема совместимости со сторонними шаблонами и значит это путь вникуда Если вам нужно для собственных нужд вывести картинки категорий возьмите шаблон руббер он есть в дополнениях в шаблонах в нем есть вкумод который выводит эти самые картинки в меню ну и по аналогии сделайте в своем магазине шаблон для 1.5 но отличий под 2.х там не много я об этом http://rubber.ocshop.net/ улыбнуло :-)
    1 point
  5. admin

    Массовая загрузка изображений

    ну как минимум бекап вам не помешает в любой не понятной ситуации делайте бекап :-)
    1 point
  6. RHCk

    Настройка SEO для версии 2.0.3.1

    Если вам нужны seo-url'ы, вот один из отрывков. Если вам нужно SEO, то вот вам сюда.
    1 point
  7. а вместо всего здесь https://github.com/ocshop/ocshop/blob/universal-1.5.6.4.1/upload/catalog/view/javascript/common20.js поменять if ($.totalStorage) { view = $.totalStorage('display'); if (view) { display(view); } else { display('list'); }; } на это if ($.totalStorage) { view = $.totalStorage('display'); if (view) { display(view); } else { display('grid'); }; } пробовали?
    1 point
  8. Lordaaa

    CoolBanner и ссылки

    "Дизайн - Баннеры" - там указываются ссылки
    1 point
  9. Robobender

    Два поиска в разных местах

    Подробнее: была необходимость продублировать строку поиска. В моем случае на длинных страницах, для того чтобы было пользователю под рукой. В верху поиск вставил: <div class="input-group my_search" id="search"> <input type="text" class="form-control input-lg" placeholder="Поиск" value="" name="search"> <span class="input-group-btn"> <button class="btn btn-default btn-lg" type="button"><i class="fa fa-search"></i> </button> </span> </div> Common.js изменил блок /* Search */ $('#search input[name=\'search\']').parent().find('button').on('click', function() { url = $('base').attr('href') + 'index.php?route=product/search'; var value = $('.my_search input[name=\'search\']').val(); if (value) { url += '&search=' + encodeURIComponent(value); } location = url; }); $('#search input[name=\'search\']').on('keydown', function(e) { if (e.keyCode == 13) { $('.my_search input[name=\'search\']').parent().find('button').trigger('click'); } }); Внизу в footer.tpl : <div class="input-group my_search" id="search"> <input type="text" class="form-control input-lg" placeholder="Поиск" value="" name="search1"> <span class="input-group-btn"> <button class="btn btn-default btn-lg" type="button"><i class="fa fa-search"></i> </button> </span> </div> И после первого блока /* Search */ в common.js добавил второй: /* Search 2*/ $('#search input[name=\'search1\']').parent().find('button').on('click', function() { url = $('base').attr('href') + 'index.php?route=product/search'; var value = $('.my_search input[name=\'search1\']').val(); if (value) { url += '&search=' + encodeURIComponent(value); } location = url; }); $('#search input[name=\'search1\']').on('keydown', function(e) { if (e.keyCode == 13) { $('.my_search input[name=\'search1\']').parent().find('button').trigger('click'); } }); Есть некоторые места которые нужно бы подправить (два id одинаковых например), но это позже, сейчас всё работает как часы. P.s. Может решение не элегантное, но действенное )
    1 point
  10. savage4pro

    Delivery: Estimate Shipping & Taxes - Filled Fields

    Delivery: Estimate Shipping & Taxes - Filled Fields Что делает Модуль скрывает поля для выбора страны/региона/индекса(если он не обязателен) и вместо них сразу показывает варианты доставки, опираясь на страну и регион по умолчанию. Зачем Чтобы избавить покупателя от лишних телодвижений при отсутствии очевидной необходимости в них. Кому это надо Для магазинов с методами доставки, не зависящими от региона или работающих только с одним регионом - по умолчанию. демо Автор savage4pro Добавлен 02.03.2016 Категория 2.х Скачать Delivery: Estimate Shipping & Taxes - Filled Fields estimate_shipping_filled_v1.0.1.ocmod.zip
    1 point
  11. немного не то правите для сортировки "по алфавиту" следует заменить $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' но тут следует иметь в виду, что порядок сортировки должен быть явно задан для категорий, иначе в выборке будет бардак
    1 point