Цена в зависимости от условий — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «== Задача: == В интернет-магазине цена должна быть в зависимости от каких-то условий. == Реше…»)
 
Строка 7: Строка 7:
 
1. Нужно написать обработчик события. Более подробную информацию о событиях Вы можете прочитать здесь http://api.umi-cms.ru/events.html
 
1. Нужно написать обработчик события. Более подробную информацию о событиях Вы можете прочитать здесь http://api.umi-cms.ru/events.html
 
Вам необходимо создать в файл classes/modules/catalog/custom_events.php. В нём прописать следующий код:
 
Вам необходимо создать в файл classes/modules/catalog/custom_events.php. В нём прописать следующий код:
 +
 
  <?php
 
  <?php
 
     new umiEventListener("umiObjectProperty_loadPriceValue", "catalog", "onLoadPriceHandler");
 
     new umiEventListener("umiObjectProperty_loadPriceValue", "catalog", "onLoadPriceHandler");
 
  ?>
 
  ?>
 +
</source>
 
Это событие будет вызывать кастомный макрос определяющий цену.
 
Это событие будет вызывать кастомный макрос определяющий цену.
  
2. Написать кастомный макрос. Для этого в файле classes/modules/catalog/__custom.php Описатать следующий код:
+
2. Написать кастомный макрос. Для этого в файле classes/modules/catalog/__custom.php Описать следующий код:
 +
<source lang="php">
 
  <?php
 
  <?php
 
     abstract class __custom_catalog {
 
     abstract class __custom_catalog {
Строка 27: Строка 30:
 
     };
 
     };
 
  ?>
 
  ?>
 
+
</source>
 
== Итог ==
 
== Итог ==
  
 
Мы привели Вам примерный текст макроса.  
 
Мы привели Вам примерный текст макроса.  
 
Теперь необходимо описать соответствующие условия и присвоить переменной $price необходимую вариацию цены.
 
Теперь необходимо описать соответствующие условия и присвоить переменной $price необходимую вариацию цены.
 +
[[Категория:Написание кастомных макросов]][[Категория:Модуль Каталог]][[Категория:Модуль Интернет магазин]]

Версия 01:34, 21 апреля 2014

Задача:

В интернет-магазине цена должна быть в зависимости от каких-то условий.

Решение:

1. Нужно написать обработчик события. Более подробную информацию о событиях Вы можете прочитать здесь http://api.umi-cms.ru/events.html Вам необходимо создать в файл classes/modules/catalog/custom_events.php. В нём прописать следующий код:

<?php
   new umiEventListener("umiObjectProperty_loadPriceValue", "catalog", "onLoadPriceHandler");
?>

</source> Это событие будет вызывать кастомный макрос определяющий цену.

2. Написать кастомный макрос. Для этого в файле classes/modules/catalog/__custom.php Описать следующий код:

 <?php
    abstract class __custom_catalog {
        public function onLoadPriceHandler(iUmiEventPoint $oEventPoint) {
            // get plain price relation
            $price = &$oEventPoint->getRef('price');
            // get object id
            $object_id = $oEventPoint->getParam('object_id');
            // TODO: write your custom logic here
            // ....
            // and set new $price value
            $price = 6436;
        }
    };
 ?>

Итог

Мы привели Вам примерный текст макроса. Теперь необходимо описать соответствующие условия и присвоить переменной $price необходимую вариацию цены.