Отображение значения скидки в процентах (tpl 2.8) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Для отображения значения скидки в процентах можно использовать кастомный макрос, который…»)
 
 
(не показаны 4 промежуточные версии 1 участника)
Строка 1: Строка 1:
Для отображения значения скидки в процентах можно использовать кастомный макрос, который пропишем в файле  ~classes/modules/custom.php, после слов: //TODO: Write your own macroses here
+
'''Задача.'''
 +
 
 +
Отобразить значение скидки на товар, в случае если на указанный товар распространяется скидка.
 +
 
 +
'''Решение.'''
 +
 
 +
В файле  '''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">
%custom proc(%id%)%
+
%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.