<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.umisoft.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=VITL%27</id>
	<title>Umicms - Вклад участника [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umisoft.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=VITL%27"/>
	<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/VITL%27"/>
	<updated>2026-04-05T16:45:13Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2,_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D1%85_%D1%80%D0%B0%D0%B2%D0%BD%D0%BE_%D0%BD%D1%83%D0%BB%D1%8E,_%D0%BF%D1%80%D0%B8_%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B5_%D0%B8%D0%B7_1%D0%A1&amp;diff=3982</id>
		<title>Автоматическое отключение активности товаров, количество которых равно нулю, при импорте из 1С</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2,_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D1%85_%D1%80%D0%B0%D0%B2%D0%BD%D0%BE_%D0%BD%D1%83%D0%BB%D1%8E,_%D0%BF%D1%80%D0%B8_%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B5_%D0%B8%D0%B7_1%D0%A1&amp;diff=3982"/>
		<updated>2012-09-03T13:30:01Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Для отключения отсутствующих на складах товаров при импорте из 1С необходимо в папке \xsl\import\custom\ создать файл со следующим содержанием:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot;&lt;br /&gt;
	xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
	xmlns:php=&amp;quot;http://php.net/xsl&amp;quot;&lt;br /&gt;
	xmlns:udt=&amp;quot;http://umi-cms.ru/2007/UData/templates&amp;quot;&lt;br /&gt;
	extension-element-prefixes=&amp;quot;php&amp;quot;&lt;br /&gt;
	exclude-result-prefixes=&amp;quot;xsl php udt&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;Предложения/Предложение&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;page id=&amp;quot;{Ид}&amp;quot; update-only=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;is-active&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:when test=&amp;quot;Количество &amp;amp;lt; 1 or Количество = &amp;#039;&amp;#039;&amp;quot;&amp;gt;0&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
					&amp;lt;xsl:otherwise&amp;gt;1&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
			&amp;lt;properties&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;Цены&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;group name=&amp;quot;catalog_stores_props&amp;quot; title=&amp;quot;Склады&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;property name=&amp;quot;common_quantity&amp;quot; title=&amp;quot;Общее количество на складах&amp;quot; type=&amp;quot;float&amp;quot; is-public=&amp;quot;1&amp;quot; allow-runtime-add=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;type data-type=&amp;quot;float&amp;quot; /&amp;gt;&lt;br /&gt;
						&amp;lt;title&amp;gt;Общее количество на складах&amp;lt;/title&amp;gt;&lt;br /&gt;
						&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Количество&amp;quot;/&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
					&amp;lt;/property&amp;gt;&lt;br /&gt;
				&amp;lt;/group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;/properties&amp;gt;&lt;br /&gt;
		&amp;lt;/page&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;	&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 [[category:Интеграция с 1С]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_xml-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT&amp;diff=3385</id>
		<title>Универсальный метод для кэширования xml-данных в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_xml-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT&amp;diff=3385"/>
		<updated>2012-02-16T08:13:28Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Некоторая информация по кешированию xml-данных была представлена в данной статье:&lt;br /&gt;
[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
&lt;br /&gt;
Универсальный метод, который необходимо добавить в файл &amp;#039;&amp;#039;&amp;#039;classes/modules/cutom.php&amp;#039;&amp;#039;&amp;#039;, может быть представлен в следующем виде:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  public function xsltCache($expire = 3600, $stream){ &lt;br /&gt;
      $params_temp = array_slice(func_get_args(), 2);&lt;br /&gt;
      $params = array();&lt;br /&gt;
      foreach($params_temp as $param){&lt;br /&gt;
         $params[] = (strpos($param, &amp;#039;/&amp;#039;) !== FALSE) ? &amp;quot;(&amp;quot; . $param . &amp;quot;)&amp;quot; : $param;     &lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      $params_str = implode(&amp;#039;/&amp;#039;, $params);&lt;br /&gt;
      $url = $stream . &amp;quot;://&amp;quot; . $params_str;&lt;br /&gt;
      $folder = CURRENT_WORKING_DIR . &amp;#039;/sys-temp/udatacache/&amp;#039;;  &lt;br /&gt;
      $path = $folder . md5($url) . &amp;#039;.xml&amp;#039;;&lt;br /&gt;
      if(!is_dir($folder)) mkdir($folder, 0777, true);&lt;br /&gt;
      if(is_file($path)) $mtime = filemtime($path);&lt;br /&gt;
   &lt;br /&gt;
      if(!is_file($path) || time() &amp;gt; ($mtime + $expire)) {    &lt;br /&gt;
        $data = file_get_contents($url);&lt;br /&gt;
        file_put_contents($path, $data);&lt;br /&gt;
        return array(&amp;#039;plain:result&amp;#039; =&amp;gt; $data); &lt;br /&gt;
      }else{&lt;br /&gt;
        $result = file_get_contents($path);&lt;br /&gt;
        return array(&amp;#039;plain:result&amp;#039; =&amp;gt; $result);&lt;br /&gt;
      }	&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
а сам вызов в XSL-шаблоне будет следующим:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
udata://custom/xsltCache/3600/custom/lidersCustom/20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
где 3600 - время кеширования xml-данных в секундах,&lt;br /&gt;
custom - модуль&lt;br /&gt;
lidersCustom - метод&lt;br /&gt;
20 - один из параметров, их может быть больше одного&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%B2_%D0%BE%D0%B4%D0%B8%D0%BD_%D1%88%D0%B0%D0%B3_%E2%80%93_xslt_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80&amp;diff=3383</id>
		<title>Оформление заказа в один шаг – xslt шаблонизатор</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%B2_%D0%BE%D0%B4%D0%B8%D0%BD_%D1%88%D0%B0%D0%B3_%E2%80%93_xslt_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80&amp;diff=3383"/>
		<updated>2012-02-01T07:33:12Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье будет описан принцип создания формы оформления заказа за один шаг, т.е. все необходимые данные, регистрационные данные покупателя, способ доставки, способ оплаты и т.д. представлены на одной страницы. Для использования информации в данной статье версия вашей системы должна быть не ниже 2.8.4.3, иначе код не будет нормально функционировать при наличии в модуле Интернет-магазин способа доставки Курьером, и способа оплаты &amp;quot;Курьером при получении&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Нам понадобятся дополнительные php-методы для реализации данной задачи, которые необходимо добавить в файл &amp;#039;&amp;#039;&amp;#039;classes/modules/emarket/__custom.php&amp;#039;&amp;#039;&amp;#039;, сами методы следующие:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function fast_purchasing_xslt(){&lt;br /&gt;
  $order = $this-&amp;gt;getBasketOrder();&lt;br /&gt;
  $orderId = $order-&amp;gt;id;&lt;br /&gt;
  $customer = selector::get(&amp;#039;object&amp;#039;)-&amp;gt;id($order-&amp;gt;customer_id);&lt;br /&gt;
  &lt;br /&gt;
  $result = array(&lt;br /&gt;
  &amp;#039;attribute:id&amp;#039;	=&amp;gt; ($orderId),&lt;br /&gt;
  &amp;#039;xlink:href&amp;#039;	=&amp;gt; (&amp;#039;uobject://&amp;#039; . $orderId));&lt;br /&gt;
  &lt;br /&gt;
  if(!permissionsCollection::getInstance()-&amp;gt;isAuth()){&lt;br /&gt;
    $result[&amp;#039;customer&amp;#039;]	= array(&amp;#039;full:object&amp;#039; =&amp;gt; $customer);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  $result[&amp;#039;delivery&amp;#039;]	= $this-&amp;gt;customerDeliveryList(&amp;#039;notemplate&amp;#039;);&lt;br /&gt;
  $result[&amp;#039;delivery_choose&amp;#039;]	= $this-&amp;gt;renderDeliveryList($order, &amp;#039;notemplate&amp;#039;);&lt;br /&gt;
  $result[&amp;#039;payment&amp;#039;]	= $this-&amp;gt;renderPaymentsList_custom($order, &amp;#039;notemplate&amp;#039;);&lt;br /&gt;
  return  $result;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public function renderPaymentsList_custom(order $order, $template) {&lt;br /&gt;
  list($tpl_block, $tpl_item) = def_module::loadTemplates(&amp;quot;./tpls/emarket/payment/{$template}.tpl&amp;quot;, &amp;#039;payment_block&amp;#039;, &amp;#039;payment_item&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  $payementIds = payment::getList(); $items_arr = array();&lt;br /&gt;
  $currentPaymentId = $order-&amp;gt;getValue(&amp;#039;payment_id&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  foreach($payementIds as $paymentId) {&lt;br /&gt;
    $payment = payment::get($paymentId);&lt;br /&gt;
    if($payment-&amp;gt;validate($order) == false) continue;&lt;br /&gt;
    $paymentObject = $payment-&amp;gt;getObject();&lt;br /&gt;
    $paymentTypeId = $paymentObject-&amp;gt;getValue(&amp;#039;payment_type_id&amp;#039;);&lt;br /&gt;
    $paymentTypeName = umiObjectsCollection::getInstance()-&amp;gt;getObject($paymentTypeId)-&amp;gt;getValue(&amp;#039;class_name&amp;#039;);&lt;br /&gt;
    &lt;br /&gt;
    if( $paymentTypeName == &amp;#039;social&amp;#039;) continue;&lt;br /&gt;
    &lt;br /&gt;
    $item_arr = array(&lt;br /&gt;
    &amp;#039;attribute:id&amp;#039;			=&amp;gt; $paymentObject-&amp;gt;id,&lt;br /&gt;
    &amp;#039;attribute:name&amp;#039;		=&amp;gt; $paymentObject-&amp;gt;name,&lt;br /&gt;
    &amp;#039;attribute:type-name&amp;#039;	=&amp;gt; $paymentTypeName,&lt;br /&gt;
    &amp;#039;xlink:href&amp;#039;			=&amp;gt; $paymentObject-&amp;gt;xlink&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
    if($paymentId == $currentPaymentId) {&lt;br /&gt;
      $item_arr[&amp;#039;attribute:active&amp;#039;] = &amp;#039;active&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $items_arr[] = def_module::parseTemplate($tpl_item, $item_arr, false, $paymentObject-&amp;gt;id);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
    return array(&amp;#039;items&amp;#039; =&amp;gt; array(&amp;#039;nodes:item&amp;#039;	=&amp;gt; $items_arr));&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public function saveinfo(){&lt;br /&gt;
  $order = $this-&amp;gt;getBasketOrder(false);&lt;br /&gt;
  //сохранение регистрационных данных&lt;br /&gt;
  $cmsController = cmsController::getInstance();&lt;br /&gt;
  $data = $cmsController-&amp;gt;getModule(&amp;#039;data&amp;#039;);&lt;br /&gt;
  $data-&amp;gt;saveEditedObject(customer::get()-&amp;gt;id, false, true);&lt;br /&gt;
  &lt;br /&gt;
  //сохранение способа доставки&lt;br /&gt;
  $deliveryId = getRequest(&amp;#039;delivery-id&amp;#039;);&lt;br /&gt;
  if($deliveryId){&lt;br /&gt;
    $delivery = delivery::get($deliveryId);&lt;br /&gt;
    $deliveryPrice = (float) $delivery-&amp;gt;getDeliveryPrice($order);&lt;br /&gt;
    $order-&amp;gt;setValue(&amp;#039;delivery_id&amp;#039;, $deliveryId);&lt;br /&gt;
    $order-&amp;gt;setValue(&amp;#039;delivery_price&amp;#039;, $deliveryPrice);&lt;br /&gt;
  }&lt;br /&gt;
  //сохранение адреса доставки&lt;br /&gt;
  $addressId = getRequest(&amp;#039;delivery-address&amp;#039;);&lt;br /&gt;
  if($addressId == &amp;#039;new&amp;#039;) {&lt;br /&gt;
    $collection = umiObjectsCollection::getInstance();&lt;br /&gt;
    $types      = umiObjectTypesCollection::getInstance();&lt;br /&gt;
    $typeId     = $types-&amp;gt;getBaseType(&amp;quot;emarket&amp;quot;, &amp;quot;delivery_address&amp;quot;);&lt;br /&gt;
    $customer   = customer::get();&lt;br /&gt;
    $addressId  = $collection-&amp;gt;addObject(&amp;quot;Address for customer #&amp;quot;.$customer-&amp;gt;id, $typeId);&lt;br /&gt;
    $dataModule = $cmsController-&amp;gt;getModule(&amp;quot;data&amp;quot;);&lt;br /&gt;
    if($dataModule) {&lt;br /&gt;
      $dataModule-&amp;gt;saveEditedObject($addressId, true, true);&lt;br /&gt;
    }&lt;br /&gt;
    $customer-&amp;gt;delivery_addresses = array_merge( $customer-&amp;gt;delivery_addresses, array($addressId) );&lt;br /&gt;
  }&lt;br /&gt;
  $order-&amp;gt;delivery_address = $addressId;&lt;br /&gt;
  &lt;br /&gt;
  //сохранение способа оплаты и редирект на итоговую страницу, либо страницу подтверждения оплаты.&lt;br /&gt;
  $order-&amp;gt;setValue(&amp;#039;payment_id&amp;#039;, getRequest(&amp;#039;payment-id&amp;#039;));&lt;br /&gt;
  $order-&amp;gt;refresh();&lt;br /&gt;
  &lt;br /&gt;
  $paymentId = getRequest(&amp;#039;payment-id&amp;#039;);&lt;br /&gt;
  if(!$paymentId) {&lt;br /&gt;
    $this-&amp;gt;errorNewMessage(getLabel(&amp;#039;error-emarket-choose-payment&amp;#039;));&lt;br /&gt;
    $this-&amp;gt;errorPanic();&lt;br /&gt;
  }&lt;br /&gt;
  $payment = payment::get($paymentId);&lt;br /&gt;
  &lt;br /&gt;
  if($payment instanceof payment) {&lt;br /&gt;
    $paymentName = $payment-&amp;gt;getCodeName();&lt;br /&gt;
    $url = &amp;quot;{$this-&amp;gt;pre_lang}/&amp;quot;.cmsController::getInstance()-&amp;gt;getUrlPrefix().&amp;quot;emarket/purchase/payment/{$paymentName}/&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
    $url = &amp;quot;{$this-&amp;gt;pre_lang}/&amp;quot;.cmsController::getInstance()-&amp;gt;getUrlPrefix().&amp;quot;emarket/cart/&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  $this-&amp;gt;redirect($url);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
также в папку &amp;#039;&amp;#039;&amp;#039;classes/modules/emarket/&amp;#039;&amp;#039;&amp;#039; необходимо добавить файл &amp;#039;&amp;#039;&amp;#039;permissions.custom.php&amp;#039;&amp;#039;&amp;#039; следующего содержания:&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;fast_purchasing_xslt&amp;#039;, &amp;#039;saveinfo&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На системной странице &amp;#039;&amp;#039;&amp;#039;/emarket/cart/&amp;#039;&amp;#039;&amp;#039;, либо какой-либо другой, подобным вызовом:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;udata://emarket/fast_purchasing_xslt/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
мы получим все необходимые данные для составления формы оформления заказа, данные будут примерно в следующем виде:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;udata xmlns:xlink=&amp;quot;http://www.w3.org/TR/xlink&amp;quot; id=&amp;quot;550931&amp;quot; xlink:href=&amp;quot;uobject://550931&amp;quot; module=&amp;quot;emarket&amp;quot; method=&amp;quot;fast_purchasing_xslt&amp;quot; &amp;gt;&lt;br /&gt;
  &amp;lt;customer&amp;gt;&lt;br /&gt;
    &amp;lt;object id=&amp;quot;550930&amp;quot; name=&amp;quot;127.0.0.1&amp;quot; type-id=&amp;quot;74&amp;quot; type-guid=&amp;quot;emarket-customer&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/customer&amp;gt;&lt;br /&gt;
  &amp;lt;delivery type-id=&amp;quot;5&amp;quot; xlink:href=&amp;quot;udata://data/getCreateForm/5&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;items/&amp;gt;&lt;br /&gt;
  &amp;lt;/delivery&amp;gt;&lt;br /&gt;
  &amp;lt;delivery_choose&amp;gt;&lt;br /&gt;
    &amp;lt;items&amp;gt;&lt;br /&gt;
      &amp;lt;item id=&amp;quot;304&amp;quot; name=&amp;quot;Самовывоз&amp;quot; price=&amp;quot;0&amp;quot; xlink:href=&amp;quot;uobject://304&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;item id=&amp;quot;305&amp;quot; name=&amp;quot;Курьерская доставка&amp;quot; price=&amp;quot;200&amp;quot; xlink:href=&amp;quot;uobject://305&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/items&amp;gt;&lt;br /&gt;
  &amp;lt;/delivery_choose&amp;gt;&lt;br /&gt;
  &amp;lt;payment&amp;gt;&lt;br /&gt;
    &amp;lt;items&amp;gt;&lt;br /&gt;
      &amp;lt;item id=&amp;quot;344&amp;quot; name=&amp;quot;Платежная квитанция&amp;quot; type-name=&amp;quot;receipt&amp;quot; xlink:href=&amp;quot;uobject://344&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/items&amp;gt;&lt;br /&gt;
  &amp;lt;/payment&amp;gt;&lt;br /&gt;
&amp;lt;/udata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Action формы для оплаты должен быть = &amp;#039;&amp;#039;&amp;#039;/emarket/saveinfo/&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
В случае если вы используете в качестве основы демо-сайт Современный или нет,&lt;br /&gt;
примеры шаблонов обработки xml-данных можно найти на этом демо-сайте, в папке:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/xsltTpls/modules/emarket/purchase/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;required.xsl&amp;#039;&amp;#039;&amp;#039; – форма редактирования данных Незарегистрированного покупателя.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;delivery.xsl&amp;#039;&amp;#039;&amp;#039; – добавления адреса доставки и выбор способа доставки.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;payment.xsl&amp;#039;&amp;#039;&amp;#039; – выбор способа оплаты и шаг подтверждения оплаты.&lt;br /&gt;
&lt;br /&gt;
При создании блока добавления адреса доставки, не забывайте указывать input:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input checked=&amp;quot;checked&amp;quot; name=&amp;quot;delivery-address&amp;quot; value=&amp;quot;new&amp;quot; type=&amp;quot;radio&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В формах подтверждения оплаты, можно указать id формы =begin, и добавить скрипт:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;setTimeout(&amp;#039;document.getElementById(&amp;quot;search&amp;quot;).submit()&amp;#039;, 500);&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
который автоматически, через пол секунды нажмет кнопку подтверждения перехода на сайт платежной системы.&lt;br /&gt;
[[Категория:Шаблонизаторы]][[Категория:Верстка в XSLT]]&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%B2_%D0%BE%D0%B4%D0%B8%D0%BD_%D1%88%D0%B0%D0%B3_%E2%80%93_xslt_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80&amp;diff=3351</id>
		<title>Оформление заказа в один шаг – xslt шаблонизатор</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%B2_%D0%BE%D0%B4%D0%B8%D0%BD_%D1%88%D0%B0%D0%B3_%E2%80%93_xslt_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80&amp;diff=3351"/>
		<updated>2012-01-20T08:09:25Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье будет описан принцип создания формы оформления заказа за один шаг, т.е. все необходимые данные, регистрационные данные покупателя, способ доставки, способ оплаты и т.д. представлены на одной страницы. Для использования информации в данной статье версия вашей системы должна быть не ниже 2.8.4.3, иначе код не будет нормально функционировать при наличии в модуле Интернет-магазин способа доставки Курьером, и способа оплаты &amp;quot;Курьером при получении&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Нам понадобятся дополнительные php-методы для реализации данной задачи, которые необходимо добавить в файл &amp;#039;&amp;#039;&amp;#039;classes/modules/emarket/__custom.php&amp;#039;&amp;#039;&amp;#039;, сами методы следующие:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function fast_purchasing_xslt(){&lt;br /&gt;
  $ini = cmsController::getInstance()-&amp;gt;getModule(&amp;#039;emarket&amp;#039;);&lt;br /&gt;
  $order = $this-&amp;gt;getBasketOrder();&lt;br /&gt;
  $orderId = $order-&amp;gt;id;&lt;br /&gt;
  $customer = selector::get(&amp;#039;object&amp;#039;)-&amp;gt;id($order-&amp;gt;customer_id);&lt;br /&gt;
  &lt;br /&gt;
  $result = array(&lt;br /&gt;
  &amp;#039;attribute:id&amp;#039;	=&amp;gt; ($orderId),&lt;br /&gt;
  &amp;#039;xlink:href&amp;#039;	=&amp;gt; (&amp;#039;uobject://&amp;#039; . $orderId));&lt;br /&gt;
  &lt;br /&gt;
  if(!permissionsCollection::getInstance()-&amp;gt;isAuth()){&lt;br /&gt;
    $result[&amp;#039;customer&amp;#039;]	= array(&amp;#039;full:object&amp;#039; =&amp;gt; $customer);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  $result[&amp;#039;delivery&amp;#039;]	= $this-&amp;gt;customerDeliveryList(&amp;#039;notemplate&amp;#039;);&lt;br /&gt;
  $result[&amp;#039;delivery_choose&amp;#039;]	= $this-&amp;gt;renderDeliveryList($order, &amp;#039;notemplate&amp;#039;);&lt;br /&gt;
  $result[&amp;#039;payment&amp;#039;]	= $this-&amp;gt;renderPaymentsList_custom($order, &amp;#039;notemplate&amp;#039;);&lt;br /&gt;
  return  $result;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public function renderPaymentsList_custom(order $order, $template) {&lt;br /&gt;
  list($tpl_block, $tpl_item) = def_module::loadTemplates(&amp;quot;./tpls/emarket/payment/{$template}.tpl&amp;quot;, &amp;#039;payment_block&amp;#039;, &amp;#039;payment_item&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  $payementIds = payment::getList(); $items_arr = array();&lt;br /&gt;
  $currentPaymentId = $order-&amp;gt;getValue(&amp;#039;payment_id&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  foreach($payementIds as $paymentId) {&lt;br /&gt;
    $payment = payment::get($paymentId);&lt;br /&gt;
    if($payment-&amp;gt;validate($order) == false) continue;&lt;br /&gt;
    $paymentObject = $payment-&amp;gt;getObject();&lt;br /&gt;
    $paymentTypeId = $paymentObject-&amp;gt;getValue(&amp;#039;payment_type_id&amp;#039;);&lt;br /&gt;
    $paymentTypeName = umiObjectsCollection::getInstance()-&amp;gt;getObject($paymentTypeId)-&amp;gt;getValue(&amp;#039;class_name&amp;#039;);&lt;br /&gt;
    &lt;br /&gt;
    if( $paymentTypeName == &amp;#039;social&amp;#039;) continue;&lt;br /&gt;
    &lt;br /&gt;
    $item_arr = array(&lt;br /&gt;
    &amp;#039;attribute:id&amp;#039;			=&amp;gt; $paymentObject-&amp;gt;id,&lt;br /&gt;
    &amp;#039;attribute:name&amp;#039;		=&amp;gt; $paymentObject-&amp;gt;name,&lt;br /&gt;
    &amp;#039;attribute:type-name&amp;#039;	=&amp;gt; $paymentTypeName,&lt;br /&gt;
    &amp;#039;xlink:href&amp;#039;			=&amp;gt; $paymentObject-&amp;gt;xlink&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
    if($paymentId == $currentPaymentId) {&lt;br /&gt;
      $item_arr[&amp;#039;attribute:active&amp;#039;] = &amp;#039;active&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $items_arr[] = def_module::parseTemplate($tpl_item, $item_arr, false, $paymentObject-&amp;gt;id);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
    return array(&amp;#039;items&amp;#039; =&amp;gt; array(&amp;#039;nodes:item&amp;#039;	=&amp;gt; $items_arr));&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public function saveinfo(){&lt;br /&gt;
  $order = $this-&amp;gt;getBasketOrder(false);&lt;br /&gt;
  //сохранение регистрационных данных&lt;br /&gt;
  $cmsController = cmsController::getInstance();&lt;br /&gt;
  $data = $cmsController-&amp;gt;getModule(&amp;#039;data&amp;#039;);&lt;br /&gt;
  $data-&amp;gt;saveEditedObject(customer::get()-&amp;gt;id, false, true);&lt;br /&gt;
  &lt;br /&gt;
  //сохранение способа доставки&lt;br /&gt;
  $deliveryId = getRequest(&amp;#039;delivery-id&amp;#039;);&lt;br /&gt;
  if($deliveryId){&lt;br /&gt;
    $delivery = delivery::get($deliveryId);&lt;br /&gt;
    $deliveryPrice = (float) $delivery-&amp;gt;getDeliveryPrice($order);&lt;br /&gt;
    $order-&amp;gt;setValue(&amp;#039;delivery_id&amp;#039;, $deliveryId);&lt;br /&gt;
    $order-&amp;gt;setValue(&amp;#039;delivery_price&amp;#039;, $deliveryPrice);&lt;br /&gt;
  }&lt;br /&gt;
  //сохранение адреса доставки&lt;br /&gt;
  $addressId = getRequest(&amp;#039;delivery-address&amp;#039;);&lt;br /&gt;
  if($addressId == &amp;#039;new&amp;#039;) {&lt;br /&gt;
    $collection = umiObjectsCollection::getInstance();&lt;br /&gt;
    $types      = umiObjectTypesCollection::getInstance();&lt;br /&gt;
    $typeId     = $types-&amp;gt;getBaseType(&amp;quot;emarket&amp;quot;, &amp;quot;delivery_address&amp;quot;);&lt;br /&gt;
    $customer   = customer::get();&lt;br /&gt;
    $addressId  = $collection-&amp;gt;addObject(&amp;quot;Address for customer #&amp;quot;.$customer-&amp;gt;id, $typeId);&lt;br /&gt;
    $dataModule = $cmsController-&amp;gt;getModule(&amp;quot;data&amp;quot;);&lt;br /&gt;
    if($dataModule) {&lt;br /&gt;
      $dataModule-&amp;gt;saveEditedObject($addressId, true, true);&lt;br /&gt;
    }&lt;br /&gt;
    $customer-&amp;gt;delivery_addresses = array_merge( $customer-&amp;gt;delivery_addresses, array($addressId) );&lt;br /&gt;
  }&lt;br /&gt;
  $order-&amp;gt;delivery_address = $addressId;&lt;br /&gt;
  &lt;br /&gt;
  //сохранение способа оплаты и редирект на итоговую страницу, либо страницу подтверждения оплаты.&lt;br /&gt;
  $order-&amp;gt;setValue(&amp;#039;payment_id&amp;#039;, getRequest(&amp;#039;payment-id&amp;#039;));&lt;br /&gt;
  $order-&amp;gt;refresh();&lt;br /&gt;
  &lt;br /&gt;
  $paymentId = getRequest(&amp;#039;payment-id&amp;#039;);&lt;br /&gt;
  if(!$paymentId) {&lt;br /&gt;
    $this-&amp;gt;errorNewMessage(getLabel(&amp;#039;error-emarket-choose-payment&amp;#039;));&lt;br /&gt;
    $this-&amp;gt;errorPanic();&lt;br /&gt;
  }&lt;br /&gt;
  $payment = payment::get($paymentId);&lt;br /&gt;
  &lt;br /&gt;
  if($payment instanceof payment) {&lt;br /&gt;
    $paymentName = $payment-&amp;gt;getCodeName();&lt;br /&gt;
    $url = &amp;quot;{$this-&amp;gt;pre_lang}/&amp;quot;.cmsController::getInstance()-&amp;gt;getUrlPrefix().&amp;quot;emarket/purchase/payment/{$paymentName}/&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
    $url = &amp;quot;{$this-&amp;gt;pre_lang}/&amp;quot;.cmsController::getInstance()-&amp;gt;getUrlPrefix().&amp;quot;emarket/cart/&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  $this-&amp;gt;redirect($url);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
также в папку &amp;#039;&amp;#039;&amp;#039;classes/modules/emarket/&amp;#039;&amp;#039;&amp;#039; необходимо добавить файл &amp;#039;&amp;#039;&amp;#039;permissions.custom.php&amp;#039;&amp;#039;&amp;#039; следующего содержания:&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;fast_purchasing_xslt&amp;#039;, &amp;#039;saveinfo&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На системной странице &amp;#039;&amp;#039;&amp;#039;/emarket/cart/&amp;#039;&amp;#039;&amp;#039;, либо какой-либо другой, подобным вызовом:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;udata://emarket/fast_purchasing_xslt/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
мы получим все необходимые данные для составления формы оформления заказа, данные будут примерно в следующем виде:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;udata xmlns:xlink=&amp;quot;http://www.w3.org/TR/xlink&amp;quot; id=&amp;quot;550931&amp;quot; xlink:href=&amp;quot;uobject://550931&amp;quot; module=&amp;quot;emarket&amp;quot; method=&amp;quot;fast_purchasing_xslt&amp;quot; &amp;gt;&lt;br /&gt;
  &amp;lt;customer&amp;gt;&lt;br /&gt;
    &amp;lt;object id=&amp;quot;550930&amp;quot; name=&amp;quot;127.0.0.1&amp;quot; type-id=&amp;quot;74&amp;quot; type-guid=&amp;quot;emarket-customer&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/customer&amp;gt;&lt;br /&gt;
  &amp;lt;delivery type-id=&amp;quot;5&amp;quot; xlink:href=&amp;quot;udata://data/getCreateForm/5&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;items/&amp;gt;&lt;br /&gt;
  &amp;lt;/delivery&amp;gt;&lt;br /&gt;
  &amp;lt;delivery_choose&amp;gt;&lt;br /&gt;
    &amp;lt;items&amp;gt;&lt;br /&gt;
      &amp;lt;item id=&amp;quot;304&amp;quot; name=&amp;quot;Самовывоз&amp;quot; price=&amp;quot;0&amp;quot; xlink:href=&amp;quot;uobject://304&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;item id=&amp;quot;305&amp;quot; name=&amp;quot;Курьерская доставка&amp;quot; price=&amp;quot;200&amp;quot; xlink:href=&amp;quot;uobject://305&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/items&amp;gt;&lt;br /&gt;
  &amp;lt;/delivery_choose&amp;gt;&lt;br /&gt;
  &amp;lt;payment&amp;gt;&lt;br /&gt;
    &amp;lt;items&amp;gt;&lt;br /&gt;
      &amp;lt;item id=&amp;quot;344&amp;quot; name=&amp;quot;Платежная квитанция&amp;quot; type-name=&amp;quot;receipt&amp;quot; xlink:href=&amp;quot;uobject://344&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/items&amp;gt;&lt;br /&gt;
  &amp;lt;/payment&amp;gt;&lt;br /&gt;
&amp;lt;/udata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Action формы для оплаты должен быть = &amp;#039;&amp;#039;&amp;#039;/emarket/saveinfo/&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
В случае если вы используете в качестве основы демо-сайт Современный или нет,&lt;br /&gt;
примеры шаблонов обработки xml-данных можно найти на этом демо-сайте, в папке:&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;/xsltTpls/modules/emarket/purchase/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;required.xsl&amp;#039;&amp;#039;&amp;#039; – форма редактирования данных Незарегистрированного покупателя.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;delivery.xsl&amp;#039;&amp;#039;&amp;#039; – добавления адреса доставки и выбор способа доставки.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;payment.xsl&amp;#039;&amp;#039;&amp;#039; – выбор способа оплаты и шаг подтверждения оплаты.&lt;br /&gt;
&lt;br /&gt;
При создании блока добавления адреса доставки, не забывайте указывать input:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input checked=&amp;quot;checked&amp;quot; name=&amp;quot;delivery-address&amp;quot; value=&amp;quot;new&amp;quot; type=&amp;quot;radio&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В формах подтверждения оплаты, можно указать id формы =begin, и добавить скрипт:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;setTimeout(&amp;#039;document.getElementById(&amp;quot;search&amp;quot;).submit()&amp;#039;, 500);&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
который автоматически, через пол секунды нажмет кнопку подтверждения перехода на сайт платежной системы.&lt;br /&gt;
[[Категория:Шаблонизаторы]][[Категория:Верстка в XSLT]]&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%9D%D0%B5%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3350</id>
		<title>Изменение имени объекта Незарегистрированного покупателя</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%9D%D0%B5%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3350"/>
		<updated>2012-01-18T07:32:50Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как вы все знаете, по умолчанию, когда «Незарегистрированный покупатель» совершает заказ в Интернет-магазине, в конечном итоге этот заказ в модуле Интернет-магазин отображается с именем примерно такого вида: 234.67.89.43, т.е. отображается IP-адрес покупателя. Это поведение системы можно изменить с помощью события &amp;#039;order-status-changed&amp;#039; в Umi.CMS. &lt;br /&gt;
Само событие прописано в методе &amp;#039;&amp;#039;&amp;#039;setOrderStatus&amp;#039;&amp;#039;&amp;#039; (order.php):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$event = new umiEventPoint(&amp;#039;order-status-changed&amp;#039;);&lt;br /&gt;
$event-&amp;gt;addRef(&amp;#039;order&amp;#039;, $this);&lt;br /&gt;
$event-&amp;gt;setParam(&amp;#039;old-status-id&amp;#039;, $oldStatusId);&lt;br /&gt;
$event-&amp;gt;setParam(&amp;#039;new-status-id&amp;#039;, $newStatusId);&lt;br /&gt;
...&lt;br /&gt;
$event-&amp;gt;setMode(&amp;#039;after&amp;#039;);&lt;br /&gt;
$event-&amp;gt;call();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно сформировать имя заказа из тех полей, которые покупатель заполнил при оформлении заказа, допустим из полей Фамилия или Имя.&lt;br /&gt;
Для выполнения поставленной задачи, в папке classes/modules/emarket/ создадим файл custom_events.php, с таким содержанием:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
new umiEventListener(&amp;#039;order-status-changed&amp;#039;, &amp;#039;emarket&amp;#039;, &amp;#039;onSetNameOrder&amp;#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
потом в этой же папке, в файл __custom.php добавим метод:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function onSetNameOrder(iUmiEventPoint $event) {&lt;br /&gt;
      if($event-&amp;gt;getMode() == &amp;quot;after&amp;quot; &amp;amp;&amp;amp; $event-&amp;gt;getParam(&amp;quot;old-status-id&amp;quot;) != $event-&amp;gt;getParam(&amp;quot;new-status-id&amp;quot;)) {&lt;br /&gt;
      $order = $event-&amp;gt;getRef(&amp;quot;order&amp;quot;);&lt;br /&gt;
      $statusId = $order-&amp;gt;getValue(&amp;quot;status_id&amp;quot;);&lt;br /&gt;
      $codeName = order::getCodeByStatus($statusId);&lt;br /&gt;
       &lt;br /&gt;
      if($codeName != &amp;#039;waiting&amp;#039; || permissionsCollection::getInstance()-&amp;gt;isAuth()) return false;&lt;br /&gt;
      &lt;br /&gt;
      $customer_id = $order-&amp;gt;customer_id;&lt;br /&gt;
      $objects = umiObjectsCollection::getInstance();&lt;br /&gt;
      $object_customer = $objects-&amp;gt;getObject($customer_id);&lt;br /&gt;
      // У объекта &amp;quot;Незарегистрированный покупатель&amp;quot; берем значение поля fname       &lt;br /&gt;
      $name = $object_customer-&amp;gt;getValue(&amp;#039;fname&amp;#039;);&lt;br /&gt;
      // Меняем имя объекта &amp;quot;Незарегистрированный покупатель&amp;quot; на значение переменной $name&lt;br /&gt;
      $object_customer-&amp;gt;setName($name);&lt;br /&gt;
      $object_customer-&amp;gt;commit();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
и также в папке classes/modules/emarket/ создадим файл permissions.custom.php с таким содержанием:&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;onSetNameOrder&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В итоге, при просмотре списка заказов, имена заказов будут равны Имени покупателя.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Из-за некоторых особенностей хранения данных, при табличном отображении списка заказов, не просмотреть Адрес доставки. Чтобы решить этот вопрос, можно модифицировать метод onSetNameOrder() таким образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  public function onSetNameOrder(iUmiEventPoint $event) {&lt;br /&gt;
      if($event-&amp;gt;getMode() == &amp;quot;after&amp;quot; &amp;amp;&amp;amp; $event-&amp;gt;getParam(&amp;quot;old-status-id&amp;quot;) != $event-&amp;gt;getParam(&amp;quot;new-status-id&amp;quot;)) {&lt;br /&gt;
        $order = $event-&amp;gt;getRef(&amp;quot;order&amp;quot;);&lt;br /&gt;
        $adres_id = $order-&amp;gt;getValue(&amp;quot;delivery_address&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        $objects = umiObjectsCollection::getInstance();&lt;br /&gt;
        $object_address = $objects-&amp;gt;getObject($adres_id);&lt;br /&gt;
        $city = $object_address-&amp;gt;city;&lt;br /&gt;
        $street = $object_address-&amp;gt;street;&lt;br /&gt;
        $house = $object_address-&amp;gt;house;&lt;br /&gt;
        $str = $street . &amp;quot; &amp;quot; . $house . &amp;quot; &amp;quot; . $flat;&lt;br /&gt;
        $order-&amp;gt;setValue(&amp;#039;adres&amp;#039;, $str);&lt;br /&gt;
      &lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где city, street и house это идентификаторы полей в типе данных &amp;quot;Адрес доставки&amp;quot;, который можно найти в модуле &amp;quot;Шаблоны данных&amp;quot;, первая вкладка, раздел &amp;quot;Справочники&amp;quot;. А &amp;#039;adres&amp;#039; - это строковый идентификатор нового поля, которое было добавлено в тип данных &amp;quot;Заказ&amp;quot;, в группу &amp;quot;Свойства доставки заказа&amp;quot;. Модифицированный метод выполняют функцию слияния значений полей из &amp;quot;Адреса доставки&amp;quot; и потом записывает итоговое значение в дополнительное поле, которое можно будет выбрать при табличном отображении заказов.&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%9D%D0%B5%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3348</id>
		<title>Изменение имени объекта Незарегистрированного покупателя</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%9D%D0%B5%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&amp;diff=3348"/>
		<updated>2012-01-18T07:31:39Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: переименовал «Изменение имени заказа при оформлении покупки» в «Изменение имени объекта Незарегистрированного покупателя»:&amp;amp;#32;ошибк�&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как вы все знаете, по умолчанию, когда «Незарегистрированный покупатель» совершает заказ в Интернет-магазине, в конечном итоге этот заказ в модуле Интернет-магазин отображается с именем примерно такого вида: 234.67.89.43, т.е. отображается IP-адрес покупателя. Это поведение системы можно изменить с помощью события &amp;#039;order-status-changed&amp;#039; в Umi.CMS. &lt;br /&gt;
Само событие прописано в методе &amp;#039;&amp;#039;&amp;#039;setOrderStatus&amp;#039;&amp;#039;&amp;#039; (order.php):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$event = new umiEventPoint(&amp;#039;order-status-changed&amp;#039;);&lt;br /&gt;
$event-&amp;gt;addRef(&amp;#039;order&amp;#039;, $this);&lt;br /&gt;
$event-&amp;gt;setParam(&amp;#039;old-status-id&amp;#039;, $oldStatusId);&lt;br /&gt;
$event-&amp;gt;setParam(&amp;#039;new-status-id&amp;#039;, $newStatusId);&lt;br /&gt;
...&lt;br /&gt;
$event-&amp;gt;setMode(&amp;#039;after&amp;#039;);&lt;br /&gt;
$event-&amp;gt;call();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно сформировать имя заказа из тех полей, которые покупатель заполнил при оформлении заказа, допустим из полей Фамилия или Имя.&lt;br /&gt;
Для выполнения поставленной задачи, в папке classes/modules/emarket/ создадим файл custom_events.php, с таким содержанием:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
new umiEventListener(&amp;#039;order-status-changed&amp;#039;, &amp;#039;emarket&amp;#039;, &amp;#039;onSetNameOrder&amp;#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
потом в этой же папке, в файл __custom.php добавим метод:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function onSetNameOrder(iUmiEventPoint $event) {&lt;br /&gt;
      if($event-&amp;gt;getMode() == &amp;quot;after&amp;quot; &amp;amp;&amp;amp; $event-&amp;gt;getParam(&amp;quot;old-status-id&amp;quot;) != $event-&amp;gt;getParam(&amp;quot;new-status-id&amp;quot;)) {&lt;br /&gt;
      $order = $event-&amp;gt;getRef(&amp;quot;order&amp;quot;);&lt;br /&gt;
      $statusId = $order-&amp;gt;getValue(&amp;quot;status_id&amp;quot;);&lt;br /&gt;
      $codeName = order::getCodeByStatus($statusId);&lt;br /&gt;
       &lt;br /&gt;
      if($codeName != &amp;#039;waiting&amp;#039; || permissionsCollection::getInstance()-&amp;gt;isAuth()) return false;&lt;br /&gt;
      &lt;br /&gt;
      $customer_id = $order-&amp;gt;customer_id;&lt;br /&gt;
      $objects = umiObjectsCollection::getInstance();&lt;br /&gt;
      $object_customer = $objects-&amp;gt;getObject($customer_id);&lt;br /&gt;
      // У объекта &amp;quot;Незарегистрированный покупатель&amp;quot; берем значение поля fname       &lt;br /&gt;
      $name = $object_customer-&amp;gt;getValue(&amp;#039;fname&amp;#039;);&lt;br /&gt;
      // Меняем имя заказа на значение переменной $name&lt;br /&gt;
      $object_customer-&amp;gt;setName($name);&lt;br /&gt;
      $object_customer-&amp;gt;commit();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
и также в папке classes/modules/emarket/ создадим файл permissions.custom.php с таким содержанием:&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;onSetNameOrder&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В итоге, при просмотре списка заказов, имена заказов будут равны Имени покупателя.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Из-за некоторых особенностей хранения данных, при табличном отображении списка заказов, не просмотреть Адрес доставки. Чтобы решить этот вопрос, можно модифицировать метод onSetNameOrder() таким образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  public function onSetNameOrder(iUmiEventPoint $event) {&lt;br /&gt;
      if($event-&amp;gt;getMode() == &amp;quot;after&amp;quot; &amp;amp;&amp;amp; $event-&amp;gt;getParam(&amp;quot;old-status-id&amp;quot;) != $event-&amp;gt;getParam(&amp;quot;new-status-id&amp;quot;)) {&lt;br /&gt;
        $order = $event-&amp;gt;getRef(&amp;quot;order&amp;quot;);&lt;br /&gt;
        $adres_id = $order-&amp;gt;getValue(&amp;quot;delivery_address&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        $objects = umiObjectsCollection::getInstance();&lt;br /&gt;
        $object_address = $objects-&amp;gt;getObject($adres_id);&lt;br /&gt;
        $city = $object_address-&amp;gt;city;&lt;br /&gt;
        $street = $object_address-&amp;gt;street;&lt;br /&gt;
        $house = $object_address-&amp;gt;house;&lt;br /&gt;
        $str = $street . &amp;quot; &amp;quot; . $house . &amp;quot; &amp;quot; . $flat;&lt;br /&gt;
        $order-&amp;gt;setValue(&amp;#039;adres&amp;#039;, $str);&lt;br /&gt;
      &lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
где city, street и house это идентификаторы полей в типе данных &amp;quot;Адрес доставки&amp;quot;, который можно найти в модуле &amp;quot;Шаблоны данных&amp;quot;, первая вкладка, раздел &amp;quot;Справочники&amp;quot;. А &amp;#039;adres&amp;#039; - это строковый идентификатор нового поля, которое было добавлено в тип данных &amp;quot;Заказ&amp;quot;, в группу &amp;quot;Свойства доставки заказа&amp;quot;. Модифицированный метод выполняют функцию слияния значений полей из &amp;quot;Адреса доставки&amp;quot; и потом записывает итоговое значение в дополнительное поле, которое можно будет выбрать при табличном отображении заказов.&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%BF%D1%80%D0%B8_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8&amp;diff=3349</id>
		<title>Изменение имени заказа при оформлении покупки</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%BF%D1%80%D0%B8_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8&amp;diff=3349"/>
		<updated>2012-01-18T07:31:39Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: переименовал «Изменение имени заказа при оформлении покупки» в «Изменение имени объекта Незарегистрированного покупателя»:&amp;amp;#32;ошибк�&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Изменение имени объекта Незарегистрированного покупателя]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3342</id>
		<title>Вопросы и уроки разработки сайтов на UMI.CMS:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3342"/>
		<updated>2011-12-30T09:29:07Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Использование функций php]]&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Работа с кириллицей]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Вывод отдельного подраздела меню]]&lt;br /&gt;
*[[Вывод строки поиска]]&lt;br /&gt;
*[[Многоуровневое меню на XSLT]]&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Добавить JavaScript в xslt]]&lt;br /&gt;
*[[Вывод дополнительного поля из справочника XSLT]]&lt;br /&gt;
*[[Вывод уменьшенного изображения картинки на XSLT]]&lt;br /&gt;
*[[Пэйджинг объектов, которые фильтруются с помощью usel на XSLT]]&lt;br /&gt;
*[[Как работать с AJAX]]&lt;br /&gt;
*[[Отображение разного содержимого у страницы для зарегистрированного и незарегистрированного пользователя на XSLT]]&lt;br /&gt;
*[[Выбор тех объектов, у которых не пустое определённое поле]]&lt;br /&gt;
*[[Вывод числа по формату]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Вывести все тэги страницы по шаблону]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Вывод всех опросов одним вызовом]]&lt;br /&gt;
*[[Расширение функционала - сравнение товаров (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Вывод всех подразделов каталога в левом меню (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Добавление комментария в html-вывод из xslt-шаблонизатора]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $_REQUEST и $_SERVER]]&lt;br /&gt;
*[[Демо-дизайн &amp;quot;Современный&amp;quot;]]&lt;br /&gt;
*[[Добавление тегов пользователями сайта на примере форума]]&lt;br /&gt;
*[[Как менять оформление страниц из админки?]]&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Вывод всех значений справочника на примере списка рассылок]]&lt;br /&gt;
*[[Таймер обратного отсчета на примере XSLT-шаблонизатора]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле &amp;quot;ссылка на дерево&amp;quot;]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Скорость и кеширование&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Универсальный метод для кеширования xml-данных в XSLT]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[Универсальный метод для кеширования html-данных в XSLT]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page_id.field_name]]&lt;br /&gt;
*[[Использование статичных данных, вместо динамических]]&lt;br /&gt;
[[Категория:Шаблонизаторы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_html-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT&amp;diff=3341</id>
		<title>Универсальный метод для кэширования html-данных в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_html-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT&amp;diff=3341"/>
		<updated>2011-12-30T09:28:27Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «В одной из статей уже был рассмотрен способ кеширования html-кода в XSLT, это была статья [[Блоч…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В одной из статей уже был рассмотрен способ кеширования html-кода в XSLT,&lt;br /&gt;
это была статья [[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
&lt;br /&gt;
В данной статьей будет  показан пример универсального кастомного метода, &lt;br /&gt;
в который можно передавать основной вызов: модуль, метод, параметры и также&lt;br /&gt;
путь к шаблону для трансформации xml данных. Кастомный метод необходимо&lt;br /&gt;
добавить в файл &amp;#039;&amp;#039;&amp;#039;classes/modules/custom.php&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  public function xsltHtmlCache($expire = 3600, $module, $method){&lt;br /&gt;
      $xslFilePath = getRequest(&amp;#039;xsl&amp;#039;);&lt;br /&gt;
        // $filePath - путь к xsl-шаблону трансформации.&lt;br /&gt;
      $filePath = CURRENT_WORKING_DIR . &amp;#039;/xsltTpls/&amp;#039; . $xslFilePath;&lt;br /&gt;
      if(!is_file($filePath)) return;&lt;br /&gt;
      &lt;br /&gt;
      $args = func_get_args();&lt;br /&gt;
      $params = array_slice($args, 3);&lt;br /&gt;
      $params_str = implode(&amp;#039;/&amp;#039;, $params);&lt;br /&gt;
      $url = &amp;quot;udata://&amp;quot; . $module . &amp;#039;/&amp;#039; . $method . &amp;#039;/&amp;#039; . $params_str;&lt;br /&gt;
&lt;br /&gt;
      $folder = CURRENT_WORKING_DIR . &amp;#039;/sys-temp/udatacache/&amp;#039;;  &lt;br /&gt;
      $path = $folder . md5($url . $filePath) . &amp;#039;.xml&amp;#039;;&lt;br /&gt;
      if(!is_dir($folder)) mkdir($folder, 0777, true);&lt;br /&gt;
      if(is_file($path)) $mtime = filemtime($path);&lt;br /&gt;
   &lt;br /&gt;
      if(!is_file($path) || time() &amp;gt; ($mtime + $expire)) {    &lt;br /&gt;
      	&lt;br /&gt;
        $xsltDom = new DomDocument;&lt;br /&gt;
        $xsltDom-&amp;gt;resolveExternals = true;&lt;br /&gt;
        $xsltDom-&amp;gt;substituteEntities = true;&lt;br /&gt;
      &lt;br /&gt;
        $xsltDom-&amp;gt;load($filePath, DOM_LOAD_OPTIONS);&lt;br /&gt;
 &lt;br /&gt;
        $xslt = new xsltProcessor;&lt;br /&gt;
        $xslt-&amp;gt;registerPHPFunctions();&lt;br /&gt;
        $xslt-&amp;gt;importStyleSheet($xsltDom);&lt;br /&gt;
        $page_id = cmsController::getInstance()-&amp;gt;getCurrentElementId();&lt;br /&gt;
        $parent_id = &amp;quot;&amp;quot;;&lt;br /&gt;
        $active    = &amp;quot;&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        if($page_id){&lt;br /&gt;
           $page = umiHierarchy::getInstance()-&amp;gt;getElement($page_id);&lt;br /&gt;
           $parent_id = $page-&amp;gt;getParentId();&lt;br /&gt;
           $active    = (int) $page-&amp;gt;getIsDefault();&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // Добавляем необходимые глобальные переменные, которые можно будет использовать в xsl-шаблоне &lt;br /&gt;
        $xslt-&amp;gt;setParameter(&amp;quot;&amp;quot;, &amp;#039;parent-id&amp;#039;, $parent_id);&lt;br /&gt;
        $xslt-&amp;gt;setParameter(&amp;quot;&amp;quot;, &amp;#039;document-page-id&amp;#039;, $page_id);&lt;br /&gt;
        $xslt-&amp;gt;setParameter(&amp;quot;&amp;quot;, &amp;#039;active&amp;#039;, $active);&lt;br /&gt;
        &lt;br /&gt;
        $dom_new = new DOMDocument(&amp;quot;1.0&amp;quot;, &amp;quot;utf-8&amp;quot;);&lt;br /&gt;
        // $xml - xml-данные для трансформации.&lt;br /&gt;
        $xml = file_get_contents($url);&lt;br /&gt;
        $dom_new-&amp;gt;loadXML($xml);&lt;br /&gt;
 &lt;br /&gt;
        //производим трансформацию&lt;br /&gt;
        $result = $xslt-&amp;gt;transformToXML($dom_new);&lt;br /&gt;
        //html-данные необходимо включить в CDATA и в какой либо корневой узел.&lt;br /&gt;
        $result = &amp;quot;&amp;lt;udata mode=\&amp;quot;cache\&amp;quot;&amp;gt;&amp;lt;![CDATA[&amp;quot; . $result . &amp;quot;]]&amp;gt;&amp;lt;/udata&amp;gt;&amp;quot;;&lt;br /&gt;
        // данный принцип возвращения данных отключает xslt-трансформацию системой UMI.CMS&lt;br /&gt;
        return array(&amp;#039;plain:result&amp;#039; =&amp;gt; $result);&lt;br /&gt;
         &lt;br /&gt;
      }else{&lt;br /&gt;
        $result = file_get_contents($path);&lt;br /&gt;
        return array(&amp;#039;plain:result&amp;#039; =&amp;gt; $result);&lt;br /&gt;
      }	&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вызов может быть следующим:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://custom/xsltHtmlCache/3600/catalog/getCategoryList//8//1?xsl=modules/catalog/category-cache.xsl&amp;#039;)/udata&amp;quot; &lt;br /&gt;
disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обратите внимание в кастомном методе на блок:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
        // page_id текущей страницы сайта&lt;br /&gt;
        $page_id = cmsController::getInstance()-&amp;gt;getCurrentElementId();&lt;br /&gt;
        $parent_id = &amp;quot;&amp;quot;;&lt;br /&gt;
        $active    = &amp;quot;&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        if($page_id){&lt;br /&gt;
           $page = umiHierarchy::getInstance()-&amp;gt;getElement($page_id);&lt;br /&gt;
           $parent_id = $page-&amp;gt;getParentId();&lt;br /&gt;
           $active    = (int) $page-&amp;gt;getIsDefault();&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // Добавляем необходимые глобальные переменные, которые можно будет использовать в xsl-шаблоне &lt;br /&gt;
        $xslt-&amp;gt;setParameter(&amp;quot;&amp;quot;, &amp;#039;parent-id&amp;#039;, $parent_id);&lt;br /&gt;
        $xslt-&amp;gt;setParameter(&amp;quot;&amp;quot;, &amp;#039;document-page-id&amp;#039;, $page_id);&lt;br /&gt;
        $xslt-&amp;gt;setParameter(&amp;quot;&amp;quot;, &amp;#039;active&amp;#039;, $active);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория: Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3340</id>
		<title>Вопросы и уроки разработки сайтов на UMI.CMS:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3340"/>
		<updated>2011-12-30T09:24:47Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Использование функций php]]&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Работа с кириллицей]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Вывод отдельного подраздела меню]]&lt;br /&gt;
*[[Вывод строки поиска]]&lt;br /&gt;
*[[Многоуровневое меню на XSLT]]&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Добавить JavaScript в xslt]]&lt;br /&gt;
*[[Вывод дополнительного поля из справочника XSLT]]&lt;br /&gt;
*[[Вывод уменьшенного изображения картинки на XSLT]]&lt;br /&gt;
*[[Пэйджинг объектов, которые фильтруются с помощью usel на XSLT]]&lt;br /&gt;
*[[Как работать с AJAX]]&lt;br /&gt;
*[[Отображение разного содержимого у страницы для зарегистрированного и незарегистрированного пользователя на XSLT]]&lt;br /&gt;
*[[Выбор тех объектов, у которых не пустое определённое поле]]&lt;br /&gt;
*[[Вывод числа по формату]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Вывести все тэги страницы по шаблону]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Вывод всех опросов одним вызовом]]&lt;br /&gt;
*[[Расширение функционала - сравнение товаров (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Вывод всех подразделов каталога в левом меню (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Добавление комментария в html-вывод из xslt-шаблонизатора]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $_REQUEST и $_SERVER]]&lt;br /&gt;
*[[Демо-дизайн &amp;quot;Современный&amp;quot;]]&lt;br /&gt;
*[[Добавление тегов пользователями сайта на примере форума]]&lt;br /&gt;
*[[Как менять оформление страниц из админки?]]&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Вывод всех значений справочника на примере списка рассылок]]&lt;br /&gt;
*[[Таймер обратного отсчета на примере XSLT-шаблонизатора]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле &amp;quot;ссылка на дерево&amp;quot;]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Скорость и кеширование&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Универсальный метод для кеширования xml-данных в XSLT]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page_id.field_name]]&lt;br /&gt;
*[[Использование статичных данных, вместо динамических]]&lt;br /&gt;
*[[Универсальный метод для кеширования html-данных в XSLT]]&lt;br /&gt;
[[Категория:Шаблонизаторы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_xml-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT&amp;diff=3328</id>
		<title>Универсальный метод для кэширования xml-данных в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4_%D0%B4%D0%BB%D1%8F_%D0%BA%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_xml-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_XSLT&amp;diff=3328"/>
		<updated>2011-12-29T08:00:43Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «Некоторая информация по кешированию xml-данных была представлена в данной статье: [[Кеширов…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Некоторая информация по кешированию xml-данных была представлена в данной статье:&lt;br /&gt;
[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
&lt;br /&gt;
Универсальный метод, который необходимо добавить в файл &amp;#039;&amp;#039;&amp;#039;classes/modules/cutom.php&amp;#039;&amp;#039;&amp;#039;, может быть представлен в следующем виде:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  public function xsltCache($expire = 3600, $module, $method){&lt;br /&gt;
      $args = func_get_args();&lt;br /&gt;
      $params = array_slice($args, 3);&lt;br /&gt;
      $params_str = implode(&amp;#039;/&amp;#039;, $params);&lt;br /&gt;
      $url = &amp;quot;udata://&amp;quot; . $module . &amp;#039;/&amp;#039; . $method . &amp;#039;/&amp;#039; . $params_str;&lt;br /&gt;
      &lt;br /&gt;
      $folder = CURRENT_WORKING_DIR . &amp;#039;/sys-temp/udatacache/&amp;#039;;  &lt;br /&gt;
      $path = $folder . md5($url) . &amp;#039;.xml&amp;#039;;&lt;br /&gt;
      if(!is_dir($folder)) mkdir($folder, 0777, true);&lt;br /&gt;
      if(is_file($path)) $mtime = filemtime($path);&lt;br /&gt;
   &lt;br /&gt;
      if(!is_file($path) || time() &amp;gt; ($mtime + $expire)) {    &lt;br /&gt;
        $data = file_get_contents($url);&lt;br /&gt;
        file_put_contents($path, $data);&lt;br /&gt;
        return array(&amp;#039;plain:result&amp;#039; =&amp;gt; $data); &lt;br /&gt;
      }else{&lt;br /&gt;
        $result = file_get_contents($path);&lt;br /&gt;
        return array(&amp;#039;plain:result&amp;#039; =&amp;gt; $result);&lt;br /&gt;
      }	&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
а сам вызов в XSL-шаблоне будет следующим:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
udata://custom/xsltCache/3600/custom/lidersCustom/20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
где 3600 - время кеширования xml-данных в секундах,&lt;br /&gt;
custom - модуль&lt;br /&gt;
lidersCustom - метод&lt;br /&gt;
20 - один из параметров, их может быть больше одного&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3327</id>
		<title>Вопросы и уроки разработки сайтов на UMI.CMS:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3327"/>
		<updated>2011-12-29T07:58:08Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Использование функций php]]&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Работа с кириллицей]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Вывод отдельного подраздела меню]]&lt;br /&gt;
*[[Вывод строки поиска]]&lt;br /&gt;
*[[Многоуровневое меню на XSLT]]&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Добавить JavaScript в xslt]]&lt;br /&gt;
*[[Вывод дополнительного поля из справочника XSLT]]&lt;br /&gt;
*[[Вывод уменьшенного изображения картинки на XSLT]]&lt;br /&gt;
*[[Пэйджинг объектов, которые фильтруются с помощью usel на XSLT]]&lt;br /&gt;
*[[Как работать с AJAX]]&lt;br /&gt;
*[[Отображение разного содержимого у страницы для зарегистрированного и незарегистрированного пользователя на XSLT]]&lt;br /&gt;
*[[Выбор тех объектов, у которых не пустое определённое поле]]&lt;br /&gt;
*[[Вывод числа по формату]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Вывести все тэги страницы по шаблону]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Вывод всех опросов одним вызовом]]&lt;br /&gt;
*[[Расширение функционала - сравнение товаров (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Вывод всех подразделов каталога в левом меню (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Добавление комментария в html-вывод из xslt-шаблонизатора]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $_REQUEST и $_SERVER]]&lt;br /&gt;
*[[Демо-дизайн &amp;quot;Современный&amp;quot;]]&lt;br /&gt;
*[[Добавление тегов пользователями сайта на примере форума]]&lt;br /&gt;
*[[Как менять оформление страниц из админки?]]&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Вывод всех значений справочника на примере списка рассылок]]&lt;br /&gt;
*[[Таймер обратного отсчета на примере XSLT-шаблонизатора]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле &amp;quot;ссылка на дерево&amp;quot;]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Скорость и кеширование&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Универсальный метод для кеширования xml-данных в XSLT]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page_id.field_name]]&lt;br /&gt;
*[[Использование статичных данных, вместо динамических]]&lt;br /&gt;
[[Категория:Шаблонизаторы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3316</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3316"/>
		<updated>2011-12-29T07:49:25Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Декабрь==&lt;br /&gt;
*[[Универсальный метод для кеширования xml-данных в XSLT]]&lt;br /&gt;
*[[Универсальный метод для кеширования html-данных в XSLT]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;br /&gt;
*[[Установка и удаление модуля]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page id.field name]]&lt;br /&gt;
*[[Кеширование списка акционных товаров, для выбора одного случайного товара из кеша]]&lt;br /&gt;
*[[Использование статичных данных, вместо динамических]]&lt;br /&gt;
*[[Особенности импорта и экспорта CSV в модуле Обмен данными]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B0_%D0%B8_%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%B0_CSV_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%9E%D0%B1%D0%BC%D0%B5%D0%BD_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8&amp;diff=3308</id>
		<title>Особенности импорта и экспорта CSV в модуле Обмен данными</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B0_%D0%B8_%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%B0_CSV_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%9E%D0%B1%D0%BC%D0%B5%D0%BD_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8&amp;diff=3308"/>
		<updated>2011-12-29T07:25:56Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «Сначала рассмотрим пример импорта новых данных. Как и написано в документации, необходимо…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Сначала рассмотрим пример импорта новых данных. Как и написано в документации, необходимо указывать id страниц, id может содержать как буквы, так и цифры и он должен быть уникальным хотя бы для одного файла импорта.&lt;br /&gt;
Важно, родительские страницы, внутри которых есть дочерние, располагались в файле выше, до перечисления дочерних страниц.&lt;br /&gt;
При повторном импорте этого же файла, с измененными данными, уже существующие страницы обновятся. Корректное обновление &lt;br /&gt;
происходит потому что при первом импорте, в базе данных, в таблицу cms3_import_sources добавляется новый источник данных, к примеру с параметрами:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
id = 13&lt;br /&gt;
source_name = 3515.csv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
source_name выставляется равным названию импортируемого файла.&lt;br /&gt;
А в таблице cms3_import_relations, для нового источника импорта проставляются соответствия между id страницы в CSV-файле и id страницы который поставила UMI при создании страницы в системе. В итоге, при повторном импорте данных, по названию файла, в таблице &amp;#039;&amp;#039;&amp;#039;cms3_import_sources&amp;#039;&amp;#039;&amp;#039; определяется id источника импорта, предположим что он равен 13. Потом при обновлении страницы из CSV файла с id = 345_object, в таблице &amp;#039;&amp;#039;&amp;#039;cms3_import_relations&amp;#039;&amp;#039;&amp;#039; ищется строка параметрами:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source_id = 13&lt;br /&gt;
old_id    = 345_object&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
если соответствие найдено, то берется значение в столбце new_id и именно страница с данным page_id обновляется в системе.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим экспорт данных. При экспорте данных в Csv, система может дать название файлу с данными примерно в следующем виде:&lt;br /&gt;
5847.csv&lt;br /&gt;
&lt;br /&gt;
и в базе данных, в таблицах cms3_import_sources и cms3_import_relations пропишутся необходимые соответствия. Потом при изменении данных в полученном файле и импорте этого файла, очень важно, чтобы файл, который будет прикреплен к сценарию импорта сохранил свое исходное название, в данном случае это 5847.csv. Если название файла изменится, допустим станет 5847_10.csv, уже существующие данные не обновятся, будут созданы новые страницы, т.к. не найдется соответствий в таблицах cms3_import_sources (название файла) и cms3_import_relations (id страниц, которые должны быть обновлены).&lt;br /&gt;
[[Категория:Модуль Обмен данными]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A7%D0%B5%D0%BA%D0%B1%D0%BE%D0%BA%D1%81%D1%8B_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D0%B2%D1%8B%D0%BF%D0%B0%D0%B4%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;diff=3290</id>
		<title>Чекбоксы вместо выпадающего списка при фильтрации объектов каталога</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A7%D0%B5%D0%BA%D0%B1%D0%BE%D0%BA%D1%81%D1%8B_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D0%B2%D1%8B%D0%BF%D0%B0%D0%B4%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0&amp;diff=3290"/>
		<updated>2011-12-28T09:54:50Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Задача: реализовать в фильтрации каталога представление данных из выпадающего списка в виде чекбоксов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Данную задачу можно решить используя кастомный макрос. В кастомный макрос передается значение %name%, и используя средства API UMI.CMS [http://api.umi-cms.ru/] скрипт получает содержимое справочника для переданного поляи по полученным значения сформировать в цикле чекбоксы.&lt;br /&gt;
&lt;br /&gt;
Вызов в  кастомного скрипта производится в блоке &amp;#039;&amp;#039;&amp;#039;search_block_line_relation&amp;#039;&amp;#039;&amp;#039; (шаблона по которому производится фильтрация):&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
%custom filter_checkbox(%id%, %name%)% %object_name%&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате, код кастомного макроса должен выглядеть следующим образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
        public function filter_checkbox($items, $name) {&lt;br /&gt;
               &lt;br /&gt;
            $field_name = $name;&lt;br /&gt;
            $hierarchy = umiHierarchy::getInstance();&lt;br /&gt;
            $controller = cmsController::getInstance();&lt;br /&gt;
            $page_id = $controller-&amp;gt;getCurrentElementId();&lt;br /&gt;
            $h_type_id = umiHierarchyTypesCollection::getInstance()-&amp;gt;getTypeByName(&amp;#039;catalog&amp;#039;, &amp;#039;object&amp;#039;)-&amp;gt;getId();&lt;br /&gt;
            $type_id = $hierarchy-&amp;gt;getDominantTypeId($page_id, 10, $h_type_id);&lt;br /&gt;
                   &lt;br /&gt;
            $type = umiObjectTypesCollection::getInstance()-&amp;gt;getType($type_id);&lt;br /&gt;
            $field_id = $type-&amp;gt;getFieldId($field_name);           &lt;br /&gt;
            $field = umiFieldsCollection::getInstance()-&amp;gt;getField($field_id);&lt;br /&gt;
                   &lt;br /&gt;
            $guid_id = $field-&amp;gt;getGuideId();&lt;br /&gt;
            $arr = umiObjectsCollection::getInstance()-&amp;gt;getGuidedItems($guid_id);&lt;br /&gt;
               &lt;br /&gt;
            $res = &amp;quot;&amp;quot;;&lt;br /&gt;
            $i = 0;&lt;br /&gt;
           &lt;br /&gt;
            foreach ($arr as $key=&amp;gt;$value) {&lt;br /&gt;
                $res .= &amp;quot;&amp;lt;input type=\&amp;quot;checkbox\&amp;quot; name=\&amp;quot;fields_filter[$name][&amp;quot; . $i . &amp;quot;]\&amp;quot; id=\&amp;quot;&amp;quot; . $key .&amp;quot;\&amp;quot; value=\&amp;quot;&amp;quot; . $key .&amp;quot;\&amp;quot; /&amp;gt;&amp;quot; . $value . &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
                $i++;&lt;br /&gt;
            }&lt;br /&gt;
    &lt;br /&gt;
            return $res;&lt;br /&gt;
               &lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0_%D0%BE%D1%82%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D0%BF%D0%B0%D0%B4%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0&amp;diff=3288</id>
		<title>Создание кастомного метода для вывода отфильтрованного выпадающего списка</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0_%D0%BE%D1%82%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%8B%D0%BF%D0%B0%D0%B4%D0%B0%D1%8E%D1%89%D0%B5%D0%B3%D0%BE_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0&amp;diff=3288"/>
		<updated>2011-12-20T06:31:52Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Часто для проекта есть такое требование, как фильтр по товарам в каждом разделе каталога, и также необходимо, чтобы в одном из выпадающих списков были представлены только те варианты, которые актуальны для текущего раздела. Если говорить более точно, то задача такая что необходимо отобразить выпадающий список только с теми «Производителями», к примеру, объекты каталога которых представлены в текущем разделе. Если в текущем разделе нет объекта каталога с производителем Х, то его не надо включать в список. Далее будет описан пример составления выпадающего списка из строковых значений поля &amp;quot;Артикул&amp;quot;.&lt;br /&gt;
В файл classes/modules/custom.php, добавим следующий метод:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function selectart($parent_id){&lt;br /&gt;
     if(!$parent_id) return false;&lt;br /&gt;
     $parent_id = (int) $parent_id;&lt;br /&gt;
     // поиск объектов каталога в текущем разделе &lt;br /&gt;
     $sel = new selector(&amp;#039;pages&amp;#039;);&lt;br /&gt;
     $sel-&amp;gt;types(&amp;#039;hierarchy-type&amp;#039;)-&amp;gt;name(&amp;#039;catalog&amp;#039;, &amp;#039;object&amp;#039;);&lt;br /&gt;
     $sel-&amp;gt;where(&amp;#039;hierarchy&amp;#039;)-&amp;gt;page($parent_id)-&amp;gt;childs(1);&lt;br /&gt;
     $result = $sel-&amp;gt;result();&lt;br /&gt;
     //выборка значения из поля &amp;quot;artikul&amp;quot;, для всех объектов каталога &lt;br /&gt;
     $arr_artikul = array();&lt;br /&gt;
     foreach($result as $element){&lt;br /&gt;
      $artikul = $element-&amp;gt;getValue(&amp;quot;artikul&amp;quot;);&lt;br /&gt;
      if($artikul) $arr_artikul[] = $artikul; &lt;br /&gt;
     }&lt;br /&gt;
     // удаление повторов из массива $arr_artikul&lt;br /&gt;
     $result_arr = array_unique($arr_artikul);&lt;br /&gt;
     &lt;br /&gt;
     $get_value = &amp;quot;&amp;quot;;&lt;br /&gt;
     // определение текущего get параметра artikul в адресной строке&lt;br /&gt;
     if(array_key_exists(&amp;#039;fields_filter&amp;#039;, $_GET)){&lt;br /&gt;
      $ff = $_GET[&amp;#039;fields_filter&amp;#039;]; &lt;br /&gt;
      if(array_key_exists(&amp;#039;artikul&amp;#039;, $ff)){&lt;br /&gt;
        $get_value = $ff[&amp;#039;artikul&amp;#039;];&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
     // формирование итогового массива с данными, из которых потом будет строиться select&lt;br /&gt;
    $items = Array();&lt;br /&gt;
     foreach($result_arr as $item) {&lt;br /&gt;
    	$item_arr = Array();&lt;br /&gt;
    	$item_arr[&amp;#039;attribute:value&amp;#039;] = $item;&lt;br /&gt;
    	if($get_value &amp;amp;&amp;amp; $get_value == $item) $item_arr[&amp;#039;attribute:selected&amp;#039;] = 1;&lt;br /&gt;
    	$items[] = $item_arr;&lt;br /&gt;
     }&lt;br /&gt;
		&lt;br /&gt;
return Array(&amp;quot;items&amp;quot; =&amp;gt; Array(&amp;#039;nodes:item&amp;#039; =&amp;gt; $items));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В XSL-файле, в котором формируются фильтры для поиска, пропишем вызов нашего кастомного метода (для демо сайта это файл \xsltTpls\modules\catalog\search-filter.xsl):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;udata://custom/selectart/&amp;#039;, $document-page-id))&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
$document-page-id - переменная, в которой хранится id текущей страницы.&lt;br /&gt;
В этом же XSL-файле пропишем шаблоны для формирования выпадающего списка:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;udata[@method = &amp;#039;selectart&amp;#039;]&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;label&amp;gt;&lt;br /&gt;
      &amp;lt;span&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:text&amp;gt;Артикул&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;/span&amp;gt;&lt;br /&gt;
      &amp;lt;select name=&amp;quot;fields_filter[artikul]&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;option&amp;gt;Выберите артикул&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;option&amp;gt;---&amp;lt;/option&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:apply-templates select=&amp;quot;items/item&amp;quot; mode=&amp;quot;artikul&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/select&amp;gt;&lt;br /&gt;
    &amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;item&amp;quot; mode=&amp;quot;artikul&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;option value=&amp;quot;{@value}&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:if test=&amp;quot;@selected&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:attribute name=&amp;quot;selected&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:text&amp;gt;selected&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:value-of select=&amp;quot;@value&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Кастомный метод построен таким образом, что последнее выбранное значение сохраняется после окончания поиска.&lt;br /&gt;
&lt;br /&gt;
Пример результата работы метода selectart:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;udata xmlns:xlink=&amp;quot;http://www.w3.org/TR/xlink&amp;quot; module=&amp;quot;custom&amp;quot; method=&amp;quot;selectart&amp;quot; generation-time=&amp;quot;0.100543&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;items&amp;gt;&lt;br /&gt;
    &amp;lt;item value=&amp;quot;Экзотика&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item value=&amp;quot;Мечта&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item value=&amp;quot;Luxus&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item value=&amp;quot;Bella Vita&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;item value=&amp;quot;Verossa&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/items&amp;gt;&lt;br /&gt;
&amp;lt;/udata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория:Шаблонизаторы]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA%D0%B0_liveinternet&amp;diff=3282</id>
		<title>Добавление счетчика liveinternet</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%87%D0%B5%D1%82%D1%87%D0%B8%D0%BA%D0%B0_liveinternet&amp;diff=3282"/>
		<updated>2011-12-14T19:13:20Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Стоит задача подключить счетчик liveinternet с подобный кодом:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
document.write(&amp;quot;&amp;lt;a href=&amp;#039;http://www.liveinternet.ru/click&amp;#039; &amp;quot;+&lt;br /&gt;
&amp;quot;target=_blank&amp;gt;&amp;lt;img src=&amp;#039;//counter.yadro.ru/hit?ttttt&amp;quot;+&lt;br /&gt;
escape(document.referrer)+((typeof(screen)==&amp;quot;undefined&amp;quot;)?&amp;quot;&amp;quot;:&lt;br /&gt;
&amp;quot;;s&amp;quot;+screen.width+&amp;quot;*&amp;quot;+screen.height+&amp;quot;*&amp;quot;+(screen.colorDepth?&lt;br /&gt;
screen.colorDepth:screen.pixelDepth))+&amp;quot;;u&amp;quot;+escape(document.URL)+&lt;br /&gt;
&amp;quot;;h&amp;quot;+escape(document.title.substring(0,80))+&amp;quot;;&amp;quot;+Math.random()+&lt;br /&gt;
&amp;quot;&amp;#039; alt=&amp;#039;&amp;#039; title=&amp;#039;LiveInternet: показано число просмотров за 24&amp;quot;+&lt;br /&gt;
&amp;quot; часа, посетителей за 24 часа и за сегодня&amp;#039; &amp;quot;+&lt;br /&gt;
&amp;quot;border=&amp;#039;0&amp;#039; width=&amp;#039;88&amp;#039; height=&amp;#039;31&amp;#039;&amp;gt;&amp;lt;\/a&amp;gt;&amp;quot;)//--&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для решения задачи, необходимо в основном xsl шаблоне, между тэгами &amp;lt;body&amp;gt;, вставить код счетчика с использованием CDATA, т.е.:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;![CDATA[&lt;br /&gt;
document.write(&amp;quot;&amp;lt;a href=&amp;#039;http://www.liveinternet.ru/click&amp;#039; &amp;quot;+&lt;br /&gt;
&amp;quot;target=_blank&amp;gt;&amp;lt;img src=&amp;#039;//counter.yadro.ru/hit?ttttt&amp;quot;+&lt;br /&gt;
escape(document.referrer)+((typeof(screen)==&amp;quot;undefined&amp;quot;)?&amp;quot;&amp;quot;:&lt;br /&gt;
&amp;quot;;s&amp;quot;+screen.width+&amp;quot;*&amp;quot;+screen.height+&amp;quot;*&amp;quot;+(screen.colorDepth?&lt;br /&gt;
screen.colorDepth:screen.pixelDepth))+&amp;quot;;u&amp;quot;+escape(document.URL)+&lt;br /&gt;
&amp;quot;;h&amp;quot;+escape(document.title.substring(0,80))+&amp;quot;;&amp;quot;+Math.random()+&lt;br /&gt;
&amp;quot;&amp;#039; alt=&amp;#039;&amp;#039; title=&amp;#039;LiveInternet: показано число просмотров за 24&amp;quot;+&lt;br /&gt;
&amp;quot; часа, посетителей за 24 часа и за сегодня&amp;#039; &amp;quot;+&lt;br /&gt;
&amp;quot;border=&amp;#039;0&amp;#039; width=&amp;#039;88&amp;#039; height=&amp;#039;31&amp;#039;&amp;gt;&amp;lt;\/a&amp;gt;&amp;quot;);&lt;br /&gt;
]]&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Обратите внимание, что код самого счётчика необходимо получить самостоятельно, а из данного примера вырезана ссылка на реальный сайт.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Категория:Шаблонизаторы]][[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2_%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=3281</id>
		<title>Изменение расположения доменов зарегистрированных в системе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2_%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=3281"/>
		<updated>2011-12-14T06:36:09Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В некоторых случаях может возникнуть ситуация, когда необходимо удалить основной домен, а на его место переместить домен который находится на второй позиции, либо какой-то другой. Возможно также смена местами доменов, n-ый домен делается основным (1-ым), а на его место ставится основной домен. Перед выполнением этой операции, по запросу в [http://www.umi-cms.ru/support/ Службу Заботы], ваш лицензионный ключ от системы уже должен быть отвязан от текущего основного домена. Также, &amp;lt;u&amp;gt;&amp;#039;&amp;#039;&amp;#039;обязательно необходимо сделать бэкап базы данных&amp;#039;&amp;#039;&amp;#039;&amp;lt;/u&amp;gt;, т.к. операции достаточно опасные, возможна потеря данных, в случае ошибки, поэтому у вас должна быть возможность восстановить базу данных из бэкапа. &lt;br /&gt;
Сами действия следующие, сначала заходим в базу данных через известную утилиту phpmyadmin. В нужной базе данных, заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_hierarchy&amp;#039;&amp;#039;&amp;#039;, вкладка &amp;quot;&amp;#039;&amp;#039;&amp;#039;Структура&amp;#039;&amp;#039;&amp;#039;&amp;quot;, внизу выбираем &amp;quot;&amp;#039;&amp;#039;&amp;#039;Связи&amp;#039;&amp;#039;&amp;#039;&amp;quot;. Проверяем что для столбца &amp;#039;&amp;#039;&amp;#039;domain_id&amp;#039;&amp;#039;&amp;#039; проставлен ключ &amp;#039;&amp;#039;&amp;#039;FOREIGN KEY&amp;#039;&amp;#039;&amp;#039; (INNODB) со следующими параметрами:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cms3_domains.id&lt;br /&gt;
ON UPDATE CASCADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
если связь не установлена, то прописываем ее.&lt;br /&gt;
Далее, заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_templates&amp;#039;&amp;#039;&amp;#039;, и также во вкладку &amp;quot;Структура&amp;quot;, ссылка &amp;quot;Связи&amp;quot;, для столбца &amp;#039;&amp;#039;&amp;#039;domain_id&amp;#039;&amp;#039;&amp;#039; прописываем FOREIGN KEY, сама родительская таблица и столбец следующие:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cms3_domains.id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
а параметр &amp;#039;&amp;#039;&amp;#039;ON UPDATE&amp;#039;&amp;#039;&amp;#039; = &amp;#039;&amp;#039;&amp;#039;CASCADE&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_domains&amp;#039;&amp;#039;&amp;#039;, и для основного домена (&amp;#039;&amp;#039;&amp;#039;is_default = 1&amp;#039;&amp;#039;&amp;#039;) меняем id на какой либо другой, свободный, и is_default ставим = 0. А для того домена, который надо сделать основным, ставим &amp;#039;&amp;#039;&amp;#039;id=1&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;is_default = 1&amp;#039;&amp;#039;&amp;#039;. В таблице cms3_templates был прописан FOREIGN KEY  для того, чтобы когда в таблице cms3_domains  меняется id домена, он автоматически поменялся и в таблице cms3_templates, в столбце domain_id. Зайдя через браузер на новый основной домен, вы скорее всего увидите ошибку лицензионного ключа, в это окно необходимо ввести лицензионный ключ от вашей системы.&lt;br /&gt;
&lt;br /&gt;
Если необходимо удалить какой-либо домен, не выполняйте его удаление через базу данных, иначе в базе останется много мусора. Необходимо сначала в административной части удалить все страницы от домена, а потом уже сам домен.&lt;br /&gt;
[[Категория: Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%B2_%D0%BE%D0%B4%D0%B8%D0%BD_%D1%88%D0%B0%D0%B3_%E2%80%93_tpl_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80&amp;diff=3275</id>
		<title>Оформление заказа в один шаг – tpl шаблонизатор</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%B2_%D0%BE%D0%B4%D0%B8%D0%BD_%D1%88%D0%B0%D0%B3_%E2%80%93_tpl_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80&amp;diff=3275"/>
		<updated>2011-12-12T11:18:54Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье будет описан принцип создания формы оформления заказа за один шаг, т.е. все необходимые данные, регистрационные данные покупателя, способ доставки, способ оплаты и т.д. представлены на одной страницы. Для использования информации в данной статье версия вашей системы должна быть не ниже 2.8.4.3, иначе код не будет нормально функционировать при наличии в модуле Интернет-магазин способа доставки Курьером, и способа оплаты &amp;quot;Курьером при получении&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Нам понадобятся дополнительные php-методы для реализации данной задачи, которые необходимо добавить в файл &amp;#039;&amp;#039;&amp;#039;classes/modules/emarket/__custom.php&amp;#039;&amp;#039;&amp;#039;, сами методы следующие:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
public function deliveryAddressesList($template = &amp;#039;default&amp;#039;){&lt;br /&gt;
    $order = $this-&amp;gt;getBasketOrder(false);&lt;br /&gt;
    list($tpl_block, $tpl_item) = def_module::loadTemplates(&amp;quot;./tpls/emarket/delivery/{$template}.tpl&amp;quot;,&lt;br /&gt;
				&amp;#039;delivery_address_block&amp;#039;, &amp;#039;delivery_address_item&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			$customer  = customer::get();&lt;br /&gt;
			$addresses = $customer-&amp;gt;delivery_addresses;&lt;br /&gt;
			$items_arr = array();&lt;br /&gt;
			$currentDeliveryId = $order-&amp;gt;getValue(&amp;#039;delivery_address&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			$collection = umiObjectsCollection::getInstance();&lt;br /&gt;
&lt;br /&gt;
			if(is_array($addresses)) foreach($addresses as $address) {&lt;br /&gt;
				$addressObject = $collection-&amp;gt;getObject($address);&lt;br /&gt;
&lt;br /&gt;
				$item_arr = array(&lt;br /&gt;
					&amp;#039;attribute:id&amp;#039;		=&amp;gt; $address,&lt;br /&gt;
					&amp;#039;attribute:name&amp;#039;	=&amp;gt; $addressObject-&amp;gt;name&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				if($address == $currentDeliveryId) $item_arr[&amp;#039;attribute:active&amp;#039;] = &amp;#039;active&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
				$items_arr[] = def_module::parseTemplate($tpl_item, $item_arr, false, $address);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$types  = umiObjectTypesCollection::getInstance();&lt;br /&gt;
			$typeId = $types-&amp;gt;getBaseType(&amp;quot;emarket&amp;quot;, &amp;quot;delivery_address&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
			if($tpl_block) {&lt;br /&gt;
				return def_module::parseTemplate($tpl_block, array(&amp;#039;items&amp;#039; =&amp;gt; $items_arr, &amp;#039;type_id&amp;#039; =&amp;gt; $typeId));&lt;br /&gt;
			}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public function deliveryList($template = &amp;#039;default&amp;#039;) {&lt;br /&gt;
  $order = $this-&amp;gt;getBasketOrder(false);&lt;br /&gt;
  list($tpl_block, $tpl_item_free, $tpl_item_priced) = def_module::loadTemplates(&amp;quot;./tpls/emarket/delivery/{$template}.tpl&amp;quot;,&lt;br /&gt;
  &amp;#039;delivery_block&amp;#039;, &amp;#039;delivery_item_free&amp;#039;, &amp;#039;delivery_item_priced&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  if(!isset($_SESSION[&amp;#039;emarket&amp;#039;])) $_SESSION[&amp;#039;emarket&amp;#039;] = array();&lt;br /&gt;
  if(!isset($_SESSION[&amp;#039;emarket&amp;#039;][&amp;#039;delivery&amp;#039;])) $_SESSION[&amp;#039;emarket&amp;#039;][&amp;#039;delivery&amp;#039;] = array();&lt;br /&gt;
  &lt;br /&gt;
  $deliveryIds = delivery::getList(); $items_arr = array();&lt;br /&gt;
  $currentDeliveryId = $order-&amp;gt;getValue(&amp;#039;delivery_id&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  foreach($deliveryIds as $delivery) {&lt;br /&gt;
  $delivery = delivery::get($delivery);&lt;br /&gt;
  if($delivery-&amp;gt;validate($order) == false) {&lt;br /&gt;
  continue;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  $deliveryObject = $delivery-&amp;gt;getObject();&lt;br /&gt;
  $deliveryPrice  = $delivery-&amp;gt;getDeliveryPrice($order);&lt;br /&gt;
  $_SESSION[&amp;#039;emarket&amp;#039;][&amp;#039;delivery&amp;#039;][$delivery-&amp;gt;id] = (float)$deliveryPrice;&lt;br /&gt;
  $item_arr = array(&lt;br /&gt;
  &amp;#039;attribute:id&amp;#039;		=&amp;gt; $deliveryObject-&amp;gt;id,&lt;br /&gt;
  &amp;#039;attribute:name&amp;#039;	=&amp;gt; $deliveryObject-&amp;gt;name,&lt;br /&gt;
  &amp;#039;attribute:price&amp;#039;	=&amp;gt; $deliveryPrice.&amp;#039;&amp;#039;,&lt;br /&gt;
  &amp;#039;xlink:href&amp;#039;		=&amp;gt; $deliveryObject-&amp;gt;xlink&lt;br /&gt;
  );&lt;br /&gt;
  &lt;br /&gt;
  if($delivery-&amp;gt;id == $currentDeliveryId) $item_arr[&amp;#039;attribute:active&amp;#039;] = &amp;#039;active&amp;#039;;&lt;br /&gt;
  &lt;br /&gt;
  $tpl_item = $deliveryPrice ? $tpl_item_priced : $tpl_item_free;&lt;br /&gt;
  $items_arr[] = def_module::parseTemplate($tpl_item, $item_arr, false, $deliveryObject-&amp;gt;id);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if($tpl_block) {&lt;br /&gt;
  return def_module::parseTemplate($tpl_block, array(&amp;#039;items&amp;#039; =&amp;gt; $items_arr));&lt;br /&gt;
  } else {&lt;br /&gt;
  return array(&amp;#039;items&amp;#039; =&amp;gt; array(&amp;#039;nodes:item&amp;#039;	=&amp;gt; $items_arr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public function paymentsList($template = &amp;#039;default&amp;#039;) {&lt;br /&gt;
  $order = $this-&amp;gt;getBasketOrder(false);&lt;br /&gt;
  list($tpl_block, $tpl_item) = def_module::loadTemplates(&amp;quot;./tpls/emarket/payment/{$template}.tpl&amp;quot;, &amp;#039;payment_block&amp;#039;, &amp;#039;payment_item&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  $payementIds = payment::getList(); $items_arr = array();&lt;br /&gt;
  $currentPaymentId = $order-&amp;gt;getValue(&amp;#039;payment_id&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  foreach($payementIds as $paymentId) {&lt;br /&gt;
  $payment = payment::get($paymentId);&lt;br /&gt;
  if($payment-&amp;gt;validate($order) == false) continue;&lt;br /&gt;
  $paymentObject = $payment-&amp;gt;getObject();&lt;br /&gt;
  $paymentTypeId = $paymentObject-&amp;gt;getValue(&amp;#039;payment_type_id&amp;#039;);&lt;br /&gt;
  $paymentTypeName = umiObjectsCollection::getInstance()-&amp;gt;getObject($paymentTypeId)-&amp;gt;getValue(&amp;#039;class_name&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  if( $paymentTypeName == &amp;#039;social&amp;#039;) continue;&lt;br /&gt;
  &lt;br /&gt;
  $item_arr = array(&lt;br /&gt;
  &amp;#039;attribute:id&amp;#039;			=&amp;gt; $paymentObject-&amp;gt;id,&lt;br /&gt;
  &amp;#039;attribute:name&amp;#039;		=&amp;gt; $paymentObject-&amp;gt;name,&lt;br /&gt;
  &amp;#039;attribute:type-name&amp;#039;	=&amp;gt; $paymentTypeName,&lt;br /&gt;
  &amp;#039;xlink:href&amp;#039;			=&amp;gt; $paymentObject-&amp;gt;xlink&lt;br /&gt;
  );&lt;br /&gt;
  &lt;br /&gt;
  if($paymentId == $currentPaymentId) {&lt;br /&gt;
  $item_arr[&amp;#039;attribute:active&amp;#039;] = &amp;#039;active&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  $items_arr[] = def_module::parseTemplate($tpl_item, $item_arr, false, $paymentObject-&amp;gt;id);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if($tpl_block) {&lt;br /&gt;
  return def_module::parseTemplate($tpl_block, array(&amp;#039;items&amp;#039; =&amp;gt; $items_arr));&lt;br /&gt;
  } else {&lt;br /&gt;
  return array(&amp;#039;items&amp;#039; =&amp;gt; array(&amp;#039;nodes:item&amp;#039;	=&amp;gt; $items_arr));&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public function personalInfo($template = &amp;#039;default&amp;#039;) {&lt;br /&gt;
  if (!permissionsCollection::getInstance()-&amp;gt;isAuth()){&lt;br /&gt;
    $customerId = customer::get()-&amp;gt;id;&lt;br /&gt;
    $cmsController = cmsController::getInstance();&lt;br /&gt;
    $data = $cmsController-&amp;gt;getModule(&amp;#039;data&amp;#039;);&lt;br /&gt;
    &lt;br /&gt;
    return $data-&amp;gt;getEditForm($customerId, $template);&lt;br /&gt;
  }else return &amp;#039;&amp;#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public function saveinfo(){&lt;br /&gt;
  $order = $this-&amp;gt;getBasketOrder(false);&lt;br /&gt;
  //сохранение регистрационных данных&lt;br /&gt;
  $cmsController = cmsController::getInstance();&lt;br /&gt;
  $data = $cmsController-&amp;gt;getModule(&amp;#039;data&amp;#039;);&lt;br /&gt;
  $data-&amp;gt;saveEditedObject(customer::get()-&amp;gt;id, false, true);&lt;br /&gt;
  &lt;br /&gt;
  //сохранение способа доставки&lt;br /&gt;
  $deliveryId = getRequest(&amp;#039;delivery-id&amp;#039;);&lt;br /&gt;
  if($deliveryId){&lt;br /&gt;
    $delivery = delivery::get($deliveryId);&lt;br /&gt;
    $deliveryPrice = (float) $delivery-&amp;gt;getDeliveryPrice($order);&lt;br /&gt;
    $order-&amp;gt;setValue(&amp;#039;delivery_id&amp;#039;, $deliveryId);&lt;br /&gt;
    $order-&amp;gt;setValue(&amp;#039;delivery_price&amp;#039;, $deliveryPrice);&lt;br /&gt;
  }&lt;br /&gt;
  //сохранение адреса доставки&lt;br /&gt;
  $addressId = getRequest(&amp;#039;delivery-address&amp;#039;);&lt;br /&gt;
  if($addressId == &amp;#039;new&amp;#039;) {&lt;br /&gt;
    $collection = umiObjectsCollection::getInstance();&lt;br /&gt;
    $types      = umiObjectTypesCollection::getInstance();&lt;br /&gt;
    $typeId     = $types-&amp;gt;getBaseType(&amp;quot;emarket&amp;quot;, &amp;quot;delivery_address&amp;quot;);&lt;br /&gt;
    $customer   = customer::get();&lt;br /&gt;
    $addressId  = $collection-&amp;gt;addObject(&amp;quot;Address for customer #&amp;quot;.$customer-&amp;gt;id, $typeId);&lt;br /&gt;
    $dataModule = $cmsController-&amp;gt;getModule(&amp;quot;data&amp;quot;);&lt;br /&gt;
    if($dataModule) {&lt;br /&gt;
      $dataModule-&amp;gt;saveEditedObject($addressId, true, true);&lt;br /&gt;
    }&lt;br /&gt;
    $customer-&amp;gt;delivery_addresses = array_merge( $customer-&amp;gt;delivery_addresses, array($addressId) );&lt;br /&gt;
  }&lt;br /&gt;
  $order-&amp;gt;delivery_address = $addressId;&lt;br /&gt;
  &lt;br /&gt;
  //сохранение способа оплаты и редирект на итоговую страницу&lt;br /&gt;
  $order-&amp;gt;setValue(&amp;#039;payment_id&amp;#039;, getRequest(&amp;#039;payment-id&amp;#039;));&lt;br /&gt;
  &lt;br /&gt;
  $order-&amp;gt;refresh();&lt;br /&gt;
  &lt;br /&gt;
  $paymentId = getRequest(&amp;#039;payment-id&amp;#039;);&lt;br /&gt;
  if(!$paymentId) {&lt;br /&gt;
    $this-&amp;gt;errorNewMessage(getLabel(&amp;#039;error-emarket-choose-payment&amp;#039;));&lt;br /&gt;
    $this-&amp;gt;errorPanic();&lt;br /&gt;
  }&lt;br /&gt;
  $payment = payment::get($paymentId);&lt;br /&gt;
  &lt;br /&gt;
  if($payment instanceof payment) {&lt;br /&gt;
    $paymentName = $payment-&amp;gt;getCodeName();&lt;br /&gt;
    $url = &amp;quot;{$this-&amp;gt;pre_lang}/&amp;quot;.cmsController::getInstance()-&amp;gt;getUrlPrefix().&amp;quot;emarket/purchase/payment/{$paymentName}/&amp;quot;;&lt;br /&gt;
  } else {&lt;br /&gt;
    $url = &amp;quot;{$this-&amp;gt;pre_lang}/&amp;quot;.cmsController::getInstance()-&amp;gt;getUrlPrefix().&amp;quot;emarket/cart/&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  $this-&amp;gt;redirect($url);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
также в папку &amp;#039;&amp;#039;&amp;#039;classes/modules/emarket/&amp;#039;&amp;#039;&amp;#039; необходимо добавить файл &amp;#039;&amp;#039;&amp;#039;permissions.custom.php&amp;#039;&amp;#039;&amp;#039; следующего содержания:&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;deliveryList&amp;#039;, &amp;#039;deliveryAddressesList&amp;#039;, &amp;#039;paymentsList&amp;#039;, &amp;#039;personalInfo&amp;#039;, &amp;#039;saveinfo&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо создать шаблон &amp;#039;&amp;#039;&amp;#039;tpls/emarket/delivery/onestep.tpl&amp;#039;&amp;#039;&amp;#039;:&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;delivery_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;h3 class=&amp;quot;dost&amp;quot;&amp;gt;Выберите подходящий вам способ доставки:&amp;lt;/h3&amp;gt;&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		%items%&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;delivery_item_free&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;li&amp;gt;&amp;lt;input type=&amp;quot;radio&amp;quot; name=&amp;quot;delivery-id&amp;quot; value=&amp;quot;%id%&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt; %name% - бесплатно&amp;lt;/li&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
 &lt;br /&gt;
$FORMS[&amp;#039;delivery_item_priced&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;li&amp;gt;&amp;lt;input type=&amp;quot;radio&amp;quot; name=&amp;quot;delivery-id&amp;quot; value=&amp;quot;%id%&amp;quot; /&amp;gt; %name% - %price%&amp;lt;/li&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;delivery_address_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;div class=&amp;quot;adrest&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3 class=&amp;quot;dost&amp;quot;&amp;gt;Выберите подходящий вам адрес доставки:&amp;lt;/h3&amp;gt;&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		%items%&lt;br /&gt;
		&amp;lt;li&amp;gt;&lt;br /&gt;
			 &amp;lt;input type=&amp;quot;radio&amp;quot; name=&amp;quot;delivery-address&amp;quot; value=&amp;quot;new&amp;quot; /&amp;gt; &amp;lt;b&amp;gt;Новый адрес доставки:&amp;lt;/b&amp;gt;&lt;br /&gt;
			&amp;lt;table cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			%data getCreateForm(%type_id%, &amp;#039;onestep&amp;#039;)%&lt;br /&gt;
			&amp;lt;/table&amp;gt;&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;delivery_address_item&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;li&amp;gt;&amp;lt;input type=&amp;quot;radio&amp;quot; name=&amp;quot;delivery-address&amp;quot; value=&amp;quot;%id%&amp;quot; /&amp;gt;%index%, %city%, %street%, д. %house%, кв. %flat%&amp;lt;/li&amp;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;
&lt;br /&gt;
Шаблон &amp;#039;&amp;#039;&amp;#039;tpls/emarket/payment/onestep.tpl&amp;#039;&amp;#039;&amp;#039;:&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;payment_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	Выберите подходящий вам способ оплаты:&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		%items%&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;payment_item&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;li&amp;gt;&amp;lt;input type=&amp;quot;radio&amp;quot; name=&amp;quot;payment-id&amp;quot; value=&amp;quot;%id%&amp;quot; /&amp;gt; %name%&amp;lt;/li&amp;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;
&lt;br /&gt;
Шаблон &amp;#039;&amp;#039;&amp;#039;tpls/data/reflection/onestep.tpl&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$FORMS = Array();&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
%groups%&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_group&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;br/&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;b&amp;gt;%title%&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
	%fields%&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_string&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			%title%%required_asteriks%:&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;%input_name%&amp;quot; value=&amp;quot;%value%&amp;quot; class=&amp;quot;textinputs&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_text&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			%title%%required_asteriks%:&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;textarea name=&amp;quot;%input_name%&amp;quot; class=&amp;quot;textinputs&amp;quot;&amp;gt;%value%&amp;lt;/textarea&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_int&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			%title%%required_asteriks%:&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;%input_name%&amp;quot; value=&amp;quot;%value%&amp;quot; class=&amp;quot;textinputs&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_relation&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;tr&amp;gt;&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			%title%%required_asteriks%:&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;td&amp;gt;&lt;br /&gt;
			&amp;lt;select name=&amp;quot;%input_name%&amp;quot; style=&amp;quot;width: 205px&amp;quot; class=&amp;quot;textinputs&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;option /&amp;gt;&lt;br /&gt;
				%options%&lt;br /&gt;
			&amp;lt;/select&amp;gt;&lt;br /&gt;
		&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_relation_option&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;option value=&amp;quot;%id%&amp;quot;&amp;gt;%name%&amp;lt;/option&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;reflection_field_relation_option_a&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;option value=&amp;quot;%id%&amp;quot; selected=&amp;quot;selected&amp;quot;&amp;gt;%name%&amp;lt;/option&amp;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;
В шаблоне &amp;#039;&amp;#039;&amp;#039;tpls/emarket/default.tpl&amp;#039;&amp;#039;&amp;#039;, в блоке &amp;#039;&amp;#039;&amp;#039;order_block&amp;#039;&amp;#039;&amp;#039;, форма должна быть примерно следующая:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;form action=&amp;quot;%pre_lang%/emarket/saveinfo/&amp;quot;&amp;gt;&lt;br /&gt;
       %emarket deliveryList(&amp;#039;onestep&amp;#039;)%&lt;br /&gt;
        %emarket deliveryAddressesList(&amp;#039;onestep&amp;#039;)%&lt;br /&gt;
	&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
       &amp;lt;table cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
	 %data getCreateForm(5, &amp;#039;onestep&amp;#039;)%&lt;br /&gt;
       &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;br/&amp;gt;&lt;br /&gt;
       %emarket paymentsList(&amp;#039;onestep&amp;#039;)% &lt;br /&gt;
      &amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;table cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; border=&amp;quot;0&amp;quot;&amp;gt;	&lt;br /&gt;
       %emarket personalInfo(&amp;#039;onestep&amp;#039;)% &lt;br /&gt;
      &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;br/&amp;gt; &lt;br /&gt;
      &amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Оформить заказ&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/form&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;data getCreateForm()&amp;#039;&amp;#039;&amp;#039;, первый параметр это id типа данных &amp;quot;Адрес доставки&amp;quot; в модуле &amp;quot;Шаблоны данных&amp;quot;, первая вкладка, раздел &amp;quot;Справочники&amp;quot;, этот id вы должны для вашей системы определить самостоятельно и подставить в макрос data getCreateForm().&lt;br /&gt;
[[Категория:Шаблонизаторы]][[Категория:Верстка в TPL]]&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B9_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%D0%BF%D1%80%D0%B8_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%BD%D0%BE%D0%BC_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B5,_tpl-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=3274</id>
		<title>Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%B0_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B9_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%D0%BF%D1%80%D0%B8_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%BD%D0%BE%D0%BC_%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B5,_tpl-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&amp;diff=3274"/>
		<updated>2011-12-06T13:36:10Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В некоторых случаях, при отображении группы ссылок для перехода на следующие страницы, необходимо отобразить индекс самой последней страницы, чтобы пользователь понимал объем объектов представленных в текущем разделе. Для вывода ссылок на следующие страницы используется стандартный макрос &amp;#039;&amp;#039;&amp;#039;system numpages()&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Для выполнения поставленной задачи, добавим кастомный метод в файл &amp;#039;&amp;#039;&amp;#039;classes/modules/custom.php&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  public function last_number($link, $size = 5){   	  &lt;br /&gt;
    $link = str_replace(&amp;#039;?&amp;#039;, &amp;#039;&amp;#039;, $link);&lt;br /&gt;
    parse_str($link, $arr_link);&lt;br /&gt;
    $last_number = $arr_link[&amp;#039;p&amp;#039;];  &lt;br /&gt;
    $last_name = $last_number + 1;     &lt;br /&gt;
    $cur_page = (int) getRequest(&amp;#039;p&amp;#039;);&lt;br /&gt;
    if($cur_page + $size &amp;lt; $last_name) return &amp;quot;...&amp;lt;a href=&amp;#039;?p={$last_number}&amp;#039;&amp;gt; {$last_name}&amp;lt;/a&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вызов макроса numpages может быть таким:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%system numpages(%total%, %per_page%, &amp;#039;standart&amp;#039;)%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
тогда в шаблоне &amp;#039;&amp;#039;&amp;#039;tpls/numpages/standart.tpl&amp;#039;&amp;#039;&amp;#039;, в блоке &amp;#039;&amp;#039;&amp;#039;pages_block&amp;#039;&amp;#039;&amp;#039;, после макроса %pages%, добавим вызов кастомного макроса:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%pages%(html-пробел)%custom last_number(%toend_link%, 5)%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5 – в том случае, если в группе отображается пять ссылок для перехода.&lt;br /&gt;
&lt;br /&gt;
Кастомный макрос, в случае, если стандартный макрос %pages% не отображает ссылку на последнею страницу, все-таки отобразит последний индекс.&lt;br /&gt;
Кастомный макрос можно использовать вместо %toend%, который выводит блок  pages_toend  , либо  pages_toend_a.&lt;br /&gt;
[[Категория: Верстка в TPL]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3273</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3273"/>
		<updated>2011-12-05T09:40:15Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;br /&gt;
*[[Установка и удаление модуля]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page id.field name]]&lt;br /&gt;
*[[Кеширование списка акционных товаров, для выбора одного случайного товара из кеша]]&lt;br /&gt;
*[[Использование статичных данных, вместо динамических]]&lt;br /&gt;
*[[Особенности импорта и экспорта CSV в модуле Обмен данными]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3272</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3272"/>
		<updated>2011-12-05T09:31:30Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;br /&gt;
*[[Установка и удаление модуля]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page id.field name]]&lt;br /&gt;
*[[Кеширование списка акционных товаров, для выбора одного случайного товара из кеша]]&lt;br /&gt;
*[[Использование статичных данных, вместо динамических]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%BD%D1%8B%D1%85_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85,_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85&amp;diff=3271</id>
		<title>Использование статичных данных, вместо динамических</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%BD%D1%8B%D1%85_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85,_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85&amp;diff=3271"/>
		<updated>2011-12-05T09:31:10Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «При использовании XSLT-шаблонизатора, некоторые данные можно получить динамически, т.е. исп…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При использовании XSLT-шаблонизатора, некоторые данные можно получить динамически, т.е. использовать какие-либо протоколы, uobject, udata, и т.д., но можно эти же данные прописать статичным html-кодом, в случае если данные не изменяются. Рассмотрим некоторые примеры.&lt;br /&gt;
&lt;br /&gt;
В узле result текущей страницы, для Гостя будет следующий блок:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;user id=&amp;quot;298&amp;quot; type=&amp;quot;guest&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В случае, если object_id текущего пользователя был определен в глобальном шаблоне:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;user-id&amp;quot; select=&amp;quot;/result/user/@id&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;	&lt;br /&gt;
то логин текущего пользователя, можно получить таким образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;login_user&amp;quot; select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, $user-id, &amp;#039;.login&amp;#039;))//value&amp;quot; /&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
В итоге, для Гостя, в переменной login_user будет храниться значение &amp;quot;Гость&amp;quot;, но совсем не обязательно производить данный вызов,&lt;br /&gt;
если тип текущего пользователя guest:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;user id=&amp;quot;298&amp;quot; type=&amp;quot;guest&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
можно просто сделать проверу на тип (type), и если он равен guest, то установить переменную login_user = &amp;quot;Гость&amp;quot;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;user-id&amp;quot; select=&amp;quot;/result/user/@id&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
В TPL-шаблонизаторе, вместо макроса &amp;#039;&amp;#039;&amp;#039;%search insert_form()%&amp;#039;&amp;#039;&amp;#039;, можно сразу прописать нужный html-код для формы поиска. &lt;br /&gt;
Важно понимать, то что если даже выполняется какой-то простой метод, какого-то модуля, время тратится как на инициализацию модуля,&lt;br /&gt;
так ни на выполнение самого метода. При большой посещаемости сайта, 100 тыс. хитов и более, любая оптимизация будет полезна.&lt;br /&gt;
[[Категория: Верстка в XSLT]][[Категория: Верстка в TPL]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3270</id>
		<title>Вопросы и уроки разработки сайтов на UMI.CMS:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3270"/>
		<updated>2011-12-05T09:25:36Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Использование функций php]]&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Работа с кириллицей]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Вывод отдельного подраздела меню]]&lt;br /&gt;
*[[Вывод строки поиска]]&lt;br /&gt;
*[[Многоуровневое меню на XSLT]]&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Добавить JavaScript в xslt]]&lt;br /&gt;
*[[Вывод дополнительного поля из справочника XSLT]]&lt;br /&gt;
*[[Вывод уменьшенного изображения картинки на XSLT]]&lt;br /&gt;
*[[Пэйджинг объектов, которые фильтруются с помощью usel на XSLT]]&lt;br /&gt;
*[[Как работать с AJAX]]&lt;br /&gt;
*[[Отображение разного содержимого у страницы для зарегистрированного и незарегистрированного пользователя на XSLT]]&lt;br /&gt;
*[[Выбор тех объектов, у которых не пустое определённое поле]]&lt;br /&gt;
*[[Вывод числа по формату]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Вывести все тэги страницы по шаблону]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Вывод всех опросов одним вызовом]]&lt;br /&gt;
*[[Расширение функционала - сравнение товаров (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Вывод всех подразделов каталога в левом меню (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Добавление комментария в html-вывод из xslt-шаблонизатора]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $_REQUEST и $_SERVER]]&lt;br /&gt;
*[[Демо-дизайн &amp;quot;Современный&amp;quot;]]&lt;br /&gt;
*[[Добавление тегов пользователями сайта на примере форума]]&lt;br /&gt;
*[[Как менять оформление страниц из админки?]]&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Вывод всех значений справочника на примере списка рассылок]]&lt;br /&gt;
*[[Таймер обратного отсчета на примере XSLT-шаблонизатора]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле &amp;quot;ссылка на дерево&amp;quot;]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Скорость и кеширование&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page_id.field_name]]&lt;br /&gt;
*[[Использование статичных данных, вместо динамических]]&lt;br /&gt;
[[Категория:Шаблонизаторы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3269</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3269"/>
		<updated>2011-12-05T05:25:06Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;br /&gt;
*[[Установка и удаление модуля]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page id.field name]]&lt;br /&gt;
*[[Кеширование списка акционных товаров, для выбора одного случайного товара из кеша]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%B0%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2,_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B8%D0%B7_%D0%BA%D1%8D%D1%88%D0%B0&amp;diff=3268</id>
		<title>Кэширование списка акционных товаров, для выбора одного случайного товара из кэша</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%B0%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2,_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE%D0%B3%D0%BE_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B8%D0%B7_%D0%BA%D1%8D%D1%88%D0%B0&amp;diff=3268"/>
		<updated>2011-12-05T05:24:41Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «Не редким случаем является тот вариант, когда необходимо на сайте выводить один или неско…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Не редким случаем является тот вариант, когда необходимо на сайте выводить один или несколько акционных товаров, и чтобы при обновлении страницы, из определенного списка эти товары выбирались случайным образом. &lt;br /&gt;
Если сайт небольшой, мало данных, небольшая посещаемость, то можно конечно используя протокол &amp;#039;&amp;#039;&amp;#039;usel&amp;#039;&amp;#039;&amp;#039; , написать шаблон, по которому в разделе каталога будет случайным образом выбираться один элемент каталога отмеченный чекбоксом Акция.&lt;br /&gt;
В случае TPL-шаблонизатора, необходимо будет еще использовать макрос &amp;#039;&amp;#039;&amp;#039;%data doSelection()%&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Но если ситуация по сайту совсем иная, это серьезный Интернет магазин, с большой посещаемостью, то было бы неправильным, при каждой загрузке страницы, из всего каталога, выбирать случайным образом товар, с указанными параметрами.&lt;br /&gt;
&lt;br /&gt;
Для решения данного вопроса, без лишней нагрузки на сервер, можно использовать кеширование данных. Из общего списка товаров, которые подходят по нужным условиям, делается [http://ru.php.net/manual/ru/function.serialize.php сериализованный] массив и сохраняется в кеш, можно просто в файл. Кеш можно настроить так, чтобы он обновлялся один раз в час. Данные из Кеша (или из файла) считываются, потом с помощью php-функции [http://ru.php.net/manual/ru/function.array-rand.php array_rand] из массива можно выбрать случайное значение (id товара):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$arr_serialize = file_get_contents(&amp;quot;…&amp;quot;);&lt;br /&gt;
$arr_id = unserialize($arr_serialize);&lt;br /&gt;
if(!is_array($arr_id) || !sizeof($arr_id)) return &amp;quot;&amp;quot;;&lt;br /&gt;
$rand_key = array_rand($arr_id);&lt;br /&gt;
$page_id = $arr_id[$rand_key];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так как четкий алгоритм для выборки только id страниц с помощью протокола &amp;#039;&amp;#039;&amp;#039;Selector&amp;#039;&amp;#039;&amp;#039; еще не опреден, то лучше использовать  [http://api.umi-cms.ru/ umiSelection]. Примеры кеширования данных можно посмотреть в этом же разделе, что и эта статья.&lt;br /&gt;
[[Категория: Верстка в XSLT ]] [[Категория: Верстка в TPL]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3266</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3266"/>
		<updated>2011-12-05T04:37:21Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;br /&gt;
*[[Установка и удаление модуля]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page id.field name]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%B0%D0%B6%D0%BD%D0%BE%D0%B5_%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D0%B5_%D0%BC%D0%B5%D0%B6%D0%B4%D1%83_%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%BC_%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_upage_%D0%B8_%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D1%8B%D0%BC_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F_upage.page_id.field_name&amp;diff=3265</id>
		<title>Важное отличие между полным получением данных через upage и частичным используя upage.page id.field name</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%B0%D0%B6%D0%BD%D0%BE%D0%B5_%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B8%D0%B5_%D0%BC%D0%B5%D0%B6%D0%B4%D1%83_%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%BC_%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_upage_%D0%B8_%D1%87%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D1%8B%D0%BC_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F_upage.page_id.field_name&amp;diff=3265"/>
		<updated>2011-12-05T04:37:02Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «При использовании XSLT-шаблонизатора, вам часто приходится через протокол UPAGE получать данн…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;При использовании XSLT-шаблонизатора, вам часто приходится через протокол UPAGE получать данные о странице в xml-формате. Обязательно, при выводе списка объектов каталога, не забывайте о наличии способа вызова, который позволяет получить значение только одного поля, а именно:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:variable name=&amp;quot;photo_link&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $page_id, &amp;#039;.photo&amp;#039;))//value&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дополнительная информация находится в документации [http://help-dev.umi-cms.ru/chapter.XSLTTemplates.Upage.html протокол UPage]&lt;br /&gt;
&lt;br /&gt;
Может возникнуть ситуация, что у объектов каталога, будет очень много полей с данными, 40-50 или больше, поэтому на построение полных xml данных, при вызове upage://47 , будет расходоваться очень много времени, оно может отличаться в 5-10 раз, начнут возникать вопросы, почему сайт работает не так быстро как хотелось бы. Суть проста, не надо получать огромный объем данных в xml-формате, из которого вы будете использовать лишь 2-3%, это важное условие для оптимизации сайта.&lt;br /&gt;
&lt;br /&gt;
В случае высокопосещаемого сайта, необходимо использовать другой подход к получение данных, об этом написано в статье [[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3264</id>
		<title>Вопросы и уроки разработки сайтов на UMI.CMS:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3264"/>
		<updated>2011-12-05T04:31:30Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Использование функций php]]&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Работа с кириллицей]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Вывод отдельного подраздела меню]]&lt;br /&gt;
*[[Вывод строки поиска]]&lt;br /&gt;
*[[Многоуровневое меню на XSLT]]&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Добавить JavaScript в xslt]]&lt;br /&gt;
*[[Вывод дополнительного поля из справочника XSLT]]&lt;br /&gt;
*[[Вывод уменьшенного изображения картинки на XSLT]]&lt;br /&gt;
*[[Пэйджинг объектов, которые фильтруются с помощью usel на XSLT]]&lt;br /&gt;
*[[Как работать с AJAX]]&lt;br /&gt;
*[[Отображение разного содержимого у страницы для зарегистрированного и незарегистрированного пользователя на XSLT]]&lt;br /&gt;
*[[Выбор тех объектов, у которых не пустое определённое поле]]&lt;br /&gt;
*[[Вывод числа по формату]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Вывести все тэги страницы по шаблону]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Вывод всех опросов одним вызовом]]&lt;br /&gt;
*[[Расширение функционала - сравнение товаров (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Вывод всех подразделов каталога в левом меню (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Добавление комментария в html-вывод из xslt-шаблонизатора]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $_REQUEST и $_SERVER]]&lt;br /&gt;
*[[Демо-дизайн &amp;quot;Современный&amp;quot;]]&lt;br /&gt;
*[[Добавление тегов пользователями сайта на примере форума]]&lt;br /&gt;
*[[Как менять оформление страниц из админки?]]&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Вывод всех значений справочника на примере списка рассылок]]&lt;br /&gt;
*[[Таймер обратного отсчета на примере XSLT-шаблонизатора]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле &amp;quot;ссылка на дерево&amp;quot;]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Скорость и кеширование&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
*[[Важное отличие между полным получением данных через upage и частичным используя upage.page_id.field_name]]&lt;br /&gt;
[[Категория:Шаблонизаторы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3263</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3263"/>
		<updated>2011-12-05T04:18:37Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;br /&gt;
*[[Установка и удаление модуля]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5%D0%BB%D1%8C%D0%B7%D1%8F_%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BD_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5&amp;diff=3261</id>
		<title>Как нельзя делать определение максимальной и минимальной цен товара в разделе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5%D0%BB%D1%8C%D0%B7%D1%8F_%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8_%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D0%BD_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5&amp;diff=3261"/>
		<updated>2011-12-05T04:17:55Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «Часто, по техническому заданию, необходимо в фильтре по товарам, отобразить минимальную и …»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Часто, по техническому заданию, необходимо в фильтре по товарам, отобразить минимальную и максимальную цену для товаров, которые находятся в текущем разделе. Совершенно точно, нельзя вычислять данные параметры, перебором цены каждого товара в разделе, через php-объект страницы, к примеру:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
//поиск Страниц, получение результатов = массиву из объектов getElement&lt;br /&gt;
$pages = new selector(&amp;#039;pages&amp;#039;);&lt;br /&gt;
$pages-&amp;gt;where(&amp;#039;hierarchy&amp;#039;)-&amp;gt;page($parent_id)-&amp;gt;childs(1);&lt;br /&gt;
$min = 0;&lt;br /&gt;
$max = 0;&lt;br /&gt;
foreach ($pages as $page)&lt;br /&gt;
// получение от каждой страницы значения поля price, и запись его в переменные $min и $max&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В разделе может быть очень много страниц, 500-1000 и более, поэтому в данном случае сервер может просто зависнуть или будет очень сильно тормозить. Приемлемым вариантом, для решения данной задачи считается использование одного sql-запроса, пример для XSLT-шаблонизатора:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function min_and_max($category_id){&lt;br /&gt;
$category_id = (int) $category_id;&lt;br /&gt;
// 193 – filed_id поля price&lt;br /&gt;
 $sql = &amp;quot;SELECT MAX( oc_193.float_val ), MIN( oc_193.float_val )&lt;br /&gt;
FROM cms3_hierarchy h, cms3_object_content oc_193&lt;br /&gt;
WHERE h.obj_id = oc_193.obj_id&lt;br /&gt;
AND h.rel = {$category_id}&lt;br /&gt;
AND h.is_deleted = &amp;#039;0&amp;#039;&lt;br /&gt;
AND h.is_active = &amp;#039;1&amp;#039;&lt;br /&gt;
AND oc_193.field_id =193&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$result = l_mysql_query($sql);&lt;br /&gt;
list($max_price, $min_price)= mysql_fetch_row($result);&lt;br /&gt;
$block_arr = Array();&lt;br /&gt;
$block_arr[&amp;#039;min&amp;#039;] = $min_price;&lt;br /&gt;
$block_arr[&amp;#039;max&amp;#039;] = $max_price;&lt;br /&gt;
return $block_arr;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория: Верстка в XSLT]] [[Категория: Верстка в TPL]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3260</id>
		<title>Вопросы и уроки разработки сайтов на UMI.CMS:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3260"/>
		<updated>2011-12-05T04:13:14Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Использование функций php]]&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Работа с кириллицей]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Вывод отдельного подраздела меню]]&lt;br /&gt;
*[[Вывод строки поиска]]&lt;br /&gt;
*[[Многоуровневое меню на XSLT]]&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Добавить JavaScript в xslt]]&lt;br /&gt;
*[[Вывод дополнительного поля из справочника XSLT]]&lt;br /&gt;
*[[Вывод уменьшенного изображения картинки на XSLT]]&lt;br /&gt;
*[[Пэйджинг объектов, которые фильтруются с помощью usel на XSLT]]&lt;br /&gt;
*[[Как работать с AJAX]]&lt;br /&gt;
*[[Отображение разного содержимого у страницы для зарегистрированного и незарегистрированного пользователя на XSLT]]&lt;br /&gt;
*[[Выбор тех объектов, у которых не пустое определённое поле]]&lt;br /&gt;
*[[Вывод числа по формату]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Вывести все тэги страницы по шаблону]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Вывод всех опросов одним вызовом]]&lt;br /&gt;
*[[Расширение функционала - сравнение товаров (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Вывод всех подразделов каталога в левом меню (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Добавление комментария в html-вывод из xslt-шаблонизатора]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $_REQUEST и $_SERVER]]&lt;br /&gt;
*[[Демо-дизайн &amp;quot;Современный&amp;quot;]]&lt;br /&gt;
*[[Добавление тегов пользователями сайта на примере форума]]&lt;br /&gt;
*[[Как менять оформление страниц из админки?]]&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Вывод всех значений справочника на примере списка рассылок]]&lt;br /&gt;
*[[Таймер обратного отсчета на примере XSLT-шаблонизатора]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле &amp;quot;ссылка на дерево&amp;quot;]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Скорость и кеширование&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Как нельзя делать определение максимальной и минимальной цен товара в разделе]]&lt;br /&gt;
[[Категория:Шаблонизаторы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3259</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3259"/>
		<updated>2011-12-02T05:23:34Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;br /&gt;
*[[Установка и удаление модуля]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F&amp;diff=3258</id>
		<title>Установка и удаление модуля</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F&amp;diff=3258"/>
		<updated>2011-12-02T05:23:13Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «Как вам уже должно быть известно, при установке какого либо модуля используется файл: &amp;lt;pre&amp;gt; cl…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как вам уже должно быть известно, при установке какого либо модуля используется файл:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classes/modules/mymodule/install.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
в этом файле прописываются различные ключи реестра и их значения по умолчанию, к примеру:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$INFO[&amp;#039;per_page&amp;#039;] = &amp;quot;20&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Но в этом же файле, в случае необходимости, можно с помощью [http://api.umi-cms.ru/ API UMI.CMS] прописать другой код, который при установке модуля создаст какой-либо тип данных, справочник или выполнит какие-либо другие действия.&lt;br /&gt;
&lt;br /&gt;
При удалении модуля, в конечном итоге для удаляемого модуля вызывается метод &amp;#039;&amp;#039;&amp;#039;uninstall&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$module	= cmsController::getInstance()-&amp;gt;getModule($module_name);&lt;br /&gt;
$module-&amp;gt;uninstall();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
если метод не будет найден в классе удаляемого из системы модуля, то выполнится метод &amp;#039;&amp;#039;&amp;#039;uninstall&amp;#039;&amp;#039;&amp;#039; в классе &amp;#039;&amp;#039;&amp;#039;def_module&amp;#039;&amp;#039;&amp;#039;, файл &amp;#039;&amp;#039;&amp;#039;classes/modules/def_module.php&amp;#039;&amp;#039;&amp;#039;. Но, если если при удалении модуля, необходимо не только удалить ключи реестра, но и выполнить еще какие-либо действия, то необходимо добавить метод uninstall в ваш class.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
classes/modules/mymodule/class.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Каркас метода:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  public function uninstall() {&lt;br /&gt;
  	//дополнительные действия&lt;br /&gt;
&lt;br /&gt;
        //стандартные действия&lt;br /&gt;
  	  $regedit = regedit::getInstance();&lt;br /&gt;
  	  $className = get_class($this);&lt;br /&gt;
  	  $k = $regedit-&amp;gt;getKey(&amp;#039;//modules/&amp;#039; . $className);&lt;br /&gt;
  	  $regedit-&amp;gt;delVar(&amp;#039;//modules/&amp;#039; . $className);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Категория: API]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=API&amp;diff=3257</id>
		<title>API</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=API&amp;diff=3257"/>
		<updated>2011-12-02T05:19:16Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Работа с событиями UMI.CMS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[События - подсчет количества объектов каталога в разделе]]&lt;br /&gt;
*[[События – автоматическое наследование meta_keywords и meta_descriptions]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&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;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль]]&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;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Selector - протокол выборки данных]]&lt;br /&gt;
*[[UmiMail]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Примеры использования API]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер ]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3256</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3256"/>
		<updated>2011-12-02T04:48:04Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2&amp;diff=3255</id>
		<title>Отладка кастомных методов</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2&amp;diff=3255"/>
		<updated>2011-12-02T04:47:50Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «Если вы создали кастомный метод, или использовали готовое решение с сайта &amp;#039;&amp;#039;&amp;#039;wiki.umisoft.ru&amp;#039;&amp;#039;&amp;#039;, но …»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если вы создали кастомный метод, или использовали готовое решение с сайта &amp;#039;&amp;#039;&amp;#039;wiki.umisoft.ru&amp;#039;&amp;#039;&amp;#039;, но метод не работает так как вы ожидали, или на сайте вообще белый экран, то необходимо отлаживать (debug) ваш метод. Вы являетесь разработчиком, раз выполняете подключение кастомным методов, и в первую очередь как раз вы и должны решать возникшие вопросы некорректности работы какого-либо кастомного метода. &lt;br /&gt;
Перед отладкой, желательно включить [http://help-dev.umi-cms.ru/part.Config.debug.html debug] в конфигурационном файле &amp;#039;&amp;#039;&amp;#039;config.ini&amp;#039;&amp;#039;&amp;#039;, для вашего ip_адреса, а далее использовать любую удобную вам конструкцию, для вывода промежуточных данных вашего метода, для того чтобы понять в чем проблема, на каком месте все ломается, не проходит нужное условие, не приходят нужные данные. К примеру, это может быть:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var_dump($result);&lt;br /&gt;
exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подобная конструкция постепенно перемещается по вашему методу, с самого начала до проблемных строк кода.&lt;br /&gt;
&lt;br /&gt;
В некоторых случаях, если не поставить:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
то вы можете не увидеть каких-либо данных, т.к. наша система перед выводом данных сайта очистит буфер, в который попали ваши данные по отладке. Желательно конечно, чтобы данные по отладке были видны только с вашего компьютера, тогда используем конструкцию вида:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if($_SERVER[&amp;#039;REMOTE_ADDR&amp;#039;] == &amp;#039;127.127.127.127&amp;#039;){ &lt;br /&gt;
    var_dump($result);&lt;br /&gt;
    exit;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
или:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if($_SERVER[&amp;#039;HTTP_X_REAL_IP&amp;#039;] == &amp;#039;127.127.127.127&amp;#039;){&lt;br /&gt;
    var_dump($result);&lt;br /&gt;
    exit;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
вместо 127.127.127.127 – необходимо подставить ip вашего компьютера.&lt;br /&gt;
Если вы отлаживаете ваш сплиттер для модуля &amp;quot;Обмен данными&amp;quot;, не забываем про существование fireBug’a, браузера FireFox, смотря запросы, вкладку &amp;quot;Ответ&amp;quot;, можно проверить ваши отладочные данные.&lt;br /&gt;
&lt;br /&gt;
В php есть достаточно полезная функция [http://ru.php.net/manual/ru/function.debug-backtrace.php debug_backtrace],&lt;br /&gt;
которая позволяет видеть цепочку выполненных методов, перед вызов этой функции в месте отладки. Стандартный вызов следующий:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var_dump(debug_backtrace());&lt;br /&gt;
exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Категория: API]][[Категория: Написание кастомных макросов]]&lt;br /&gt;
более удобный вид отображения данных:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if($_SERVER[&amp;#039;REMOTE_ADDR&amp;#039;] == &amp;#039;127.127.127.127&amp;#039;){&lt;br /&gt;
    $backtrace = debug_backtrace();&lt;br /&gt;
    foreach($backtrace as $arr){&lt;br /&gt;
      $str = &amp;#039;&amp;#039;;&lt;br /&gt;
      if(isset($arr[&amp;#039;file&amp;#039;])) $str.= &amp;#039;file: &amp;#039; . $arr[&amp;#039;file&amp;#039;];&lt;br /&gt;
      if(isset($arr[&amp;#039;line&amp;#039;])) $str.= &amp;#039;&amp;lt;br/&amp;gt; line: &amp;#039; . $arr[&amp;#039;line&amp;#039;];&lt;br /&gt;
      if(isset($arr[&amp;#039;function&amp;#039;])) $str.= &amp;#039;&amp;lt;br/&amp;gt; function: &amp;#039; . $arr[&amp;#039;function&amp;#039;];&lt;br /&gt;
      if(isset($arr[&amp;#039;args&amp;#039;])){      &lt;br /&gt;
        $str.= &amp;#039;&amp;lt;br/&amp;gt; args: &amp;#039;;&lt;br /&gt;
        foreach($arr[&amp;#039;args&amp;#039;] as $key =&amp;gt; $value){&lt;br /&gt;
          $value = (is_object($value)) ? get_class($value) : $value;&lt;br /&gt;
          $str.= &amp;quot;[{$key}] =&amp;gt; &amp;quot; . $value . &amp;#039;  &amp;#039;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      echo  $str . &amp;#039;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;#039;;   &lt;br /&gt;
    } &lt;br /&gt;
    exit;  &lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=API&amp;diff=3254</id>
		<title>API</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=API&amp;diff=3254"/>
		<updated>2011-12-02T04:40:12Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Работа с событиями UMI.CMS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[События - подсчет количества объектов каталога в разделе]]&lt;br /&gt;
*[[События – автоматическое наследование meta_keywords и meta_descriptions]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&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;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&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;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Selector - протокол выборки данных]]&lt;br /&gt;
*[[UmiMail]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Примеры использования API]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер ]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Отладка кастомных методов]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2_%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=3253</id>
		<title>Изменение расположения доменов зарегистрированных в системе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2_%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=3253"/>
		<updated>2011-12-02T04:39:47Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В некоторых случаях может возникнуть ситуация, когда необходимо удалить основной домен, а на его место переместить домен который находится на второй позиции, либо какой-то другой. Возможно также смена местами доменов, n-ый домен делается основным (1-ым), а на его место ставится основной домен. Перед выполнением этой операции, по запросу в [http://www.umi-cms.ru/support/ Службу Заботы], ваш лицензионный ключ от системы уже должен быть отвязан от текущего основного домена. Также, обязательно необходимо сделать бэкап базы данных, т.к. операции достаточно опасные, возможна потеря данных, в случае ошибки, поэтому у вас должна быть возможность восстановить базу данных из бэкапа. &lt;br /&gt;
Сами действия следующие, сначала заходим в базу данных через известную утилиту phpmyadmin. В нужной базе данных, заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_hierarchy&amp;#039;&amp;#039;&amp;#039;, вкладка &amp;quot;&amp;#039;&amp;#039;&amp;#039;Структура&amp;#039;&amp;#039;&amp;#039;&amp;quot;, внизу выбираем &amp;quot;&amp;#039;&amp;#039;&amp;#039;Связи&amp;#039;&amp;#039;&amp;#039;&amp;quot;. Проверяем что для столбца &amp;#039;&amp;#039;&amp;#039;domain_id&amp;#039;&amp;#039;&amp;#039; проставлен ключ &amp;#039;&amp;#039;&amp;#039;FOREIGN KEY&amp;#039;&amp;#039;&amp;#039; (INNODB) со следующими параметрами:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cms3_domains.id&lt;br /&gt;
ON UPDATE CASCADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
если связь не установлена, то прописываем ее.&lt;br /&gt;
Далее, заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_templates&amp;#039;&amp;#039;&amp;#039;, и также во вкладку &amp;quot;Структура&amp;quot;, ссылка &amp;quot;Связи&amp;quot;, для столбца &amp;#039;&amp;#039;&amp;#039;domain_id&amp;#039;&amp;#039;&amp;#039; прописываем FOREIGN KEY, сама родительская таблица и столбец следующие:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cms3_domains.id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
а параметр &amp;#039;&amp;#039;&amp;#039;ON UPDATE&amp;#039;&amp;#039;&amp;#039; = &amp;#039;&amp;#039;&amp;#039;CASCADE&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_domains&amp;#039;&amp;#039;&amp;#039;, и для основного домена (&amp;#039;&amp;#039;&amp;#039;is_default = 1&amp;#039;&amp;#039;&amp;#039;) меняем id на какой либо другой, свободный, и is_default ставим = 0. А для того домена, который надо сделать основным, ставим &amp;#039;&amp;#039;&amp;#039;id=1&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;is_default = 1&amp;#039;&amp;#039;&amp;#039;. В таблице cms3_templates был прописан FOREIGN KEY  для того, чтобы когда в таблице cms3_domains  меняется id домена, он автоматически поменялся и в таблице cms3_templates, в столбце domain_id. Зайдя через браузер на новый основной домен, вы скорее всего увидите ошибку лицензионного ключа, в это окно необходимо ввести лицензионный ключ от вашей системы.&lt;br /&gt;
&lt;br /&gt;
Если необходимо удалить какой-либо домен, не выполняйте его удаление через базу данных, иначе в базе останется много мусора. Необходимо сначала в административной части удалить все страницы от домена, а потом уже сам домен.&lt;br /&gt;
[[Категория: Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3252</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3252"/>
		<updated>2011-12-02T04:11:37Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
*[[Изменение расположения доменов зарегистрированных в системе]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2_%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=3251</id>
		<title>Изменение расположения доменов зарегистрированных в системе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2_%D0%B7%D0%B0%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=3251"/>
		<updated>2011-12-02T04:11:21Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «В некоторых случаях может возникнуть ситуация, когда необходимо удалить основной домен, а…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В некоторых случаях может возникнуть ситуация, когда необходимо удалить основной домен, а на его место переместить домен который находится на второй позиции, либо какой-то другой. Возможно также смена местами доменов, n-ый домен делается основным (1-ым), а на его место ставится основной домен. Перед выполнением этой операции, по запросу в [http://www.umi-cms.ru/support/ Службу Заботы], ваш лицензионный ключ от системы уже должен быть отвязан от текущего основного домена. Также, обязательно необходимо сделать бэкап базы данных, т.к. операции достаточно опасные, возможна потеря данных, в случае ошибки, поэтому у вас должна быть возможность восстановить базу данных из бэкапа. &lt;br /&gt;
Сами действия следующие, сначала заходим в базу данных через известную утилиту phpmyadmin. В нужной базе данных, заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_hierarchy&amp;#039;&amp;#039;&amp;#039;, вкладка &amp;quot;&amp;#039;&amp;#039;&amp;#039;Структура&amp;#039;&amp;#039;&amp;#039;&amp;quot;, внизу выбираем &amp;quot;&amp;#039;&amp;#039;&amp;#039;Связи&amp;#039;&amp;#039;&amp;#039;&amp;quot;. Проверяем что для столбца &amp;#039;&amp;#039;&amp;#039;domain_id&amp;#039;&amp;#039;&amp;#039; проставлен ключ &amp;#039;&amp;#039;&amp;#039;FOREIGN KEY&amp;#039;&amp;#039;&amp;#039; (INNODB) со следующими параметрами:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cms3_domains.id&lt;br /&gt;
ON UPDATE CASCADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
если связь не установлена, то прописываем ее.&lt;br /&gt;
Далее, заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_templates&amp;#039;&amp;#039;&amp;#039;, и также во вкладку &amp;quot;Структура&amp;quot;, ссылка &amp;quot;Связи&amp;quot;, для столбца &amp;#039;&amp;#039;&amp;#039;domain_id&amp;#039;&amp;#039;&amp;#039; прописываем FOREIGN KEY, сама родительская таблица и столбец следующие:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cms3_domains.id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
а параметр &amp;#039;&amp;#039;&amp;#039;ON UPDATE&amp;#039;&amp;#039;&amp;#039; = &amp;#039;&amp;#039;&amp;#039;CASCADE&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее заходим в таблицу &amp;#039;&amp;#039;&amp;#039;cms3_domains&amp;#039;&amp;#039;&amp;#039;, и для основного домена (&amp;#039;&amp;#039;&amp;#039;is_default = 1&amp;#039;&amp;#039;&amp;#039;) меняем id на какой либо другой, свободный, и is_default ставим = 0. А для того домена, который надо сделать основным, ставим &amp;#039;&amp;#039;&amp;#039;id=1&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;is_default = 1&amp;#039;&amp;#039;&amp;#039;. В таблице cms3_templates был прописан FOREIGN KEY  для того, чтобы когда в таблице cms3_domains  меняется id домена, он автоматически поменялся и в таблице cms3_templates, в столбце domain_id. Зайдя через браузер на новый основной домен, вы скорее всего увидите ошибку лицензионного ключа, в это окно необходимо ввести лицензионный ключ от вашей системы.&lt;br /&gt;
&lt;br /&gt;
Если необходимо удалить какой-либо домен, не выполняйте его удаление через базу данных, иначе в базе останется много мусора. Необходимо сначала в административной части удалить все страницы от домена, а потом уже сам домен.&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3243</id>
		<title>Участник:VITL&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:VITL%27&amp;diff=3243"/>
		<updated>2011-11-29T04:53:24Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Ноябрь==&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
*[[Белый экран вместо редиректа]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;br /&gt;
*[[Добавление обработчиков событий в ваш кастомный модуль ]]&lt;br /&gt;
*[[Использование модуля GeoIP в TPL-шаблонизаторе]]&lt;br /&gt;
*[[Импортирование Единицы измерения номенклатурной позиции]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
*[[Изменение формирования номера следующего заказа и имени заказа]]&lt;br /&gt;
*[[Кеширование динамического многоуровнего меню]]&lt;br /&gt;
*[[Работа с подписчиками средствами API UMI.CMS]]&lt;br /&gt;
*[[Удаление страниц через клиентскую часть]]&lt;br /&gt;
*[[Заказ черновик или временная корзина]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Блочное кеширование html-кода в TPL]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер]]&lt;br /&gt;
*[[Обновление объектов созданных вручную данными из 1С]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Изменение шаблонов страниц, после того как данные уже импортированы из 1С]]&lt;br /&gt;
*[[Процесс формирования заказов для 1С]]&lt;br /&gt;
*[[Проверка активности раздела каталога при использовании макроса getCategoryList]]&lt;br /&gt;
*[[Отключение экспорта виртуальных копий в YML]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Расширение функционала метода emarket basket]]&lt;br /&gt;
*[[Отключение складывания скидок на заказ и товар]]&lt;br /&gt;
*[[Особенность добавления прав на модули для пользователей]]&lt;br /&gt;
*[[Оформление заказа в один шаг – tpl шаблонизатор]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Определение страницы с которой была сделана виртуальная копия]]&lt;br /&gt;
*[[Почему не сохраняется положение структуры и панель с модулями]]&lt;br /&gt;
*[[Дополнительные параметры фильтрации в адресной строке]]&lt;br /&gt;
*[[Общий принцип подключения новой платежной системы]]&lt;br /&gt;
*[[Логика работы макроса content в tpl-шаблонах]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Скидка на товар в зависимости от количества этого товара в корзине]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Использование ajax модуля Обмен данными для выполнения определенных операций]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Замена метода go_to для подсчета переходов по баннеру]]&lt;br /&gt;
*[[Подсчет количества объектов каталога в разделе через События]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Максимальное и минимальное значение цен среди объектов каталога]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Повторение ранее совершенного заказа]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Мультиязычность - локализация сайта на tpl-шаблонах]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $ REQUEST и $ SERVER]]&lt;br /&gt;
*[[Отображение индекса последней страницы при постраничном выводе, tpl-шаблоны]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[События - подписка на рассылки при регистрации пользователя]]&lt;br /&gt;
*[[Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны]]&lt;br /&gt;
==Март==&lt;br /&gt;
*[[Импорт объектов каталога сразу в несколько разделов]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[Экспорт в YML списка объектов каталога]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Использование выпадающего списка с множественным выбором]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms, ч.2]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Captcha и ее смена при каждом обновлении страницы, отправке сообщения]]&lt;br /&gt;
==Февраль==&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Добавление нового правила скидки]]&lt;br /&gt;
*[[Смена шагов оформления заказа на этапе delivery]]&lt;br /&gt;
*[[Подключение дополнительных шаблонов для административного интерфейса]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&lt;br /&gt;
*[[Добавление нового сплиттера для импорта данных]]&lt;br /&gt;
*[[Подключение поддерживаемых платежных систем]]&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кастомизация getCreateForm и getEditForm для гибкой верстки полей]]&lt;br /&gt;
*[[Модификация способа вывода объектов каталога (TPL)]]&lt;br /&gt;
==Январь==&lt;br /&gt;
*[[Selector - протокол выборки данных]] *&lt;br /&gt;
*[[Голосование за страницы]]&lt;br /&gt;
*[[Динамическое изменение количества объектов на странице]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Использование макроса system makeThumbnail с учетом ориентации изображения, TPL-шаблоны]]&lt;br /&gt;
*[[Поиск страниц с другого домена используя протокол usel или API]]&lt;br /&gt;
*[[Редактирование страниц с клиентской части сайта]]&lt;br /&gt;
*[[Механизм работы кэша в umi]]&lt;br /&gt;
*[[Рекомендации по ускорению работы сайта]]&lt;br /&gt;
*[[Трансформация xml-даннных в кастомном php макросе]]&lt;br /&gt;
&lt;br /&gt;
==Декабрь==&lt;br /&gt;
*[[Округление значения стоимости заказа]]&lt;br /&gt;
*[[Добавление нового формата экспорта данных]]&lt;br /&gt;
*[[Ссылка на платежную квитанцию в личном кабинете]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Добавление товара в корзину с указанием Количества]]&lt;br /&gt;
*[[Сброс информации о текущем покупателе, обнуление cookie]]&lt;br /&gt;
*[[Добавление комментария при оформлении заказа]]&lt;br /&gt;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Функционал импорта и экспорта в csv для какого-либо модуля]]&lt;br /&gt;
*[[Создание скидки для emarket-а с помощью API]]&lt;br /&gt;
==Ноябрь==&lt;br /&gt;
*[[Captcha – изменение настроек (2.8)]]&lt;br /&gt;
*[[Настройка rss ленты]]&lt;br /&gt;
*[[Визуальное оформление недавно добавленных товаров]]&lt;br /&gt;
*[[Изменение значений полей h1 и title при обновлении данных]]&lt;br /&gt;
*[[Получение ссылки на страницу с использованием параметра object id]]&lt;br /&gt;
*[[Автоматическая индексация страниц при интеграции с 1С]]&lt;br /&gt;
*[[Получение object id страницы зная element id (tpl-шаблоны)]]&lt;br /&gt;
*[[Redirect в системе, перенос сайта на umi.cms]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
*[[Изменение имени заказа при оформлении покупки]]&lt;br /&gt;
*[[Редактирование объектов каталога определенного типа при табличном отображении]]&lt;br /&gt;
==Октябрь==&lt;br /&gt;
*[[Мультидоменность – замена макроса content (tpl)]]&lt;br /&gt;
*[[Мультиязычность - перевод выпадающих списков]]&lt;br /&gt;
*[[Получение доступа к методом модулей]]&lt;br /&gt;
*[[Ошибки при интеграции с 1С]]&lt;br /&gt;
*[[Формирование YML файла для разных доменов в системе]]&lt;br /&gt;
*[[Управление адресами доставки в настройках пользователя (tpl)]]&lt;br /&gt;
*[[Удаление адреса доставки]]&lt;br /&gt;
==Сентябрь==&lt;br /&gt;
*[[Другой вариант платежной квитанции]]&lt;br /&gt;
*[[Интеграция с 1С на хостингах Sweb и RU-center (nic.ru)]]&lt;br /&gt;
*[[Отправка писем менеджерам в зависимости от домена]]&lt;br /&gt;
*[[Настройка экспорта в YML (Яндекс-маркет)]]&lt;br /&gt;
*[[Автоматическая установка значений по умолчанию]]&lt;br /&gt;
*[[Переключатель (radio) вместо выпадающего списка]]&lt;br /&gt;
*[[Robots.txt на каждый домен (2.8)]]&lt;br /&gt;
*[[Настройка верстки для каждого поля при использовании webforms add]]&lt;br /&gt;
*[[Импорт товаров в систему 1С]]&lt;br /&gt;
*[[События – автоматическое наследование meta keywords и meta descriptions]]&lt;br /&gt;
==Август==&lt;br /&gt;
*[[Возможности extended-pack]]&lt;br /&gt;
*[[Единственный тип данных Объект каталога, при импорте из 1С]]&lt;br /&gt;
*[[Импорт всех типов Цен]]&lt;br /&gt;
*[[Импорт нескольких изображений для одного товара]]&lt;br /&gt;
*[[Перемещение элементов при импорте их из 1С]]&lt;br /&gt;
*[[Сохранение типов полей из 1С]]&lt;br /&gt;
*[[Суть интеграции с 1С]]&lt;br /&gt;
*[[Техническая сторона импорта данных из 1С]]&lt;br /&gt;
*[[Удаление элементов или снятие активности при импорте данных из 1С]]&lt;br /&gt;
*[[Использование нескольких Цен для одного товара]]&lt;br /&gt;
==Июль==&lt;br /&gt;
*[[Создание собственного модуля (страницы)]]&lt;br /&gt;
*[[Отображение цены товара на сайте в другой валюте (2.8)]]&lt;br /&gt;
*[[Экспорт данных в формат UmiDump2.0 при нехватке memory limit на хостинге]]&lt;br /&gt;
*[[Вложенные комментарии]]&lt;br /&gt;
*[[Уведомление менеджеру о заказе, со всем необходимыми данными (emarket)]]&lt;br /&gt;
*[[Использование метода setValue при сохранении строки типа HTML-текст]]&lt;br /&gt;
*[[Использование Событий для подсчета Фотографий в Фотоальбоме]]&lt;br /&gt;
==Июнь==&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Форматирование значения цены товара (вставка пробелов)]]&lt;br /&gt;
==Май==&lt;br /&gt;
*[[Добавление страниц через клиентскую часть]]&lt;br /&gt;
*[[Фильтрация объектов каталога по всем разделам]]&lt;br /&gt;
*[[Переиндексация сайта при нехватке производительности сервера]]&lt;br /&gt;
*[[Примеры использования макроса data doSelection]]&lt;br /&gt;
*[[Экспорт в YML при нехватке производительности сервера (umi 2.8.1)]]&lt;br /&gt;
*[[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
*[[Создание кастомного макроса на основе существующего (data getObjectList)]]&lt;br /&gt;
==Апрель==&lt;br /&gt;
*[[Обновленный макрос doSelection, который принимает GET параметры (Фильтрация данных)]]&lt;br /&gt;
*[[Отображение значения скидки в процентах tpl 2.8)]]&lt;br /&gt;
*[[Где прячутся тэги?]]&lt;br /&gt;
*[[Экспорт в YML при нехватке оперативной памяти под php скрипты (версия 2.7.4 и ниже)]]&lt;br /&gt;
*[[Смена изображения при наведении на него курсора мыши]]&lt;br /&gt;
*[[Подключение кастомных макросов и событий для модулей]]&lt;br /&gt;
*[[Вывод значения поля для случайной страницы]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Блоги 2.0]]&lt;br /&gt;
*[[Экспорт определенных полей в csv файл]]&lt;br /&gt;
*[[Архитектура базы данных системы]]&lt;br /&gt;
== Март ==&lt;br /&gt;
*[[Пример создания сложной фильтрации по каталогу (кастомный макрос)]]&lt;br /&gt;
*[[Вывод страницы в карте сайте с отключением вывода в меню]]&lt;br /&gt;
*[[Ограничение вывода тэгов при использовании макроса tagsDomainEfficiencyCloud]]&lt;br /&gt;
*[[Дополнительный параметр для поиска (search branches)]]&lt;br /&gt;
*[[Карта сайта без каких-либо настроек страниц]]&lt;br /&gt;
*[[Недокументированный макрос news calendar() для Гостей]]&lt;br /&gt;
*[[Добавление новых (кастомных) полей для модуля Комментарии]]&lt;br /&gt;
*[[Вывод общей стоимости заказа без скидки (umi 2.8 и выше)]]&lt;br /&gt;
*[[Вывод значений полей группы в виде таблицы]]&lt;br /&gt;
*[[Получение значений полей у родительских страниц любого уровня]]&lt;br /&gt;
== Февраль ==&lt;br /&gt;
*[[Обновленный макрос system order_by (двойная сортировка по одной ссылке)]]&lt;br /&gt;
*[[Экспорт в YML (vendor.model)]]&lt;br /&gt;
*[[Вывод значения цены без скидки]]&lt;br /&gt;
*[[Отображение цены товара в другой валюте]]&lt;br /&gt;
*[[Как удалить всех подписчиков на рассылку?]]&lt;br /&gt;
*[[Вывод даты последней модификации страницы (API)]]&lt;br /&gt;
*[[Вывод автора страницы]]&lt;br /&gt;
*[[Вывод аватара пользователя]]&lt;br /&gt;
*[[Автоматический перевод полей страниц для сайтов En-Ru + подключение нужных шаблонов]]&lt;br /&gt;
*[[Вызов шаблона, макроса в зависимоcти от значения]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%91%D0%B5%D0%BB%D1%8B%D0%B9_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=3241</id>
		<title>Белый экран вместо редиректа</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%91%D0%B5%D0%BB%D1%8B%D0%B9_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=3241"/>
		<updated>2011-11-29T04:52:06Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Часто возникает ситуация, когда при выполнении редиректа с помощью метода системы &amp;#039;&amp;#039;&amp;#039;redirect($url)&amp;#039;&amp;#039;&amp;#039;, класс def_module, в браузере появляется белый экран, а FireBug показывает в &amp;quot;Ответе&amp;quot; время генерации страницы:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- This page generated in 0.152338 secs --&amp;gt;   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
В данном случае, скорее всего проблема в том, что где-то в кастомном php-файле, или tpl-шаблоне, или еще где-то поставлен лишний перенос строки, и в текущий буфер отправляются какие-то данные, из-за этого не могут записаться заголовки для редиректа и он в итоге не происходит. Для отслеживания в каком файле проблема, можно воспользоваться php-методом &amp;#039;&amp;#039;&amp;#039;headers_sent&amp;#039;&amp;#039;&amp;#039;. В файле &amp;#039;&amp;#039;&amp;#039;classes/modules/def_module.php&amp;#039;&amp;#039;&amp;#039;, в методе  redirect, в начале метода можно поставить такие строки:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
if($_SERVER[&amp;#039;REMOTE_ADDR&amp;#039;] == &amp;#039;127.0.0.1&amp;#039;){&lt;br /&gt;
  if (headers_sent($filename, $linenum)) {&lt;br /&gt;
      echo &amp;quot;Заголовки уже отправлены в $filename на строке $linenum. Редирект невозможен.&amp;quot;;&lt;br /&gt;
      exit;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;127.0.0.1&amp;#039; – тут укажите IP-адрес вашего компьютера. При выполнении метода redirect, если заголовки уже отправлены, будет указано в каком файле это было сделано и на какой строке.&lt;br /&gt;
&lt;br /&gt;
[[Категория: API]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%91%D0%B5%D0%BB%D1%8B%D0%B9_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=3240</id>
		<title>Белый экран вместо редиректа</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%91%D0%B5%D0%BB%D1%8B%D0%B9_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE_%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B0&amp;diff=3240"/>
		<updated>2011-11-29T04:51:14Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «Часто возникает ситуация, когда при выполнении редиректа с помощью метода системы &amp;#039;&amp;#039;&amp;#039;redirect($…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Часто возникает ситуация, когда при выполнении редиректа с помощью метода системы &amp;#039;&amp;#039;&amp;#039;redirect($url)&amp;#039;&amp;#039;&amp;#039;, класс def_module, в браузере появляется белый экран, а FireBug показывает в &amp;quot;Ответе&amp;quot; время генерации страницы:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!-- This page generated in 0.152338 secs --&amp;gt;   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
В данном случае, скорее всего проблема в том, что где-то в кастомном php-файле, или tpl-шаблоне, или еще где-то поставлен лишний перенос строки, и в текущий буфер отправляются какие-то данные, из-за этого не могут записаться заголовки для редиректа и он в итоге не происходит. Для отслеживания в каком файле проблема, можно воспользоваться php-методом &amp;#039;&amp;#039;&amp;#039;headers_sent&amp;#039;&amp;#039;&amp;#039;. В файле &amp;#039;&amp;#039;&amp;#039;classes/modules/def_module.php&amp;#039;&amp;#039;&amp;#039;, в методе  redirect, в начале метода можно поставить такие строки:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
if($_SERVER[&amp;#039;REMOTE_ADDR&amp;#039;] == &amp;#039;127.0.0.1&amp;#039;){&lt;br /&gt;
  if (headers_sent($filename, $linenum)) {&lt;br /&gt;
      echo &amp;quot;Заголовки уже отправлены в $filename на строке $linenum. Редирект невозможен.&amp;quot;;&lt;br /&gt;
      exit;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;127.0.0.1&amp;#039; – тут укажите IP-адрес вашего компьютера. При выполнении метода redirect, если заголовки уже отправлены, будет указано в каком файле это было сделано и на какой строке.&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D1%82%D1%80%D0%B5%D1%82%D1%8C%D0%B5%D0%B3%D0%BE_%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%82%D0%B8%D0%BF%D0%B0_%D0%A1%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5&amp;diff=3238</id>
		<title>Отображение третьего столбца для поля типа Составное</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D1%82%D1%80%D0%B5%D1%82%D1%8C%D0%B5%D0%B3%D0%BE_%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%82%D0%B8%D0%BF%D0%B0_%D0%A1%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5&amp;diff=3238"/>
		<updated>2011-11-29T04:46:49Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: Новая страница: «Начиная с версии системы 2.8.0, в UMI.CMS появилось поле типа &amp;quot;Составное&amp;quot;, которое позволяет созд…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Начиная с версии системы 2.8.0, в UMI.CMS появилось поле типа &amp;quot;Составное&amp;quot;, которое позволяет создавать товары с опционными свойствами, более подробно об этом можно прочитать в статье: [[Работа с опционными свойствами (umi 2.8, tpl шаблоны)]]&lt;br /&gt;
&lt;br /&gt;
В действительности по мимо полей &amp;quot;название наценки&amp;quot; и &amp;quot;значение наценки&amp;quot;, у это типа есть еще третье поле, которое можно отобразить и в нем указать количество опций на складе. Потом это поле можно использовать в кастомных скриптах, для отслеживания значений этого поля. Чтобы отобразить третье поле для страниц модуля &amp;quot;Каталог&amp;quot;, скопируем в папку &amp;#039;&amp;#039;&amp;#039;\styles\skins\mac\data\modules\catalog\&amp;#039;&amp;#039;&amp;#039; скопируем файл &amp;#039;&amp;#039;&amp;#039;form.modify.custom.xsl&amp;#039;&amp;#039;&amp;#039; следующего содержания:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE xsl:stylesheet SYSTEM &amp;quot;ulang://common&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:umi=&amp;quot;http://www.umi-cms.ru/TR/umi&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:template match=&amp;quot;field/values/value&amp;quot; mode=&amp;quot;field-optioned&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:param name=&amp;quot;input-name&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:param name=&amp;quot;type&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;xsl:text&amp;gt;float&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
      &amp;lt;/xsl:param&amp;gt;&lt;br /&gt;
      &amp;lt;xsl:variable name=&amp;quot;position&amp;quot; select=&amp;quot;position()&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;tr&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Количество:&lt;br /&gt;
          &amp;lt;input type=&amp;quot;text&amp;quot; style=&amp;quot;width:40px;&amp;quot; umi:type=&amp;quot;int&amp;quot; name=&amp;quot;{$input-name}[{$position}][int]&amp;quot; value=&amp;quot;{@int}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:value-of select=&amp;quot;object/@name&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;{$input-name}[{$position}][rel]&amp;quot; value=&amp;quot;{object/@id}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;td class=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;input type=&amp;quot;text&amp;quot; umi:type=&amp;quot;float&amp;quot; name=&amp;quot;{$input-name}[{$position}][float]&amp;quot; value=&amp;quot;{@float}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;td class=&amp;quot;center narrow&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;remove&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;img src=&amp;quot;/images/cms/admin/mac/table/ico_del.gif&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/a&amp;gt;&lt;br /&gt;
        &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В итоге, при редактировании страницы, для поля типа &amp;quot;Составное&amp;quot; будет отображено третье поле, слева от &amp;quot;названия наценки&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Категория: Верстка в XSLT]][[Категория: API]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=API&amp;diff=3237</id>
		<title>API</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=API&amp;diff=3237"/>
		<updated>2011-11-29T04:41:27Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Работа с событиями UMI.CMS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[События - подсчет количества объектов каталога в разделе]]&lt;br /&gt;
*[[События – автоматическое наследование meta_keywords и meta_descriptions]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&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;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&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;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Selector - протокол выборки данных]]&lt;br /&gt;
*[[UmiMail]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Примеры использования API]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер ]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=API&amp;diff=3236</id>
		<title>API</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=API&amp;diff=3236"/>
		<updated>2011-11-29T04:41:09Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Работа с событиями UMI.CMS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[События - подсчет количества объектов каталога в разделе]]&lt;br /&gt;
*[[События – автоматическое наследование meta_keywords и meta_descriptions]]&lt;br /&gt;
*[[События – отслеживание изменения цены товаров в административной части]]&lt;br /&gt;
*[[События - подсчет количества комментариев для страницы]]&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;
*[[Добавление вкладок в кастомный модуль]]&lt;br /&gt;
*[[Назначение методов getEditLink и getObjectEditLink в модуле системы]]&lt;br /&gt;
*[[Назначение метода getDatasetConfiguration в модуле системы]]&lt;br /&gt;
*[[Пример административного шаблона для объектов]]&lt;br /&gt;
*[[Вывод простых данных кастомного модуля в административной части]]&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;
*[[Кастомизация административной части на примере модуля emarket]]&lt;br /&gt;
*[[Корректное отображение полей в первой группе нового типа данных]]&lt;br /&gt;
*[[Отображение третьего столбца для поля типа Составное]]&lt;br /&gt;
&lt;br /&gt;
*[[Selector - протокол выборки данных]]&lt;br /&gt;
*[[UmiMail]]&lt;br /&gt;
*[[Указание статуса 404 Not Found]]&lt;br /&gt;
*[[Получение настроек системы в кастомном методе]]&lt;br /&gt;
*[[Примеры использования API]]&lt;br /&gt;
*[[Смена вкладки модуля, открываемой по умолчанию]]&lt;br /&gt;
*[[Добавление нового правила валидации поля (restriction)]]&lt;br /&gt;
*[[Подключение к второй базе данных в кастомном методе]]&lt;br /&gt;
*[[Запрет выполнения метода в XSLT при вызове его через браузер ]]&lt;br /&gt;
*[[Смена contentType с html на xml в кастом методе]]&lt;br /&gt;
*[[Добавление кастомных настроек в модуле каталог]]&lt;br /&gt;
*[[Отключение вывода блока Права доступа в режиме редактирования страницы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%D0%BC%D0%B8_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8_%D0%B2_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%D1%85_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F_(tpl)&amp;diff=3235</id>
		<title>Управление адресами доставки в настройках пользователя (tpl)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0%D0%BC%D0%B8_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B8_%D0%B2_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%D1%85_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F_(tpl)&amp;diff=3235"/>
		<updated>2011-11-28T15:57:48Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Стоит задача добавить функционал, который позволит пользователю редактировать, добавлять и удалять адреса доставок&lt;br /&gt;
на системной странице /users/settings/ . Для реализации данной задачи добавим в файл 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 delivery_edit($template = &amp;quot;edit&amp;quot;) {&lt;br /&gt;
			if(!$template) $template = &amp;quot;default&amp;quot;;&lt;br /&gt;
			$object_id = (int) $_REQUEST[&amp;#039;param0&amp;#039;];&lt;br /&gt;
			list($template_block) = def_module::loadTemplates(&amp;quot;tpls/emarket/delivery/{$template}.tpl&amp;quot;, &amp;quot;delivery_edit_block&amp;quot;);&lt;br /&gt;
			$block_arr = Array();&lt;br /&gt;
			$block_arr[&amp;#039;id&amp;#039;] = $object_id;&lt;br /&gt;
			return def_module::parseTemplate($template_block, $block_arr);&lt;br /&gt;
		}&lt;br /&gt;
		public function delivery_edit_do($template = &amp;quot;default&amp;quot;) {&lt;br /&gt;
			$objectsCollection = umiObjectsCollection::getInstance();&lt;br /&gt;
			$cmsController = cmsController::getInstance();&lt;br /&gt;
			&lt;br /&gt;
			$object_id = (int) getRequest(&amp;#039;param0&amp;#039;);&lt;br /&gt;
			if(!permissionsCollection::getInstance()-&amp;gt;isOwnerOfObject($object_id)) {&lt;br /&gt;
				return &amp;quot;%data_edit_foregin_object%&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
			$object = $objectsCollection-&amp;gt;getObject($object_id);&lt;br /&gt;
			$data_module = $cmsController-&amp;gt;getModule(&amp;#039;data&amp;#039;);&lt;br /&gt;
			$data_module-&amp;gt;saveEditedObject($object_id);&lt;br /&gt;
			$object-&amp;gt;commit();&lt;br /&gt;
			$s_redirect_url = getServer(&amp;#039;HTTP_REFERER&amp;#039;);&lt;br /&gt;
			if (strlen($s_redirect_url) &amp;amp;&amp;amp; false) {&lt;br /&gt;
				$this-&amp;gt;redirect($s_redirect_url);&lt;br /&gt;
			} else {&lt;br /&gt;
				$this-&amp;gt;redirect($this-&amp;gt;pre_lang . &amp;quot;/users/settings/&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		public function delivery_add_do() {&lt;br /&gt;
		&lt;br /&gt;
				$controller = cmsController::getInstance();&lt;br /&gt;
				$collection = umiObjectsCollection::getInstance();&lt;br /&gt;
				$types      = umiObjectTypesCollection::getInstance();&lt;br /&gt;
				$typeId     = $types-&amp;gt;getBaseType(&amp;quot;emarket&amp;quot;, &amp;quot;delivery_address&amp;quot;);&lt;br /&gt;
				$customer   = customer::get();&lt;br /&gt;
				$addressId  = $collection-&amp;gt;addObject(&amp;quot;Address for customer #&amp;quot;.$customer-&amp;gt;id, $typeId);&lt;br /&gt;
				$dataModule = $controller-&amp;gt;getModule(&amp;quot;data&amp;quot;);&lt;br /&gt;
				if($dataModule) {&lt;br /&gt;
					$dataModule-&amp;gt;saveEditedObject($addressId, true, true);&lt;br /&gt;
				}&lt;br /&gt;
				$customer-&amp;gt;delivery_addresses = array_merge( $customer-&amp;gt;delivery_addresses, array($addressId) );&lt;br /&gt;
		&lt;br /&gt;
			$this-&amp;gt;redirect($this-&amp;gt;pre_lang . &amp;#039;/users/settings/&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		public function delivery_del() {&lt;br /&gt;
			$object_id = (int) getRequest(&amp;#039;param0&amp;#039;);&lt;br /&gt;
			&lt;br /&gt;
			if (permissionsCollection::getInstance()-&amp;gt;isOwnerOfObject($object_id)) {&lt;br /&gt;
				umiObjectsCollection::getInstance()-&amp;gt;delObject($object_id);&lt;br /&gt;
			}&lt;br /&gt;
			$s_redirect_url = getServer(&amp;#039;HTTP_REFERER&amp;#039;);&lt;br /&gt;
			if (strlen($s_redirect_url)) {&lt;br /&gt;
				$this-&amp;gt;redirect($s_redirect_url);&lt;br /&gt;
			} else {&lt;br /&gt;
				$this-&amp;gt;redirect($this-&amp;gt;pre_lang . &amp;quot;/users/settings/&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public function customerDeliveryList($template = &amp;#039;default&amp;#039;) {&lt;br /&gt;
		  $order = $this-&amp;gt;getBasketOrder();&lt;br /&gt;
			list($tpl_block, $tpl_item) = def_module::loadTemplates(&amp;quot;./tpls/emarket/delivery/{$template}.tpl&amp;quot;,&lt;br /&gt;
				&amp;#039;delivery_address_block&amp;#039;, &amp;#039;delivery_address_item&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
			$customer  = customer::get();&lt;br /&gt;
			$addresses = $customer-&amp;gt;delivery_addresses;&lt;br /&gt;
			$items_arr = array();&lt;br /&gt;
			&lt;br /&gt;
			$collection = umiObjectsCollection::getInstance();&lt;br /&gt;
&lt;br /&gt;
			if(is_array($addresses)) foreach($addresses as $address) {&lt;br /&gt;
				$addressObject = $collection-&amp;gt;getObject($address);&lt;br /&gt;
&lt;br /&gt;
				$item_arr = array(&lt;br /&gt;
					&amp;#039;attribute:id&amp;#039;		=&amp;gt; $address,&lt;br /&gt;
					&amp;#039;attribute:name&amp;#039;	=&amp;gt; $addressObject-&amp;gt;name&lt;br /&gt;
				);&lt;br /&gt;
				$items_arr[] = def_module::parseTemplate($tpl_item, $item_arr, false, $address);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$types  = umiObjectTypesCollection::getInstance();&lt;br /&gt;
			$typeId = $types-&amp;gt;getBaseType(&amp;quot;emarket&amp;quot;, &amp;quot;delivery_address&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
			if($tpl_block) {&lt;br /&gt;
				return def_module::parseTemplate($tpl_block, array(&amp;#039;items&amp;#039; =&amp;gt; $items_arr, &amp;#039;type_id&amp;#039; =&amp;gt; $typeId));&lt;br /&gt;
			} else {&lt;br /&gt;
				return array(&lt;br /&gt;
					&amp;#039;attribute:type-id&amp;#039;	=&amp;gt; $typeId,&lt;br /&gt;
					&amp;#039;xlink:href&amp;#039;		=&amp;gt; &amp;#039;udata://data/getCreateForm/&amp;#039; . $typeId,&lt;br /&gt;
					&amp;#039;items&amp;#039;				=&amp;gt; array(&amp;#039;nodes:item&amp;#039;	=&amp;gt; $items_arr)&lt;br /&gt;
				);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
в папке classes/modules/emarket/ создадим файл permissions.custom.php следующего содержания:&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;delivery_edit&amp;#039;,&amp;#039;delivery_edit_do&amp;#039;,&amp;#039;delivery_add_do&amp;#039;, &amp;#039;delivery_del&amp;#039;, &amp;#039;customerDeliveryList&amp;#039;));&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В шаблоне tpls/users/register/default.tpl, в конце содержания блока &amp;#039;settings_block&amp;#039; (после тэга &amp;lt;/form&amp;gt;) добавим макрос:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%emarket customerDeliveryList(&amp;#039;edit&amp;#039;)%&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
А в папку tpls/emarket/delivery/ добавим шаблон edit.tpl следующего содержания:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$FORMS = Array();&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;delivery_address_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;form action=&amp;quot;%pre_lang%/emarket/delivery_add_do/&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
	Адреса доставки:&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		%items% &lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
	&amp;lt;br /&amp;gt;&lt;br /&gt;
	Добавить новый адрес доставки:&lt;br /&gt;
	%data getCreateForm(%type_id%, &amp;#039;purchase&amp;#039;)%&lt;br /&gt;
	&amp;lt;p&amp;gt;&lt;br /&gt;
		&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Добавить&amp;quot;/&amp;gt;&lt;br /&gt;
	&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;delivery_address_item&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
	&amp;lt;li&amp;gt;%data getPropertyGroupOfObject(%id%, &amp;#039;common&amp;#039;, &amp;#039;purchase&amp;#039;)% &amp;lt;a href=&amp;quot;/emarket/delivery_edit/%id%/&amp;quot;&amp;gt;Редактировать&amp;lt;/a&amp;gt;   &amp;lt;a href=&amp;quot;/emarket/delivery_del/%id%/&amp;quot;&amp;quot;&amp;gt;Удалить&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
$FORMS[&amp;#039;delivery_edit_block&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;form action=&amp;quot;%pre_lang%/emarket/delivery_edit_do/%id%/&amp;quot; method=&amp;quot;post&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;420&amp;quot;&amp;gt;&lt;br /&gt;
%data getEditForm(%id%, &amp;#039;users&amp;#039;)%&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Сохранить&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;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;
После выполнения описанных выше действий, зарегистрированный пользователь сможет на странице, с настройками учетной записи, управлять адресами доставок.&lt;br /&gt;
[[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3234</id>
		<title>Вопросы и уроки разработки сайтов на UMI.CMS:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3234"/>
		<updated>2011-11-25T07:37:07Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Использование функций php]]&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Работа с кириллицей]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[Вывод отдельного подраздела меню]]&lt;br /&gt;
*[[Вывод строки поиска]]&lt;br /&gt;
*[[Многоуровневое меню на XSLT]]&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Добавить JavaScript в xslt]]&lt;br /&gt;
*[[Вывод дополнительного поля из справочника XSLT]]&lt;br /&gt;
*[[Вывод уменьшенного изображения картинки на XSLT]]&lt;br /&gt;
*[[Пэйджинг объектов, которые фильтруются с помощью usel на XSLT]]&lt;br /&gt;
*[[Как работать с AJAX]]&lt;br /&gt;
*[[Отображение разного содержимого у страницы для зарегистрированного и незарегистрированного пользователя на XSLT]]&lt;br /&gt;
*[[Выбор тех объектов, у которых не пустое определённое поле]]&lt;br /&gt;
*[[Вывод числа по формату]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Вывести все тэги страницы по шаблону]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Вывод всех опросов одним вызовом]]&lt;br /&gt;
*[[Расширение функционала - сравнение товаров (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Вывод всех подразделов каталога в левом меню (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Добавление комментария в html-вывод из xslt-шаблонизатора]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $_REQUEST и $_SERVER]]&lt;br /&gt;
*[[Демо-дизайн &amp;quot;Современный&amp;quot;]]&lt;br /&gt;
*[[Добавление тегов пользователями сайта на примере форума]]&lt;br /&gt;
*[[Как менять оформление страниц из админки?]]&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Вывод всех значений справочника на примере списка рассылок]]&lt;br /&gt;
*[[Таймер обратного отсчета на примере XSLT-шаблонизатора]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле &amp;quot;ссылка на дерево&amp;quot;]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Скорость и кеширование&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
[[Категория:Шаблонизаторы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3233</id>
		<title>Вопросы и уроки разработки сайтов на UMI.CMS:Верстка в XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B_%D0%B8_%D1%83%D1%80%D0%BE%D0%BA%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2_%D0%BD%D0%B0_UMI.CMS:%D0%92%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0_%D0%B2_XSLT&amp;diff=3233"/>
		<updated>2011-11-25T07:36:53Z</updated>

		<summary type="html">&lt;p&gt;VITL&amp;#039;: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Использование функций php]]&lt;br /&gt;
*[[Использование кастомных макросов в XSLT]]&lt;br /&gt;
*[[Передача значений на кириллице в кастомный метод]]&lt;br /&gt;
*[[Работа с кириллицей]]&lt;br /&gt;
*[[Создание кастомного метода для вывода отфильтрованного выпадающего списка]]&lt;br /&gt;
&lt;br /&gt;
*[[Вывод отдельного подраздела меню]]&lt;br /&gt;
*[[Вывод строки поиска]]&lt;br /&gt;
*[[Многоуровневое меню на XSLT]]&lt;br /&gt;
*[[Добавление счетчика liveinternet]]&lt;br /&gt;
*[[Добавить JavaScript в xslt]]&lt;br /&gt;
*[[Вывод дополнительного поля из справочника XSLT]]&lt;br /&gt;
*[[Вывод уменьшенного изображения картинки на XSLT]]&lt;br /&gt;
*[[Пэйджинг объектов, которые фильтруются с помощью usel на XSLT]]&lt;br /&gt;
*[[Как работать с AJAX]]&lt;br /&gt;
*[[Отображение разного содержимого у страницы для зарегистрированного и незарегистрированного пользователя на XSLT]]&lt;br /&gt;
*[[Выбор тех объектов, у которых не пустое определённое поле]]&lt;br /&gt;
*[[Вывод числа по формату]]&lt;br /&gt;
*[[Подключение редиректа]]&lt;br /&gt;
*[[Вывести все тэги страницы по шаблону]]&lt;br /&gt;
*[[Определение позиции объекта в списке данных, первый – последний, четный – нечетный]]&lt;br /&gt;
*[[Протокол ulang и ENTITY, мультиязычность]]&lt;br /&gt;
*[[Вывод всех опросов одним вызовом]]&lt;br /&gt;
*[[Расширение функционала - сравнение товаров (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Сортировка элементов справочника средствами XSLT]]&lt;br /&gt;
*[[Вывод всех подразделов каталога в левом меню (интернет магазин &amp;quot;Современный&amp;quot;)]]&lt;br /&gt;
*[[Добавление комментария в html-вывод из xslt-шаблонизатора]]&lt;br /&gt;
*[[Получение доступа к значениям php массивов $_REQUEST и $_SERVER]]&lt;br /&gt;
*[[Демо-дизайн &amp;quot;Современный&amp;quot;]]&lt;br /&gt;
*[[Добавление тегов пользователями сайта на примере форума]]&lt;br /&gt;
*[[Как менять оформление страниц из админки?]]&lt;br /&gt;
*[[Добавление Doctype в XSLT]]&lt;br /&gt;
*[[Структура шаблонов модуля Каталог, демо-сайт Современный]]&lt;br /&gt;
*[[Вывод всех значений справочника на примере списка рассылок]]&lt;br /&gt;
*[[Таймер обратного отсчета на примере XSLT-шаблонизатора]]&lt;br /&gt;
*[[Оформление заказа в один шаг – xslt шаблонизатор]]&lt;br /&gt;
*[[Подключение нужного xsl-файла в зависимости от типа страницы]]&lt;br /&gt;
*[[Добавление уже имеющихся объектов каталога в другие категории через дополнительное поле &amp;quot;ссылка на дерево&amp;quot;]]&lt;br /&gt;
*[[Форматирование чисел средствами XSLT]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Скорость и кеширование&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[[Кастомизация макроса catalog getObjectsList для ускорения формирования страницы]]&lt;br /&gt;
*[[Кеширование результата работы метода getCreateForm в XSL-шаблоне]]&lt;br /&gt;
*[[Блочное кеширование html-кода в XSLT]]&lt;br /&gt;
[[Категория:Шаблонизаторы]]&lt;/div&gt;</summary>
		<author><name>VITL&#039;</name></author>
		
	</entry>
</feed>