Как убрать циклическую ссылку?

#
Как убрать циклическую ссылку?
Я в HostCMS новичек, так что не обессудьте. Собсна, фёрст проблем: есть меню на главной странице, нужно чтобы при нахождении на каждой из страниц этого меню ссылка на эту страницу была неактивна. Ну знаете что такое цикл? Вот) Как это решить? Заранее спасибо за ответ!
#
Re: Как убрать циклическую ссылку?
Kolan777 писал(а):
Ну знаете что такое цикл?

Да знаем. Но причем тут цикл? Когда можно обойти одной проверкой в шаблоне меню.
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Как убрать циклическую ссылку?
Seri писал(а):
Когда можно обойти одной проверкой в шаблоне меню.


А что, позвольте узнать, за проверка такая? Можно пример или ссылку где почитать об этом? В документации, к сожалению, ничего по этой теме нет
#
Re: Как убрать циклическую ссылку?
Kolan777 писал(а):
А что, позвольте узнать, за проверка такая?

Загляните в XSL меню, есть проверка:
<!--
Выделяем текущую страницу добавлением к li класса current,
если это текущая страница, либо у нее есть ребенок с атрибутом id, равным текущей группе.
-->
<xsl:if test="$current_structure_id = @id or count(.//structure[@id=$current_structure_id]) = 1">
    <xsl:attribute name="class">dropdown current</xsl:attribute>
</xsl:if>
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Как убрать циклическую ссылку?
Это понятно. А если ссылка в теге <a> передается с помощью переменной, например вот так:



<a href="{$link}" title="{name}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="structure" data-toggle="dropdown" class="dropdown-toggle" >


В этом случае данный вариант не работает
#
Re: Как убрать циклическую ссылку?
А откуда это переменная формируется?
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Как убрать циклическую ссылку?
По поводу переменной разобрался. Она в этом же шаблоне формируется. Вопрос теперь в другом: для вывода пункта меню я использую такую конструкцию
<xsl:template match="structure">
      <li>
         <xsl:if test="structure[show=1] or shop_group/node()">
            <xsl:attribute name="class">dropdown</xsl:attribute>
         </xsl:if>
         <xsl:if test="structure[show=1] and position() = 1">
            <xsl:attribute name="class">dropdown first</xsl:attribute>
         </xsl:if>
         <xsl:if test="structure[show=1] and position() = last()">
            <xsl:attribute name="class">dropdown last</xsl:attribute>
         </xsl:if>
         <!--
         Выделяем текущую страницу добавлением к li класса current,
         если это текущая страница, либо у нее есть ребенок с атрибутом id, равным текущей группе.
         -->
         <xsl:if test="$current_structure_id = @id or count(.//structure[@id=$current_structure_id]) = 1">
            <xsl:attribute name="class">dropdown current</xsl:attribute>
         </xsl:if>
         
         <!-- Set $link variable -->
         <xsl:variable name="link">
            <xsl:choose>
               <!-- External link -->
               <xsl:when test="url != ''">
                  <xsl:value-of disable-output-escaping="yes" select="url"/>
               </xsl:when>
               <!-- Internal link -->
               <xsl:otherwise>
                  <xsl:value-of disable-output-escaping="yes" select="link"/>
               </xsl:otherwise>
            </xsl:choose>
         </xsl:variable>
         
         <!-- Menu Node -->
         <a href="{$link}" title="{name}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="structure" onclick="location.href = this.href">
            <xsl:if test="$current_structure_id = @id">
            <xsl:attribute name="href">javascript:void(0);</xsl:attribute>
            </xsl:if>
            <xsl:if test="structure[show=1] or shop_group/node()">
               <xsl:attribute name="data-toggle">dropdown</xsl:attribute>
               <xsl:attribute name="class">dropdown-toggle</xsl:attribute>
            </xsl:if>
            
            <xsl:value-of select="name"/>
            <xsl:if test="structure[show=1] or shop_group/node()">
               <i class="fa fa-angle-down"></i>
            </xsl:if>
         </a>


По сути мне важна ссылка в конце. Условие по которому добавляется javascript:void(0); к адресу ссылки работает не всегда корректно. Например, в некоторых дочерних разделах ссылка на корневую страницу должна быть активна, но в href все равно добавляется javascript:void(0);. То есть при нахождении на странице /news/news1 ссылка в меню на раздел /news/ перестает работать. Можете подсказать, что можно изменить в условии, чтобы исправить это?
#
Re: Как убрать циклическую ссылку?
Собсна структура XML

<site id="1">
   <name>Сканпорт</name>
   <active>1</active>
   <coding>UTF-8</coding>
   <sorting>0</sorting>
   <locale>ar_SA.utf8</locale>
   <timezone></timezone>
   <max_size_load_image>70</max_size_load_image>
   <max_size_load_image_big>300</max_size_load_image_big>
   <admin_email>admin@scanport.ru</admin_email>
   <lng>ru</lng>
   <send_attendance_report>1</send_attendance_report>
   <chmod>0777</chmod>
   <files_chmod>0777</files_chmod>
   <date_format>%d.%m.%Y</date_format>
   <date_time_format>%d.%m.%Y %H:%M:%S</date_time_format>
   <error>E_ALL</error>
   <error404>10</error404>
   <error403>38</error403>
   <user_id>19</user_id>
   <closed>79</closed>
   <safe_email>0</safe_email>
   <css_left></css_left>
   <css_right></css_right>
   <notes></notes>
   <uploaddir>upload/</uploaddir>
   <nesting_level>3</nesting_level>
   <deleted>0</deleted>
   <parent_id>0</parent_id>
   <current_structure_id>34</current_structure_id>
   .
   .
   .
   <structure id="18">
      <structure_menu_id>1</structure_menu_id>
      <template_id>18</template_id>
      <data_template_id>0</data_template_id>
      <site_id>1</site_id>
      <document_id>0</document_id>
      <lib_id>1</lib_id>
      <parent_id>0</parent_id>
      <name>Проекты</name>
      <seo_title>Кейсы проектов Компании Сканпорт</seo_title>
      <seo_description>Проекты</seo_description>
      <seo_keywords>Проекты</seo_keywords>
      <show>1</show>
      <url></url>
      <sorting>30</sorting>
      <path>projects</path>
      <type>2</type>
      <siteuser_group_id>0</siteuser_group_id>
      <https>0</https>
      <active>1</active>
      <indexing>1</indexing>
      <changefreq>2</changefreq>
      <priority>0.5</priority>
      <user_id>19</user_id>
      <deleted>0</deleted>
      <link>/projects/</link>
      <dir>/upload/structure_1/0/1/8/structure_18/</dir>
   </structure>

Это корневой раздел проекты. А вот есть его дочерние элементы

<informationsystem id="26">
   <informationsystem_dir_id>0</informationsystem_dir_id>
   <structure_id>18</structure_id>
   <site_id>1</site_id>
   <name>Проекты</name>
   <description></description>
   <items_sorting_direction>0</items_sorting_direction>
   <items_sorting_field>2</items_sorting_field>
   <groups_sorting_direction>0</groups_sorting_direction>
   <groups_sorting_field>1</groups_sorting_field>
   <image_large_max_width>800</image_large_max_width>
   <image_large_max_height>800</image_large_max_height>
   <image_small_max_width>200</image_small_max_width>
   <image_small_max_height>200</image_small_max_height>
   <siteuser_group_id>0</siteuser_group_id>
   <use_captcha>0</use_captcha>
   <watermark_file></watermark_file>
   <watermark_default_use_large_image>0</watermark_default_use_large_image>
   <watermark_default_use_small_image>0</watermark_default_use_small_image>
   <watermark_default_position_x>50%</watermark_default_position_x>
   <watermark_default_position_y>100%</watermark_default_position_y>
   <user_id>19</user_id>
   <items_on_page>8</items_on_page>
   <format_date>%d.%m.%Y</format_date>
   <format_datetime>%d.%m.%Y %H:%M:%S</format_datetime>
   <url_type>1</url_type>
   <typograph_default_items>0</typograph_default_items>
   <typograph_default_groups>0</typograph_default_groups>
   <apply_tags_automatically>0</apply_tags_automatically>
   <change_filename>1</change_filename>
   <apply_keywords_automatically>0</apply_keywords_automatically>
   <group_image_large_max_width>300</group_image_large_max_width>
   <group_image_large_max_height>300</group_image_large_max_height>
   <group_image_small_max_width>70</group_image_small_max_width>
   <group_image_small_max_height>70</group_image_small_max_height>
   <preserve_aspect_ratio>1</preserve_aspect_ratio>
   <preserve_aspect_ratio_small>1</preserve_aspect_ratio_small>
   <preserve_aspect_ratio_group>1</preserve_aspect_ratio_group>
   <preserve_aspect_ratio_group_small>1</preserve_aspect_ratio_group_small>
   <http>//scanport.ru</http>
   <url>/projects/</url>
   <captcha_id>0</captcha_id>
   <siteuser_id>0</siteuser_id>
   <group>0</group>
   <page>0</page>
   <part>0</part>
   <limit>10</limit>
   <informationsystem_group id="51">
      <informationsystem_id>26</informationsystem_id>
      <parent_id>0</parent_id>
      <name>Склад</name>
      <subgroups_count>0</subgroups_count>
      <subgroups_total_count>0</subgroups_total_count>
      <items_count>80</items_count>
      <items_total_count>80</items_total_count>
      <sns_type_id>0</sns_type_id>
      <url>/projects/sklad/</url>
      <dir>/upload/information_system_26/0/5/1/group_51/</dir>
   </informationsystem_group>
   <informationsystem_group id="52">
      <informationsystem_id>26</informationsystem_id>
      <parent_id>0</parent_id>
      <name>Ритейл</name>
      <subgroups_count>0</subgroups_count>
      <subgroups_total_count>0</subgroups_total_count>
      <items_count>5</items_count>
      <items_total_count>5</items_total_count>
      <sns_type_id>0</sns_type_id>
      <url>/projects/ritejl/</url>
      <dir>/upload/information_system_26/0/5/2/group_52/</dir>
   </informationsystem_group>
   <informationsystem_group id="53">
      <informationsystem_id>26</informationsystem_id>
      <parent_id>0</parent_id>
      <name>Логистика</name>
      <subgroups_count>0</subgroups_count>
      <subgroups_total_count>0</subgroups_total_count>
      <items_count>1</items_count>
      <items_total_count>1</items_total_count>
      <sns_type_id>0</sns_type_id>
      <url>/projects/logistika/</url>
      <dir>/upload/information_system_26/0/5/3/group_53/</dir>
   </informationsystem_group>


И так далее. Так вот непонятно, как находясь на странице, например, Склад проверить что находимся именно на ней, а не на странице Проекты, чтобы ссылка на Проекты была активна. Конкретно непонятно что нужно изменить в условии:
<xsl:if test="$current_structure_id = @id">
      <xsl:attribute name="href">javascript:void(0);</xsl:attribute>
      </xsl:if>

И в этой строке
<!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
   <xsl:variable name="current_structure_id" select="/site/current_structure_id"/>


Не до конца понимаю как правильно получить id подраздела с точки зрения синтаксиса и возможностей HostCMS
Авторизация