<?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=Alexey.belkov&amp;*</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=Alexey.belkov&amp;*"/>
	<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/Alexey.belkov"/>
	<updated>2026-05-16T08:06:01Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D0%BF%D0%BB%D1%8B%D0%B2%D0%B0%D1%8E%D1%89%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0_%D0%B4%D0%B0%D1%82%D1%8B&amp;diff=8029</id>
		<title>Всплывающий календарь для выбора даты</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D0%BF%D0%BB%D1%8B%D0%B2%D0%B0%D1%8E%D1%89%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0_%D0%B4%D0%B0%D1%82%D1%8B&amp;diff=8029"/>
		<updated>2016-07-26T08:19:54Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Актуально для версии 14&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;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Необходимо подключить css-стили и скрипты  календаря. Для этого между тегами &amp;lt;head&amp;gt; и &amp;lt;/head&amp;gt; соответствующего шаблона-дизайна, на  котором будет выводиться форма, вставьте следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;apache&amp;#039;&amp;gt;&lt;br /&gt;
 &amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/styles/skins/mac/design/calendar/calendar.css&amp;quot;/&amp;gt; &lt;br /&gt;
 &amp;lt;script src=&amp;quot;/templates/demodizzy/js/jquery-ui.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;!-- проверялось на версии jQuery UI - v1.11.4 --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Теперь надо добавить скрипт в тело шаблона, на котором выводится форма (на демо-шаблоне tpl:  ~/tpls/data/webforms.tpl, на демо-шаблоне xslt: ~/xslt/modules/webforms/add.xsl )&lt;br /&gt;
&amp;lt;source lang=&amp;#039;apache&amp;#039;&amp;gt;&lt;br /&gt;
	&amp;lt;script&amp;gt; &lt;br /&gt;
	$(function() {&lt;br /&gt;
		$( &amp;quot;.datepicker&amp;quot; ).datepicker();&lt;br /&gt;
	});&lt;br /&gt;
	&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.Добавьте данный код в шаблон формы обратной связи (на демо-шаблоне tpl:  ~/tpls/data/webforms.tpl, на демо-шаблоне xslt: ~/xslt/modules/webforms/add.xsl )&lt;br /&gt;
&amp;lt;source lang=&amp;#039;apache&amp;#039;&amp;gt;&lt;br /&gt;
 $FORMS[&amp;#039;reflection_field_date&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
       %title%:&lt;br /&gt;
   &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&lt;br /&gt;
       &amp;lt;input class=&amp;quot;datepicker&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;%input_name%&amp;quot; value=&amp;quot;%value%&amp;quot; size=&amp;quot;20&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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Для XSLT&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;field[@type = &amp;#039;date&amp;#039;]&amp;quot; mode=&amp;quot;webforms_input_type&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;input class=&amp;quot;datepicker&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;{@input_name}&amp;quot; value=&amp;quot;&amp;quot; size=&amp;quot;20&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Файл:Пример.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Модуль Обратная связь]][[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D0%BF%D0%BB%D1%8B%D0%B2%D0%B0%D1%8E%D1%89%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0_%D0%B4%D0%B0%D1%82%D1%8B&amp;diff=8028</id>
		<title>Всплывающий календарь для выбора даты</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%81%D0%BF%D0%BB%D1%8B%D0%B2%D0%B0%D1%8E%D1%89%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0_%D0%B4%D0%B0%D1%82%D1%8B&amp;diff=8028"/>
		<updated>2016-07-26T08:19:41Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Актуально для 2.9.6&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;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Необходимо подключить css-стили и скрипты  календаря. Для этого между тегами &amp;lt;head&amp;gt; и &amp;lt;/head&amp;gt; соответствующего шаблона-дизайна, на  котором будет выводиться форма, вставьте следующий код:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;apache&amp;#039;&amp;gt;&lt;br /&gt;
 &amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/styles/skins/mac/design/calendar/calendar.css&amp;quot;/&amp;gt; &lt;br /&gt;
 &amp;lt;script src=&amp;quot;/templates/demodizzy/js/jquery-ui.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;!-- проверялось на версии jQuery UI - v1.11.4 --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.Теперь надо добавить скрипт в тело шаблона, на котором выводится форма (на демо-шаблоне tpl:  ~/tpls/data/webforms.tpl, на демо-шаблоне xslt: ~/xslt/modules/webforms/add.xsl )&lt;br /&gt;
&amp;lt;source lang=&amp;#039;apache&amp;#039;&amp;gt;&lt;br /&gt;
	&amp;lt;script&amp;gt; &lt;br /&gt;
	$(function() {&lt;br /&gt;
		$( &amp;quot;.datepicker&amp;quot; ).datepicker();&lt;br /&gt;
	});&lt;br /&gt;
	&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.Добавьте данный код в шаблон формы обратной связи (на демо-шаблоне tpl:  ~/tpls/data/webforms.tpl, на демо-шаблоне xslt: ~/xslt/modules/webforms/add.xsl )&lt;br /&gt;
&amp;lt;source lang=&amp;#039;apache&amp;#039;&amp;gt;&lt;br /&gt;
 $FORMS[&amp;#039;reflection_field_date&amp;#039;] = &amp;lt;&amp;lt;&amp;lt;END&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
   &amp;lt;td style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
       %title%:&lt;br /&gt;
   &amp;lt;/td&amp;gt;&lt;br /&gt;
   &amp;lt;td&amp;gt;&lt;br /&gt;
       &amp;lt;input class=&amp;quot;datepicker&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;%input_name%&amp;quot; value=&amp;quot;%value%&amp;quot; size=&amp;quot;20&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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Для XSLT&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;field[@type = &amp;#039;date&amp;#039;]&amp;quot; mode=&amp;quot;webforms_input_type&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;input class=&amp;quot;datepicker&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;{@input_name}&amp;quot; value=&amp;quot;&amp;quot; size=&amp;quot;20&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;	&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Файл:Пример.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Модуль Обратная связь]][[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%BC%D0%B8_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B&amp;diff=8027</id>
		<title>Как сделать активными только импортируемые товары</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%BC%D0%B8_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B5_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B&amp;diff=8027"/>
		<updated>2016-07-13T07:12:56Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:Модуль Обмен данными]][[Категория:Написание кастомных макросов]][[category:Интеграция с 1С]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Актуально для версии 14&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача&amp;#039;&amp;#039;&amp;#039;: Сделать активными только импортируемые товары, все остальные товары в каталоге должны стать неактивными.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Реализация&amp;#039;&amp;#039;&amp;#039;: В директорию \classes\modules\exchange\ нужно добавить файл custom_events.php со следующим содержанием:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	new umiEventListener(&amp;quot;exchangeOnAddElement&amp;quot;, &amp;quot;exchange&amp;quot;, &amp;quot;onExchangeDisactivateElements&amp;quot;);&lt;br /&gt;
	new umiEventListener(&amp;quot;exchangeOnUpdateElement&amp;quot;, &amp;quot;exchange&amp;quot;, &amp;quot;onExchangeDisactivateElements&amp;quot;);&lt;br /&gt;
	new umiEventListener(&amp;quot;exchangeOnImportFinish&amp;quot;, &amp;quot;exchange&amp;quot;, &amp;quot;onImportFinishUnsetFlag&amp;quot;);&lt;br /&gt;
	new umiEventListener(&amp;quot;exchangeOnAutoFinish&amp;quot;, &amp;quot;exchange&amp;quot;, &amp;quot;onImportFinishUnsetFlag&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этой же директории в файл __custom.php нужно добавить следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    abstract class __custom_exchange {&lt;br /&gt;
        public function onExchangeDisactivateElements(iUmiEventPoint $e) {&lt;br /&gt;
            if ($e-&amp;gt;getMode() === &amp;#039;after&amp;#039;) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            $element = $e-&amp;gt;getRef(&amp;#039;element&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
            if ($element-&amp;gt;getMethod() == &amp;#039;category&amp;#039;) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // начало импорта, деактивируем все товары&lt;br /&gt;
            if (!file_exists(&amp;quot;onExchangeDisactivateElementsFlag&amp;quot;)) {&lt;br /&gt;
                $pages = new selector(&amp;#039;pages&amp;#039;);&lt;br /&gt;
                $pages-&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;
&lt;br /&gt;
                foreach ($pages as $p) {&lt;br /&gt;
                    $p-&amp;gt;setIsActive(false);&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                file_put_contents(&amp;quot;onExchangeDisactivateElementsFlag&amp;quot;, &amp;quot;done&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
			$element-&amp;gt;setIsActive(true);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        public function onImportFinishUnsetFlag(iUmiEventPoint $e) {&lt;br /&gt;
            unlink(&amp;quot;onExchangeDisactivateElementsFlag&amp;quot;);&lt;br /&gt;
        }&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;br /&gt;
* В процессе импорта в корне сайта будет создан файл onExchangeDisactivateElementsFlag. Это значит, что у umi.cms должны быть права на запись этой директории. После завершения импорта файл удалится. Если импорт по каким-то причинам прервется, то нужно будет вручную удалить файл.&lt;br /&gt;
* В нашей реализации селектор находит ВСЕ объекты каталога и делает их неактивными. Если у Вас очень много товаров на сайте, этот метод может быть неприемлемым из-за большого потребления оперативной памяти/ресурсов сервера. Если в процессе импорта Вы увидите сообщение &amp;quot;Ошибка разбора данных&amp;quot;, это может означать, что сервер не успел деактивировать все объекты. В таком случае Вам нужно будет доработать скрипт, чтобы деактивация происходила поэтапно или каким-либо другим способом.Если Вам потребуется помощь в доработке скрипта, рекомендуем обратиться к нашим [http://www.umi-cms.ru/buy_now/find_webdevs/ партнерам:]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9C%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%B8%D0%B7_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0%B8&amp;diff=8025</id>
		<title>Массовое удаление заказов из административной панели</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9C%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%B8%D0%B7_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0%B8&amp;diff=8025"/>
		<updated>2016-06-29T12:49:12Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.14&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Если в административной панели, в модуле &amp;quot;Интернте-магазин&amp;quot;, скопилось большое количество заказов, то удалять их вручную по-одному будет довольно утомительно. Чтобы облегчить задачу, можно сделать выборку с помощью Selector, получить все заказы, у которых, к примеру, последний раз изменялся статус заказа больше года назад, и удалить эти заказы. Ниже приведен код, который это делает:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function deleteAllOrders () {		&lt;br /&gt;
	$orders = new selector(&amp;#039;objects&amp;#039;);&lt;br /&gt;
	$orders-&amp;gt;types(&amp;#039;object-type&amp;#039;)-&amp;gt;name(&amp;#039;emarket&amp;#039;, &amp;#039;order&amp;#039;);&lt;br /&gt;
	$time = 1461888000; // 29.4.2016&lt;br /&gt;
	$orders-&amp;gt;where(&amp;#039;status_change_date&amp;#039;)-&amp;gt;eqless($time);&lt;br /&gt;
	$umiObjects = umiObjectsCollection::getInstance();&lt;br /&gt;
&lt;br /&gt;
	foreach ($orders as $order) {&lt;br /&gt;
		$id = $order-&amp;gt;getId();&lt;br /&gt;
		$umiObjects-&amp;gt;delObject($id);&lt;br /&gt;
		echo &amp;quot;удален заказ $id&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разместите данный код в файле classes/modules/custom.php  после строки //TODO: Write your own macroses here.&lt;br /&gt;
&lt;br /&gt;
В переменную &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$time = 1328021732;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
мы передаем дату, с которой будем сравнивать дату изменения статуса заказа (т.е. если дата последнего изменения статуса заказа старше чем эта - заказ будет удален). В данный момент это 31 января 2012 года, вы можете установить сюда свое значение, воспользовавшись Unixtime конвертером. Данный конвертер можно найти в свободном доступе в интернете - например, здесь http://www.cy-pr.com/tools/time/&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9C%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%B8%D0%B7_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0%B8&amp;diff=8024</id>
		<title>Массовое удаление заказов из административной панели</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9C%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2_%D0%B8%D0%B7_%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B0%D0%BD%D0%B5%D0%BB%D0%B8&amp;diff=8024"/>
		<updated>2016-06-29T12:47:58Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9.5&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Если в административной панели, в модуле &amp;quot;Интернте-магазин&amp;quot;, скопилось большое количество заказов, то удалять их вручную по-одному будет довольно утомительно. Чтобы облегчить задачу, можно сделать выборку с помощью Selector, получить все заказы, у которых, к примеру, последний раз изменялся статус заказа больше года назад, и удалить эти заказы. Ниже приведен код, который это делает:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function deleteAllOrders () {		&lt;br /&gt;
	$orders = new selector(&amp;#039;objects&amp;#039;);&lt;br /&gt;
	$orders-&amp;gt;types(&amp;#039;object-type&amp;#039;)-&amp;gt;name(&amp;#039;emarket&amp;#039;, &amp;#039;order&amp;#039;);&lt;br /&gt;
	$time = 1461888000; // 29.4.2016&lt;br /&gt;
	$orders-&amp;gt;where(&amp;#039;status_change_date&amp;#039;)-&amp;gt;eqless($time);&lt;br /&gt;
	$umiObjects = umiObjectsCollection::getInstance();&lt;br /&gt;
&lt;br /&gt;
	foreach ($orders as $order) {&lt;br /&gt;
		$id = $order-&amp;gt;getId();&lt;br /&gt;
		$umiObjects-&amp;gt;delObject($id);&lt;br /&gt;
		echo &amp;quot;удален заказ $id&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разместите данный код в файле classes/modules/custom.php  после строки //TODO: Write your own macroses here.&lt;br /&gt;
&lt;br /&gt;
В переменную &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$time = 1328021732;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
мы передаем дату, с которой будем сравнивать дату изменения статуса заказа (т.е. если дата последнего изменения статуса заказа старше чем эта - заказ будет удален). В данный момент это 31 января 2012 года, вы можете установить сюда свое значение, воспользовавшись Unixtime конвертером. Данный конвертер можно найти в свободном доступе в интернете - например, здесь http://www.cy-pr.com/tools/time/&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=World_wide_web_(%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B0_%D0%BC%D0%B5%D0%B6%D0%B4%D1%83_%D0%B7%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D0%B0%D0%BC%D0%B8_%D1%81_www_%D0%B8_%D0%B1%D0%B5%D0%B7_%D0%B2_%D1%84%D0%B0%D0%B9%D0%BB%D0%B5_.htaccess)&amp;diff=8022</id>
		<title>World wide web (настройка редиректа между зеркалами с www и без в файле .htaccess)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=World_wide_web_(%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B0_%D0%BC%D0%B5%D0%B6%D0%B4%D1%83_%D0%B7%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D0%B0%D0%BC%D0%B8_%D1%81_www_%D0%B8_%D0%B1%D0%B5%D0%B7_%D0%B2_%D1%84%D0%B0%D0%B9%D0%BB%D0%B5_.htaccess)&amp;diff=8022"/>
		<updated>2016-06-24T08:52:13Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался только с www.domain.ru или наоборот, без &amp;#039;www&amp;#039;, т.е. domain.ru&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы это реализовать можно добавить простое правило в файл дополнительной конфигурации сервера &amp;quot;.htaccess&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Находится он в корневой директории и открывается любым текстовым редактором.&lt;br /&gt;
&lt;br /&gt;
Правило следует писать самым первым, чтобы оно перекрывало собой все правила UMI.CMS.&lt;br /&gt;
&lt;br /&gt;
Кириллические домены нужно конвертировать в punycode: https://www.punycoder.com/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Для основного домена без www&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
#Включаем работу механизма преобразований.&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
#Проверяем, что текущий хост выглядит как http://www.domain.ru&lt;br /&gt;
#Флаг NC (No Case), позволяет игнорировать регистр при проверке&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC]&lt;br /&gt;
#Перенаправляем запрос на хост без www, 301 редирект&lt;br /&gt;
#Флаг L запрещает дальнейшую обработку правил в этом запросе&lt;br /&gt;
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Для основного домена с www&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
#Включаем работу механизма преобразований.&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
#Проверяем, что текущий хост выглядит как http://domain.ru&lt;br /&gt;
#Флаг NC (No Case), позволяет игнорировать регистр при проверке&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^domain.ru$ [NC]&lt;br /&gt;
#Перенаправляем запрос на хост c www, 301 редирект&lt;br /&gt;
#Флаг L запрещает дальнейшую обработку правил в этом запросе&lt;br /&gt;
RewriteRule ^(.*)$ http://www.domain.ru/$1 [R=301,L]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:.htaccess]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=World_wide_web_(%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B0_%D0%BC%D0%B5%D0%B6%D0%B4%D1%83_%D0%B7%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D0%B0%D0%BC%D0%B8_%D1%81_www_%D0%B8_%D0%B1%D0%B5%D0%B7_%D0%B2_%D1%84%D0%B0%D0%B9%D0%BB%D0%B5_.htaccess)&amp;diff=8021</id>
		<title>World wide web (настройка редиректа между зеркалами с www и без в файле .htaccess)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=World_wide_web_(%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%80%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82%D0%B0_%D0%BC%D0%B5%D0%B6%D0%B4%D1%83_%D0%B7%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D0%B0%D0%BC%D0%B8_%D1%81_www_%D0%B8_%D0%B1%D0%B5%D0%B7_%D0%B2_%D1%84%D0%B0%D0%B9%D0%BB%D0%B5_.htaccess)&amp;diff=8021"/>
		<updated>2016-06-24T08:51:08Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.9&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Часто, для SEO продвижения или ещё каких либо целей требуется, чтобы сайт всегда открывался только с www.domain.ru или наоборот, без &amp;#039;www&amp;#039;, т.е. domain.ru&lt;br /&gt;
&lt;br /&gt;
Для того, чтобы это реализовать можно добавить простое правило в файл дополнительной конфигурации сервера &amp;quot;.htaccess&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
Находится он в корневой директории и открывается любым текстовым редактором.&lt;br /&gt;
&lt;br /&gt;
Правило следует писать самым первым, чтобы оно перекрывало собой все правила UMI.CMS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Для основного домена без www&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
#Включаем работу механизма преобразований.&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
#Проверяем, что текущий хост выглядит как http://www.domain.ru&lt;br /&gt;
#Флаг NC (No Case), позволяет игнорировать регистр при проверке&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^www.domain.ru$ [NC]&lt;br /&gt;
#Перенаправляем запрос на хост без www, 301 редирект&lt;br /&gt;
#Флаг L запрещает дальнейшую обработку правил в этом запросе&lt;br /&gt;
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Для основного домена с www&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;apache&amp;quot;&amp;gt;&lt;br /&gt;
#Включаем работу механизма преобразований.&lt;br /&gt;
RewriteEngine On&lt;br /&gt;
#Проверяем, что текущий хост выглядит как http://domain.ru&lt;br /&gt;
#Флаг NC (No Case), позволяет игнорировать регистр при проверке&lt;br /&gt;
RewriteCond %{HTTP_HOST} ^domain.ru$ [NC]&lt;br /&gt;
#Перенаправляем запрос на хост c www, 301 редирект&lt;br /&gt;
#Флаг L запрещает дальнейшую обработку правил в этом запросе&lt;br /&gt;
RewriteRule ^(.*)$ http://www.domain.ru/$1 [R=301,L]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:.htaccess]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D0%B0%D0%B9%D1%82_%D1%81_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0_%D0%BD%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B8%D0%BB%D0%B8_%D1%81_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9&amp;diff=8020</id>
		<title>Как перенести сайт с локального компьютера на сервер или с одного хостинга на другой</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B5%D1%81%D1%82%D0%B8_%D1%81%D0%B0%D0%B9%D1%82_%D1%81_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0_%D0%BD%D0%B0_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%B8%D0%BB%D0%B8_%D1%81_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9&amp;diff=8020"/>
		<updated>2016-06-03T08:15:53Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Создание дампа БД: ==&lt;br /&gt;
1. Скачиваем и помещаем папку [[Файл:pma.zip|&amp;quot;pma&amp;quot;]] в корневую директорию сайта&amp;lt;br /&amp;gt;&lt;br /&gt;
2. В адресной строке браузера набираем http://домен_вашего_сайта/pma/index.php&amp;lt;br /&amp;gt;&lt;br /&gt;
3. В левом меню кликаем на имя базы данных&amp;lt;br /&amp;gt;&lt;br /&gt;
4. В верхней части страницы появляется меню. Выбираем &amp;quot;Экспорт&amp;quot;. Никаких настроек менять НЕ НАДО. Следует только выбрать &amp;quot;zip&amp;quot; в поле &amp;quot;Сохранить как файл&amp;quot;. Жмем кнопку &amp;quot;ОК&amp;quot; и сохраняем дамп.&lt;br /&gt;
&lt;br /&gt;
== Импорт дампа БД на хостинг: ==&lt;br /&gt;
1. Заходим в phpmyadmin на вашем сервере. (Данные для входа можно уточнить у вашего хостинг-провайдера).&lt;br /&gt;
2. В левом меню выбираем нужную базу. Убедитесь, что она пуста и не содержит таблиц. При необходимости удалите ненужные таблицы.&lt;br /&gt;
3*. В верхней части страницы появляется меню. Выбираем &amp;quot;Импорт&amp;quot;. Выбираем дамп, выставляем кодировку utf8 и жмем &amp;quot;ОК&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*В случае, если на сервере используется старая версия phpmyadmin, пункт 3 будет таким:&lt;br /&gt;
&lt;br /&gt;
3. В верхней части страницы появляется меню. Выбираем &amp;quot;SQL&amp;quot;. Выбираем дамп и жмем &amp;quot;ОК&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
*Если в процессе импорта выдаются ошибки, открываем дамп в любом текстовом редакторе (но предпочтительнее PSPad) и после надписи SET SQL_MODE=&amp;quot;NO_AUTO_VALUE_ON_ZERO&amp;quot;; добавляем строки:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SET AUTOCOMMIT=0;&lt;br /&gt;
SET FOREIGN_KEY_CHECKS=0;&lt;br /&gt;
set names utf8;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*Если выдается ошибка о том, что дамп слишком большой, таблицы следует переносить частями. Для этого при экспорте выделяем часть таблиц, собираем дамп, импортируем. Затем собираем вторую часть и импортируем и т. д.&lt;br /&gt;
&lt;br /&gt;
Внимание! Данный способ не дает 100%-ной гарантии успешного переноса из-за возможных специфических настроек MySQL, Apache и PHP. Скрипты phpmyadmin были взяты с сайта php-myadmin.ru и могут со временем устареть. Также возможно потребуется внести изменения в файл \phpmyadmin\config.inc.php&lt;br /&gt;
== Перенос файлов на хостинг ==&lt;br /&gt;
Перенос файлов на хостинг осуществляется с помощью FTP-клиента. Вы можете воспользоваться бесплатным FTP-клиентом &amp;quot;WinSCP&amp;quot;:&amp;lt;br /&amp;gt;&lt;br /&gt;
http://winscp.net/eng/download.php&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Копировать файлы необходимо в &amp;#039;&amp;#039;&amp;#039;бинарном режиме (Binary mode)&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&lt;br /&gt;
После копирования файлов необходимо отредактировать настройки подключения к БД:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В файле config.ini, если у вас версия после 2.8&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В файле mysql.php, если у вас версия до 2.8&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В файле config.php, если у вас версия до 2.3&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;#039;&amp;#039;&amp;#039;Дополнительно!&amp;#039;&amp;#039;&amp;#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Вместо утилиты phpMyAdmin можно использовать другое бесплатное приложение SypexDumper. Официальный сайт находится здесь http://sypex.net/. Обратить внимание нужно на то, что эта программа сохраняет дамп в собственном формате и импортировать архив необходимо будет опятьже с её помощью.&amp;lt;br&amp;gt;&lt;br /&gt;
На практике, если объёмы информации достаточно большие, лучше использовать оба способа создания дампа, но самым верным будет - попросить хостеров сделать дампы за Вас.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%22Field_is_not_presented_in_selected_object_types%22&amp;diff=8018</id>
		<title>Ошибка &quot;Field is not presented in selected object types&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0_%22Field_is_not_presented_in_selected_object_types%22&amp;diff=8018"/>
		<updated>2016-05-27T06:31:11Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.12&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Иногда при составлении выборок с помощью selector возникает ошибка &amp;quot;Field is not presented in selected object types&amp;quot;, хотя данное поле присутствует у обьектов. Такая ошибка может возникать из-за того, что в разное время были внесены изменения в типы данных, по которым делается выборка, или были изменения в иерархии типах данных. Из-за этого, подобный код для выборки по полю &amp;quot;data_razmeweniya&amp;quot; среди всех объектов не работает:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;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;order(&amp;#039;data_razmeweniya&amp;#039;)-&amp;gt;desc();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Хотя поле &amp;quot;data_razmeweniya&amp;quot; присутствует. Примерная структура:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
*Каталог&lt;br /&gt;
   *Подкаталог_1&lt;br /&gt;
      *Объект_1 &lt;br /&gt;
   *Подкаталог_2&lt;br /&gt;
      *Объект_2&lt;br /&gt;
   *Подкаталог_3&lt;br /&gt;
      *Объект_3&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для решения проблемы Вы можете воспользоваться следующим способом - необходимо сначала выбрать по type id Каталога, чтобы выбрать все, и после этого уже добавить выборку по name(&amp;#039;catalog&amp;#039;, &amp;#039;object&amp;#039;), таким образом исключив из выборки подкаталоги. Итоговый код выборки будет следующий:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$sel = new selector(&amp;#039;pages&amp;#039;);&lt;br /&gt;
$sel-&amp;gt;types(&amp;#039;object-type&amp;#039;)-&amp;gt;id(125);&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;order(&amp;#039;data_razmeweniya&amp;#039;)-&amp;gt;desc();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Также приводим пример usel-выборки с явно заданным id типа данных:&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;selection&amp;gt;&lt;br /&gt;
    &amp;lt;target result=&amp;quot;pages&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type id=&amp;quot;125&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;type module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/target&amp;gt;&lt;br /&gt;
    &amp;lt;property name=&amp;quot;best_offers&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;sort&amp;gt;rand()&amp;lt;/sort&amp;gt;&lt;br /&gt;
    &amp;lt;limit page=&amp;quot;0&amp;quot;&amp;gt;{limit}&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;/selection&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:API]][[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A6%D0%B5%D0%BD%D0%B0_%D0%B2_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8_%D0%BE%D1%82_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9&amp;diff=8015</id>
		<title>Цена в зависимости от условий</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A6%D0%B5%D0%BD%D0%B0_%D0%B2_%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8_%D0%BE%D1%82_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9&amp;diff=8015"/>
		<updated>2016-05-23T06:35:32Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Актуально для 2.12&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;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
1. Нужно написать обработчик события. Более подробную информацию о событиях Вы можете прочитать здесь http://api.umi-cms.ru/events.html&lt;br /&gt;
Вам необходимо создать в файл classes/modules/catalog/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;quot;umiObjectProperty_loadPriceValue&amp;quot;, &amp;quot;catalog&amp;quot;, &amp;quot;onLoadPriceHandler&amp;quot;);&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Это событие будет вызывать кастомный макрос определяющий цену.&lt;br /&gt;
&lt;br /&gt;
2. Написать кастомный макрос. Для этого в файле classes/modules/catalog/__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;
    abstract class __custom_catalog {&lt;br /&gt;
        public function onLoadPriceHandler(iUmiEventPoint $oEventPoint) {&lt;br /&gt;
            // get plain price relation&lt;br /&gt;
            $price = &amp;amp;$oEventPoint-&amp;gt;getRef(&amp;#039;price&amp;#039;);&lt;br /&gt;
            // get object id&lt;br /&gt;
            $object_id = $oEventPoint-&amp;gt;getParam(&amp;#039;object_id&amp;#039;);&lt;br /&gt;
            // TODO: write your custom logic here&lt;br /&gt;
            // ....&lt;br /&gt;
            // and set new $price value&lt;br /&gt;
            $price = 6436;&lt;br /&gt;
        }&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;br /&gt;
Теперь необходимо описать соответствующие условия и присвоить переменной $price необходимую вариацию цены.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;Также смотрите статью с примером реализации описанной логики: [[Использование нескольких Цен для одного товара]]&lt;br /&gt;
[[Категория:Написание кастомных макросов]][[Категория:Модуль Каталог]][[Категория:Модуль Интернет магазин]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82_%D0%BD%D0%B0_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%83_%D1%81_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B0%D0%BC%D0%B8&amp;diff=8014</id>
		<title>Редирект на страницу с параметрами</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B8%D1%80%D0%B5%D0%BA%D1%82_%D0%BD%D0%B0_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%83_%D1%81_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%B0%D0%BC%D0%B8&amp;diff=8014"/>
		<updated>2016-05-19T07:18:19Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 2.12&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Переадресовать на страницу с передачей GET-параметров.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Применение:&amp;#039;&amp;#039;&amp;#039; Например создание пунктов меню, по которым пользователь будет попадать на страницу с отфильтрованными результатами по какому-либо параметру.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для TPL очень простое, достаточно в поле контент страницы с которой нужна переадресация вставить макрос %content redirect()% с нужными параметрами:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
%content redirect(&amp;#039;/shop/televizory/zhk_televizory/?fields_filter[price][1]=3000&amp;amp;fields_filter[price][0]=1500&amp;#039;)%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для XSLT необходимо следующие символы заменить на urlcode или entity:&amp;lt;br/&amp;gt;&lt;br /&gt;
[ - %5B&amp;lt;br/&amp;gt;&lt;br /&gt;
] - %5D&amp;lt;br/&amp;gt;&lt;br /&gt;
? - %3F&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp; - &amp;amp;amp;amp;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Допустим у нас имеется страница &amp;quot;Телевизоры от 1500 до 3000 рублей&amp;quot; с pageId равным 99. Тогда код для переадресации на страницу с отфильтрованным результатом будет следующим (в целях удобного отображения, строка разбита на 2 части):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:if test=&amp;quot;result/@pageId = 99 and not(contains($_request_uri, &amp;#039;fields_filter&amp;#039;))&amp;quot;&amp;gt;	&lt;br /&gt;
	&amp;lt;xsl:value-of select=&amp;quot;document(&amp;#039;udata://content/redirect/&lt;br /&gt;
(/shop/televizory/zhk_televizory/%3Ffields_filter%5Bprice%5D%5B1%5D=3000&amp;amp;amp;fields_filter%5Bprice%5D%5B0%5D=1500)/&amp;#039;)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второе условие нужно для того, чтобы не происходила бесконечная переадресация на странице с уже примененным фильтром. Подробнее о переменной $_request_uri можно почитать [http://wiki.umisoft.ru/Получение_доступа_к_значениям_php_массивов_$_REQUEST_и_$_SERVER здесь]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0_%D0%BA_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC_php_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2_$_REQUEST_%D0%B8_$_SERVER&amp;diff=8013</id>
		<title>Получение доступа к значениям php массивов $ REQUEST и $ SERVER</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0_%D0%BA_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC_php_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2_$_REQUEST_%D0%B8_$_SERVER&amp;diff=8013"/>
		<updated>2016-05-18T10:54:23Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В XSLT-шаблонизаторе UMI.CMS возможен доступ к php массивам &amp;#039;&amp;#039;&amp;#039;$_REQUEST&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;$_SERVER&amp;#039;&amp;#039;&amp;#039;. Значения массива $_REQUEST доступны в нижнем регистре, самые полезные из них это любой из параметров в адресной строке браузера (GET-параметры), допустим: &amp;#039;&amp;#039;&amp;#039;?p=1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В xsl-шаблоне, доступ к переменной осуществляется таким образом, как будто она была уже объявлена в основном xsl-шаблоне, т.е. следующим запросом:&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;$count&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Глубоко вложенное значение: &amp;lt;xsl:value-of select=&amp;quot;$filter.price.0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
мы получим значение GET-параметров из строки &amp;#039;&amp;#039;&amp;#039;?count=5&amp;amp;filter[price][0]=500&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Значения массива $_SERVER доступны в нижнем регистре и с префиксом &amp;#039;_&amp;#039;, параметры, которые могли бы пригодиться в одной из задач это:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;_http_referer&amp;#039;&amp;#039;&amp;#039; – адрес страницы с которой был осуществлен переход на текущею страницу.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;_request_uri&amp;#039;&amp;#039;&amp;#039; – адрес текущей страницы + GET-параметры.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;_remote_addr&amp;#039;&amp;#039;&amp;#039; – IP адрес текущего посетителя сайта.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0_%D0%BA_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC_php_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2_$_REQUEST_%D0%B8_$_SERVER&amp;diff=8012</id>
		<title>Получение доступа к значениям php массивов $ REQUEST и $ SERVER</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0_%D0%BA_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC_php_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BE%D0%B2_$_REQUEST_%D0%B8_$_SERVER&amp;diff=8012"/>
		<updated>2016-05-18T10:54:00Z</updated>

		<summary type="html">&lt;p&gt;Alexey.belkov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В XSLT-шаблонизаторе UMI.CMS возможен доступ к php массивам &amp;#039;&amp;#039;&amp;#039;$_REQUEST&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;$_SERVER&amp;#039;&amp;#039;&amp;#039;. Значения массива $_REQUEST доступны в нижнем регистре, самые полезные из них это любой из параметров в адресной строке браузера (GET-параметры), допустим: &amp;#039;&amp;#039;&amp;#039;?p=1&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В xsl-шаблоне, доступ к переменной осуществляется таким образом, как будто она была уже объявлена в основном xsl-шаблоне, т.е. следующим запросом:&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;$count&amp;quot; /&amp;gt;&lt;br /&gt;
Глубоко вложенное значение: &amp;lt;xsl:value-of select=&amp;quot;$filter.price.0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
мы получим значение GET-параметров из строки &amp;#039;&amp;#039;&amp;#039;?count=5&amp;amp;filter[price][0]=500&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Значения массива $_SERVER доступны в нижнем регистре и с префиксом &amp;#039;_&amp;#039;, параметры, которые могли бы пригодиться в одной из задач это:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;_http_referer&amp;#039;&amp;#039;&amp;#039; – адрес страницы с которой был осуществлен переход на текущею страницу.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;_request_uri&amp;#039;&amp;#039;&amp;#039; – адрес текущей страницы + GET-параметры.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;_remote_addr&amp;#039;&amp;#039;&amp;#039; – IP адрес текущего посетителя сайта.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Верстка в XSLT]]&lt;/div&gt;</summary>
		<author><name>Alexey.belkov</name></author>
		
	</entry>
</feed>