Цена в зависимости от условий — различия между версиями
Материал из Umicms
Nasty (обсуждение | вклад) (Новая страница: «== Задача: == В интернет-магазине цена должна быть в зависимости от каких-то условий. == Реше…») |
Velross (обсуждение | вклад) |
||
Строка 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 необходимую вариацию цены.