Права публикации в ветках тикетов

Василий, как будет минута — расскажи, как мне отследить по твоим функциям в default.js общую сумму заказа и если она меньше n, вывести предупреждение? И на сколько это правильно? Скрипт придется перезаписывать и заменять на свой, а значит не увижу обновлений. Подскажи наиболее правильное решение, чтобы не оставаться без апдейтов.

Заранее благодарен.
Wassi Wassinen
23 февраля 2014, 22:50
modx.pro
1
856
0

Комментарии: 11

Aртур Чикин
24 февраля 2014, 08:27
0
Подскажи наиболее правильное решение, чтобы не оставаться без апдейтов.
Скопируй скрипт default.js в свою папку. Перейди в Система -> Настройки системы -> Отфильтруй настройки по minishop2 -> Найди системный ключ ms2_frontend_js и замени в нем путь до скопированного default.js. Например:
/assets/templates/mytemplate/js/ms2/default.js
и изменяй этот скрипт не боясь обновлений.


если она меньше n, вывести предупреждение
Если это предупреждение не мешает оформлению заказа, то хватит и js, но если из за этого предупреждения нельзя будет оформить заказ, то нужны правки и в php.
    Wassi Wassinen
    24 февраля 2014, 13:13
    0
    Скопируй скрипт default.js в свою папку. Перейди в Система -> Настройки системы -> Отфильтруй настройки по minishop2 -> Найди системный ключ ms2_frontend_js и замени в нем путь до скопированного default.js. Например:
    /assets/templates/mytemplate/js/ms2/default.js и изменяй этот скрипт не боясь обновлений.
    Угу, спасибо. И если в новой версии default.js поменяется и добавятся какие-либо полезности, то я этих обновлений не увижу.

    Если это предупреждение не мешает оформлению заказа, то хватит и js, но если из за этого предупреждения нельзя будет оформить заказ, то нужны правки и в php.
    Это предупреждение мешает. :) Оно не дает сформировать заказ, если сумма меньше n.
      Aртур Чикин
      24 февраля 2014, 14:10
      0
      Угу, спасибо. И если в новой версии default.js поменяется и добавятся какие-либо полезности, то я этих обновлений не увижу.
      Так тебе по любому придется подгонять свой скрипт под обновления, или отказаться от данной задумки.
    Василий Наумкин
    24 февраля 2014, 14:25
    0
    Это нужно делать в собственном классе оформления заказа, а не в javascript.

    Иначе любой желающий обойдёт твоё предупреждение. Я бы добавил проверку в метод submit().
      Wassi Wassinen
      24 февраля 2014, 16:24
      0
      Спасибо! :) Как я понимаю, кастмизировать нужно это — core/components/minishop2/model/minishop2/msorderhandler.class.php? Проверку лучше добавить на числовое значение возвращаемое total_cost?
        Василий Наумкин
        24 февраля 2014, 16:29
        0
        Нужно создать свой класс, который унаследует дефолтный, указать его в настройках, а там уже делай что хочешь и спокойно обновляйся.

        Логика примерно та же, что и при расширении класса фильтрации mSearch2.
          Wassi Wassinen
          24 февраля 2014, 16:35
          0
          Василий, м.б. я тебе на хороший коньяк спортивный рацион переведу денег за подробный пример? :)
            Василий Наумкин
            24 февраля 2014, 16:44
            0
            yadi.sk/d/hZoOCTKHJTETz

            Всё тоже самое, только для ms2_order_handler_class и поправками на пути для файлов.

            В своём классе пишешь
            <?php
            
            class MyOrderHandler extends msOrderHandler {
            	
            	public function submit($data = array()) {
            		return $this->error('Ошибка!!!');
            	}
            	
            }
            Если файл положен в правильное место и твой класс MyOrderHandler указан в настройках, то ты на каждый заказ будешь получать ошибку.
              Wassi Wassinen
              24 февраля 2014, 17:14
              0
              Благодарю. В переменной $data возвращаются все результаты заказа? Чтобы мне сравнить с ценой, нужно вытащить её из массива?
                Wassi Wassinen
                24 февраля 2014, 18:23
                0
                Рацион во сколько оцениваешь? Готов проспонсировать здоровый образ жизни в двойном размере за готовое решение. :)
                  Василий Наумкин
                  24 февраля 2014, 19:07
                  0
                  Какое готовое решение? Это система расширения miniShop2 специально для программирования уникальной логики проекта.
                  То есть, это система не готовых, а индивидуальных решений.

                  Если вот прям сильно надо и самостоятельно не получается, напиши сейчас на bezumkin@yandex.ru доступы и что именно нужно — помогу, пока время есть.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        11