UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: manadsgn от 13 Сентября 2012, 20:10:41

Название: Отобразить верхние разделы каталога в top-menu
Отправлено: manadsgn от 13 Сентября 2012, 20:10:41
Здравствуйте.
Чтобы добавить ссылку на страницу сайта в главное меню, нужно всего лишь поставить отметку "отображать в меню" в дополнительных параметрах страницы. Но что делать, если мне в это меню нужно добавить верхние уровни каталога? Галочки в доп. параметрах не помогают..
Название: Re:Отобразить верхние разделы каталога в top-menu
Отправлено: admin от 13 Сентября 2012, 21:45:53
загляните сюда http://umihelp.ru/articles/usel-multilevel-menu/ если я правильно понял с чем у вас проблема, то это и будет решением
Название: Re:Отобразить верхние разделы каталога в top-menu
Отправлено: manadsgn от 13 Сентября 2012, 23:31:20
Спасибо, это то, что нужно!
Название: Re:Отобразить верхние разделы каталога в top-menu
Отправлено: manadsgn от 14 Сентября 2012, 12:33:46
Все получилось, но не работает код, который  названию текущей страницы присваивает класс, не пойму, почему.

    <!-- New menu -->
    <xsl:template match="udata" mode="new_menu" />       
    <xsl:template match="udata[page]" mode="new_menu">
        <div id="top_menu" umi:element-id="0" umi:module="content" umi:region="list" umi:sortable="sortable" umi:add-method="popup">
            <xsl:apply-templates select="page" mode="new_menu" />
            <xsl:call-template name="search-form-left-column" />
        </div>
    </xsl:template>
     
    <xsl:template match="page" mode="new_menu">
        <a href="{@link}"><xsl:value-of select="name" /></a>
    </xsl:template>
   
    <xsl:template match="page[@status = 'active']" mode="new_menu">
        <a href="{@link}" class="act"><xsl:value-of select="name" /></a>
    </xsl:template>
Название: Re:Отобразить верхние разделы каталога в top-menu
Отправлено: BaceH от 16 Сентября 2012, 08:26:23
Используйте getCategoryList выхзов элементов первого уровня с кастомом http://wiki.umisoft.ru/%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B4%D0%B5%D0%BC%D0%BE%D0%B4%D0%B8%D0%B7%D0%B8_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E
Название: Re:Отобразить верхние разделы каталога в top-menu
Отправлено: admin от 21 Сентября 2012, 21:01:56
Цитировать
<xsl:template match="page[@status = 'active']" mode="new_menu">
        <a href="{@link}" class="act"><xsl:value-of select="name" /></a>
    </xsl:template>

у usel не бывает статуса active его лучше делать проверкой на то не является ли id данной страницы равен id текущей страницы или не равен ли id страницы id одной из родительских страниц

пример первого случая

вместо

<xsl:template match="page" mode="new_menu">
        <a href="{@link}"><xsl:value-of select="name" /></a>
    </xsl:template>
   
    <xsl:template match="page[@status = 'active']" mode="new_menu">
        <a href="{@link}" class="act"><xsl:value-of select="name" /></a>
    </xsl:template>

делаем

<xsl:template match="page" mode="new_menu">
    <a href="{@link}">
<xsl:if test="@id=$document-page-id"><xsl:attribute name="class">act</xsl:attribute></xsl:if>
<xsl:value-of select="name" />
</a>
</xsl:template>