Весь контент Pascha
-
Дополнительная информация о товаре/ AddiinfoProduct
Данное дополнение - пилотное. Делалось под определенную задачу: Визуализация и описание основных узлов и деталей продаваемого устройства . Предполагаю что может использоваться по типу "аля- лукбук" (для ИМ одежды), изображений сертификатов и лицензий конкретного товара (к примеру мед. оборудования) и пр. При интересе и предложениях будет дорабатываться. После приобретения дополнения все обновления будут доступны к скачиванию без ограничений по стоимости и времени.
-
Дополнительная информация о товаре/ AddiinfoProduct
Просмотр файла Дополнительная информация о товаре/ AddiinfoProduct Дополнение выполняет задачу вывода дополнительной информации + изображение в карточке товара. Неограниченное количество строк. Неограниченное количество знаков текста. В версии 1.0 выводится в карточке товара над "табами". Язык- русский. Установка - менеджер дополнений- ocmod Версия Опенкарт - 2.3 Демо фронт Админка- demo/demo Делалось под определенную задачу: Визуализация и описание основных узлов и деталей продаваемого устройства . Предполагаю что может использоваться по типу "аля- лукбук" (для ИМ одежды), изображений сертификатов и лицензий конкретного товара (к примеру мед. оборудования) и пр. Добавил Pascha Добавлено 21.07.2022 Категория Меню, дизайн, внешний вид
-
Дополнительная информация о товаре/ AddiinfoProduct
Дополнение выполняет задачу вывода дополнительной информации + изображение в карточке товара. Неограниченное количество строк. Неограниченное количество знаков текста. В версии 1.0 выводится в карточке товара над "табами". Язык- русский. Установка - менеджер дополнений- ocmod Версия Опенкарт - 2.3 Демо фронт Админка- demo/demo Делалось под определенную задачу: Визуализация и описание основных узлов и деталей продаваемого устройства . Предполагаю что может использоваться по типу "аля- лукбук" (для ИМ одежды), изображений сертификатов и лицензий конкретного товара (к примеру мед. оборудования) и пр.1,300.00 RUB
-
При активации модулей вылетает ошибка: Signature hash does not match!
При установке модулей из маркетплейса прямо с веб-сайта вы можете столкнуться с сообщением об ошибке типа «Signature hash does not match!», решение этой проблемы для OpenCart версии 3.0.2.0 следующее: Войдите в свою учетную запись OpenCart https://www.opencart.com/index.php?route=account/login На панели инструментов вы увидите «Ваши магазины», щелкните по нему, затем нажмите кнопку «Добавить магазин». затем добавьте информацию о своем магазине, которая является доменным именем. Затем нажмите «Отправить», вы получите подробную информацию о вашем имени пользователя и секретном ключе. зайдите на свой сайт и войдите в админку. Перейдите в Расширения >> Торговая площадка и нажмите кнопку настройки. Появится всплывающее окно, в котором вы вводите имя пользователя и секретный ключ, введите их, которые вы получили выше, на панели управления учетной записью opencart.com. Или просто устанавливайте модули стандартным способом (через установку ocmod или по FTP) ))))
-
Как вывести несколько определённых опций в одном контейнере?
как по мне, так немного костыль и плюсом не совсем понятно какую цель преследует данное решение, но вывод в product.tpl (раскидываем по блокам в зависимости от ID опции) 2 блока <div id="block1"></div> и <div id="block2"></div> <?php if ($option['type'] == 'checkbox') { ?> <?php if ($option['option_id'] == '13' || $option['option_id'] == '15') { ?> <div id="block1"> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <div id="input-option<?php echo $option['product_option_id']; ?>"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <div class="checkbox"> <label> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" /> <?php if ($option_value['image']) { ?> <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> <?php } ?> <?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label> </div> <?php } ?> </div> </div> </div> <?php } ?> <?php } ?> <?php if ($option['type'] == 'checkbox') { ?> <?php if ($option['option_id'] == '14') { ?> <div id="block2"> <div class="form-group<?php echo ($option['required'] ? ' required' : ''); ?>"> <label class="control-label"><?php echo $option['name']; ?></label> <div id="input-option<?php echo $option['product_option_id']; ?>"> <?php foreach ($option['product_option_value'] as $option_value) { ?> <div class="checkbox"> <label> <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" /> <?php if ($option_value['image']) { ?> <img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" class="img-thumbnail" /> <?php } ?> <?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>) <?php } ?> </label> </div> <?php } ?> </div> </div> </div> <?php } ?> <?php } ?> опции с указанным ID разделены и отображаются в разных блоках теперь переместим куда хотим к примеру опции в <div id="block2">....</div> где требуется вставим блок с уникальным классом...примерно так <div id="product"> <div id="block2_clone"></div> </div> </div> использую и <div id="product">, так как только в таком случае опции будут работать и учитываться при покупке ну и собственно скрипт для перемещения ( пишем над <?php echo $footer; ?> ) <script> $('#block2').appendTo( $('#block2_clone') ); </script> Результат достигнут.
-
Как в футере разбить статьи в разные колонки
Ну и для тех, кому в принципе нужно разбиение какого то длинного текста на колонки, можете применить column-count почитать можно тут
-
Как в футере разбить статьи в разные колонки
Недавно, согласно предоставленному макету нужно было разбить статьи в 2 разные колонки. ( предварительно убрав то что не нужно) Сайт был для предоставления услуг, то есть пункты подобные "Возврат товара" и прочие были упразднены и потому футер предполагалось переверстать и пересортировать пункты. Итак, не став сильно заморачиваться и принял решение использовать для этих целей сортировку статей. Для этого в catalog/view/theme/default/template/information/information.tpl Формируем первую колонку <?php if ($informations ) { ?> <div class="col-sm-4"> <h5>Название первой колонки с статьями</h5> <ul class="list-unstyled"> <?php foreach ($informations as $information) { ?> <?php if ($information['sort_order'] < 100 ) { ?> <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li> <?php } ?> <?php } ?> </ul> </div> <?php } ?> Пояснение: В данную колонку будут помещаться все статьи которым определено "отображать в футере" и номером сортировки менее 100 Формируем вторую колонку <?php if ($informations) { ?> <div class="col-sm-4"> <h5>Название второй колонки с статьями</h5> <ul class="list-unstyled"> <li><a href="/">Главная</a></li> <?php foreach ($informations as $information) { ?> <?php if ($information['sort_order'] > 100 ) { ?> <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li> <?php } ?> <?php } ?> <li><a href="<?php echo $sitemap; ?>"><?php echo $text_sitemap; ?></a></li> </ul> </div> <?php } ?> Пояснение: В данную колонку будут помещаться все статьи которым определено "отображать в футере" и номером сортировки более 100 Вот такое простенькое и возможно слегка костыльное решение для сайтов, где предполагается много статей, которые необходимо разместить в подвале сайта.
-
Как в Opencart настроить редирект с http на https
Иногда "слетают" стили на собственно сайте или затруднен вход в админку сайта (при отсутствии корректного отображения страницы входа) Костыль- но работает Прежде всего убедитесь, что вы подключили SSL сертификат на вашем серерве\хостинге, более подробно об этом вы можете узнать у своего хостинг-провайдера в службе поддержки. 1. Для начала, откройте панель управления вашим магазином и перейдите в раздел Система > Настройки > Редактировать Затем откройте вкладку "Сервер" и выберите Использовать SSL: (да) 2. Откройте файл config.php (который расположен в корневой директории вашего сайта) с помощью текстового редактора. Найдите строку: // HTTP define('HTTP_SERVER', 'http://site.ru/'); // HTTPS define('HTTPS_SERVER', 'http://site.ru/'); Замените эти строки как указано ниже: // HTTP define('HTTP_SERVER', 'https://site.ru/'); // HTTPS define('HTTPS_SERVER', 'https://site.ru/'); 3. Откройте файл admin/config.php и найдите строки: // HTTP define('HTTP_SERVER', 'http://site.ru/admin/'); define('HTTP_CATALOG', 'http://site.ru/'); // HTTPS define('HTTPS_SERVER', 'http://site.ru/admin/'); define('HTTPS_CATALOG', 'http://site.ru/'); Замените как указано ниже: // HTTP define('HTTP_SERVER', 'https://site.ru/admin/'); define('HTTP_CATALOG', 'https://site.ru/'); // HTTPS define('HTTPS_SERVER', 'https://site.ru/admin/'); define('HTTPS_CATALOG', 'https://site.ru/'); Сохраните файлы, этим самым мы обозначим доступность сайта по защищенному протоколу. p.s. 1. При данной правке учитывайте, что по окончанию действия сертификата Ваш сайт будет "криво" отображаться и нужно будет сделать "обратные" правки 2. Как правило после любых действий стоит очистить кеш изображений 3. Случается что картинки вставленные через текстовой редактор (описания, статьи и пр.) не отображаются - потребуется заново отредактировать вновь указав путь до картинки в менеджере изображений (или в режиме кода исправить путь до картинки с http на https)
-
Как в Opencart настроить редирект с http на https
Если вы подключили SSL сертификат, для того чтобы ваш магазин открывался по безопасному протоколу HTTPS рекомендуется настроить редирект с http:// на https:// Даже если пользователь наберет http://, его перенаправит на безопасный протокол https:// Изменения необходимо вносить в файл .htaccess Откройте для редактирования на вашем сервере через фтп-клиент или файл-менджер файл .htaccess, обычно он находится в корневой директории вашего сайта. После строки: RewriteEngine On Добавьте следующую запись: RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] Данное правило должно работать практически на любом хостинге, однако если у вас редирект не сработал, добавьте такую запись: RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] Сохраните файл, теперь редирект с протокола http на https готов.
-
Все картинки на сайте адаптивны
1. это пример (заготовка) скрипта который мною применялся в случае когда парсились товары с описанием в котором были изображения ( то есть они не вставлялись в ручную и потому им не задавались размеры в процентах, тем самым в мобильной версии появлялся горизонтальный скролл 2. предположим что Вы решили прикрутить к некоторым изображениям увеличение по клику не используя какие бы то ни было дополнения... само собой Вам нужно каждому изображению помимо подключения скрипта присвоить к примеру класс minimized этот скрит может стать основой и еще куча вариантов когда этот скрипт будет полезен в разработке... поверьте мне в своей работе я этот скрипт использую до сих пор регулярно а с теми картинками у которых есть уже такой класс...ни чего не случится страшного))) проверьте... ну и для перфекционистов не сложно понять, что можно указать точное вхождение указав родительский блок картинки, к примеру <script> $('#tab-description img').each(function() { /<- ТУТ указываем родительский блок изображения / $(this).addClass('img-responsive'); }); </script>
-
Вывод определенного количества атрибутов в категории и модулях
Начну с того, что в сети очень много решений по выводу атрибутов в категории и по аналогии в модулях. Как правило общепринято делать так Шаг первый В контроллерах : (category.php, compare.php, manufacturer.php, search.php, special.php) в массив после 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', вставляем 'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']), Шаг второй В файлах представления (tpl) там где необходимо <?php if($product['attribute_groups']) { ?> <?php foreach($product['attribute_groups'] as $attribute_group) { ?> <?php if(!strpos($attribute_group['name'], "—")) {?> <?php foreach($attribute_group['attribute'] as $attribute) { ?> <b><?php echo $attribute['name']; ?></b> <?php echo $attribute['text']; ?><br> <?php } ?> <?php } ?> <?php } ?> <?php } ?> Казалось бы все прекрасно и работоспособно... но когда оказывается что в разных товарах разное количество атрибутов и товары в списке категорий начинают "плясать" , уж не говорю, когда этих самых атрибутов у товара штук 20 ))) И вот начинают сыпаться вопросы: А как вывести определенные атрибуты или атрибуты из определенной группы атрибутов и пр.... и пр.... Естественно, мудрые люди начинают давать советы и инструкции по вытаскиванию групп атрибутов или самих атрибутов по ID (писать их не стану, найти в сети их не сложно). Сегодня я Вам поведаю dfv как просто и эфективно вывести определенное количество атрибутов (будь их хоть 100 у товара) Сразу предупреждаю, что никаких сортировок, выборок и прочего, тупо вывод определенного количества атрибутов. Итак, первый шаг мы делаем аналогично выше написанному А вот вместо кода во втором шаге - пишем вот такой код с счетчиком <ul class="atr"> <?php if($product['attribute_groups']) { ?> <?php $i = 0; ?> <?php foreach($product['attribute_groups'] as $attribute_group) { ?> <?php if(!strpos($attribute_group['name'], "—")) {?> <?php foreach($attribute_group['attribute'] as $attribute) { ?> <li><span class="text"><?php echo $attribute['name']; ?></span><span class="page"><?php echo $attribute['text']; ?></span></li> <?php $i++;?> <?php if($i > 3) { ?> <?php break 2; ?> <?php } ?> <?php } ?> <?php } ?> <?php } ?> <?php } ?> </ul> Обращаю внимание на эту строчку кода <?php if($i > 3) { ?> Вот тут как раз мы и задаем сколько мы будем отображать атрибутов... практика показала, что при указании <?php if($i > 3) { ?> Выведется 4 строчки атрибутов при <?php if($i > 2) { ?> Выведется 3 строчки атрибутов. Надеюсь, что логика ясна . Ну а остальное - только ваша фантазия и умелая рука верстальщика, для придания всему этому красивого и гармонирующего с вашим шаблоном сайта вида.
-
Показать/скрыть пароль
По дефолту в Опенкарте, как правило, при вводе данных в поле пароля, видны только точки. Вjзьму для примера форму регистрации на сайте: не очень удобно для Ваших пользователей сайта не правда ли? Этой задачей и озадачились мои заказчики и попросили сделать отображение/скрытие значения в поле пароля, ну что же... воспользуемся "жабаскриптом". *Покажу сразу готовую конструкцию: <input type="password" name="password" id="password-show" class="modal-input" value="" placeholder="<?php echo $popup_logreg_login_password_placeholder; ?>" /> <img class="show-password" src="catalog/view/theme/default/image/eyesi.png" alt="" title="Показать/скрыть пароль" /> тут для нас значимы и необходимы id="password-show" и class="show-password" (вы можете вставлять свои, но и по аналогии поменять то же самое в скрипте, который размещаете где нибудь в конце страницы: <script> var pass = $('#password-show'); $('.show-password').click(function() { pass.attr('type', pass.attr('type') === 'password' ? 'text' : 'password'); }); </script> ну и пропишем стили (само собой они у Вас будут свои, но даю для примера) .show-password { position: absolute; right: 25px; margin-top: -18px; cursor: pointer; } получаем поле + "глазик" жамкаем на "глазик и получаем отображение пароля жамкаем повторно и снова получаем точки вместо пароля...
-
Все картинки на сайте адаптивны
Можно конечно каждой картинке в текстовом редакторе в режиме "источник" прописывать class="img-responsive" конечно, можно, но зачем если эта "небольшая проблемка" решается несколькими строчками "жабаскрипта": <script> $('img').each(function() { $(this).addClass('img-responsive'); }); </script> *само собой вставляем его в конец кода подвала footer перед </body></html>
-
Фиксированное меню при прокрутке страницы
из новинок: приблуда фиксации блока при скролле средствами css position: sticky; (дочерний блок фиксируется в пределах родительского блока ) пример 1 прикрепить элемент к верхнему краю ./КЛАСС ФИКСИРУЕМОГО БЛОКА/) { position: sticky; position: -webkit-sticky;/* Safari */ top: 0; } пример 2 прикрепить элемент к нижнему краю ./КЛАСС ФИКСИРУЕМОГО БЛОКА/) { position: sticky; position: -webkit-sticky;/* Safari */ bottom: 0; }
-
Фиксированное меню при прокрутке страницы
На самом деле не так страшен черт как его малюют. Приступим: Для начала обернем блок ( я от балды просто обернул код вывода меню навигации) , который надо зафиксировать при прокрутке в <div id="scroll-menu" class="default"> ... </div> Далее пишем простой ""жабаскрипт" смены класса данного блока при определенном расстоянии <script> $(document).ready(function(){ var $menu = $("#scroll-menu"); $(window).scroll(function(){ if ( $(this).scrollTop() > 100 && $menu.hasClass("default") ){ $menu.removeClass("default").addClass("fixed"); } else if($(this).scrollTop() <= 100 && $menu.hasClass("fixed")) { $menu.removeClass("fixed").addClass("default"); } });//scroll }); </script> *тут 100 - это расстояние прокрутки вверх или вниз на 100px (шапки бывают разной высоты, поэтому полной универсальности не ждите... пропишите сколько нужно) вставляем этот скрипт в шапку перед </head> Ну и стиль для фиксированного блока: #scroll-menu.fixed{ position: fixed; top: 0; z-index:99; margin:auto; width: 100% } все, господа.... просто?
-
Разные шапки на главной и на других страницах
og_url – url адрес текущей страницы $home – переменная содержащая ссылку на главную страницу то бишь условие <?php if ($home == $og_url) { ?> условно переведем как, "если ссылка на страницу равна ссылке на главную страницу" при таком же условии, в дистрибутиве OcStore из коробки убирается ссылка на лого на главной странице ( ссылка на странице на саму себя). Но если Вам не нравится, "курите" так: <?php if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && $this->request->get['route'] == 'common/home')) { ?> <!-- здесь вставить что-то только для главной страницы --> <?php } else {?> <!-- здесь вставить что-то для всех остальных страниц, кроме главной --> <?php } ?>
-
Разные шапки на главной и на других страницах
Вариант 2 (полная замена шапки на главной) 1. Копируете в полном объеме header.tpl и обзываете его, к примеру header_home.tpl (естественно, в этом файле правим код под требуемый) грузим этот файлик туда же, где и первый в папку common 2.открываем файл контроллера header.php и там меняем это if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) { $this->template = $this->config->get('config_template') . '/template/common/header.tpl'; } else { $this->template = 'default/template/common/header.tpl'; } на это if (!isset($this->request->get['route']) || (isset($this->request->get['route']) && ($this->request->get['route'] == 'common/home'))) { if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header_home.tpl')) { $this->template = $this->config->get('config_template') . '/template/common/header_home.tpl'; } else { $this->template = 'default/template/common/header_home.tpl'; } } else { if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) { $this->template = $this->config->get('config_template') . '/template/common/header.tpl'; } else { $this->template = 'default/template/common/header.tpl'; } } 3. идем далее в home.tpl там меняем <?php echo $header; ?> на это <?php echo $header_home; ?> Теперь у нас на главной своя шапка, отличная от шапки всех остальных страниц
-
Разные шапки на главной и на других страницах
Вариант1 (стандартный) Приступим к несложным махинациям и переоденем шапочку сайта других страниц кроме главной. К примеру нам нужно изменить контент в пределах <header>....</header> Идем по пути catalog/view/theme/default/template/common/header.tpl ищем <header> и перед ним вставляем <?php if ($home == $og_url) { ?> далее ищем </header> и после него вставляем <?php } else { ?> <header> Тут какой то новый контент </header> <?php } ?> *SeoPro в настройках должно быть включено обязательно! После проделанных манипуляций кэш естественно обновляем
-
ОБЩЕЕ КОЛИЧЕСТВО ТОВАРА В МАГАЗИНЕ
Решение простое как три рубля ( три строчки кода) итак приступим, разместим, к примеру в шапке сайта в catalog/controller/common/header.php $result = $this->db->query("SELECT COUNT(*) AS `count` FROM `" . DB_PREFIX . "product` WHERE `status` = 1"); $data['products_total_count'] = $result->row['count']; в catalog/view/theme/default/template/common/header.tpl там где хотим: <div class="statistikblock"> В настоящий момент в магазине: <span class="statistik"><?php echo $products_total_count; ?></span> товаров </div> p.s. Естественно что это упрощенный вариант для понимания и при мультиязычности сайта все тексты должны выводится языковыми переменными
-
Выделяем цену товара
Иногда дизайнеры "хохмят" и требуется выделить цену, оставив собственно валюту обычным шрифтом. На просторах форума и инета предлагают лезть в БД и вставлять в таблицу теги.... я б не стал ))) Вставим простой скриптик в footer.tpl <script> (function($) { $.fn.paintFirstWord= function(font) { var str = this.text(); var splited = str.split(' '); var replaced = str.split(splited[0]).join('<span style = "font-weight:'+font +';">'+splited[0]+'</span>'); this.html(replaced); }; $('.price').each( function() { $(this).paintFirstWord('700'); }); }); </script> Немного разжую чего к чему: font - это наша переменная которой мы что то там зададим в $(this).paintFirstWord(' что то тут свое '); p.s. В моем случае это - 700 $('.price').each( function() { - тут прописали класс в котором к первому элементу применится наш интегрируемый стиль p.s. В моем случае это - .price <span style = "font-weight:'+font +';">'+splited[0]+'</span> - тут пропишем интегрируемый стиль p.s. В моем случае это - font-weight: Теперь, когда Вы разобрались со скриптом, можно дерзать)))
-
Запрет на добавление в корзину товара больше чем в наличии
- Вопрос по повреждённой таблице базы данных mysql
изменил с 64 на 255 ScreenRecorderProject2.mp4- Переход на шаблон Revolution
Все будет работать так же... не переживайте Если код счетчика Вы размещали не модулем, а напрямую кодом в файл footer, то просто перенесите его в код подвала нового шаблона- Переход на шаблон Revolution
не думаю что чем то повредит смена шаблона, база данных, в том числе все данные останутся неизменными, а значит в полной работоспособности. Вы не меняете сайт, Вы меняете лишь "оболочку" (по простому - одеваете на нее другую одежку) Примерные действия: 1. Отключаем все ocmod относящиеся к шаблону ( проверям на их наличие папку system (используйте FTP) - комментируем (к примеру переименовываем файл и ставим в конце плюсик) 2. Отключаем шаблон в настройках магазина 2. Устанавливаем новый шаблон.... заходим в шаблоны и устанавливаем его по умолчанию 3. Обновляем кеш модификаторов и проверяем работоспособность Примечание: Только когда Вы убедитесь что все установилось и работает как часики... можете удалять предыдущий шаблон по FTP ( или оставить отключенным) Возможные баги или последствия Какие то модули шаблона, жестко привязанные в настройках самого шаблона могут перестать работать... потому придется восстанавливать этот функционал путем реализации их же средствами нового шаблона ( но в теме Rapid такого точно нет (кроме кнопок соцсетей в подвале сайта)...потому тут беспокоится не стоит) Небольшая хитрость))) Если с предыдущим шаблоном были установлены какие то "свободные" (не привязанные) к шаблону дополнения и модули, то скорее всего они будут работоспособными...максимум - могут слететь стили, если они прописаны в одном файое стилей с стилями шаблона.... Ну и при использовании каких либо скриптов они так же могут размещаться в папке с шаблоном... потому некоторые правки для сохранения таких модулей возможно потребуются ( перенос папки с скиптами в папку с шаблоном или в дефолт + правка путей к ним в контроллерах или непосредственно в вьюхах ( зависит от того куда их сунул разраб старого шаблона) p.s. Все что описал относится к любой замене любого шаблона...с конкретно взятым "устаревшим" и "уставшим" шаблоном, такого не случится... он практически перекрашенный и чуть доработанный дефолт - потому и бесплатный изначально.- Боковое меню для мобильной версии сайта
Просмотр файла Боковое меню для мобильной версии сайта Адаптивное многоуровневое меню для любого сайта. Вы сможете создать на своем сайте не только удобное, но и понятное меню, рассчитанное для всех устройств Вы сможете создать на своем сайте не только удобное, но и понятное меню, рассчитанное для всех устройств Реализовано на основе jquery и адаптировано для ОС На данный момент реализован вывод категорий/подкатегорий до 4-х уровней вложенности, при необходимости можно добавить и другие пункты. Может применяться не только для мобильной версии, но и для "супердлинных" списков категорий Используется ocmod. Установка через менеджер дополнений - стандартно. *тестировалось на дефолте, для шаблонов возможны мелкие правки и адаптация Добавил admin Добавлено 24.03.2022 Категория Меню, дизайн, внешний вид - Вопрос по повреждённой таблице базы данных mysql