не могу допетрить, как разделить категории и субкатегории, что бы присвоить им отдельные стили Это меню для 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
|