<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D0%BA%D0%B8%D0%B4%D0%BA%D0%B8_%D0%B2_%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B5_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%28TPL%29</id>
	<title>Вывод скидки в карточке товара (TPL) - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umisoft.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D0%BA%D0%B8%D0%B4%D0%BA%D0%B8_%D0%B2_%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B5_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%28TPL%29"/>
	<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D0%BA%D0%B8%D0%B4%D0%BA%D0%B8_%D0%B2_%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B5_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_(TPL)&amp;action=history"/>
	<updated>2026-05-02T11:14:39Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D0%BA%D0%B8%D0%B4%D0%BA%D0%B8_%D0%B2_%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B5_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_(TPL)&amp;diff=7202&amp;oldid=prev</id>
		<title>Alexei: Новая страница: «&#039;&#039;&#039;Актуально для версии 2.9.5&#039;&#039;&#039;  Задача - вывести скидку на товар (независимо от цены, т.е., к при…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%81%D0%BA%D0%B8%D0%B4%D0%BA%D0%B8_%D0%B2_%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B5_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_(TPL)&amp;diff=7202&amp;oldid=prev"/>
		<updated>2014-03-28T12:25:31Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9.5&amp;#039;&amp;#039;&amp;#039;  Задача - вывести скидку на товар (независимо от цены, т.е., к при…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9.5&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Задача - вывести скидку на товар (независимо от цены, т.е., к примеру, название скидки или ее описание) в карточке товара - точно также, как она выводится в корзине товаров. Для решения данной задачи воспользуемся кастомным макросом.&lt;br /&gt;
В директории /classes/modules/emarket/ в файл __custom.php необходимо добавить следующий код: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function fullDiscountInfo($elementId = null, $template = &amp;#039;discount_info&amp;#039;) {&lt;br /&gt;
    &lt;br /&gt;
    if(!$elementId) return null;&lt;br /&gt;
    $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
    $elementId = $this-&amp;gt;analyzeRequiredPath($elementId);&lt;br /&gt;
&lt;br /&gt;
    if($elementId == false) {&lt;br /&gt;
        throw new publicException(&amp;quot;Wrong element id given&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
			&lt;br /&gt;
    $element = $hierarchy-&amp;gt;getElement($elementId);&lt;br /&gt;
    if($element instanceof iUmiHierarchyElement == false) {&lt;br /&gt;
	throw new publicException(&amp;quot;Wrong element id given&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    list($tpl_block, $tpl_block_empty) = def_module::loadTemplates(&amp;quot;emarket/discounts/&amp;quot;.$template, &amp;#039;discount_block&amp;#039;, &amp;#039;discount_block_empty&amp;#039;);&lt;br /&gt;
			&lt;br /&gt;
    $discount = itemDiscount::search($element);&lt;br /&gt;
    $result = array(&lt;br /&gt;
        &amp;#039;attribute:element-id&amp;#039; =&amp;gt; $elementId&lt;br /&gt;
    );&lt;br /&gt;
    if(!($discount instanceof discount)) return def_module::parseTemplate($tpl_block_empty, $result);&lt;br /&gt;
			&lt;br /&gt;
    $result[&amp;#039;void:name&amp;#039;] = $discount-&amp;gt;getName();&lt;br /&gt;
    $result[&amp;#039;void:description&amp;#039;] = $discount-&amp;gt;getValue(&amp;#039;description&amp;#039;);&lt;br /&gt;
    $result[&amp;#039;void:discount_id&amp;#039;] = $discount-&amp;gt;id;&lt;br /&gt;
&lt;br /&gt;
    return def_module::parseTemplate($tpl_block, $result);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо добавить шаблон discount_info.tpl в папку /tpls/emarket/discounts/ . В самом шаблоне пропишите следующий код: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$FORMS = array();&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;discount_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
Название скидки - %name%, ее описание - %description%&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;discount_block_empty&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&lt;br /&gt;
Скидки нет&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее, необходимо дать права на использования данного макроса. Для этого нужно создать файл permissions.custom.php в директории /classes/modules/emarket/ со следующим содержанием: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  $permissions = array(&amp;#039;purchasing&amp;#039; =&amp;gt; array(&amp;#039;fullDiscountInfo&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Параметры&amp;#039;&amp;#039;&amp;#039;: emarket fullDiscountInfo(&amp;#039;&amp;#039;&amp;#039;$elementId, $template&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$elementId&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   Передаем id товара&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;$template&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
   Передаем шаблон отображения.&lt;br /&gt;
&lt;br /&gt;
Вывод информации осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — discount_info.tpl.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Используемые шаблоны&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
Макрос оперирует шаблонами, находящимися в каталоге /tpls/emarket/discounts/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Используемые блоки шаблона&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
----&lt;br /&gt;
=====discount_block=====&lt;br /&gt;
&lt;br /&gt;
    Блок оформления описания скидки.&lt;br /&gt;
%name%&lt;br /&gt;
    Название скидки.&lt;br /&gt;
%description%&lt;br /&gt;
    Описание скидки.&lt;br /&gt;
%discount_id%&lt;br /&gt;
    Идентификатор скидки.&lt;br /&gt;
&lt;br /&gt;
=====discount_block_empty=====&lt;br /&gt;
&lt;br /&gt;
    Используется в том случае, если необходимо вывести на страницу сообщение о том, что у товара нет скидки.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>Alexei</name></author>
		
	</entry>
</feed>