Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как разделить категории и субкатегории? 
:(
    Опции темы
LeeFORT
Дата 3.7.2014, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 22.9.2007

Репутация: нет
Всего: нет



не могу допетрить, как разделить категории и субкатегории, что бы присвоить им отдельные стили
Это меню для 6 версии HostCMS
Код

<?php
                if (Core::moduleIsActive('shop'))
                {
                        $Shop_Controller_Show = new Shop_Controller_Show(
                                Core_Entity::factory('Shop', 3)
                        );
                        if (is_object(Core_Page::instance()->object)
                        && get_class(Core_Page::instance()->object) == 'Shop_Controller_Show')
                        {
                                $Shop_Controller_Show->addEntity(
                                   Core::factory('Core_Xml_Entity')
                                          ->name('current_group_id')
                                          ->value(intval(Core_Page::instance()->object->group))
                                );
                        }
                        $Shop_Controller_Show
                        ->xsl(
                                Core_Entity::factory('Xsl')->getByName('ЛевоеМеню')
                        )
                        ->groupsMode('all');

                        $Shop_Controller_Show->show();
                }
        ?>


Код

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:hostcms="http://www.hostcms.ru/"
    exclude-result-prefixes="hostcms">
    <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
    <xsl:template match="/">
        <xsl:apply-templates select="/shop"/>
    </xsl:template>
    <!-- Шаблон для магазина -->
    <xsl:template match="/shop">
        <div class="header h1">
            <div id="part3"></div>
            <div id="part2"><xsl:value-of disable-output-escaping="yes" select="name"/> </div>
            <div id="part1"></div>
        </div>
        <div class="block b1">
             <div class="list">
            <ul>
                <xsl:apply-templates select="shop_group"/>
            </ul>
             </div>
        </div>
    </xsl:template>
    
    <!-- Шаблон для групп товара -->
    <xsl:template match="shop_group">
        <xsl:variable name="current_group_id" select="/shop/current_group_id"/>
        <li>
            <xsl:variable name="li_class">
                <xsl:if test="$current_group_id = @id or count(.//shop_group[@id=$current_group_id])=1"> current</xsl:if>
            </xsl:variable>
            <xsl:attribute name="class">
                <xsl:value-of select="normalize-space($li_class)"/>
            </xsl:attribute>
            
            <a href="{url}" class="liulli_a">
                <xsl:if test="$current_group_id = @id or count(.//shop_group[@id=$current_group_id])=1">
                    <xsl:attribute name="class">
                        <xsl:text>current</xsl:text>
                    </xsl:attribute>
                </xsl:if>
                <xsl:value-of disable-output-escaping="yes" select="name"/>
            </a>
            
            <!-- Если есть подгруппы -->
            <xsl:if test="shop_group">
                <ul>
                    <xsl:apply-templates select="shop_group"/>
                </ul>
            </xsl:if>
        </li>
                        <div class="sep"></div>
    </xsl:template>
</xsl:stylesheet>



как я понял этот код для версии 5 и для версии 6 не подходит.
Код

<?
$Structure = & singleton('Structure');
$param = array();
$param['show_groups']=true;
$param['show_items']=true;
$Structure->ShowStructure(1,'Меню', $param);
?>


Код

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />

<xsl:template match="/document">

  <ul>
     <!-- Выбираем узлы структуры -->
     <xsl:apply-templates select="structure[show=1]"/>
  </ul>
</xsl:template>

<xsl:template match="structure">
  <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
  <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
<li>
    <!-- Расчитываем размер отступа -->
  <xsl:variable name="padding" select="level * 10" />
       <!-- Показывать ссылку, или нет -->
     <xsl:if test="show_link = 1">
             <!-- Определяем адрес ссылки -->
        <xsl:variable name="link"><xsl:choose>
           <!-- Если внешняя ссылка -->
           <xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when>
           <!-- Иначе если внутренняя ссылка -->
           <xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise>
        </xsl:choose></xsl:variable>
                <!-- Определяем стиль вывода ссылки -->
        <xsl:variable name="link_style"><xsl:choose>
           <!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
           <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">font-weight: bold</xsl:when>
           <!-- Иначе обычный вывод с пустым стилем -->
           <xsl:otherwise></xsl:otherwise>
        </xsl:choose></xsl:variable>
                <xsl:choose>
           <!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
           <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">
           <a href="{$link}"><font color="#942121"><xsl:value-of disable-output-escaping="yes" select="name"/></font></a></xsl:when>
           <!-- Иначе обычный вывод с пустым стилем -->
           <xsl:otherwise>
                                 <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
                                            </xsl:otherwise>
        </xsl:choose>
             </xsl:if>
          <!-- Если не показывать ссылку - выводим просто имя ссылки -->
     <xsl:if test="show_link=0">
        <xsl:value-of disable-output-escaping="yes" select="name"/>
     </xsl:if>
</li>

<xsl:if test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">
  <!-- Выбираем подузлы структуры -->
  <xsl:if test="count(structure[show=1]) > 0">
  <ul>
     <!-- Выбираем узлы структуры -->
     <xsl:apply-templates select="structure[show=1]"/>
       </ul>
</xsl:if>
</xsl:if>

</xsl:template>
</xsl:stylesheet> 




Помогите найти оптимальное решение для вывода меню, что бы к категории и субкатегории можно было присвоить свой css

Это сообщение отредактировал(а) LeeFORT - 4.7.2014, 01:05
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1585 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.