Модуль Полезные модификации Prestashop 1.7

fortuner

Хранитель порядка
Регистрация
26 Июн 2012
Сообщения
631
Реакции
1.238
Делимся полезными модификациями, хаками, допиленными модулями (или самописными) для Prestashop 1.7.
Предлагаю скопировать правила из темы модулей Prestashop, чтобы в теме было проще ориентироваться.
Правила:
1. Увидели чужую ошибку - исправьте :)
2. Запросы "а сделайте мне то-то" пожалуйста пишите в тему "Помощь с Prestashop".
3. Не спамьте, пусть раздел будет соответствовать своему названию :)
4. Не пишите "спасибо, должен навеки вечные!", просто нажмите "спасибо".
 
override/classes/order/

добавить этот файл Для просмотра ссылки Войди или Зарегистрируйся
А точно работать будет? Ведь в 1.7 согласно официальной информации не работают оверрайды для классов, в которых используются пространства имен. А в Order.php мы видим use PrestaShop\PrestaShop\Adapter\ServiceLocator;

Или разработчики передумали и переиграли правила начиная с какой-то версии?

UPD: вопрос снимается :) похоже имелся в виду путь от папки модуля, а не от обычного /override/ с корня сайта.
 
Последнее редактирование:
Трехсекундное дело же!
Код:
<?php
class Order extends OrderCore{
    public static function generateReference()
    {
        $id = Db::getInstance()->getValue('SELECT MAX(id_order)+1 FROM '._DB_PREFIX_.'orders');
        $id_len = strlen($id);
        return str_repeat('0',(9-$id_len)).$id;
    }
}
Я у себя сделал дату в формате ДДММГГ_(пара случайных букв)
И пользователю легко эту конструкцию прочитать и продиктовать, и кулхацкеры не смогут посмотреть данные заказов, просто перебирая ID.
И мне ориентироваться проще - дата заказа тут же.
 
Я у себя сделал дату в формате ДДММГГ_(пара случайных букв)
Это хороший вариант. Из плюсов: повторные заказчики не смогут, исходя из нумерации своих заказов, вычислить примерное количество заказов в магазине в день.
Из минусов: я бы сделал формат даты ГГММДД, т.к. в этом случае можно легче отсортировать хронологически заказы. Конечно, это можно сделать, сортируя другие колонки (Id, дата заказа), но может где-то пригодиться.

Есть вопросы:
1. Случайный набор букв не повторяется?
2. Можно использовать после даты случайный неповторяющийся набор трех цифр? Как будет в этом случае выглядеть конструкция ГГММДД_наборизтрехцифр? Дело в том, что использование букв также считаю минусом. Например, "ор" некоторые заказчики будут произносить как русские "о" и "р". Другие, как латинские "оу" и "пи". Да и при торговле одновременно с забугорьем + Россия цифры будут универсальным понятным всем решением.

Приведите, пожалуйста, Ваш вариант оверрайда для ГГММДД_наборизтрехцифр.
 
Последнее редактирование:
Я у себя сделал дату в формате ДДММГГ_(пара случайных букв)
И пользователю легко эту конструкцию прочитать и продиктовать, и кулхацкеры не смогут посмотреть данные заказов, просто перебирая ID.
И мне ориентироваться проще - дата заказа тут же.
а случайные буковки каким методом добавляете?
 
Присоединяюсь к вопросу, может расскажете как настраивать варианты нумерации заказов, мне, например, очень хотелось бы видеть просто случайную цифру пятизначную.
а случайные буковки каким методом добавляете?
 
Присоединяюсь к вопросу, может расскажете как настраивать варианты нумерации заказов, мне, например, очень хотелось бы видеть просто случайную цифру пятизначную.
Это хороший вариант. Из плюсов: повторные заказчики не смогут, исходя из нумерации своих заказов, вычислить примерное количество заказов в магазине в день.
Из минусов: я бы сделал формат даты ГГММДД, т.к. в этом случае можно легче отсортировать хронологически заказы. Конечно, это можно сделать, сортируя другие колонки (Id, дата заказа), но может где-то пригодиться.

Есть вопросы:
1. Случайный набор букв не повторяется?
2. Можно использовать после даты случайный неповторяющийся набор трех цифр? Как будет в этом случае выглядеть конструкция ГГММДД_наборизтрехцифр? Дело в том, что использование букв также считаю минусом. Например, "ор" некоторые заказчики будут произносить как русские "о" и "р". Другие, как латинские "оу" и "пи". Да и при торговле одновременно с забугорьем + Россия цифры будут универсальным понятным всем решением.

Приведите, пожалуйста, Ваш вариант оверрайда для ГГММДД_наборизтрехцифр.
Максимум 9 знаков, т.к. в БД поле длиной 9 байт :)
Поэтому только две буквы и формат даты ДДММГГ (а не к примеру дд.мм.ГГГГ)
Вот код:
Код:
<?php

class Order extends OrderCore
{
    public static function generateReference()
    {
        return strtoupper(date("dmy").'_'.strtoupper(Tools::passwdGen(2, 'NO_NUMERIC')));
    }
}
Вот это:
Код:
Tools::passwdGen(2, 'NO_NUMERIC')
Создает случайный набор из двух букв.
Чтобы были просто цифры, замените NO_NUMERIC на NUMERIC.
Формат даты:
d - день
m - месяц
y - год
Можно менять в любом порядке.
@Kolfg , чтобы покупатели не говорили английские буквы русскими названиями, можно дать четкое указание, что эти буквы - английские :) А то да, начнется "эс как доллар" и "эф жирафчиком":D
Например, перед двумя случайными буквами вставить явно английскую: Q, W, Z, L и т.п.
Тут уже только исключительно тупой начнет говорить "кью, потом русская эр, потом опять английская цэээ"
Но помним про девять байт
 
Последнее редактирование:
HOW-TO Add FREE and fully working Facebook messenger on 1.7.3

1. Go to your facebook page settings > Messenger platform and ADD your website URL to Whitelisted domains.
2. Find your facebook numeric page ID at Для просмотра ссылки Войди или Зарегистрируйся and replace "YOUR_ID" with numeric.
3. Put code to "/public_html/themes/your_theme/templates/_partials/" header.tpl or toofer.tpl

Код:
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = 'https://connect.facebook.net/ru_RU/sdk.js#xfbml=1&version=v2.12&autoLogAppEvents=1';
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-customerchat"
  attribution="setup_tool"
  page_id="YOUR_ID">
</div>

Enjoy :)
 
Интересно, а как выглядит это в живую на сайте? Есть примеры?
That's interesting, how it looks live on the site? Any examples?

Here stoled sample from web :) mine under construction, but its AWESEOME. It can be customized a bit. Facebook chat logo same as on mobile messenger - easy to understand and use.
 

Вложения

  • MessengerCustomerChatConversationWindow.jpg
    MessengerCustomerChatConversationWindow.jpg
    30,8 KB · Просмотры: 132
Вот мое решение, работает железобетонно:

Кнопка "купить" в категории товаров
В файле templates\catalog\_partials\miniatures\product.tpl в нужном месте добавить код.
Код:
            <div class="cart-buttons">
                <form action="{$urls.pages.cart}" method="post" class="form-product-listing-qty">
                    <input type="hidden" value="{$product.id_product}" name="id_product">

                    {* Вот эта строчка нужна *}
                    {if $static_token}<input type="hidden" name="token" value="{$static_token}">{/if}
                     {* Конец нужной строчки *}

                    <input
                        type="number"
                        class="input-group form-control product-listing-qty"
                        aria-label="{l s='Quantity' d='Shop.Theme.Actions'}"
                        value="1" min="1" name="qty">
                    <button
                        data-button-action="add-to-cart"
                        class="btn btn-primary"
                        aria-label="{l s='Add to cart' d='Shop.Theme.Actions'} {$product.name}"
                        title="{l s='Add to cart' d='Shop.Theme.Actions'} {$product.name}">
                        {l s='Add to cart' d='Shop.Theme.Actions'}
                    </button>
                </form>
            </div>
Доброго времени! Во-первых хочу выразить благодарность, за то, что вы помогаете новичкам создать без профессиональных навыков рабочий магазин, у меня вопрос: вставил код но результат получился не такой какой ожидал, подскажите пожалуйста что не так сделал
 

Вложения

  • 1.jpg
    1.jpg
    50,9 KB · Просмотры: 135
Последнее редактирование:
Назад
Сверху