Реализация главной магазина
alexey_corenet
28 июля 2008 г.
Суть вывести в магазине категории по 4 на строку, в сверстаной странице это выглядит так:
<style>
#menu{ display:block; width:564px; height:340px;}
#menu ul{list-style-type:none;}
#menu ul li{display:inline; text-align:center; float:left;}
</style>
<h1>Меню</h1>
<div id="menu">
<ul>
<li><img src="i/menu/hol-zak.jpg" alt="" /><br />Холодные закуски</li>
<li><img src="i/menu/salat.jpg" alt="" /><br />Салаты</li>
<li><img src="i/menu/hot-zak.jpg" alt="" /><br />Горячие закуски</li>
<li><img src="i/menu/soup.jpg" alt="" /><br />Супы</li>
</ul>
<span class="clear"></span>
<ul>
<li><img src="i/menu/hot.jpg" alt="" /><br />Горячие блюда</li>
<li><img src="i/menu/garnir.jpg" alt="" /><br />Гарниры</li>
<li><img src="i/menu/desert.jpg" alt="" /><br />Десерты</li>
<li><img src="i/menu/na-drink.jpg" alt="" /><br />Безалкогольные напитки</li>
</ul>
<span class="clear"></span>
<ul>
<li><img src="i/menu/koyak.jpg" alt="" /><br />
Коньяк</li>
<li><img src="i/menu/vine-cart.jpg" alt="" /><br />
Карта вин</li>
<li><img src="i/menu/beer.jpg" alt="" /><br />
Пиво</li>
<li><img src="i/menu/cocktail.jpg" alt="" /><br />
Коктейли</li>
</ul>
<span class="clear"></span>
</div>
как данное творение представить в выдаче категорий что-то не могу сообразить, каждая категория разной картинкой отображается + по 4 в строку, может кто уже сталкивался с подобной задачей
<style>
#menu{ display:block; width:564px; height:340px;}
#menu ul{list-style-type:none;}
#menu ul li{display:inline; text-align:center; float:left;}
</style>
<h1>Меню</h1>
<div id="menu">
<ul>
<li><img src="i/menu/hol-zak.jpg" alt="" /><br />Холодные закуски</li>
<li><img src="i/menu/salat.jpg" alt="" /><br />Салаты</li>
<li><img src="i/menu/hot-zak.jpg" alt="" /><br />Горячие закуски</li>
<li><img src="i/menu/soup.jpg" alt="" /><br />Супы</li>
</ul>
<span class="clear"></span>
<ul>
<li><img src="i/menu/hot.jpg" alt="" /><br />Горячие блюда</li>
<li><img src="i/menu/garnir.jpg" alt="" /><br />Гарниры</li>
<li><img src="i/menu/desert.jpg" alt="" /><br />Десерты</li>
<li><img src="i/menu/na-drink.jpg" alt="" /><br />Безалкогольные напитки</li>
</ul>
<span class="clear"></span>
<ul>
<li><img src="i/menu/koyak.jpg" alt="" /><br />
Коньяк</li>
<li><img src="i/menu/vine-cart.jpg" alt="" /><br />
Карта вин</li>
<li><img src="i/menu/beer.jpg" alt="" /><br />
Пиво</li>
<li><img src="i/menu/cocktail.jpg" alt="" /><br />
Коктейли</li>
</ul>
<span class="clear"></span>
</div>
как данное творение представить в выдаче категорий что-то не могу сообразить, каждая категория разной картинкой отображается + по 4 в строку, может кто уже сталкивался с подобной задачей
natalya
29 июля 2008 г.
alexey_corenet, последовательность ваших действий:
1. вынести классы
в CSS для макета.
2. создать в разделе "Интернет-магазин" все необходимые группы("Холодные закуски", "Салаты", и пр.), для каждой из них прикрепить соответствующее изображение(hol-zak.jpg, salat.jpg и пр.).
3. подготовить XSL-шаблон для вывода списка товаров(взять за основу "МагазинКаталогТоваров" и переделать его):
вместо:
нужно использовать:
вместо:
использовать код:
1. вынести классы
#menu{ display:block; width:564px; height:340px;}
#menu ul{list-style-type:none;}
#menu ul li{display:inline; text-align:center; float:left;}
#menu ul{list-style-type:none;}
#menu ul li{display:inline; text-align:center; float:left;}
в CSS для макета.
2. создать в разделе "Интернет-магазин" все необходимые группы("Холодные закуски", "Салаты", и пр.), для каждой из них прикрепить соответствующее изображение(hol-zak.jpg, salat.jpg и пр.).
3. подготовить XSL-шаблон для вывода списка товаров(взять за основу "МагазинКаталогТоваров" и переделать его):
вместо:
<!-- Отображение подгрупп данной группы, только если подгруппы есть и не идет фильтра по меткам -->
<xsl:if test="count(selected_tags/tag) = 0 and count(//group[@parent=$parent_group_id]) > 0">
<table width="100%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td valign="top"> <xsl:apply-templates select="//group[@parent=$parent_group_id]"/>
</td>
</tr>
</table>
</xsl:if>
<xsl:if test="count(selected_tags/tag) = 0 and count(//group[@parent=$parent_group_id]) > 0">
<table width="100%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td valign="top"> <xsl:apply-templates select="//group[@parent=$parent_group_id]"/>
</td>
</tr>
</table>
</xsl:if>
нужно использовать:
<!-- Отображение подгрупп данной группы, только если подгруппы есть и не идет фильтра по меткам -->
<xsl:if test="count(selected_tags/tag) = 0 and count(//group[@parent=$parent_group_id]) > 0">
<div id="menu">
<ul>
<xsl:apply-templates select="//group[@parent=$parent_group_id]"/>
</ul>
</div>
</xsl:if>
<xsl:if test="count(selected_tags/tag) = 0 and count(//group[@parent=$parent_group_id]) > 0">
<div id="menu">
<ul>
<xsl:apply-templates select="//group[@parent=$parent_group_id]"/>
</ul>
</div>
</xsl:if>
вместо:
<!-- Шаблон для групп товара -->
<xsl:template match="group">
<xsl:variable name="parent_id" select="@parent"/>
<div style="margin-bottom: 15px;">
<a href="{/shop/path}{fullpath}" style="font-weight: bold">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a> <span style="color: #aaaaaa">(<xsl:value-of select="count_all_items"/>)</span>
<br/>
<xsl:value-of disable-output-escaping="yes" select="description"/>
<xsl:if test="count(group) > 1">
<xsl:apply-templates select="group" mode="sub_group"/>
</xsl:if>
</div>
<xsl:if test="position()= round(count(//group[@parent = $parent_id]) div 2)">
<xsl:text disable-output-escaping="yes">
</td>
<td valign="top" width="50%">
</xsl:text>
</xsl:if>
</xsl:template>
<!-- Шаблон для подразделов -->
<xsl:template match="group" mode="sub_group">
<a href="{/shop/path}{fullpath}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
<xsl:variable name="parent_id" select="@parent"/>
<!-- Ставим запятую после группы, за которой следуют еще группы из данной родителской группы -->
<xsl:if test="position() != last() and count(//group[@parent = $parent_id]) > 1">, </xsl:if>
</xsl:template>
<xsl:template match="group">
<xsl:variable name="parent_id" select="@parent"/>
<div style="margin-bottom: 15px;">
<a href="{/shop/path}{fullpath}" style="font-weight: bold">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a> <span style="color: #aaaaaa">(<xsl:value-of select="count_all_items"/>)</span>
<br/>
<xsl:value-of disable-output-escaping="yes" select="description"/>
<xsl:if test="count(group) > 1">
<xsl:apply-templates select="group" mode="sub_group"/>
</xsl:if>
</div>
<xsl:if test="position()= round(count(//group[@parent = $parent_id]) div 2)">
<xsl:text disable-output-escaping="yes">
</td>
<td valign="top" width="50%">
</xsl:text>
</xsl:if>
</xsl:template>
<!-- Шаблон для подразделов -->
<xsl:template match="group" mode="sub_group">
<a href="{/shop/path}{fullpath}">
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
<xsl:variable name="parent_id" select="@parent"/>
<!-- Ставим запятую после группы, за которой следуют еще группы из данной родителской группы -->
<xsl:if test="position() != last() and count(//group[@parent = $parent_id]) > 1">, </xsl:if>
</xsl:template>
использовать код:
<!-- Шаблон для групп товара -->
<xsl:template match="group">
<xsl:variable name="parent_id" select="@parent"/>
<li>
<xsl:if test="image!=''">
<img src="{image}" alt=""/>
</xsl:if>
<br /><a href="{/shop/path}{fullpath}">
<xsl:value-of disable-output-escaping="yes" select="name"/></a>
</li>
<xsl:if test="position() mod 4 = 0">
<xsl:text disable-output-escaping="yes">
</ul>
</xsl:text>
<span class="clear"></span>
<xsl:text disable-output-escaping="yes">
<ul>
</xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="group">
<xsl:variable name="parent_id" select="@parent"/>
<li>
<xsl:if test="image!=''">
<img src="{image}" alt=""/>
</xsl:if>
<br /><a href="{/shop/path}{fullpath}">
<xsl:value-of disable-output-escaping="yes" select="name"/></a>
</li>
<xsl:if test="position() mod 4 = 0">
<xsl:text disable-output-escaping="yes">
</ul>
</xsl:text>
<span class="clear"></span>
<xsl:text disable-output-escaping="yes">
<ul>
</xsl:text>
</xsl:if>
</xsl:template>
Авторизация