Отображение значения скидки в процентах (tpl 2.8) — различия между версиями
Материал из Umicms
VITL' (обсуждение | вклад) (Новая страница: «Для отображения значения скидки в процентах можно использовать кастомный макрос, который…») |
Mad grant (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
− | + | '''Задача.''' | |
+ | |||
+ | Отобразить значение скидки на товар, в случае если на указанный товар распространяется скидка. | ||
+ | |||
+ | '''Решение.''' | ||
+ | |||
+ | В файле '''classes/modules/emarket/__custom.php''', после слов: //TODO: Write here your own macroses, добавим новый метод: | ||
<source lang="php"> | <source lang="php"> | ||
public function proc($elementId) { | public function proc($elementId) { | ||
Строка 12: | Строка 18: | ||
} | } | ||
} | } | ||
+ | </source> | ||
+ | |||
+ | B папку '''classes/modules/emarket/''' необходимо добавить файл '''permissions.custom.php''' следующего содержания: | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | $permissions = array('purchasing' => array('proc')); | ||
+ | ?> | ||
</source> | </source> | ||
Пример вызова: | Пример вызова: | ||
<source lang="php"> | <source lang="php"> | ||
− | % | + | %emarket proc(%id%)% |
</source> | </source> | ||
− | Макрос используется в том блоке, в который передается id объекта каталога, т.е. допустим в блоках objects_block_line или view_block. | + | где %id% - id страницы с товаром. |
+ | |||
+ | Макрос используется в том блоке, в который передается id объекта каталога, т.е. допустим в блоках '''objects_block_line''' или '''view_block'''. | ||
+ | [[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Модуль Интернет магазин]][[Категория:Верстка в TPL]] |
Текущая версия на 12:35, 5 июня 2013
Задача.
Отобразить значение скидки на товар, в случае если на указанный товар распространяется скидка.
Решение.
В файле classes/modules/emarket/__custom.php, после слов: //TODO: Write here your own macroses, добавим новый метод:
public function proc($elementId) {
if(!$elementId) return;
$hierarchy = umiHierarchy::getInstance();
$element = $hierarchy->getElement($elementId);
$discount = itemDiscount::search($element);
if($discount instanceof discount) {
$id_proc = $discount->getValue("discount_modificator_id");
$proc = umiObjectsCollection::getInstance()->getObject($id_proc)->getValue("proc");
return "Скидка: ".$proc."%";
}
}
B папку classes/modules/emarket/ необходимо добавить файл permissions.custom.php следующего содержания:
<?php
$permissions = array('purchasing' => array('proc'));
?>
Пример вызова:
%emarket proc(%id%)%
где %id% - id страницы с товаром.
Макрос используется в том блоке, в который передается id объекта каталога, т.е. допустим в блоках objects_block_line или view_block.