https://wiki.umisoft.ru/api.php?action=feedcontributions&user=Mad+grant&feedformat=atomUmicms - Вклад участника [ru]2024-03-29T00:51:38ZВклад участникаMediaWiki 1.31.0https://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BC%D0%B0%D0%BD%D0%B8%D1%84%D0%B5%D1%81%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F&diff=8364Пример написания манифеста для модуля2018-05-31T08:41:53Z<p>Mad grant: </p>
<hr />
<div>[[category:Вопросы и уроки разработки сайтов на UMI.CMS]]<br />
'''Актуально для версии 18'''<br />
<br />
Начиная с 16 версии в UMI.CMS появились [[http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/manifesty/ манифесты]].<br />
<br />
В данной статье мы покажем пример написания манифеста, который при установке и обновлении модуля присылает письмо на определенную почту.<br />
<br />
Например, сам модуль будет называться mailer.<br />
Структура файлов у нас будет следующая:<br />
<source lang="php"><br />
/classes/components/mailer/manifest/install.xml<br />
/classes/components/mailer/manifest/update.xml<br />
/classes/components/mailer/manifest/actions/SendMail.php<br />
</source><br />
В файл install.xml мы добавим следующий код:<br />
<source lang="xml"><br />
<?xml version="1.0" encoding="utf-8"?><br />
<manifest><br />
<route><br />
<transaction name="send_mail_on_install"><br />
<action name="\UmiCms\Manifest\Mail\SendMail" /><br />
</transaction><br />
</route><br />
</manifest><br />
</source><br />
<br />
В файл update.xml добавляем код:<br />
<source lang="xml"><br />
<?xml version="1.0" encoding="utf-8"?><br />
<manifest><br />
<route><br />
<transaction name="send_mail_on_update"><br />
<action name="\UmiCms\Manifest\Mail\SendMail" /><br />
</transaction><br />
</route><br />
</manifest><br />
</source><br />
<br />
В файл SendMail.php добавим:<br />
<source lang="php"><br />
<?php<br />
namespace UmiCms\Manifest\Mail;<br />
<br />
class SendMailAction extends \Action<br />
{<br />
public function __construct($name, array $params = []) {<br />
parent::__construct($name, $params);<br />
}<br />
<br />
<br />
public function execute()<br />
{<br />
$lMail = new \umiMail;<br />
$lMail->addRecipient("recipient@example.com", "Testing");<br />
$lMail->setFrom("from@example.com", "Testing");<br />
$lMail->setSubject("Обновление CMS");<br />
$lMail->setPriorityLevel("highest");<br />
$lMail->setContent("Обновление завершено");<br />
$lMail->commit();<br />
$lMail->send();<br />
<br />
return $this;<br />
}<br />
<br />
public function rollback()<br />
{<br />
return $this;<br />
}<br />
}<br />
</source><br />
<br />
В данном файле в строке <source lang="php">$lMail->addRecipient("recipient@example.com", "Testing");</source> recipient@example.com необходимо заменить на адрес получателя, <br />
а в строке <source lang="php">$lMail->setFrom("from@example.com", "Testing");</source> from@example.com заменить на заголовок From письма.<br />
<br />
<br />
Если модуль не добавлен к лицензионному ключу и не размещен на UMI.Market, то при установке и обновлении запуск манифестов происходить не будет.<br />
Для проверки работы манифестов их нужно запускать вручную.<br />
<br />
Для этого создадим файл manifest_checker.php в корне сайта и добавим в него следующий код:<br />
<br />
<source lang="php"><br />
<?php<br />
include 'standalone.php';<br />
<br />
$manifest = \UmiCms\Service::ManifestFactory()<br />
->createByModule('update', ‘mail’);<br />
<br />
do {<br />
$manifest->execute();<br />
} while (!$manifest->isReady());<br />
<br />
foreach ($manifest->getLog() as $message) {<br />
echo $message, PHP_EOL;<br />
}<br />
</source><br />
<br />
Первый аргумент в методе createByModule это тип манифеста (install или update), а второй аргумент — имя вашего модуля.<br />
<br />
После этого вызываем файл example.com/manifest_checker.php, манифесты выполняются вручную и отображаются на экране.<br />
<br />
[[Категория:API]][[Категория:Написание кастомных макросов]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BC%D0%B0%D0%BD%D0%B8%D1%84%D0%B5%D1%81%D1%82%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F&diff=8363Пример написания манифеста для модуля2018-05-31T08:41:26Z<p>Mad grant: </p>
<hr />
<div>[[category:Вопросы и уроки разработки сайтов на UMI.CMS]]<br />
'''Актуально для версии 18'''<br />
<br />
Начиная с 16 версии в UMI.CMS появились [[http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/manifesty/ манифесты]].<br />
<br />
В данной статье мы покажем пример написания манифеста, который при установке и обновлении модуля присылает письмо на определенную почту.<br />
<br />
Например, сам модуль будет называться mailer.<br />
Структура файлов у нас будет следующая:<br />
<source lang="php"><br />
/classes/components/mailer/manifest/install.xml<br />
/classes/components/mailer/manifest/update.xml<br />
/classes/components/mailer/manifest/actions/SendMail.php<br />
</source><br />
В файл install.xml мы добавим следующий код:<br />
<source lang="xml"><br />
<?xml version="1.0" encoding="utf-8"?><br />
<manifest><br />
<route><br />
<transaction name="send_mail_on_install"><br />
<action name="\UmiCms\Manifest\Mail\SendMail" /><br />
</transaction><br />
</route><br />
</manifest><br />
</source><br />
<br />
В файл update.xml добавляем код:<br />
<source lang="xml"><br />
<?xml version="1.0" encoding="utf-8"?><br />
<manifest><br />
<route><br />
<transaction name="send_mail_on_update"><br />
<action name="\UmiCms\Manifest\Mail\SendMail" /><br />
</transaction><br />
</route><br />
</manifest><br />
</source><br />
<br />
В файл SendMail.php добавим:<br />
<source lang="php"><br />
<?php<br />
namespace UmiCms\Manifest\Mail;<br />
<br />
class SendMailAction extends \Action<br />
{<br />
public function __construct($name, array $params = []) {<br />
parent::__construct($name, $params);<br />
}<br />
<br />
<br />
public function execute()<br />
{<br />
$lMail = new \umiMail;<br />
$lMail->addRecipient("recipient@example.com", "Testing");<br />
$lMail->setFrom("from@example.com", "Testing");<br />
$lMail->setSubject("Обновление CMS");<br />
$lMail->setPriorityLevel("highest");<br />
$lMail->setContent("Обновление завершено");<br />
$lMail->commit();<br />
$lMail->send();<br />
<br />
return $this;<br />
}<br />
<br />
public function rollback()<br />
{<br />
return $this;<br />
}<br />
}<br />
</source><br />
<br />
В данном файле в строке <source lang="php">$lMail->addRecipient("recipient@example.com", "Testing");</source> recipient@example.com необходимо заменить на адрес получателя, <br />
а в строке <source lang="php">$lMail->setFrom("from@example.com", "Testing");</source> from@example.com заменить на заголовок From письма.<br />
<br />
<br />
Если модуль не добавлен к лицензионному ключу и не размещен на UMI.Market, то при установке и обновлении запуск манифестов происходить не будет.<br />
Для проверки работы манифестов их нужно запускать вручную.<br />
<br />
Для этого создадим файл manifest_checker.php в корне сайта и добавим в него следующий код:<br />
<br />
<source lang="php"><br />
<?php<br />
include 'standalone.php';<br />
<br />
$manifest = \UmiCms\Service::ManifestFactory()<br />
->createByModule('update', ‘mail’);<br />
<br />
do {<br />
$manifest->execute();<br />
} while (!$manifest->isReady());<br />
<br />
foreach ($manifest->getLog() as $message) {<br />
echo $message, PHP_EOL;<br />
}<br />
</source><br />
<br />
Первый аргумент в методе createByModule это тип манифеста (install или update), а второй аргумент — имя вашего модуля.<br />
<br />
После этого вызываем файл example.com/manifest_checker.php, манифесты выполняются вручную и отображаются на экране.<br />
<br />
[[Категория:API]] [[Категория:Написание кастомных макросов]]<br />
[[Категория:Модуль Пользователи]][[Категория:Написание кастомных макросов]]</div>Mad granthttps://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%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5_%D1%81_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D0%BE%D0%B9_%D0%BF%D1%80%D0%B8%D1%88%D1%91%D0%BB_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C_%D0%B8_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B5&diff=7916Получение информации о поисковой системе с которой пришёл пользователь и запросе2014-11-12T10:28:07Z<p>Mad grant: </p>
<hr />
<div>'''Актуально для версии 2.9'''<br />
<br />
Рассмотрим на примере добавления данной информации в письма модуля "Обратная связь".<br />
Для реализации поставленной задачи можно написать кастомный макрос, который будет получать адрес страницы, с которой пришёл пользователь, проверять с какого поисковика он пришёл и по какому запросу.<br />
Макрос может иметь следующий вид:<br />
<source lang="php"><br />
public function searchAndWords($template = "default"){<br />
<br />
list($template_block) = def_module::loadTemplates($template, "stat_block");<br />
<br />
$block_arr = Array();<br />
$referer = getSession("http_referer");<br />
<br />
if (is_null($referer)) {<br />
$referer = 'не определен';<br />
}<br />
<br />
$crawler = 'не определен';<br />
$search = 'не определен';<br />
<br />
if (stristr($referer, 'yandex')) {<br />
$pos = strpos($referer, 'text=') + 5;<br />
$pos2 = strpos($referer, '&');<br />
$l = $pos2 - $pos;<br />
$search = substr($referer, $pos, $l);<br />
$search = urldecode($search);<br />
$crawler = 'Yandex';<br />
}<br />
if (stristr($referer, 'google')) {<br />
$pos = strpos($referer, 'q=') + 2;<br />
$pos2 = strpos($referer, '&');<br />
$l = $pos2 - $pos;<br />
$search = substr($referer, $pos, $l);<br />
$search = urldecode($search);<br />
$crawler = 'Google';<br />
}<br />
$block_arr['crawler'] = $crawler;<br />
$block_arr['wordquery'] = $search;<br />
$block_arr['http_referer'] = $referer;<br />
<br />
return def_module::parseTemplate($template_block, $block_arr);<br />
}<br />
</source><br />
<br />
Код макроса нужно поместить в файл ~/classes/modules/custom.php после строчки //TODO: Write your own macroses here.<br />
TPL вариант макроса %custom searchAndWords()%, в XSLT макрос будет вызываться через udata://custom/searchAndWords/.<br />
Макрос в TPL будет работать с шаблонами в директории ~/tpls/, шаблон он принимает в качестве параметра, по умолчанию будет вызван шаблон default.tpl, который может иметь следующее содержимое:<br />
<source lang="php"><br />
<?php<br />
$FORMS = Array();<br />
<br />
$FORMS['stat_block'] = <<<STAT_BLOCK<br />
<h3>Комментарии</h3><br />
%crawler%<br />
%wordquery%<br />
%http_referer%<br />
STAT_BLOCK;<br />
?><br />
</source><br />
<br />
crawler содержит в себе поисковик (на данном примеры рассмотрены основы разбора Google и Yandex),<br />
wordquery содержит поисковый запрос,<br />
http_referer страницу, с которой пришёл пользователь.<br />
Данный макрос можно разместить в шаблоне письма обратной связи, тогда эта информация будет отправлена получателю.<br />
[[Категория:Написание кастомных макросов]][[Категория:Модуль Обратная связь]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8F&diff=7890Переактивация2014-06-16T08:26:43Z<p>Mad grant: переименовал «Как переактивировать систему» в «Переактивация»</p>
<hr />
<div> [[category:Лицензионные ключи]][[Категория:Модуль Конфигурация]]<br />
'''Актуально для версии 2.9'''<br />
<br />
<br />
Перед переактивацией системы тем же ключом, необходимо сбросить привязку.<br />
<br />
<br />
Для сброса привязки оставьте заявку через форму "Запрос в Службу Заботы", на нашем сайте: [http://www.umi-cms.ru/support/ Форма обращений],<br />
в заявке укажите причину необходимости сброса привязки.<br />
<br />
<br />
'''<br />
Для того, чтобы переактивировать систему, необходимо выполнить следующие шаги:'''<br />
<br />
<br />
<br />
*зайти в модуль "Структура", запомнить точное название первого(основного) домена;<br />
(это шаг особенно важен для пользователей мультисайтовости)<br />
<br />
*перейти в модуль "Конфигурации";<br />
<br />
*удалить значение поля "доменный ключ";<br />
<br />
*сохранить изменения;<br />
<br />
*система запросит ввести ключ;<br />
<br />
*перейти на сайт с основного домена;<br />
<br />
*ввести ключ.<br />
<br />
<br />
Если, ключ не принимается, то попробуйте выполнить шаги из <br />
статьи: [[Не_принимается_лицензионный_ключ]], если рекомендации не помогли, то<br />
обращайтесь в Службу Заботы.</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BF%D0%B5%D1%80%D0%B5%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%83&diff=7891Как переактивировать систему2014-06-16T08:26:43Z<p>Mad grant: переименовал «Как переактивировать систему» в «Переактивация»</p>
<hr />
<div>#перенаправление [[Переактивация]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D0%B5%D0%BC%D1%8B%D1%85_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%BD%D0%B0_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5_tpl&diff=7876Динамическое изменение количества отображаемых товаров на странице tpl2014-06-02T09:39:49Z<p>Mad grant: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br/><br/><br />
'''Задача:'''<br />
<br />
В форме для фильтрации объектов каталога, необходимо вывести выпадающий список с выбором количества товаров, выбрав которое, на странице отобразится указанное количество объектов каталога.<br />
<br />
'''Решение:'''<br />
<br />
В файл '''classes/modules/custom.php''', после слов "//TODO: Write your own macroses here" добавим два коротких кастомных метода:<br />
<source lang="php"><br />
public function getCount(){<br />
$count = intval(getRequest('count'));<br />
if ($count > 0) return $count;<br />
return '';<br />
}<br />
<br />
public function is_sel($count){<br />
$count = intval($count);<br />
$current_sel = intval(getRequest('count'));<br />
if ($count == $current_sel) return "selected='selected'";<br />
} <br />
</source><br />
<br />
В шаблоне, по которому выводится список объектов каталога (обычно это tpls/catalog/default.tpl), в блоке '''category''',<br />
для макроса '''getObjectsList''' пропишем третий параметр:<br />
<pre><br />
%catalog getObjectsList('default', '%category_id%', '%custom getcount()%')% <br />
</pre><br />
<br />
<br />
В блоке '''objects_block''', может быть прописан такой код:<br />
<pre><br />
<table style="width: 100%;"><br />
<tr><br />
<td><br />
%catalog search('%category_id%', 'cenovye_svojstva short_info common', 'search')%<br />
</td> <br />
</tr><br />
</table><br />
<br /><br />
%system numpages(%total%, %per_page%, 'catalog')%<br />
<br /><br />
<div umi:method="catalog" umi:module="category" umi:element-id="%category_id%"><br />
%lines%<br />
</div><br />
<div style="clear: both;"></div><br />
<br />
%system numpages(%total%, %per_page%, 'catalog')%<br />
<br />
<br /><br /><br />
</pre><br />
<br />
<br />
Если макрос '''search''' использует шаблон tpls/catalog/search.tpl, как в данном примере, то в этом шаблоне, в блок '''search_block''', после макроса '''%lines%''', пропишем следующий select:<br />
<pre><br />
<select name="count" onchange="this.form.submit()"><br />
<option %custom is_sel(10)%>10</option><br />
<option %custom is_sel(20)%>20</option><br />
<option %custom is_sel(30)%>30</option><br />
</select><br />
</pre><br />
<br />
В итоге, при выборе в выпадающем списке нужного значения: 10, 20 или 30, страница перегрузится и будет отображено указанное количество объектов каталога.<br />
[[Категория:Модуль Каталог]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D0%B5%D0%BC%D1%8B%D1%85_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2_%D0%BD%D0%B0_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5,_tpl-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B&diff=7877Динамическое изменение количества отображаемых товаров на странице, tpl-шаблоны2014-06-02T09:39:49Z<p>Mad grant: </p>
<hr />
<div>#перенаправление [[Динамическое изменение количества отображаемых товаров на странице tpl]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B4%D0%B2%D1%83%D1%85_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9_%D0%98%D0%9B%D0%98&diff=7873Выборка с одновременным выполнением двух условий ИЛИ2014-06-02T09:32:56Z<p>Mad grant: переименовал «Выборка с одновременным выполнением двух условий "ИЛИ"» в «Выборка с одновременным выполнением двух условий ИЛИ»</p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим у товаров по группам заданы некие поля и необходимо выбрать те товары, у которых в одной группе полей либо одно поле равно указанному значению, либо другое, при этом, одновременно должно выполняться условие, что в другой группе полей одно или второе поле равно заданному значению, т.е. получится условие вида (А или В) и (С или D). Одним запросом при помощи selector, используя два раза режим or-mode такую выборку сделать не получится, так как между двумя условиями "ИЛИ" система поставит еще одно.<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно сделав два запроса к базе и получить "пересечение" их результатов, т.е. id товаров, а затем отобрать в результирующем запросе товары с данными id:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages'); <br />
$pages->types('object-type')->id('идентификатор нужного типа данных'); <br />
<br />
$pages->option('or-mode')->fields('поле_первой_группы1','поле_первой_группы2');<br />
<br />
$pages->where('поле_первой_группы1')->equals('значение');<br />
<br />
$pages->where('поле_первой_группы2')->equals('значение');<br />
<br />
<br />
foreach($pages as $page){ <br />
<br />
$mass[]=$page->id;<br />
<br />
} <br />
<br />
<br />
$pages1 = new selector('pages'); <br />
$pages1->types('object-type')->id('идентификатор нужного типа данных'); <br />
<br />
$pages1->option('or-mode')->fields('поле_второй_группы1','поле_второй_группы2');<br />
<br />
$pages1->where('поле_второй_группы1')->equals('значение');<br />
<br />
$pages1->where('поле_второй_группы2')->equals('значение');<br />
<br />
<br />
foreach($pages1 as $page1){<br />
<br />
$mass2[]=$page1->id;<br />
} <br />
<br />
<br />
$diff = array_intersect($mass,$mass2);<br />
<br />
$final = new selector('pages'); <br />
$final->types('object-type')->id('идентификатор нужного типа данных'); <br />
$final->where('id')->equals($diff);<br />
<br />
<br />
foreach($final as $object){<br />
<br />
echo "<a href=\"{$object->link}\">{$object->name}</a>\n";<br />
} <br />
echo "Pages found: {$final->length}"; <br />
<br />
</source></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B4%D0%B2%D1%83%D1%85_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9_%22%D0%98%D0%9B%D0%98%22&diff=7874Выборка с одновременным выполнением двух условий "ИЛИ"2014-06-02T09:32:56Z<p>Mad grant: переименовал «Выборка с одновременным выполнением двух условий "ИЛИ"» в «Выборка с одновременным выполнением двух условий ИЛИ»</p>
<hr />
<div>#перенаправление [[Выборка с одновременным выполнением двух условий ИЛИ]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%9E%D0%BF%D1%80%D0%BE%D1%81%D1%8B&diff=7871Категория:Модуль Опросы2014-06-02T09:10:38Z<p>Mad grant: Новая страница: «'''Документация:''' *для пользователя [http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_oprosy/ http://help.docs.umi-cms.ru/rabota_s_…»</p>
<hr />
<div>'''Документация:'''<br />
<br />
*для пользователя [http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_oprosy/ http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_oprosy/]<br />
*для разработчика [http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/oprosy/ http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/oprosy/]<br />
<br />
<br />
<br />
{{Индекс категории}}</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_ajax_%D1%84%D0%BE%D1%80%D0%BC%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%80%D0%B5%D0%B9%D1%82%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&diff=7870Пример ajax формы для рейтингования2014-06-02T09:09:06Z<p>Mad grant: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
В документации нет примеров реализации работы макросов vote setElementRating() и vote getElementRating(), поэтому и написана данная статья.<br />
<br />
== Решение ==<br />
<br />
Скопируйте в шаблон любой страницы следующий код:<br />
<br />
<source lang="html4strict"><br />
<div id="rate_result"><br />
<div>Рейтинг страницы:<strong id="rate_sum"></strong></div><br />
<div>Проголосовало:<strong id="rate_voters"></strong></div><br />
</div><br />
<br />
<form id="rating_form"><br />
<div>Оцените страницу по 5-бальной шкале:</div><br />
<input type="radio" name="answer" value="1"/>1<br />
<input type="radio" name="answer" value="2"/>2<br />
<input type="radio" name="answer" value="3" checked="1"/>3<br />
<input type="radio" name="answer" value="4"/>4<br />
<input type="radio" name="answer" value="5"/>5<br />
<strong id="make_rating" style="cursor: pointer;">Оценить!</strong><br />
</form><br />
<br />
<script type="text/javascript" charset="utf-8"><br />
$(document).ready(function(){<br />
$page_id = '<xsl:value-of select="$document-page-id"/>';<br />
$.ajax({<br />
type: "POST",<br />
url: "/udata://vote/getElementRating/.json",<br />
dataType: "json",<br />
data: { <br />
param1: $page_id,<br />
}<br />
}).done(function(json) {<br />
$is_rated = json.is_rated;<br />
$("#rate_sum").append(json.rate_sum);<br />
$("#rate_voters").append(json.rate_voters);<br />
});<br />
$('#make_rating').click(function(){<br />
if($is_rated == true){<br />
alert('Вы уже голосовали');<br />
}else{<br />
$rating = $('#rating_form input:checked').val()<br />
$.ajax({<br />
type: "POST",<br />
url: "/udata://vote/setElementRating/.json",<br />
dataType: "json",<br />
data: { <br />
param1: $page_id,<br />
param2: $rating,<br />
}<br />
}).done(function(json){<br />
$("#rate_sum").html("");<br />
$("#rate_sum").append(json.rate_sum);<br />
$("#rate_voters").html("");<br />
$("#rate_voters").append(json.rate_voters);<br />
alert('Ваш голос учтен');<br />
$.ajax({<br />
type: "POST",<br />
url: "/udata://vote/getElementRating/.json",<br />
dataType: "json",<br />
data: { <br />
param1: $page_id,<br />
}<br />
}).done(function(json) {<br />
$is_rated = json.is_rated;<br />
});<br />
})<br />
}<br />
});<br />
});<br />
</script><br />
</source><br />
<br />
== Примечание ==<br />
<br />
1) Код написан и проверялся на demodizzу, если у Вас tpl шаблонизатор, то замените строку <br />
<br />
<source lang="html4strict"><br />
$page_id = '<xsl:value-of select="$document-page-id"/>';<br />
</source><br />
<br />
на строку<br />
<br />
<source lang="html4strict"><br />
$page_id = '%pid%';<br />
</source><br />
<br />
а если у Вас xstl, но не demodizzy, то укажите вместо $document-page-id переменную, которая у Вас хранит текущий id страницы, или xPath выражение, которой вернет текущий id.<br />
<br />
2) js код должен быть подключен после подключения библиотеки jquery или вызова макроса system includeQuickEditJs().<br />
<br />
== Результат ==<br />
<br />
После вставки кода в шаблон, у Вас на станице появится примерно следующее:<br />
<br />
[[Файл:Ajax_raiting.png]]<br />
<br />
Работает форма следующим образом:<br />
<br />
<ul><br />
<li>Данные о рейтинге подгружаются ajax'ом при загрузке страницы.</li><br />
<li>Пользователь выбирает radiobutton с рейтингом и нажимает "Оценить!".</li><br />
<li>Идет ajax запрос, который начисляет рейтинг.</li><br />
<li>Если рейтинг начислен, то появляется alert с текстом "Ваш голос учтен".</li><br />
<li>Если пользователь уже голосовал, то появляется alert с текстом "Вы уже голосовали".</li><br />
<li>После успешного голосования рейтинг на странице обновляется без перезагрузки.</li><br />
</ul><br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория:Модуль_Опросы]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%80%D0%B5%D0%B9%D1%82%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&diff=7869Вывод рейтингованных страниц пользователя2014-06-02T09:06:37Z<p>Mad grant: </p>
<hr />
<div>Актуально для 2.9.6<br />
<br />
----<br />
'''Задача:''' вывести страницы за которые голосовал пользователь.<br />
<br />
'''Решение: на примере xslt шаблона - demodizzy'''<br />
<br />
В шаблоне данных пользователя имеется скрытое поле с типом "ссылка на дерево", в котором сохраняются страницы за которые голосовал пользователь. К сожалению, вывести мы сможем только сами страницы, так как информация о том когда пользователь голосовал, какую оценку выставил не сохраняется. Для вывода списка страниц за которые голосовал пользователь достаточно описать следующий шаблон в файле /templates/demodizzy/xslt/modules/users/registration.xsl<br />
<br />
<source lang="xml"><br />
<!-- User rated pages --> <br />
<xsl:template name="rated_pages" ><br />
<div id="con_tab_rated_pages"><br />
<ol style="padding: 20px;"><br />
<xsl:apply-templates select="document(concat('uobject://',$user-id,'.rated_pages'))//value/page" mode="rated_pages" /><br />
</ol><br />
</div><br />
</xsl:template><br />
<br />
<xsl:template match="page" mode="rated_pages" ><br />
<li style="padding-bottom: 3px;"><br />
<a href="{@link}"><xsl:value-of select="name" /></a> <br />
</li><br />
</xsl:template><br />
</source><br />
<br />
В нужном месте, описанный шаблон необходимо будет вызвать:<br />
<source lang="xml"><br />
<xsl:call-template name="rated_pages" /><br />
</source><br />
<br />
Результат:<br/><br/><br />
[[Файл:24-05-2014 23-16-14.png]]<br />
<br />
[[Категория:Верстка в XSLT]][[Категория:Модуль Опросы]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D1%80%D0%B5%D0%B9%D1%82%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&diff=7868Вывод рейтингованных страниц пользователя2014-06-02T09:06:06Z<p>Mad grant: </p>
<hr />
<div>Актуально для 2.9.6<br />
<br />
----<br />
'''Задача:''' вывести страницы за которые голосовал пользователь.<br />
<br />
'''Решение: на примере xslt шаблона - demodizzy'''<br />
<br />
В шаблоне данных пользователя имеется скрытое поле с типом "ссылка на дерево", в котором сохраняются страницы за которые голосовал пользователь. К сожалению, но вывести мы сможем только сами страницы, так как информация о том когда пользователь голосовал, какую оценку выставил не сохраняется. Для вывода списка страниц за которые голосовал пользователь достаточно описать следующий шаблон в файле /templates/demodizzy/xslt/modules/users/registration.xsl<br />
<br />
<source lang="xml"><br />
<!-- User rated pages --> <br />
<xsl:template name="rated_pages" ><br />
<div id="con_tab_rated_pages"><br />
<ol style="padding: 20px;"><br />
<xsl:apply-templates select="document(concat('uobject://',$user-id,'.rated_pages'))//value/page" mode="rated_pages" /><br />
</ol><br />
</div><br />
</xsl:template><br />
<br />
<xsl:template match="page" mode="rated_pages" ><br />
<li style="padding-bottom: 3px;"><br />
<a href="{@link}"><xsl:value-of select="name" /></a> <br />
</li><br />
</xsl:template><br />
</source><br />
<br />
В нужном месте, описанный шаблон необходимо будет вызвать:<br />
<source lang="xml"><br />
<xsl:call-template name="rated_pages" /><br />
</source><br />
<br />
Результат:<br/><br/><br />
[[Файл:24-05-2014 23-16-14.png]]<br />
<br />
[[Категория:Верстка в XSLT]][[Категория:Модуль Опросы]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Mad_grant&diff=7840Участник:Mad grant2014-05-30T12:53:35Z<p>Mad grant: </p>
<hr />
<div>== Результаты специалистов ==<br />
<br />
*[[Участник:Mad_grant]]<br />
*[[Участник:Stexe]]<br />
*[[Участник:PilipenkAV]](16) - off<br />
*[[Участник:Williwaw]]<br />
*[[Участник:Alexei]]<br />
*[[Участник:Velross]]<br />
*[[Участник:Davidov]](38) - off<br />
*[[Участник:Elena]](1) - off<br />
*[[Участник:Yulia]](9) - off<br />
*[[Участник:Deez]](10) - off<br />
*[[Участник:XiBOR]](45) - off<br />
*[[Участник:SpeLL]](6) - off<br />
*[[Участник:Kalexey]](17) - off<br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Пример_ajax_формы_для_рейтингования]]</li><br />
<li>[[Как_покупателю_отклонить_свой_заказ]]</li><br />
<li>[[Как_в_модуле_меню_привязать_меню_к_домену]]</li><br />
<li>[[Не_удалось_найти_вид_номенклатуры_Услуга]]</li><br />
<li>[[Как_проставить_на_все_страницы_права_на_просмотр_гостю]]</li><br />
<li>[[Добавляем_артикул_в_заказы]]</li><br />
<li>[[Уникальная_метаинформация_в_пагинации]]</li><br />
</ul><br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Модуль_Настройки_сайта]]</li><br />
<li>[[Разный_текст_уведомления_для_разного_статуса_заказа]]</li><br />
<li>[[Как_найти_все_страницы_с_похожим_именем]]</li><br />
<li>[[Как_вывести_список_сайтов_системы]]</li><br />
<li>[[Импорт_характеристик_из_offers_дополнительный_шаблон]]</li><br />
<li>[[Как_переместить_страницу_если_её_раздел_поменялся]]</li><br />
<li>[[Удаление_товаров_из_системы_при_импорте]]</li><br />
<li>[[Как_автоматически_отключать_выгрузку_определенных_заказов]]</li><br />
<li>[[Класс_umiImportRelations]]</li><br />
<li>[[Как_реализовать_резервирование_товаров]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Импорт_характеристик_товаров_из_offers]]</li><br />
<li>[[Как_избежать_дублирования_контента_при_использовании_виртуальных_копий]]</li><br />
<li>[[Как_убрать_виртуальные_копии_из_результатов_поиска]]</li><br />
<li>[[Как_скрыть_отдачу_xml_на_фронте_сайта]]</li><br />
<li>[[Как_вывести_случайную_страницу]]</li><br />
<li>[[Http_basic_Authorization]]</li><br />
<li>[[Как_скрыть_от_индексации_все_страницы_определенного_типа]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_протокола_ufs]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_дополнительных_полей]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_модуля_Фотогалереи]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<ul><br />
<li>[[Как_в_tpl_шаблонизаторе_вывести_alt-name_страницы]]</li><br />
<li>[[Возможные_проблемы_при_интеграции_с_1С_11.1.2.28]]</li><br />
<li>[[Принудительный_переход_на_https_для_хостинга_SpaceWEB]]</li><br />
<li>[[Как_вывести_меню_по_конкретному_иерархическому_типу]]</li><br />
<li>[[Как_сделать_динамически_изменяемые_вставки_в_meta_поля]]</li><br />
<li>[[Как_вывести_фотографии_из_нескольких_альбомов_с_возможностью_сортировки_по_дате_создания]]</li><br />
<li>[[Как_получить_id_поля_по_его_строковому_идентификатору]]</li><br />
<li>[[Пример_использования_протокола_umap]]</li><br />
<li>[[Как_менять_кнопку_покупки_в_зависимости_от_состояния_на_складе]]</li><br />
<li>[[Как_в_tpl_шаблонизаторе_убрать_блок_выбора_адреса_в_форме_обратной_связи]]</li><br />
</ul><br />
<br />
== Январь: ==<br />
<br />
<ul><br />
<li>[[Особенность_добавления_прав_на_модули_для_пользователей]]</li><br />
<li>[[Как_получить_список_товаров,_купленных_в_интернет_магазине]]</li><br />
<li>[[Как_сделать_поиск_товаров_по_определенному_полю]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Вывод_новостей_сразу_в_нескольких_новостных_лентах]]</li><br />
<li>[[Постраничная_навигация_результатов_макроса_data_doSelection]]</li><br />
<li>[[Прайслист]]</li><br />
<li>[[Пример_конфигурационного_файла_для_nginx]]</li><br />
<li>[[Ошибка_соединения_java.lang.NullPointerException_при_интеграции_с_Мой_Склад]]</li><br />
<li>[[Как_поменять_картинку_у_акционных_товаров]]</li><br />
<li>[[Вывод_новостей_по_сюжету]]</li><br />
</ul><br />
<br />
== Сентябрь: ==<br />
<br />
<uL><br />
<li>[[Вывод_фильтров_для_всех_разделов_каталога]]</li><br />
<li>[[Как_фильтровать_заказы_по_фио_покупателя]]</li><br />
<li>[[Как_сделать_выборку_по_нескольким_типам_данных]]</li><br />
<li>[[Работа_со_скрытием/отображением_элементов_на_jquery_на_примере_фильтров_в_demodizyy]]</li><br />
<li>[[Использование_условий_на_примере_макроса_core_navibar_в_шаблоне_demodizzy]]</li><br />
<li>[[Как_производя_выборку_по_объектам_получить_страницы_в_Selector]]</li><br />
<li>[[Как_сделать_выборку_чтобы_в_нее_попали_только_страницы_из_активных_разделов]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Как_переактивировать_систему]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_найдено_microcore_для_обновления.]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_удается_скопировать_ядро]]</li><br />
<li>[[Не_найден_файл_настроек_для_установки_install.ini]]</li><br />
<li>[[Обновление_завершилось_с_ошибкой,_на_сайт_не_попасть]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Не_передан_ip-адрес_клиента.]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Указаный_доменный_или_лицензионный_ключ_не_найден_в_базе_лицензий.]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(json)]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(xml)]]</li><br />
<li>[[Проблема_с_активацией_лицензии_на_хостинге_Мультихост]]</li><br />
<li>[[Стандартный_.htaccess_для_версии_2.9]]</li><br />
<li>[[Не_получается_отключить_CAPTCHA]]</li><br />
<li>[[После_обновления_в_административной_панели_белый_экран]]</li><br />
<li>[[Добавление_полей_для_фильтрации_в_интерфейс_модуля]]</li><br />
<li>[[Пример импорта поля типа symlink (ссылка на дерево) в UmiDump2.0]]</li><br />
<li>[[На_сайте_разделы_отображаются_в_модуле_"Структура"_нет]]</li><br />
<li>[[Фильтр_цены_с_бегунком]]</li><br />
<li>[[Fatal_error:_Call_to_a_member_function_getLangId()_on_a_non-object]]</li><br />
</ul><br />
<br />
== Ноябрь: ==<br />
<br />
<uL><br />
<li>[[Добавление информации о заказе в письмо-уведомление(tpl)]]</li><br />
<li>[[Замена числовой составляющей даты словом]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<uL><br />
<li>[[Удаление заказов по выборке средствами API и работы с объектами.]]</li><br />
</ul></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B5%D1%82%D0%B0%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2_%D0%BF%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8&diff=7839Уникальная метаинформация в пагинации2014-05-30T12:53:02Z<p>Mad grant: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Необходимо, чтобы keywords, description и title отличались на каждой подстранички, в рамках пагинации.<br />
<br />
== Решение ==<br />
<br />
Задачу можно реализовать следующим образом:<br />
<br />
В индексном шаблоне задайте переменную 'p' и <br />
<br />
<source lang="xml"><br />
<xsl:param name="p" select="'0'" /><br />
</source><br />
<br />
В этом же шаблоне, внутри тега <head> вызовите шаблон, например так:<br />
<br />
<source lang="xml"><br />
<xsl:template match="/"><br />
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="en"><br />
<head><br />
<br />
<xsl:apply-templates select="result" mode="seo-head" /><br />
<br />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />
</head><br />
</source><br />
<br />
и в отдельном файле (который нужно будет потом подключить) опишите примерно следующий шаблон:<br />
<br />
<source lang="xml"><br />
<xsl:variable name="page-num" select="$p + 1" /><br />
<br />
<xsl:template match="result" mode="seo-head"> <br />
<xsl:choose><br />
<xsl:when test="$p &gt; 0"><br />
<title><br />
<xsl:value-of select="@title" disable-output-escaping="yes" /> - Страница <xsl:value-of select="$page-num" /><br />
</title><br />
<meta name="keywords" content="{meta/keywords}, - страница {$page-num}" /><br />
<meta name="description" content="{meta/description}, - cтраница {$page-num}" /><br />
</xsl:when><br />
<xsl:otherwise><br />
<title><br />
<xsl:value-of select="@title" disable-output-escaping="yes" /><br />
</title><br />
<meta name="keywords" content="{meta/keywords}" /><br />
<meta name="description" content="{meta/description}" /><br />
</xsl:otherwise><br />
</xsl:choose><br />
</xsl:template><br />
</source><br />
<br />
Таким образом к keywords, description и title будет добавляться "- Страница номер_подстранички" и они будут уникальными.<br />
<br />
[[category:Модуль SEO]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B5%D1%82%D0%B0%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2_%D0%BF%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8&diff=7837Уникальная метаинформация в пагинации2014-05-30T12:52:36Z<p>Mad grant: переименовал «SEO и пагинация» в «Уникальная метаинформация в пагинации»</p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Необходимо, чтобы keywords, description и title отличались на каждой подстранички, в рамках пагинации.<br />
<br />
== Решение ==<br />
<br />
Задачу можно реализовать следующим образом:<br />
<br />
В индексном шаблоне задайте переменную 'p' и <br />
<br />
<source lang="xml"><br />
<xsl:param name="p" select="'0'" /><br />
</source><br />
<br />
В этом же шаблоне, внутри тега <head> вызовите шаблон, например так:<br />
<br />
<source lang="xml"><br />
<xsl:template match="/"><br />
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="en"><br />
<head><br />
<br />
<xsl:apply-templates select="result" mode="seo-head" /><br />
<br />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />
</head><br />
</source><br />
<br />
и в отдельном файле (который нужно будет потом подключить) опишите примерно следующий шаблон:<br />
<br />
<source lang="xml"><br />
<xsl:variable name="page-num" select="$p + 1" /><br />
<br />
<xsl:template match="result" mode="seo-head"> <br />
<xsl:choose><br />
<xsl:when test="$p &gt; 0"><br />
<title><br />
<xsl:value-of select="@title" disable-output-escaping="yes" /> - Страница <xsl:value-of select="$page-num" /><br />
</title><br />
<meta name="keywords" content="{meta/keywords}, - страница {$page-num}" /><br />
<meta name="description" content="{meta/description}, - cтраница {$page-num}" /><br />
</xsl:when><br />
<xsl:otherwise><br />
<title><br />
<xsl:value-of select="@title" disable-output-escaping="yes" /><br />
</title><br />
<meta name="keywords" content="{meta/keywords}" /><br />
<meta name="description" content="{meta/description}" /><br />
</xsl:otherwise><br />
</xsl:choose><br />
</xsl:template><br />
</source><br />
<br />
Таким образом к keywords, description и title будет добавляться "- Страница номер_подстранички" и они будут уникальными.<br />
<br />
[[category:Модуль SEO]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=SEO_%D0%B8_%D0%BF%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D1%8F&diff=7838SEO и пагинация2014-05-30T12:52:36Z<p>Mad grant: переименовал «SEO и пагинация» в «Уникальная метаинформация в пагинации»</p>
<hr />
<div>#перенаправление [[Уникальная метаинформация в пагинации]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A3%D0%BD%D0%B8%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B5%D1%82%D0%B0%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%B2_%D0%BF%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0%D1%86%D0%B8%D0%B8&diff=7836Уникальная метаинформация в пагинации2014-05-30T12:52:05Z<p>Mad grant: Новая страница: «'''Актуально для версии 2.9.6''' == Задача == Необходимо, чтобы keywords, description и title отличались на к…»</p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Необходимо, чтобы keywords, description и title отличались на каждой подстранички, в рамках пагинации.<br />
<br />
== Решение ==<br />
<br />
Задачу можно реализовать следующим образом:<br />
<br />
В индексном шаблоне задайте переменную 'p' и <br />
<br />
<source lang="xml"><br />
<xsl:param name="p" select="'0'" /><br />
</source><br />
<br />
В этом же шаблоне, внутри тега <head> вызовите шаблон, например так:<br />
<br />
<source lang="xml"><br />
<xsl:template match="/"><br />
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="en"><br />
<head><br />
<br />
<xsl:apply-templates select="result" mode="seo-head" /><br />
<br />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /><br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />
</head><br />
</source><br />
<br />
и в отдельном файле (который нужно будет потом подключить) опишите примерно следующий шаблон:<br />
<br />
<source lang="xml"><br />
<xsl:variable name="page-num" select="$p + 1" /><br />
<br />
<xsl:template match="result" mode="seo-head"> <br />
<xsl:choose><br />
<xsl:when test="$p &gt; 0"><br />
<title><br />
<xsl:value-of select="@title" disable-output-escaping="yes" /> - Страница <xsl:value-of select="$page-num" /><br />
</title><br />
<meta name="keywords" content="{meta/keywords}, - страница {$page-num}" /><br />
<meta name="description" content="{meta/description}, - cтраница {$page-num}" /><br />
</xsl:when><br />
<xsl:otherwise><br />
<title><br />
<xsl:value-of select="@title" disable-output-escaping="yes" /><br />
</title><br />
<meta name="keywords" content="{meta/keywords}" /><br />
<meta name="description" content="{meta/description}" /><br />
</xsl:otherwise><br />
</xsl:choose><br />
</xsl:template><br />
</source><br />
<br />
Таким образом к keywords, description и title будет добавляться "- Страница номер_подстранички" и они будут уникальными.<br />
<br />
[[category:Модуль SEO]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Mad_grant&diff=7807Участник:Mad grant2014-05-16T11:07:25Z<p>Mad grant: </p>
<hr />
<div>== Результаты специалистов ==<br />
<br />
*[[Участник:Mad_grant]]<br />
*[[Участник:Stexe]]<br />
*[[Участник:PilipenkAV]](16) - off<br />
*[[Участник:Williwaw]]<br />
*[[Участник:Alexei]]<br />
*[[Участник:Velross]]<br />
*[[Участник:Davidov]](38) - off<br />
*[[Участник:Elena]](1) - off<br />
*[[Участник:Yulia]](9) - off<br />
*[[Участник:Deez]](10) - off<br />
*[[Участник:XiBOR]](45) - off<br />
*[[Участник:SpeLL]](6) - off<br />
*[[Участник:Kalexey]](17) - off<br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Пример_ajax_формы_для_рейтингования]]</li><br />
<li>[[Как_покупателю_отклонить_свой_заказ]]</li><br />
<li>[[Как_в_модуле_меню_привязать_меню_к_домену]]</li><br />
<li>[[Не_удалось_найти_вид_номенклатуры_Услуга]]</li><br />
<li>[[Как_проставить_на_все_страницы_права_на_просмотр_гостю]]</li><br />
<li>[[Добавляем_артикул_в_заказы]]</li><br />
</ul><br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Модуль_Настройки_сайта]]</li><br />
<li>[[Разный_текст_уведомления_для_разного_статуса_заказа]]</li><br />
<li>[[Как_найти_все_страницы_с_похожим_именем]]</li><br />
<li>[[Как_вывести_список_сайтов_системы]]</li><br />
<li>[[Импорт_характеристик_из_offers_дополнительный_шаблон]]</li><br />
<li>[[Как_переместить_страницу_если_её_раздел_поменялся]]</li><br />
<li>[[Удаление_товаров_из_системы_при_импорте]]</li><br />
<li>[[Как_автоматически_отключать_выгрузку_определенных_заказов]]</li><br />
<li>[[Класс_umiImportRelations]]</li><br />
<li>[[Как_реализовать_резервирование_товаров]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Импорт_характеристик_товаров_из_offers]]</li><br />
<li>[[Как_избежать_дублирования_контента_при_использовании_виртуальных_копий]]</li><br />
<li>[[Как_убрать_виртуальные_копии_из_результатов_поиска]]</li><br />
<li>[[Как_скрыть_отдачу_xml_на_фронте_сайта]]</li><br />
<li>[[Как_вывести_случайную_страницу]]</li><br />
<li>[[Http_basic_Authorization]]</li><br />
<li>[[Как_скрыть_от_индексации_все_страницы_определенного_типа]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_протокола_ufs]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_дополнительных_полей]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_модуля_Фотогалереи]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<ul><br />
<li>[[Как_в_tpl_шаблонизаторе_вывести_alt-name_страницы]]</li><br />
<li>[[Возможные_проблемы_при_интеграции_с_1С_11.1.2.28]]</li><br />
<li>[[Принудительный_переход_на_https_для_хостинга_SpaceWEB]]</li><br />
<li>[[Как_вывести_меню_по_конкретному_иерархическому_типу]]</li><br />
<li>[[Как_сделать_динамически_изменяемые_вставки_в_meta_поля]]</li><br />
<li>[[Как_вывести_фотографии_из_нескольких_альбомов_с_возможностью_сортировки_по_дате_создания]]</li><br />
<li>[[Как_получить_id_поля_по_его_строковому_идентификатору]]</li><br />
<li>[[Пример_использования_протокола_umap]]</li><br />
<li>[[Как_менять_кнопку_покупки_в_зависимости_от_состояния_на_складе]]</li><br />
<li>[[Как_в_tpl_шаблонизаторе_убрать_блок_выбора_адреса_в_форме_обратной_связи]]</li><br />
</ul><br />
<br />
== Январь: ==<br />
<br />
<ul><br />
<li>[[Особенность_добавления_прав_на_модули_для_пользователей]]</li><br />
<li>[[Как_получить_список_товаров,_купленных_в_интернет_магазине]]</li><br />
<li>[[Как_сделать_поиск_товаров_по_определенному_полю]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Вывод_новостей_сразу_в_нескольких_новостных_лентах]]</li><br />
<li>[[Постраничная_навигация_результатов_макроса_data_doSelection]]</li><br />
<li>[[Прайслист]]</li><br />
<li>[[Пример_конфигурационного_файла_для_nginx]]</li><br />
<li>[[Ошибка_соединения_java.lang.NullPointerException_при_интеграции_с_Мой_Склад]]</li><br />
<li>[[Как_поменять_картинку_у_акционных_товаров]]</li><br />
<li>[[Вывод_новостей_по_сюжету]]</li><br />
</ul><br />
<br />
== Сентябрь: ==<br />
<br />
<uL><br />
<li>[[Вывод_фильтров_для_всех_разделов_каталога]]</li><br />
<li>[[Как_фильтровать_заказы_по_фио_покупателя]]</li><br />
<li>[[Как_сделать_выборку_по_нескольким_типам_данных]]</li><br />
<li>[[Работа_со_скрытием/отображением_элементов_на_jquery_на_примере_фильтров_в_demodizyy]]</li><br />
<li>[[Использование_условий_на_примере_макроса_core_navibar_в_шаблоне_demodizzy]]</li><br />
<li>[[Как_производя_выборку_по_объектам_получить_страницы_в_Selector]]</li><br />
<li>[[Как_сделать_выборку_чтобы_в_нее_попали_только_страницы_из_активных_разделов]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Как_переактивировать_систему]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_найдено_microcore_для_обновления.]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_удается_скопировать_ядро]]</li><br />
<li>[[Не_найден_файл_настроек_для_установки_install.ini]]</li><br />
<li>[[Обновление_завершилось_с_ошибкой,_на_сайт_не_попасть]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Не_передан_ip-адрес_клиента.]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Указаный_доменный_или_лицензионный_ключ_не_найден_в_базе_лицензий.]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(json)]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(xml)]]</li><br />
<li>[[Проблема_с_активацией_лицензии_на_хостинге_Мультихост]]</li><br />
<li>[[Стандартный_.htaccess_для_версии_2.9]]</li><br />
<li>[[Не_получается_отключить_CAPTCHA]]</li><br />
<li>[[После_обновления_в_административной_панели_белый_экран]]</li><br />
<li>[[Добавление_полей_для_фильтрации_в_интерфейс_модуля]]</li><br />
<li>[[Пример импорта поля типа symlink (ссылка на дерево) в UmiDump2.0]]</li><br />
<li>[[На_сайте_разделы_отображаются_в_модуле_"Структура"_нет]]</li><br />
<li>[[Фильтр_цены_с_бегунком]]</li><br />
<li>[[Fatal_error:_Call_to_a_member_function_getLangId()_on_a_non-object]]</li><br />
</ul><br />
<br />
== Ноябрь: ==<br />
<br />
<uL><br />
<li>[[Добавление информации о заказе в письмо-уведомление(tpl)]]</li><br />
<li>[[Замена числовой составляющей даты словом]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<uL><br />
<li>[[Удаление заказов по выборке средствами API и работы с объектами.]]</li><br />
</ul></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D0%B0%D1%80%D1%82%D0%B8%D0%BA%D1%83%D0%BB_%D0%B2_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B&diff=7806Добавляем артикул в заказы2014-05-16T11:06:56Z<p>Mad grant: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
В карточке заказа вывести артикул товара рядом с его именем. Для решения задачи необходимо будет кастомизировать шаблон административной панели.<br />
<br />
== Решение ==<br />
<br />
Для решения задачи мы выполним следующее:<br />
<br />
Создадим в директории /styles/skins/mac/data/modules/emarket файл form.modify.custom.xsl следующего содеражания:<br />
<br />
<source lang="xml"><br />
<?xml version="1.0" encoding="utf-8"?><br />
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://common/"><br />
<xsl:stylesheet version="1.0"<br />
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"<br />
xmlns:xlink="http://www.w3.org/TR/xlink"><br />
<br />
<xsl:template match="object[//property/@name = 'item_link']" mode="order-item-name"><br />
<a href="{$lang-prefix}/admin/catalog/edit/{//property/value/page/@id}/"><br />
<xsl:value-of select="concat(./@name, ' (', document(concat('upage://', //property/value/page/@id, '.artikul'))/udata/property/value, ')')" /><br />
</a><br />
</xsl:template><br />
<br />
</xsl:stylesheet><br />
</source><br />
<br />
где 'artikul' - строкой идентификатор поля, которое у Вас хранит актикул. Посмотреть id можно в типе данных объекта каталога, или его дочерних типов, в модуле "Шаблоны данных".<br />
<br />
После применения решения у нас в заказах будут отображаться артикулы в скобочках у названия товара, в том случае если они заполнены в поле артикул самого товара:<br />
<br />
[[Файл:Artikul.png]]<br />
<br />
[[Категория:Модуль Интернет магазин]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC_%D0%B0%D1%80%D1%82%D0%B8%D0%BA%D1%83%D0%BB_%D0%B2_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B&diff=7805Добавляем артикул в заказы2014-05-16T11:06:16Z<p>Mad grant: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Иногда возникает необходимость в заказах для менеджера выводить ещё и артикул товара рядом с его именем, для удобства. Для решения задачи необходимо будет кастомизировать шаблон данных административной панели.<br />
<br />
== Решение ==<br />
Для решения задачи мы выполним следующее:<br />
<br />
Создадим в директории /styles/skins/mac/data/modules/emarket файл form.modify.custom.xsl следующего содеражания:<br />
<br />
<source lang="xml"><br />
<?xml version="1.0" encoding="utf-8"?><br />
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://common/"><br />
<xsl:stylesheet version="1.0"<br />
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"<br />
xmlns:xlink="http://www.w3.org/TR/xlink"><br />
<br />
<xsl:template match="object[//property/@name = 'item_link']" mode="order-item-name"><br />
<a href="{$lang-prefix}/admin/catalog/edit/{//property/value/page/@id}/"><br />
<xsl:value-of select="concat(./@name, ' (', document(concat('upage://', //property/value/page/@id, '.artikul'))/udata/property/value, ')')" /><br />
</a><br />
</xsl:template><br />
<br />
</xsl:stylesheet><br />
</source><br />
<br />
где 'artikul' - строкой идентификатор поля, которое у Вас хранит актикул. Посмотреть id можно в типе данных объекта каталога, или его дочерних типов, в модуле "Шаблоны данных".<br />
<br />
После применения решения у нас в заказах будут отображаться артикулы в скобочках у названия товара, в том случае если они заполнены в поле артикул самого товара:<br />
<br />
[[Файл:Artikul.png]]<br />
<br />
[[Категория:Модуль Интернет магазин]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Artikul.png&diff=7804Файл:Artikul.png2014-05-16T11:06:08Z<p>Mad grant: </p>
<hr />
<div></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BC%D0%B5%D0%BD%D0%B0_%D1%88%D0%B0%D0%B3%D0%BE%D0%B2_%D0%BE%D1%84%D0%BE%D1%80%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0_%D0%BD%D0%B0_%D1%8D%D1%82%D0%B0%D0%BF%D0%B5_delivery&diff=7802Смена шагов оформления заказа на этапе delivery2014-05-13T08:59:51Z<p>Mad grant: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
В данной статье будет описан механизм смены шагов оформления заказа на этапе delivery. Необходимо, чтобы была следуюшая последовательность:<br />
* выбор способа доставки;<br />
* проверка на то какой способ доставки выбран:<br />
если выбран "Самовывоз", то перейти к следующему этапу, если "Доставка", то предложить заполнить Адрес доставки.<br />
<br />
<br />
В файл '''classes/modules/emarket/__custom.php''', добавим четыре метода, все они написаны на основе существующих:<br />
<source lang="php"><br />
public function purchasecust(){<br />
<br />
$customer = customer::get();<br />
// Проверка на то, что покупатель Гость, и все ли обязательные поля заполнены в объекте <br />
if(!$customer->isUser() && !$customer->isFilled()) {<br />
$this->redirect('/emarket/purchase/');<br />
}else{<br />
$this->redirect('/emarket/purchase/delivery/choose/');<br />
}<br />
}<br />
<br />
public function personalcust(){<br />
$cmsController = cmsController::getInstance();<br />
$data = $cmsController->getModule('data');<br />
$data->saveEditedObject(customer::get()->id, false, true);<br />
$this->redirect($this->pre_lang . '/emarket/purchase/delivery/choose/');<br />
}<br />
<br />
public function choosecust(){<br />
$ini = cmsController::getInstance()->getModule("emarket");<br />
$order = $ini->getBasketOrder(false);<br />
$deliveryId = (int) getRequest('delivery-id');<br />
<br />
if(!$deliveryId) {<br />
$this->redirect($ini->pre_lang . '/emarket/purchase/delivery/choose/');<br />
}<br />
<br />
if(@isset($_SESSION['emarket']['delivery'][$deliveryId])) {<br />
$deliveryPrice = (float) $_SESSION['emarket']['delivery'][$deliveryId];<br />
} else {<br />
$delivery = delivery::get($deliveryId);<br />
$deliveryPrice = (float) $delivery->getDeliveryPrice($order);<br />
}<br />
<br />
$order->setValue('delivery_id', $deliveryId);<br />
$order->setValue('delivery_price', $deliveryPrice);<br />
$order->refresh();<br />
$order->commit();<br />
if($deliveryId == 27255){<br />
$this->redirect($this->pre_lang . '/emarket/purchase/payment/choose/');<br />
}else{<br />
$this->redirect($this->pre_lang . '/emarket/purchase/delivery/address/');<br />
} <br />
}<br />
<br />
public function addresscust(){<br />
$ini = cmsController::getInstance()->getModule("emarket");<br />
$order = $ini->getBasketOrder(false);<br />
$addressId = (int) getRequest('delivery-address');<br />
if($addressId == 'new') {<br />
$controller = cmsController::getInstance();<br />
$collection = umiObjectsCollection::getInstance();<br />
$types = umiObjectTypesCollection::getInstance();<br />
$typeId = $types->getBaseType("emarket", "delivery_address");<br />
$customer = customer::get();<br />
$addressId = $collection->addObject("Address for customer #".$customer->id, $typeId);<br />
$dataModule = $controller->getModule("data");<br />
if($dataModule) {<br />
$dataModule->saveEditedObject($addressId, true, true);<br />
}<br />
$customer->delivery_addresses = array_merge( $customer->delivery_addresses, array($addressId) );<br />
}<br />
$order->delivery_address = $addressId;<br />
$order->commit();<br />
<br />
$this->redirect($this->pre_lang . '/emarket/purchase/payment/choose/'); <br />
}<br />
</source><br />
<br />
<br />
также в папке '''classes/modules/emarket/''' создадим файл '''permissions.custom.php''' следующего содержания:<br />
<source lang="php"><br />
<?php<br />
$permissions = array('purchasing' => array('purchasecust', 'personalcust', 'choosecust', 'addresscust'));<br />
?><br />
</source><br />
В методе '''choosecust()''', в строке:<br />
<pre><br />
if($deliveryId == 27255){<br />
</pre><br />
<br />
необходимо прописать ваш $object_id способа доставки "Самовывоз", id можно узнать в модуле Интернет-магазин, вкладка "Доставка".<br />
<br />
Если говорить о TPL-шаблонах, то в шаблоне '''/tpls/emarket/default.tpl''', в блоке '''order_block''', необходимо прописать для формы следующий action:<br />
<pre><br />
<form action="%pre_lang%/emarket/purchasecust/"><br />
</pre><br />
<br />
В шаблоне '''tpls/emarket/required/default.tpl''', action:<br />
<pre><br />
<form action="%pre_lang%/emarket/personalcust/" method="post"><br />
</pre><br />
<br />
В шаблоне '''tpls/emarket/delivery/default.tpl''', в блоке '''delivery_block''', action:<br />
<pre><br />
<form action="%pre_lang%/emarket/choosecust/" method="post"><br />
</pre><br />
а в блоке '''delivery_address_block''', action:<br />
<pre><br />
<form action="%pre_lang%/emarket/addresscust/" method="post"><br />
</pre><br />
<br />
<br />
В XSLT-шаблонах правки аналогичные.<br />
[[Категория:Модуль Интернет магазин]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%BD%D0%B0_%D0%B2%D1%81%D0%B5_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%D0%BF%D1%80%D0%B0%D0%B2%D0%B0_%D0%BD%D0%B0_%D0%BF%D1%80%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80_%D0%B3%D0%BE%D1%81%D1%82%D1%8E&diff=7801Как проставить на все страницы права на просмотр гостю2014-05-06T15:40:58Z<p>Mad grant: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Если Вы столкнулись с данной задачей, то решить её стандартными средствами нельзя. Необходимо написать кастомный макрос, пример оного дан ниже. <br />
<br />
== Решение == <br />
<br />
%custom makePermissions()% — проставляет всем страницам права на просмотр гостю (группа 'все').<br />
<br />
Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php. <br />
<br />
== Код макроса ==<br />
<br />
<source lang="php"><br />
public function makePermissions(){<br />
$result = array();<br />
$pages = new selector('pages');<br />
$pages->option('return')->value('id');<br />
$result = $pages->result();<br />
<br />
$perm_col = permissionsCollection::getInstance();<br />
$guest_id = $perm_col->getGuestId();<br />
$t = 0;<br />
<br />
foreach($result as $page){<br />
$perm_col->setElementPermissions($guest_id, $page['id'], 1);<br />
$t++;<br />
}<br />
return 'Гостю даны права на просмотр ' . $t . ' страниц';<br />
}<br />
</source><br />
<br />
Для вызова макроса перейдите по ссылке вида: http://домен_вашего_сайта/udata://custom/makePermissions<br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Mad_grant&diff=7800Участник:Mad grant2014-05-06T15:40:34Z<p>Mad grant: </p>
<hr />
<div>== Результаты специалистов ==<br />
<br />
*[[Участник:Mad_grant]]<br />
*[[Участник:Stexe]]<br />
*[[Участник:PilipenkAV]](16) - off<br />
*[[Участник:Williwaw]]<br />
*[[Участник:Alexei]]<br />
*[[Участник:Velross]]<br />
*[[Участник:Davidov]](38) - off<br />
*[[Участник:Elena]](1) - off<br />
*[[Участник:Yulia]](9) - off<br />
*[[Участник:Deez]](10) - off<br />
*[[Участник:XiBOR]](45) - off<br />
*[[Участник:SpeLL]](6) - off<br />
*[[Участник:Kalexey]](17) - off<br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Пример_ajax_формы_для_рейтингования]]</li><br />
<li>[[Как_покупателю_отклонить_свой_заказ]]</li><br />
<li>[[Как_в_модуле_меню_привязать_меню_к_домену]]</li><br />
<li>[[Не_удалось_найти_вид_номенклатуры_Услуга]]</li><br />
<li>[[Как_проставить_на_все_страницы_права_на_просмотр_гостю]]</li><br />
</ul><br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Модуль_Настройки_сайта]]</li><br />
<li>[[Разный_текст_уведомления_для_разного_статуса_заказа]]</li><br />
<li>[[Как_найти_все_страницы_с_похожим_именем]]</li><br />
<li>[[Как_вывести_список_сайтов_системы]]</li><br />
<li>[[Импорт_характеристик_из_offers_дополнительный_шаблон]]</li><br />
<li>[[Как_переместить_страницу_если_её_раздел_поменялся]]</li><br />
<li>[[Удаление_товаров_из_системы_при_импорте]]</li><br />
<li>[[Как_автоматически_отключать_выгрузку_определенных_заказов]]</li><br />
<li>[[Класс_umiImportRelations]]</li><br />
<li>[[Как_реализовать_резервирование_товаров]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Импорт_характеристик_товаров_из_offers]]</li><br />
<li>[[Как_избежать_дублирования_контента_при_использовании_виртуальных_копий]]</li><br />
<li>[[Как_убрать_виртуальные_копии_из_результатов_поиска]]</li><br />
<li>[[Как_скрыть_отдачу_xml_на_фронте_сайта]]</li><br />
<li>[[Как_вывести_случайную_страницу]]</li><br />
<li>[[Http_basic_Authorization]]</li><br />
<li>[[Как_скрыть_от_индексации_все_страницы_определенного_типа]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_протокола_ufs]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_дополнительных_полей]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_модуля_Фотогалереи]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<ul><br />
<li>[[Как_в_tpl_шаблонизаторе_вывести_alt-name_страницы]]</li><br />
<li>[[Возможные_проблемы_при_интеграции_с_1С_11.1.2.28]]</li><br />
<li>[[Принудительный_переход_на_https_для_хостинга_SpaceWEB]]</li><br />
<li>[[Как_вывести_меню_по_конкретному_иерархическому_типу]]</li><br />
<li>[[Как_сделать_динамически_изменяемые_вставки_в_meta_поля]]</li><br />
<li>[[Как_вывести_фотографии_из_нескольких_альбомов_с_возможностью_сортировки_по_дате_создания]]</li><br />
<li>[[Как_получить_id_поля_по_его_строковому_идентификатору]]</li><br />
<li>[[Пример_использования_протокола_umap]]</li><br />
<li>[[Как_менять_кнопку_покупки_в_зависимости_от_состояния_на_складе]]</li><br />
<li>[[Как_в_tpl_шаблонизаторе_убрать_блок_выбора_адреса_в_форме_обратной_связи]]</li><br />
</ul><br />
<br />
== Январь: ==<br />
<br />
<ul><br />
<li>[[Особенность_добавления_прав_на_модули_для_пользователей]]</li><br />
<li>[[Как_получить_список_товаров,_купленных_в_интернет_магазине]]</li><br />
<li>[[Как_сделать_поиск_товаров_по_определенному_полю]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Вывод_новостей_сразу_в_нескольких_новостных_лентах]]</li><br />
<li>[[Постраничная_навигация_результатов_макроса_data_doSelection]]</li><br />
<li>[[Прайслист]]</li><br />
<li>[[Пример_конфигурационного_файла_для_nginx]]</li><br />
<li>[[Ошибка_соединения_java.lang.NullPointerException_при_интеграции_с_Мой_Склад]]</li><br />
<li>[[Как_поменять_картинку_у_акционных_товаров]]</li><br />
<li>[[Вывод_новостей_по_сюжету]]</li><br />
</ul><br />
<br />
== Сентябрь: ==<br />
<br />
<uL><br />
<li>[[Вывод_фильтров_для_всех_разделов_каталога]]</li><br />
<li>[[Как_фильтровать_заказы_по_фио_покупателя]]</li><br />
<li>[[Как_сделать_выборку_по_нескольким_типам_данных]]</li><br />
<li>[[Работа_со_скрытием/отображением_элементов_на_jquery_на_примере_фильтров_в_demodizyy]]</li><br />
<li>[[Использование_условий_на_примере_макроса_core_navibar_в_шаблоне_demodizzy]]</li><br />
<li>[[Как_производя_выборку_по_объектам_получить_страницы_в_Selector]]</li><br />
<li>[[Как_сделать_выборку_чтобы_в_нее_попали_только_страницы_из_активных_разделов]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Как_переактивировать_систему]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_найдено_microcore_для_обновления.]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_удается_скопировать_ядро]]</li><br />
<li>[[Не_найден_файл_настроек_для_установки_install.ini]]</li><br />
<li>[[Обновление_завершилось_с_ошибкой,_на_сайт_не_попасть]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Не_передан_ip-адрес_клиента.]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Указаный_доменный_или_лицензионный_ключ_не_найден_в_базе_лицензий.]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(json)]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(xml)]]</li><br />
<li>[[Проблема_с_активацией_лицензии_на_хостинге_Мультихост]]</li><br />
<li>[[Стандартный_.htaccess_для_версии_2.9]]</li><br />
<li>[[Не_получается_отключить_CAPTCHA]]</li><br />
<li>[[После_обновления_в_административной_панели_белый_экран]]</li><br />
<li>[[Добавление_полей_для_фильтрации_в_интерфейс_модуля]]</li><br />
<li>[[Пример импорта поля типа symlink (ссылка на дерево) в UmiDump2.0]]</li><br />
<li>[[На_сайте_разделы_отображаются_в_модуле_"Структура"_нет]]</li><br />
<li>[[Фильтр_цены_с_бегунком]]</li><br />
<li>[[Fatal_error:_Call_to_a_member_function_getLangId()_on_a_non-object]]</li><br />
</ul><br />
<br />
== Ноябрь: ==<br />
<br />
<uL><br />
<li>[[Добавление информации о заказе в письмо-уведомление(tpl)]]</li><br />
<li>[[Замена числовой составляющей даты словом]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<uL><br />
<li>[[Удаление заказов по выборке средствами API и работы с объектами.]]</li><br />
</ul></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C_%D0%BD%D0%B0_%D0%B2%D1%81%D0%B5_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B_%D0%BF%D1%80%D0%B0%D0%B2%D0%B0_%D0%BD%D0%B0_%D0%BF%D1%80%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80_%D0%B3%D0%BE%D1%81%D1%82%D1%8E&diff=7799Как проставить на все страницы права на просмотр гостю2014-05-06T15:40:05Z<p>Mad grant: Новая страница: «'''Актуально для версии 2.9.6''' == Задача == Если Вы столкнулись с данной задачей, то решить её …»</p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Если Вы столкнулись с данной задачей, то решить её стандартными средствами нельзя. Необходимо написать кастомный макрос, пример оного дан ниже. <br />
<br />
== Решение == <br />
<br />
%custom makePermissions()% — проставляет всем страницам права на просмотр гостю (группа 'все').<br />
<br />
Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php. <br />
<br />
== Код макроса ==<br />
<br />
<source lang="php"><br />
public function makePermissions(){<br />
$result = array();<br />
$pages = new selector('pages');<br />
$pages->option('return')->value('id');<br />
$result = $pages->result();<br />
<br />
$perm_col = permissionsCollection::getInstance();<br />
$guest_id = $perm_col->getGuestId();<br />
$t = 0;<br />
<br />
foreach($result as $page){<br />
$perm_col->setElementPermissions($guest_id, $page['id'], 1);<br />
$t++;<br />
}<br />
return 'Гостю даны права на просмотр ' . $t . ' страниц';<br />
}<br />
</source><br />
<br />
Для вызова макроса перейдите по ссылке вида: http://домен_вашего_сайта/udata://custom/makePermissions<br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9D%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C_%D0%BD%D0%B0%D0%B9%D1%82%D0%B8_%D0%B2%D0%B8%D0%B4_%D0%BD%D0%BE%D0%BC%D0%B5%D0%BD%D0%BA%D0%BB%D0%B0%D1%82%D1%83%D1%80%D1%8B_%D0%A3%D1%81%D0%BB%D1%83%D0%B3%D0%B0&diff=7798Не удалось найти вид номенклатуры Услуга2014-05-05T15:53:48Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
==Ошибка==<br />
<br />
Если при выгрузке заказов Вы столкнулись с ошибкой вида:<br />
<br />
<source lang="text"><br />
Не удалось найти вид номенклатуры: Услуга<br />
Не удалось найти/создать номенклатуру.<br />
Не удалось обработать документы, загруженные с сервера.<br />
Обмен не выполнен<br />
Изменения заказов не зарегистрированы. Выгрузка заказов не произведена.<br />
Обмен заказами завершен с ошибками!!!<br />
</source><br />
<br />
то имеет место проблема со стороны 1С<br />
<br />
==Решение==<br />
<br />
Причиной ошибки является отсутствие в справочнике «Виды номенклатуры» «1С:Управление торговлей» значения «Услуга».<br />
Для устранения проблемы надо открыть в «1С:Управление торговлей» справочник «Виды номенклатуры» и добавить туда новый вид номенклатуры, <br />
указав в графе «Наименование» значение «Услуга», а в графе «Тип номенклатуры» выбрав из выпадающего списка значение «Услуга». <br />
<br />
Этот тип номенклатуры необходим для процесса обмена данными с сайтом.<br />
Следует создать в 1С такой тип и только после этого осуществлять обмен заказами между UMI.CMS и 1С.<br />
<br />
[[category:Интеграция с 1С]][[Категория:Решение проблем и ошибок]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9D%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C_%D0%BD%D0%B0%D0%B9%D1%82%D0%B8_%D0%B2%D0%B8%D0%B4_%D0%BD%D0%BE%D0%BC%D0%B5%D0%BD%D0%BA%D0%BB%D0%B0%D1%82%D1%83%D1%80%D1%8B_%D0%A3%D1%81%D0%BB%D1%83%D0%B3%D0%B0&diff=7797Не удалось найти вид номенклатуры Услуга2014-05-05T15:53:30Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
==Ошибка==<br />
<br />
Если при выгрузке заказов Вы столкнулись с ошибкой вида:<br />
<br />
<source lang="text"><br />
Не удалось найти вид номенклатуры: Услуга<br />
Не удалось найти/создать номенклатуру.<br />
Не удалось обработать документы, загруженные с сервера.<br />
Обмен не выполнен<br />
Изменения заказов не зарегистрированы. Выгрузка заказов не произведена.<br />
Обмен заказами завершен с ошибками!!!<br />
</source><br />
<br />
то имеет место проблема со стороны 1С<br />
<br />
==Решение==<br />
<br />
Причиной ошибки является отсутствие в справочнике «Виды номенклатуры» «1С:Управление торговлей» значения «Услуга».<br />
Для устранения проблемы надо открыть в «1С:Управление торговлей» справочник «Виды номенклатуры» и добавить туда новый вид номенклатуры, <br />
указав в графе «Наименование» значение «Услуга», а в графе «Тип номенклатуры» выбрав из выпадающего списка значение «Услуга». <br />
<br />
Этот тип номенклатуры необходим для процесса обмена данными с сайтом.<br />
Следует создать в 1С такой тип и только после этого осуществлять обмен заказами между UMI.CMS и 1С.<br />
<br />
[[category:Интеграция с 1С]][[Категория:Решение проблем и ошибок]][</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9D%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C_%D0%BD%D0%B0%D0%B9%D1%82%D0%B8_%D0%B2%D0%B8%D0%B4_%D0%BD%D0%BE%D0%BC%D0%B5%D0%BD%D0%BA%D0%BB%D0%B0%D1%82%D1%83%D1%80%D1%8B_%D0%A3%D1%81%D0%BB%D1%83%D0%B3%D0%B0&diff=7796Не удалось найти вид номенклатуры Услуга2014-05-05T15:52:51Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
==Ошибка==<br />
<br />
Если при выгрузке заказов Вы столкнулись с ошибкой вида:<br />
<br />
<source lang="text"><br />
Не удалось найти вид номенклатуры: Услуга<br />
Не удалось найти/создать номенклатуру.<br />
Не удалось обработать документы, загруженные с сервера.<br />
Обмен не выполнен<br />
Изменения заказов не зарегистрированы. Выгрузка заказов не произведена.<br />
Обмен заказами завершен с ошибками!!!<br />
</source><br />
<br />
то имеет место проблема со стороны 1С<br />
<br />
==Решение==<br />
<br />
Причиной ошибки является отсутствие в справочнике «Виды номенклатуры» «1С:Управление торговлей» значения «Услуга».<br />
Для устранения этого сбоя надо открыть в «1С:Управление торговлей» справочник «Виды номенклатуры» и добавить туда новый вид номенклатуры, <br />
указав в графе «Наименование» значение «Услуга», а в графе «Тип номенклатуры» выбрав из выпадающего списка значение «Услуга». <br />
<br />
Этот тип номенклатуры необходим для процесса обмена данными с сайтом.<br />
Следует создать в 1С такой тип и только после этого осуществлять обмен заказами между UMI.CMS и 1С.<br />
<br />
[[category:Интеграция с 1С]][[Категория:Решение проблем и ошибок]][</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Mad_grant&diff=7795Участник:Mad grant2014-05-05T15:52:08Z<p>Mad grant: </p>
<hr />
<div>== Результаты специалистов ==<br />
<br />
*[[Участник:Mad_grant]]<br />
*[[Участник:Stexe]]<br />
*[[Участник:PilipenkAV]](16) - off<br />
*[[Участник:Williwaw]]<br />
*[[Участник:Alexei]]<br />
*[[Участник:Velross]]<br />
*[[Участник:Davidov]](38) - off<br />
*[[Участник:Elena]](1) - off<br />
*[[Участник:Yulia]](9) - off<br />
*[[Участник:Deez]](10) - off<br />
*[[Участник:XiBOR]](45) - off<br />
*[[Участник:SpeLL]](6) - off<br />
*[[Участник:Kalexey]](17) - off<br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Пример_ajax_формы_для_рейтингования]]</li><br />
<li>[[Как_покупателю_отклонить_свой_заказ]]</li><br />
<li>[[Как_в_модуле_меню_привязать_меню_к_домену]]</li><br />
<li>[[Не_удалось_найти_вид_номенклатуры_Услуга]]</li><br />
</ul><br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Модуль_Настройки_сайта]]</li><br />
<li>[[Разный_текст_уведомления_для_разного_статуса_заказа]]</li><br />
<li>[[Как_найти_все_страницы_с_похожим_именем]]</li><br />
<li>[[Как_вывести_список_сайтов_системы]]</li><br />
<li>[[Импорт_характеристик_из_offers_дополнительный_шаблон]]</li><br />
<li>[[Как_переместить_страницу_если_её_раздел_поменялся]]</li><br />
<li>[[Удаление_товаров_из_системы_при_импорте]]</li><br />
<li>[[Как_автоматически_отключать_выгрузку_определенных_заказов]]</li><br />
<li>[[Класс_umiImportRelations]]</li><br />
<li>[[Как_реализовать_резервирование_товаров]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Импорт_характеристик_товаров_из_offers]]</li><br />
<li>[[Как_избежать_дублирования_контента_при_использовании_виртуальных_копий]]</li><br />
<li>[[Как_убрать_виртуальные_копии_из_результатов_поиска]]</li><br />
<li>[[Как_скрыть_отдачу_xml_на_фронте_сайта]]</li><br />
<li>[[Как_вывести_случайную_страницу]]</li><br />
<li>[[Http_basic_Authorization]]</li><br />
<li>[[Как_скрыть_от_индексации_все_страницы_определенного_типа]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_протокола_ufs]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_дополнительных_полей]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_модуля_Фотогалереи]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<ul><br />
<li>[[Как_в_tpl_шаблонизаторе_вывести_alt-name_страницы]]</li><br />
<li>[[Возможные_проблемы_при_интеграции_с_1С_11.1.2.28]]</li><br />
<li>[[Принудительный_переход_на_https_для_хостинга_SpaceWEB]]</li><br />
<li>[[Как_вывести_меню_по_конкретному_иерархическому_типу]]</li><br />
<li>[[Как_сделать_динамически_изменяемые_вставки_в_meta_поля]]</li><br />
<li>[[Как_вывести_фотографии_из_нескольких_альбомов_с_возможностью_сортировки_по_дате_создания]]</li><br />
<li>[[Как_получить_id_поля_по_его_строковому_идентификатору]]</li><br />
<li>[[Пример_использования_протокола_umap]]</li><br />
<li>[[Как_менять_кнопку_покупки_в_зависимости_от_состояния_на_складе]]</li><br />
<li>[[Как_в_tpl_шаблонизаторе_убрать_блок_выбора_адреса_в_форме_обратной_связи]]</li><br />
</ul><br />
<br />
== Январь: ==<br />
<br />
<ul><br />
<li>[[Особенность_добавления_прав_на_модули_для_пользователей]]</li><br />
<li>[[Как_получить_список_товаров,_купленных_в_интернет_магазине]]</li><br />
<li>[[Как_сделать_поиск_товаров_по_определенному_полю]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Вывод_новостей_сразу_в_нескольких_новостных_лентах]]</li><br />
<li>[[Постраничная_навигация_результатов_макроса_data_doSelection]]</li><br />
<li>[[Прайслист]]</li><br />
<li>[[Пример_конфигурационного_файла_для_nginx]]</li><br />
<li>[[Ошибка_соединения_java.lang.NullPointerException_при_интеграции_с_Мой_Склад]]</li><br />
<li>[[Как_поменять_картинку_у_акционных_товаров]]</li><br />
<li>[[Вывод_новостей_по_сюжету]]</li><br />
</ul><br />
<br />
== Сентябрь: ==<br />
<br />
<uL><br />
<li>[[Вывод_фильтров_для_всех_разделов_каталога]]</li><br />
<li>[[Как_фильтровать_заказы_по_фио_покупателя]]</li><br />
<li>[[Как_сделать_выборку_по_нескольким_типам_данных]]</li><br />
<li>[[Работа_со_скрытием/отображением_элементов_на_jquery_на_примере_фильтров_в_demodizyy]]</li><br />
<li>[[Использование_условий_на_примере_макроса_core_navibar_в_шаблоне_demodizzy]]</li><br />
<li>[[Как_производя_выборку_по_объектам_получить_страницы_в_Selector]]</li><br />
<li>[[Как_сделать_выборку_чтобы_в_нее_попали_только_страницы_из_активных_разделов]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Как_переактивировать_систему]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_найдено_microcore_для_обновления.]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_удается_скопировать_ядро]]</li><br />
<li>[[Не_найден_файл_настроек_для_установки_install.ini]]</li><br />
<li>[[Обновление_завершилось_с_ошибкой,_на_сайт_не_попасть]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Не_передан_ip-адрес_клиента.]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Указаный_доменный_или_лицензионный_ключ_не_найден_в_базе_лицензий.]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(json)]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(xml)]]</li><br />
<li>[[Проблема_с_активацией_лицензии_на_хостинге_Мультихост]]</li><br />
<li>[[Стандартный_.htaccess_для_версии_2.9]]</li><br />
<li>[[Не_получается_отключить_CAPTCHA]]</li><br />
<li>[[После_обновления_в_административной_панели_белый_экран]]</li><br />
<li>[[Добавление_полей_для_фильтрации_в_интерфейс_модуля]]</li><br />
<li>[[Пример импорта поля типа symlink (ссылка на дерево) в UmiDump2.0]]</li><br />
<li>[[На_сайте_разделы_отображаются_в_модуле_"Структура"_нет]]</li><br />
<li>[[Фильтр_цены_с_бегунком]]</li><br />
<li>[[Fatal_error:_Call_to_a_member_function_getLangId()_on_a_non-object]]</li><br />
</ul><br />
<br />
== Ноябрь: ==<br />
<br />
<uL><br />
<li>[[Добавление информации о заказе в письмо-уведомление(tpl)]]</li><br />
<li>[[Замена числовой составляющей даты словом]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<uL><br />
<li>[[Удаление заказов по выборке средствами API и работы с объектами.]]</li><br />
</ul></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9D%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C_%D0%BD%D0%B0%D0%B9%D1%82%D0%B8_%D0%B2%D0%B8%D0%B4_%D0%BD%D0%BE%D0%BC%D0%B5%D0%BD%D0%BA%D0%BB%D0%B0%D1%82%D1%83%D1%80%D1%8B_%D0%A3%D1%81%D0%BB%D1%83%D0%B3%D0%B0&diff=7794Не удалось найти вид номенклатуры Услуга2014-05-05T15:50:56Z<p>Mad grant: Новая страница: «Актуально для версии 2.9.6 ==Ошибка== Если при выгрузке заказов Вы столкнулись с ошибкой вид…»</p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
==Ошибка==<br />
<br />
Если при выгрузке заказов Вы столкнулись с ошибкой вида:<br />
<br />
<source lang="text"><br />
Не удалось найти вид номенклатуры: Услуга<br />
Не удалось найти/создать номенклатуру.<br />
Не удалось обработать документы, загруженные с сервера.<br />
Обмен не выполнен<br />
Изменения заказов не зарегистрированы. Выгрузка заказов не произведена.<br />
Обмен заказами завершен с ошибками!!!<br />
</source><br />
<br />
то имеет место проблема со стороны 1С<br />
<br />
==Решение==<br />
<br />
Причиной ошибки является отсутствие в справочнике «Виды номенклатуры» «1С:Управление торговлей» значения «Услуга».<br />
Для устранения этого сбоя надо открыть в «1С:Управление торговлей» справочник «Виды номенклатуры» и добавить туда новый вид номенклатуры, <br />
указав в графе «Наименование» значение «Услуга», а в графе «Тип номенклатуры» выбрав из выпадающего списка значение «Услуга». <br />
<br />
Этот тип номенклатуры необходим для процесса обмена данными с сайтом.<br />
Следует создать в 1С такой тип и только после этого осуществлять обмен заказами между UMI.CMS и 1С.<br />
<br />
[[category:Интеграция с 1С]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7793Как в модуле меню привязать меню к домену2014-05-05T14:47:57Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их (меню) у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<br />
Поэтому подставить его с помощью xPath функции concat() не составит особого труда:<br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
<li>В tpl получить текущий домен можно с помощью глобального макроса %domain%, то есть вызов примет вид:<br />
</li><br />
<source lang="html4strict"><br />
%menu draw(%domain%, 'default')%<br />
</source><br />
</ul><br />
<br />
Если же для каждого сайта создано несколько меню, то используйте домен в качестве префикса, то есть<br />
ид меню будет иметь вид "domain1.com_main", в tpl вызов примет вид:<br />
<br />
<source lang="html4strict"><br />
%menu draw(%domain%_main, 'default')%<br />
</source><br />
<br />
а в xslt, на примере demodizzy:<br />
<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain, '_main'))/udata" mode="info-pages-head" /><br />
</source><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Mad_grant&diff=7792Участник:Mad grant2014-05-05T14:44:41Z<p>Mad grant: </p>
<hr />
<div>== Результаты специалистов ==<br />
<br />
*[[Участник:Mad_grant]]<br />
*[[Участник:Stexe]]<br />
*[[Участник:PilipenkAV]](16) - off<br />
*[[Участник:Williwaw]]<br />
*[[Участник:Alexei]]<br />
*[[Участник:Velross]]<br />
*[[Участник:Davidov]](38) - off<br />
*[[Участник:Elena]](1) - off<br />
*[[Участник:Yulia]](9) - off<br />
*[[Участник:Deez]](10) - off<br />
*[[Участник:XiBOR]](45) - off<br />
*[[Участник:SpeLL]](6) - off<br />
*[[Участник:Kalexey]](17) - off<br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Пример_ajax_формы_для_рейтингования]]</li><br />
<li>[[Как_покупателю_отклонить_свой_заказ]]</li><br />
<li>[[Как_в_модуле_меню_привязать_меню_к_домену]]</li><br />
</ul><br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Модуль_Настройки_сайта]]</li><br />
<li>[[Разный_текст_уведомления_для_разного_статуса_заказа]]</li><br />
<li>[[Как_найти_все_страницы_с_похожим_именем]]</li><br />
<li>[[Как_вывести_список_сайтов_системы]]</li><br />
<li>[[Импорт_характеристик_из_offers_дополнительный_шаблон]]</li><br />
<li>[[Как_переместить_страницу_если_её_раздел_поменялся]]</li><br />
<li>[[Удаление_товаров_из_системы_при_импорте]]</li><br />
<li>[[Как_автоматически_отключать_выгрузку_определенных_заказов]]</li><br />
<li>[[Класс_umiImportRelations]]</li><br />
<li>[[Как_реализовать_резервирование_товаров]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Импорт_характеристик_товаров_из_offers]]</li><br />
<li>[[Как_избежать_дублирования_контента_при_использовании_виртуальных_копий]]</li><br />
<li>[[Как_убрать_виртуальные_копии_из_результатов_поиска]]</li><br />
<li>[[Как_скрыть_отдачу_xml_на_фронте_сайта]]</li><br />
<li>[[Как_вывести_случайную_страницу]]</li><br />
<li>[[Http_basic_Authorization]]</li><br />
<li>[[Как_скрыть_от_индексации_все_страницы_определенного_типа]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_протокола_ufs]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_дополнительных_полей]]</li><br />
<li>[[Несколько_изображений_к_товару_средствами_модуля_Фотогалереи]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<ul><br />
<li>[[Как_в_tpl_шаблонизаторе_вывести_alt-name_страницы]]</li><br />
<li>[[Возможные_проблемы_при_интеграции_с_1С_11.1.2.28]]</li><br />
<li>[[Принудительный_переход_на_https_для_хостинга_SpaceWEB]]</li><br />
<li>[[Как_вывести_меню_по_конкретному_иерархическому_типу]]</li><br />
<li>[[Как_сделать_динамически_изменяемые_вставки_в_meta_поля]]</li><br />
<li>[[Как_вывести_фотографии_из_нескольких_альбомов_с_возможностью_сортировки_по_дате_создания]]</li><br />
<li>[[Как_получить_id_поля_по_его_строковому_идентификатору]]</li><br />
<li>[[Пример_использования_протокола_umap]]</li><br />
<li>[[Как_менять_кнопку_покупки_в_зависимости_от_состояния_на_складе]]</li><br />
<li>[[Как_в_tpl_шаблонизаторе_убрать_блок_выбора_адреса_в_форме_обратной_связи]]</li><br />
</ul><br />
<br />
== Январь: ==<br />
<br />
<ul><br />
<li>[[Особенность_добавления_прав_на_модули_для_пользователей]]</li><br />
<li>[[Как_получить_список_товаров,_купленных_в_интернет_магазине]]</li><br />
<li>[[Как_сделать_поиск_товаров_по_определенному_полю]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Вывод_новостей_сразу_в_нескольких_новостных_лентах]]</li><br />
<li>[[Постраничная_навигация_результатов_макроса_data_doSelection]]</li><br />
<li>[[Прайслист]]</li><br />
<li>[[Пример_конфигурационного_файла_для_nginx]]</li><br />
<li>[[Ошибка_соединения_java.lang.NullPointerException_при_интеграции_с_Мой_Склад]]</li><br />
<li>[[Как_поменять_картинку_у_акционных_товаров]]</li><br />
<li>[[Вывод_новостей_по_сюжету]]</li><br />
</ul><br />
<br />
== Сентябрь: ==<br />
<br />
<uL><br />
<li>[[Вывод_фильтров_для_всех_разделов_каталога]]</li><br />
<li>[[Как_фильтровать_заказы_по_фио_покупателя]]</li><br />
<li>[[Как_сделать_выборку_по_нескольким_типам_данных]]</li><br />
<li>[[Работа_со_скрытием/отображением_элементов_на_jquery_на_примере_фильтров_в_demodizyy]]</li><br />
<li>[[Использование_условий_на_примере_макроса_core_navibar_в_шаблоне_demodizzy]]</li><br />
<li>[[Как_производя_выборку_по_объектам_получить_страницы_в_Selector]]</li><br />
<li>[[Как_сделать_выборку_чтобы_в_нее_попали_только_страницы_из_активных_разделов]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Как_переактивировать_систему]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_найдено_microcore_для_обновления.]]</li><br />
<li>[[В_процессе_обновления_произошла_ошибка._Не_удается_скопировать_ядро]]</li><br />
<li>[[Не_найден_файл_настроек_для_установки_install.ini]]</li><br />
<li>[[Обновление_завершилось_с_ошибкой,_на_сайт_не_попасть]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Не_передан_ip-адрес_клиента.]]</li><br />
<li>[[Сервер_обновлений_отклонил_запрос:_Указаный_доменный_или_лицензионный_ключ_не_найден_в_базе_лицензий.]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(json)]]</li><br />
<li>[[В_модуле_Структура_не_отображаются_страницы(xml)]]</li><br />
<li>[[Проблема_с_активацией_лицензии_на_хостинге_Мультихост]]</li><br />
<li>[[Стандартный_.htaccess_для_версии_2.9]]</li><br />
<li>[[Не_получается_отключить_CAPTCHA]]</li><br />
<li>[[После_обновления_в_административной_панели_белый_экран]]</li><br />
<li>[[Добавление_полей_для_фильтрации_в_интерфейс_модуля]]</li><br />
<li>[[Пример импорта поля типа symlink (ссылка на дерево) в UmiDump2.0]]</li><br />
<li>[[На_сайте_разделы_отображаются_в_модуле_"Структура"_нет]]</li><br />
<li>[[Фильтр_цены_с_бегунком]]</li><br />
<li>[[Fatal_error:_Call_to_a_member_function_getLangId()_on_a_non-object]]</li><br />
</ul><br />
<br />
== Ноябрь: ==<br />
<br />
<uL><br />
<li>[[Добавление информации о заказе в письмо-уведомление(tpl)]]</li><br />
<li>[[Замена числовой составляющей даты словом]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<uL><br />
<li>[[Удаление заказов по выборке средствами API и работы с объектами.]]</li><br />
</ul></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7791Как в модуле меню привязать меню к домену2014-05-05T14:43:49Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их (меню) у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<br />
Поэтому подставить его с помощью xPath функции concat() не составит особого труда:<br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
<li>В tpl получить текущий домен можно с помощью глобального макроса %domain%, то есть вызов примет вид:<br />
</li><br />
<source lang="html4strict"><br />
%menu draw(%domain%, 'default')%<br />
</source><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7790Как в модуле меню привязать меню к домену2014-05-05T14:43:35Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их (меню) у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
Поэтому подставить его с помощью xPath функции concat() не составит особого труда:<br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
<li>В tpl получить текущий домен можно с помощью глобального макроса %domain%, то есть вызов примет вид:<br />
</li><br />
<source lang="html4strict"><br />
%menu draw(%domain%, 'default')%<br />
</source><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7789Как в модуле меню привязать меню к домену2014-05-05T14:43:12Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их (меню) у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<li>Поэтому подставить его с помощью xPath функции concat() не составит особого труда:</li><br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
<li>В tpl получить текущий домен можно с помощью глобального макроса %domain%, то есть вызов примет вид:<br />
</li><br />
<source lang="html4strict"><br />
%menu draw(%domain%, 'default')%<br />
</source><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7788Как в модуле меню привязать меню к домену2014-05-05T14:42:54Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<li>Поэтому подставить его с помощью xPath функции concat() не составит особого труда:</li><br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
<li>В tpl получить текущий домен можно с помощью глобального макроса %domain%, то есть вызов примет вид:<br />
</li><br />
<source lang="html4strict"><br />
%menu draw(%domain%, 'default')%<br />
</source><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7786Как в модуле меню привязать меню к домену2014-05-05T14:42:40Z<p>Mad grant: переименовал «Как сделать универсальный шаблон меню в мультисайтовости» в «Как в модуле меню привязать меню к домену»</p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же xslt шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<li>Поэтому подставить его с помощью xPath функции concat() не составит особого труда:</li><br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
<li>В tpl получить текущий домен можно с помощью глобального макроса %domain%, то есть вызов примет вид:<br />
</li><br />
<source lang="html4strict"><br />
%menu draw(%domain%, 'default')%<br />
</source><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://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_%D1%83%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B2_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&diff=7787Как сделать универсальный шаблон меню в мультисайтовости2014-05-05T14:42:40Z<p>Mad grant: переименовал «Как сделать универсальный шаблон меню в мультисайтовости» в «Как в модуле меню привязать меню к домену»</p>
<hr />
<div>#перенаправление [[Как в модуле меню привязать меню к домену]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7785Как в модуле меню привязать меню к домену2014-05-05T14:42:14Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же xslt шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<li>Поэтому подставить его с помощью xPath функции concat() не составит особого труда:</li><br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
<li>В tpl получить текущий домен можно с помощью глобального макроса %domain%, то есть вызов примет вид:<br />
</li><br />
<source lang="html4strict"><br />
%menu draw(%domain%, 'default')%<br />
</source><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7783Как в модуле меню привязать меню к домену2014-05-05T14:39:54Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же xslt шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<li>Поэтому подставить его с помощью xPath функции concat() не составит особого труда:</li><br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://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_%D1%83%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_xslt_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B2_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&diff=7784Как сделать универсальный xslt шаблон меню в мультисайтовости2014-05-05T14:39:54Z<p>Mad grant: </p>
<hr />
<div>#перенаправление [[Как сделать универсальный шаблон меню в мультисайтовости]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7782Как в модуле меню привязать меню к домену2014-05-05T14:39:23Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же xslt шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<li>Поэтому подставить его с помощью xPath функции concat() не составит особого труда:</li><br />
Например, в demodizzy вызов примет следующий вид:<br />
<source lang="xml"><br />
<xsl:apply-templates select="document(concat('udata://menu/draw/', $domain))/udata" mode="info-pages-head" /><br />
</source><br />
где $domain это:<br />
<source lang="xml"><br />
<xsl:variable name="domain" select="/result/@domain" /><br />
</source><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7780Как в модуле меню привязать меню к домену2014-05-05T14:34:54Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же xslt шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<li>Поэтому подставить его с помощью xPath функции concat() не составит особого труда</li><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://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_%D1%83%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_xsl_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B2_%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8&diff=7781Как сделать универсальный xsl шаблон меню в мультисайтовости2014-05-05T14:34:54Z<p>Mad grant: </p>
<hr />
<div>#перенаправление [[Как сделать универсальный xslt шаблон меню в мультисайтовости]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7779Как в модуле меню привязать меню к домену2014-05-05T14:34:42Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же xslt шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
<li>Поэтому подставить его с помощью xPath функции concat() не составит особого труда</li><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Result-@domain.png&diff=7778Файл:Result-@domain.png2014-05-05T14:33:06Z<p>Mad grant: загружена новая версия «Файл:Result-@domain.png»</p>
<hr />
<div></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7777Как в модуле меню привязать меню к домену2014-05-05T14:32:19Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же xslt шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>1) У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li>2) В xslt шаблоне текущий домен доступен в result'е:</li><br />
[[Файл:Result-@domain.png]]<br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Result-@domain.png&diff=7776Файл:Result-@domain.png2014-05-05T14:32:07Z<p>Mad grant: </p>
<hr />
<div></div>Mad granthttps://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B2_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%B0%D1%82%D1%8C_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%BA_%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D1%83&diff=7775Как в модуле меню привязать меню к домену2014-05-05T14:31:05Z<p>Mad grant: </p>
<hr />
<div>Актуально для версии 2.9.6<br />
<br />
== Задача ==<br />
<br />
У Вас есть два сайта на одной лицензии, domain1.com и domain2.com:<br />
<br />
[[Файл:2sitein1cms.png]]<br />
<br />
На обоих сайтах используется один и тот же xslt шаблон.<br />
<br />
Вы хотите внедрить модуль меню, но для вызова меню Вам нужно будет подставлять идентификатор меню, а их у Вас создано два. <br />
<br />
== Решение ==<br />
<br />
Чтобы сохранить универсальность шаблона, необходимо будет динамически подставлять в вызов макроса menu draw() тот или иной идентификатор меню,<br />
в зависимости от домена.<br />
<br />
Проще всего задачу можно решить следующим образом,<br />
<br />
<ul><br />
<li>1) У созданных меню укажите в качестве идентификатора домен, к которому они относятся:<br />
</li><br />
[[Файл:2menu1cms.png]]<br />
<li></li><br />
</ul><br />
<br />
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[Категория: Верстка в XSLT]]</div>Mad grant