Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Кастомный макрос. Как передать строку с символами "/"?

Автор MIkeРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 2458
Последний ответ 23 Мая 2013, 15:13:37
от MIke
Макрос emarket basketAddLink - отсутствие ссылки купить если цена 0

Автор koroganРаздел Макросы UMI.CMS

Ответов: 3
Просмотров: 3516
Последний ответ 25 Апреля 2012, 01:19:03
от admin
Перенесено: Макрос постраничного вывода system numpages - ошибка

Автор adminРаздел Макросы UMI.CMS

Ответов: 0
Просмотров: 3231
Последний ответ 04 Октября 2011, 14:58:21
от admin
Макрос вывода новостей связанных определенным сюжетом

Автор 31rusРаздел Custom макросы

Ответов: 3
Просмотров: 2860
Последний ответ 21 Сентября 2013, 19:11:52
от admin
Макрос отправляемый запрос на сторонний сервер

Автор fantom103Раздел Макросы UMI.CMS

Ответов: 2
Просмотров: 2925
Последний ответ 16 Июня 2013, 13:42:30
от fantom103

0 Пользователей и 1 Гость просматривают эту тему.

*

polo

  • *
  • 19
  • +0/-0
    • Просмотр профиля
Беда в том, что чертов модуль карты сайта выдает только 2 первых уровня вложенности. Даже если я задаю вручную udata://content/sitemap/mainTemplate/4, (где 4 - макс. число уровней) дела это не меняет.
У  всех страниц установлен чекбокс Отображать в меню. Если эти страницы переношу из 3-го уровня в 1-й, сайтмап их видит нормально.

Кто-нибудь с таким сталкивался?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Макрос content/sitemap обрабатывает не все уровни.
« Ответ #1 : 06 Сентября 2011, 20:36:51 »
не сталкивался, но посмотри как отмечены галочки "показывать подменю" или "подменю всегда развернуты" у второго и третьего уровня страниц, может это что-то прояснит

*

Armor

  • **
  • 78
  • +0/-0
    • Просмотр профиля
Re:Макрос content/sitemap обрабатывает не все уровни.
« Ответ #2 : 07 Сентября 2011, 19:33:41 »
День добрый
тоже проблема с выводом карты сайта
код default.tpl
$FORMS = Array();
$FORMS['block'] = <<<END
<div class="sitemap"><div class="contentpaneopen">
<ul umi:element-id="%block-element-id%" umi:module="content" umi:method="sitemap">
   %items%
</ul>
</div></div>
END;

$FORMS['item'] = <<<END
   <li>
      <a href="%link%" umi:element-id="%id%" umi:field-name="name" umi:module="content" umi:method="sitemap">%name%</a><br />
      %sub_items%
   </li>
END;

в шаблоне в котором подключается карта стоит %content sitemap()%
в админке проставлено показывать все уровни+постоянное отображение
а вот выводится только первый уровень =(
пациент demo.uk-audit.ru/sitemap/

*

Armor

  • **
  • 78
  • +0/-0
    • Просмотр профиля
Re:Макрос content/sitemap обрабатывает не все уровни.
« Ответ #3 : 12 Сентября 2011, 01:31:50 »
Разобрался...
Нужно на первом уровне вложенности ставить галки "Отображать в меню" и "Показывать подменю"
А во внутренних страницах нужно эти же галки проставлять, иначе не выводится (на странице где уже ничего глубже не вложено можно выставить только -  "Отображать в меню")

Код для вывода:   %content sitemap( 'default', '3', '0')%  (3 уровня будет выводится с файла tpls/content/sitemap/default.tpl)
код шаблона:

$FORMS = Array();
$FORMS['block'] = <<<END
<ul umi:element-id="%block-element-id%" umi:module="content" umi:method="sitemap">
   %items%
</ul>
END;
$FORMS['item'] = <<<END
   <li>
      <a href="%link%" umi:element-id="%id%" umi:field-name="name" umi:module="content" umi:method="sitemap" title="%name%">%name%</a>
      %sub_items%
   </li>
END;

Внутрь шаблонного кода лучше дивы не пихать, а то получится некрасивая структура после формирования, типа:  <ul><li><a href="#">Test</a><div>...<div></li></ul>


PS кому что непонятно обращайтесь - помогу =)  будем обмениваться опытом =)
« Последнее редактирование: 12 Сентября 2011, 01:34:14 от Armor »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Макрос content/sitemap обрабатывает не все уровни.
« Ответ #4 : 12 Сентября 2011, 01:41:02 »
то есть вопрос был все таки в галочках?

*

Armor

  • **
  • 78
  • +0/-0
    • Просмотр профиля
Re:Макрос content/sitemap обрабатывает не все уровни.
« Ответ #5 : 12 Сентября 2011, 05:58:51 »
Да, все дело в галочках, нужно проставлять во всех подпунктах, иначе не сработает, и обязательно проставлять "Показывать подменю" для пунктов у которого есть вложения - которые тоже нужно вывести

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Макрос content/sitemap обрабатывает не все уровни.
« Ответ #6 : 22 Октября 2013, 12:44:11 »
А как возможно отобразить уровень вложенности объекта каталога, который в структуре сайта вложен под другой такой же объект каталога?

То есть ситуация такая с деревом сайта:

Главная
--- Раздел каталога
-------- Объект каталога
------------ Объект каталога 2

Пока в результате  всех нажатых нужных галочках карта сайта выводит всё уровни, кроме последнего, то есть "Объект каталога 2" не выводиться - как его вывести.
В фале sitemap.xsl Уровень вложенности аж в десять указан:
	<xsl:template match="result[@module = 'content'][@method = 'sitemap']" priority="1">
<xsl:apply-templates select="document('udata://content/sitemap/mainTemplate/10')" />
</xsl:template>

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Макрос content/sitemap обрабатывает не все уровни.
« Ответ #7 : 22 Октября 2013, 21:10:52 »
Umi, предполагает, что внутри объекта нельзя положить еще один объект (с точки зрения логики umi). Хотя, чисто технически, мы это можем сделать).

Возможно, механизм %content sitemap()% как-то учитывает этот факт. Поэтому, можно разбираться с данным макросом (%content sitemap()%), а можно сделать рекурсивный обход всех уровней в структуре благодаря usel технологии. Напишем usel запрос, который получает 1 уровень в структуре и при выводе каждого item, мы запускаем usel, которые получают подуровни данного item... и так рекурсивно обходим все страницы.

Можно, поколдовать над более продвинутыми вариантами: получить дерево всех страниц и подстраниц на уровне php, а уже потом формировать ответ; сделать защиту от превышения времени работы скрипта (если в сайте много страниц)  и т.п., но суть все равно та же.