• Как узнать какие файлы сжаты lzx сжатием?

    IvanIlyasov
    @IvanIlyasov Автор вопроса
    Познаю мир
    Total Commander > Поиск файлов > Плагины.
    Плагин: dirsizecalc
    Поле: Compression Ratio
    Операция: <
    Значение: 100

    Альтернативный вариант через bat-ник (нашел на просторах, не проверял):
    compressedfiles.bat
    @ECHO OFF
    CD "C:\Some Folder\"
    ECHO Listing NTFS compressed files:
    for /F "delims=" %%a in ('DIR /A-D/B') do @(
     compact /A /I "%%a" | findstr /R ^................................C
    )
    for /F "delims=" %%a in ('DIR /AD/B/S') do @(
     for /F "delims=" %%b in ('DIR /A-D/B "%%a"') do @(
      ECHO Listing NTFS compressed files on: "%%a\"
      compact /A /I "%%a\%%b" | findstr /R ^................................C
     )
    )

    Далее распаковать можно с помощью CompactGUI
    Ответ написан
    Комментировать
  • Как переопределить контроллер модуля в Presta Shop?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Вот тут подробно расписано и показано на видео:
    nemops.com/overriding-modules-controllers-in-prest...
    Ответ написан
    Комментировать
  • CSS 2 столбца. Один динамический, второй статический?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Внятного ответа нет.
    Поискал в буржунете, нашел, то что нужно и прямо по теме:
    "Блок фиксированной ширины вместе с адаптивным блоком"

    Один блок стоит на месте, второй меняет ширину.

    Фиксированный блок с правой стороны: https://codepen.io/kanishkkunal/pen/MYKmbe
    Фиксированный блок с левой стороны: https://codepen.io/kanishkkunal/pen/ZBmrGx

    fixed-width-sidebar-layout.pngВзято отсюда: https://superdevresources.com/fixed-width-sidebar/
    Ответ написан
    Комментировать
  • Угловая рамка. Как сделать чтобы небольшая рамка была только по углам div-а?

    IvanIlyasov
    @IvanIlyasov Автор вопроса
    Познаю мир
    Нашел отличное решение тут: https://stackoverflow.com/questions/15414375/how-t...
    Пример: https://jsfiddle.net/t80ve4xn/
    Ответ написан
    Комментировать
  • Как в PrestaShop создать купон/ваучер через API?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Как пример:
    $cart_rule = new CartRule();
                $cart_rule->code = $discountCode;
                foreach (Language::getLanguages(false) as $language)
                $cart_rule->name[$language['id_lang']] = Configuration::get('COUPON_DESC');
                $cart_rule->id_customer = (int)$customer->id;
                $cart_rule->free_shipping = false;
                $cart_rule->quantity = 1;
                $cart_rule->quantity_per_user = 1;
                $cart_rule->reduction_currency = (int)$this->context->cart->id_currency;
                $cart_rule->reduction_percent = Configuration::get('COUPON_DISCOUNT');
                $cart_rule->date_from = date('Y-m-d H:i:s', time());
                $cart_rule->date_to = date('Y-m-d H:i:s', time() + (3600 * 24 * Configuration::get('COUPON_DAY')));
                $cart_rule->active = 1;
    
            if ($cart_rule->add())
            {
                Mail::Send(Configuration::get('PS_LANG_DEFAULT'), 'coupon', 'Вам купон на скидку', array('{shop_name}' => Configuration::get('PS_SHOP_NAME'), '{firstname}' => $customer->firstname, '{lastname}' => '', '{email}' => $customer->email, '{code}' => $discountCode), $customer->email, NULL, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/');
                die(true);
            }
    Ответ написан
  • Почему после изменения css в prestashop не применяются стили?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Если вы редактируете css-файлы модуля. То они могут быть переопределены вашим шаблоном.
    /ваш_сайт/themes/ваш_шаблон/modules/модуль/templates/css/css-файл.css
    Ответ написан
    Комментировать
  • Как правильно подключить смс оповещение к сайту?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Лучше установите специальный модуль. Их достаточно много.
    Например: www.presta-sms.com/ru/index.html (в Украине тоже работает)
    Ответ написан
    Комментировать
  • Как понять какой шаблон использован модулем?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Обычно в
    your_site/modules/your_module/views/templates/front/

    или бывает переопределено в теме: your_site/themes/your_theme/modules/your_module/

    Чтобы узнать какой файл нужен (стопудовый способ):
    1. Cкачиваете модуль на комп
    2. Устанавливаете программу Folder Find Text (или подобную, эта под Windows прога)
    3. Заходите на ваш сайт (желательно через Chrome)
    4. Наводите мышью на вашу корзину
    5. Кликаете Правой кнопкой мыши > Посмотреть код
    6. Копируете название id или class-а данного элемента и ищите в папке модуля с помощью Folder Find Text.
    7. Всё. Программа нашла нужный файл (или несколько)
    8. С помощью Notepad++ (или подобной) открываете файл/файлы по очереди
    9. Ищите всё то же название id или class-а через поиск (Ctrl+F) и сопоставляете с тем, что вы видите в "Инструменте разработчика Chrome"
    Ответ написан
    Комментировать
  • Как подключить плагин jQuery в Prestashop 1.6?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Да в header-е тоже можно, только обрамите ваш код в
    {literal}
    ваш код
    {/literal}
    Ответ написан
    Комментировать
  • Font Awesome. Почему осталась старая иконка или почему не очищается кэш шрифтов?

    IvanIlyasov
    @IvanIlyasov Автор вопроса
    Познаю мир
    На самом деле получилось так, что два раза подключался шрифт и во втором случае со старой версией.
    Ответ написан
    Комментировать
  • Как в Smarty округлить число в бОльшую сторону до одной десятичной?

    IvanIlyasov
    @IvanIlyasov Автор вопроса
    Познаю мир
    2 часа искал, в итоге, задал вопрос и за 15 минут сам догадался:
    {(($number/0.1)|ceil)*0.1}
    Ответ написан
    Комментировать
  • Как сделать скидку при покупке нескольких товаров в PrestaShop?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Только искать подходящий модуль или писать свой. Такого в стандартном функционале Престы нет.
    Ответ написан
    Комментировать
  • Как отключить модуль на всех страницах, кроме главной в Prestashop?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Странно. То, что вы выше написали, должно работать.
    Ну.. попробуйте так:
    {if $smarty.server.REQUEST_URI == '/'}
           . . .
    {/if}

    А вообще, узнайте свой "пейдж нейм".
    Добавьте в tpl-файл переменную{$page_name} и перейдите на главную.
    Должно быть написано INDEX, тогда
    {if $page_name == 'index'}
           . . .
    {/if}
    должно работать.

    Если будет другое значение, тогда его и пропишите в tpl-файле:
    {if $page_name == 'ваше_значение'}
           . . .
    {/if}
    Ответ написан
    5 комментариев
  • Что не так с картинками PrestaShop?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Отключите ЧПУ. Вкладка: "Настройки" > "SEO и URL".
    После сделайте перегенерацию, но возможно, не понадобится.

    Если появятся изображения, то пинайте хостера, проблема на их стороне.

    Update:
    Была такая проблема, если на сервере был утановлен nginx. Используйте apache.
    Ответ написан
    1 комментарий
  • Почему возникает friendly-url-autogeneration-failed при генерации ЧПУ?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    У вас что-то не так с csv-файлом импорта. Например, где-то присутствуют невидимые символы. Нужно чистить файл импорта и проверять на наличие всякой нечисти.
    Ответ написан
  • Как обойти проблему при переносе сайта с хоста на локалку?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Чтобы перенести Prestashop-сайт с хостинга на локалку. Надо сделать следующее:
    1) Очищаем кэш.
    Заходим в /prestashop/cache/smarty/cache и удаляем всё, кроме index.php и last_template_flush.
    Заходим в /prestashop/cache/smarty/cache/compile и удаляем всё, кроме index.php и last_flush.
    Заходим в /prestashop/themes/ваша_тема/cache и удаляем всё, кроме index.php.
    2) Меняем домен в БД.
    Меняем либо через текстовый редактор, либо заранее в phpMyAdmin.
    Таблица ps_shop_url колонки domain и domain_ssl. Меняете домен на localhost (без http:// и других лишних символов.)
    3) Меняем пути к БД в файле конфигурации.
    Открываем в текстовом редакторе /prestashop/config/settings.inc.php
    и меняем на следующее:
    define('_DB_SERVER_', 'localhost');
    define('_DB_NAME_', 'prestashop'); //название БД на локалке
    define('_DB_USER_', 'root'); //ваш логин к БД а локалке
    define('_DB_PASSWD_', '123'); //пароль к БД на локалке

    Если имя сервера отличается от localhost, то его нужно поменять на это значение.
    4) Загружаем на локальный сервер БД и и файлы сайта.
    5) Заходим в админку (в данном случае localhost/admin3200), вводим логин и пароль админа.
    6) Идем в Расширенные параметры >> Производительность, передергиваем Оптимизация Apache (выкл >> Сохранить, вкл >> Сохранить), тем самым обновляем .htaccess.
    Всё.

    Чтобы перенести обратно на хостинг, надо проделать всё тоже самое, только в конце еще один пункт:
    7) Идем в Настройки >> SEO и URL >> внизу страницы кнопка "Генерировать Robots.txt"
    Ответ написан
    Комментировать
  • Как правильно сделать редирект в Prestashop?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Начну с того, что так уж повелось, что в Престашоп, обычно, страницы оканчиваются без слеша.
    Так что, проверьте свои модули и сделайте так, чтобы они делали страницы без слеша на конце.

    Если всё-таки нужно сделать со слешем какую-то определенную статическую страницу, да так, чтобы не было дублей, то добавьте в .htaccess строку 301-ого (полного) редиректа для этой страницы:
    Redirect 301 /module /module/
    и чтобы эта запись не сбивалась при обновлении кеша, в файле ../ваш_сайт/classes/Tools.php
    найдите запись: fwrite($write_fd, "</IfModule>\n\n");(или подобную, примерно на 2500 строке).
    Ниже нее вставьте:
    fwrite($write_fd, "Redirect 301 /module /module/\n");


    Update:
    Придумал более глобальный и правильный вариант через mod_rewrite:
    в файле ../ваш_сайт/classes/Tools.php
    находим запись:
    fwrite($write_fd, 'RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]'."\n\n");

    после нее вставляем:
    fwrite($write_fd, "RewriteCond %{REQUEST_URI} ^/module$\n");
    fwrite($write_fd, "RewriteRule .+ ".(Configuration::get('PS_SSL_ENABLED') ? 'https://' : 'http://')."".$domain."/module/ [R=301,L]\n\n");

    Обновляем .htaccess передергиванием переключателя "Оптимизация Apache" в "Расширенные настройки >> Производительность"
    Ответ написан
    Комментировать
  • Перестали работать способы доставки и оплаты, какие файлы отвечают за это в PRESTASHOP?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    "Нет доступных способов доставки" может высвечиваться если для данного способа доставки нет подходящей цены, или подходящих способов оплаты. Перепроверьте зависимость доставки от оплаты. То есть есть ли для данного диапазона цен доставка.
    Второе - пошаманить с зонами и регионами.
    Возможно, где-то в способах доставки указан, например, вес. И способ доставки зависит от веса.
    Вот тут кое что есть.

    Файлы:
    \controllers\admin\AdminCarriersController.php
    \controllers\admin\AdminShippingController.php
    \controllers\front\OrderController.php
    \classes\Carrier.php
    \classes\Cart.php
    Возможно, это не всё.

    Также не забывайте проверять, аккаунт с которого вы делаете заказ. Какая там установлена страна.
    Ответ написан
    Комментировать
  • Как поставить принудительную стоимость доставки?

    IvanIlyasov
    @IvanIlyasov
    Познаю мир
    Изменяя настройку бесплатной доставки в "Перевозчики" >> "Настройки" Вы задаете параметры для всех способов доставки, когда либо созданных. Верните настройки по умолчанию.
    И настройте правильный диапазон для каждого способа доставки отдельно.
    В одном из способов доставки, в шаге "Место и стоимость доставки" (по-моему 2-й шаг при создании/изменении способа доставки) выберите:
    ☑ "В соответствии с общей ценой."
    Будет применено если цена >= (больше или равно): 1 руб.
    Будет применено если цена < (меньше чем): 20000 руб.
    Europe (non-EU) (в эту зону входит Россия): 200 руб. (или сколько там у Вас доставка стоит)
    Потом добавляете еще один диапазон, нажав на кнопку "Добавить новый диапазон", и выбираете:
    Будет применено если цена >= (больше или равно): 20000 руб.
    Будет применено если цена < (меньше чем): 9999999 руб.
    Europe (non-EU) : 0 руб. (то есть бесплатно)
    Всё. Теперь для данного способа доставки у Вас будет так:
    Если в корзине товара меньше чем на 20000 то, доставка платная (в данном случае - 200 руб.), если больше 20000, то бесплатно.

    По аналогии настраиваете другие способы доставки.
    В вашем случае второй способ доставки будет с одним диапазоном:
    Будет применено если цена >= (больше или равно): 1 руб.
    Будет применено если цена < (меньше чем): 9999999 руб.
    Europe (non-EU): 300 руб. (или сколько там у Вас доставка стоит)

    Также, если Вы работаете не только по России, то не забывайте назначать цены и для других зон (и регионов).
    Настройка зон и регионов это уже отдельная тема.
    Ответ написан