Нужны хуки product_before_save и category_before_save

2

Нужны хуки product_before_save и category_before_save :)

Недостатком существующих хуков product_save и category_save является то, что они вызываются после изменения и узнать предыдущее состояние возможно только храня это состояние где-то еще (по сути копия базы товаров/категорий).

Например, в Битрикс, почти всегда есть события с приставкой before и after. Естественно, события before нужны для получения результатов операции, а after для того, чтобы иметь возможность манипулировать входными данными или прервать операцию.

8 комментариев

  • +1
    ITFrogs ITFrogs 14 октября 2015 16:23 #

    А если еще нет айдишника?

    • +1
      creativit.ru creativit.ru 15 октября 2015 00:27 #

      Если еще нет айдишника, то можно только манипулировать входными данными нового товара/категории, например, заменить по своим правилам url, title, и прочие входные данные без лишнего запроса к БД.

      Но зато если есть ID, тогда можно воспользоваться последним шансом получить текущее состояние товара, а также предотвратить какие-то изменения, в том числе и через импорт.

      • +1
        ITFrogs ITFrogs 15 октября 2015 02:57 #

        Я их, с одной стороны, понимаю. Разработчики вебасист как бы всегда в окружении врагов. Представьте себе, что вы впустили стадо обезьян в посудную лавку и пытаетесь объяснить им, чтобы не не трогали наборы из античных ваз династии Мин.

        Представили?

        А теперь представьте, что у каждой обезьяны в руках по дробовику.

        Примерно по тем же причинам они не хотят давать нам доступ к подобным вещам. Хотя это дало бы огромные возможности для всех.

        • +1
          creativit.ru creativit.ru 15 октября 2015 03:00 #

          Понимаю. Но тогда получат "троянского коня" ))) то есть в своем плагине я вынужден буду создать копии таблиц по товарам и категориям. Чтобы иметь возможность сравнивать "было - стало".

          • +1
            ITFrogs ITFrogs 15 октября 2015 03:29 #

            Вы посоветуйтесь сначала более детально. Может чего дельного подскажут. Такую монструозную конструкцию точно не пропустят.

            • +1
              creativit.ru creativit.ru 15 октября 2015 03:33 #

              Так вот я и прошу.....дайте новые хуки ))))) пусть даже без вмешательства в данные. Перед изменением, я получу ID товара/категории закину в глобальную переменную нужные мне данные, а уже на хуке product_save проведу сравнение.

            • +1
              Евгений Леман Евгений Леман 15 октября 2015 05:29 #

              Такой "хук" можно и самому сделать, добавив в форму редактирования скрытые поля, значение которых будет равно оригинальным. И уже в хуке сравнивать hidden_title c title из post/instance.

              • +1
                creativit.ru creativit.ru 15 октября 2015 05:40 #

                Евгений, это конечно замечательно, но не будет работать при импорте через CSV :)

                Добавить комментарий

                Чтобы добавить комментарий, зарегистрируйтесь или войдите