Как изменить представление подкатегорий

Статус
В этой теме нельзя размещать новые ответы.
Чтобы не плодить топиков, спрошу здесь же...
Никто не озадачивался, как на главной сделать вывод подкатегорий вида:
Категория
подкатегория1 | Подкатегория2 | подкатегория3 |...

То есть, чтобы выводило не все имеющиеся подкатегории(а то не красиво), а сокращало/обрезало?
 
Апну темку... если хотите, чтобы страница со списком подкатегорий имела примерно такой вид, не просто текстовые ссылки, а ещё изображения в 2 или 3 колонки (см. скрин)
Для просмотра ссылки Войди или Зарегистрируйся

Делалось для шаблона №0.

Код для сore_functions\category_functions.php берём из 6-го сообщения.

А вот доработанный код для файла category.tpl.html:

вместо:
Код:
{* show subcategories *}
 {section name=i loop=$subcategories_to_be_shown}
  <a class=standard href="index.php?categoryID={$subcategories_to_be_shown[i][0]}">{$subcategories_to_be_shown[i][1]}</a>
  ({$subcategories_to_be_shown[i][2]})<br>
 {/section}
</td>
</tr>
<tr>
Вставляем:
Код:
{* show subcategories *}
<table border=0 cellspacing=1 cellpadding=5>
{section name=i loop=$subcategories_to_be_shown}
{if $smarty.section.i.index is div by [COLOR=red]2[/COLOR]}<tr>{/if}
<td valign=top>
 <table border=0 width=100% bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR} cellpadding=0  cellspacing=1>
 <tr><td>
  <table border=0 bgcolor=white width=100%>
   <tr>
   <td colspan=2><a class=standard href="index.php?categoryID={$subcategories_to_be_shown[i][0]}"><center><img  border=0 
src="products_pictures/{$subcategories_to_be_shown[i][3]}"  alt="{$subcategories_to_be_shown[i][3]}"></td>
   </tr>
<div align="center" class="standard">{$subcategories_to_be_shown[i][1]}
  </table>
 </td></tr>
 </table>
</td>
{if ($smarty.section.i.index+1) is div by [COLOR=red]2[/COLOR]}</tr>{/if}
{/section}
</table>
</td>
</tr>
где 2 - кол-во колонок (встречается 2 раза)

Ещё можно поправить стили, например, у меня так:
.standard
{ font-size: 14px;
{ font-weight: normal;
}
 
у меня это делается иначе:
было:
Код:
{if $tmp == 1} |
заменил на:
Код:
{if $tmp == 1} <br>

Люди добрые, помогите кто знает!
У меня нет ни одного из этих вариантов
Вот какой код у меня:
Код:
<table width="560" border="0" cellpadding="5" cellspacing="0">
{section name=i loop=$root_categories}
{if $smarty.section.i.index is div by 2}<tr>{/if}
<td align="center" valign="top">
	{if $root_categories[i][3] ne ""}<a 

href="index.php?categoryID={$root_categories[i][0]}"><img border=0 

src="products_pictures/{$root_categories[i][3]}" 

alt="{$root_categories[i][1]|replace:'"':'&quot;'}">{/if}
</td>
<td width="464" valign="top">
		<font class="mp3"><a 

href="index.php?categoryID={$root_categories[i][0]}">{$root_categories[i][1]}</a></fo

nt> <font class="many"><b>({$root_categories[i][2]})</b></font><br>
<font class="many">
		{* show sub categories *}
		{assign var="tmp" value=0}
		{section name=j loop=$root_categories_subs}
		  {if $root_categories_subs[j][3] == $root_categories[i][0]}
		    
			{if $tmp == 1} <font class="many">| 
			{else}
				{assign var="tmp" value=1}
			{/if}
			
			<a 

href="index.php?categoryID={$root_categories_subs[j][0]}">{$root_categories_subs[j][1

]}</a></font>
		  {/if}
		{/section}

</td>

{/section}
</table>
{* now show special offers *}
<p>
<center>
<table border=0 width="464" cellspacing=1 cellpadding=5>
{section name=i loop=$special_offers}
{if $smarty.section.i.index is div by 2}<tr>{/if}
<td valign=top>

 <table border=0 width=100% bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR} cellpadding=0 

cellspacing=1>
 <tr><td>

  <table border=0 bgcolor=white width=100%>
   <tr>
   <td colspan=2><a href="index.php?productID={$special_offers[i][0]}"><img 

src="products_pictures/{$special_offers[i][2]}" border=0></a></td>
   </tr>
   <tr>
   <td align=center class="product"><a 

href="index.php?productID={$special_offers[i][0]}">{$special_offers[i][1]}</a></td>
   </tr>
   <tr>
   <td align=center class="product_price"><b>{$special_offers[i][3]}</b></td>
   </tr>
  </table>
Очень надеюсь на Вашу помощь!

скин - (tmpl12)
 
Люди добрые, помогите кто знает!
У меня нет ни одного из этих вариантов
Вот какой код у меня...
...Очень надеюсь на Вашу помощь!
скин - (tmpl12)
Ну, так найди строки:
Код:
{* show sub categories *}
{assign var="tmp" value=0}
{section name=j loop=$root_categories_subs}
{if $root_categories_subs[j][3] == $root_categories[i][0]}
 
{if $tmp == 1} [COLOR=blue]<font class="many">|[/COLOR] 
{else}
и вместо <font class="many">| вставь <br>
 
Ну, так найди строки:
Код:
{* show sub categories *}
{assign var="tmp" value=0}
{section name=j loop=$root_categories_subs}
{if $root_categories_subs[j][3] == $root_categories[i][0]}
 
{if $tmp == 1} [COLOR=blue]<font class="many">|[/COLOR] 
{else}
и вместо <font class="many">| вставь <br>

Сделал - как было 2 ряда так и осталось!
А только шрифты все посбивались

А мне нужно чтобы товары были не в 2 ряда а по одному (один под другим)
 

Сделал - как было 2 ряда так и осталось!
А только шрифты все посбивались

А мне нужно чтобы товары были не в 2 ряда а по одному (один под другим)
Тот код, который ты процитировал в своём посте №13, выстраивал название подкатегорий друг под другом в другом шаблоне, а не изменял кол-во колонок на главной и в том виде, который я дал, он это делает для шаблона №12, разве, что правильнее будет вот так:
{if $tmp == 1} <
br><font class="many">
А если хочешь, чтобы все категории показывались одной колонкой, то просто в строке:
Код:
{if $smarty.section.i.index is div by [COLOR=red]2[/COLOR]}<tr>{/if}
меняешь цифру на 1
 
Спасибо Вам добрые люди! Заработало!
 
Апну темку... если хотите, чтобы страница со списком подкатегорий имела примерно такой вид, не просто текстовые ссылки, а ещё изображения в 2 или 3 колонки (см. скрин)
Для просмотра ссылки Войди или Зарегистрируйся

Делалось для шаблона №0.

Код для сore_functions\category_functions.php берём из 6-го сообщения.

А вот доработанный код для файла category.tpl.html:

вместо:
Код:
{* show subcategories *}
 {section name=i loop=$subcategories_to_be_shown}
  <a class=standard href="index.php?categoryID={$subcategories_to_be_shown[i][0]}">{$subcategories_to_be_shown[i][1]}</a>
  ({$subcategories_to_be_shown[i][2]})<br>
 {/section}
</td>
</tr>
<tr>
Вставляем:
Код:
{* show subcategories *}
<table border=0 cellspacing=1 cellpadding=5>
{section name=i loop=$subcategories_to_be_shown}
{if $smarty.section.i.index is div by [COLOR=red]2[/COLOR]}<tr>{/if}
<td valign=top>
 <table border=0 width=100% bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR} cellpadding=0  cellspacing=1>
 <tr><td>
  <table border=0 bgcolor=white width=100%>
   <tr>
   <td colspan=2><a class=standard href="index.php?categoryID={$subcategories_to_be_shown[i][0]}"><center><img  border=0 
src="products_pictures/{$subcategories_to_be_shown[i][3]}"  alt="{$subcategories_to_be_shown[i][3]}"></td>
   </tr>
<div align="center" class="standard">{$subcategories_to_be_shown[i][1]}
  </table>
 </td></tr>
 </table>
</td>
{if ($smarty.section.i.index+1) is div by [COLOR=red]2[/COLOR]}</tr>{/if}
{/section}
</table>
</td>
</tr>
где 2 - кол-во колонок (встречается 2 раза)

Подскажите, пож-та, какой код добавляет отображение описания подкатегории?
 
Апну темку... если хотите, чтобы страница со списком подкатегорий имела примерно такой вид, не просто текстовые ссылки, а ещё изображения в 2 или 3 колонки (см. скрин)
Для просмотра ссылки Войди или Зарегистрируйся

Делалось для шаблона №0.

Код для сore_functions\category_functions.php берём из 6-го сообщения.

А вот доработанный код для файла category.tpl.html:

вместо:
Код:
{* show subcategories *}
 {section name=i loop=$subcategories_to_be_shown}
  <a class=standard href="index.php?categoryID={$subcategories_to_be_shown[i][0]}">{$subcategories_to_be_shown[i][1]}</a>
  ({$subcategories_to_be_shown[i][2]})<br>
 {/section}
</td>
</tr>
<tr>
Вставляем:
Код:
{* show subcategories *}
<table border=0 cellspacing=1 cellpadding=5>
{section name=i loop=$subcategories_to_be_shown}
{if $smarty.section.i.index is div by [COLOR=red]2[/COLOR]}<tr>{/if}
<td valign=top>
 <table border=0 width=100% bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR} cellpadding=0  cellspacing=1>
 <tr><td>
  <table border=0 bgcolor=white width=100%>
   <tr>
   <td colspan=2><a class=standard href="index.php?categoryID={$subcategories_to_be_shown[i][0]}"><center><img  border=0 
src="products_pictures/{$subcategories_to_be_shown[i][3]}"  alt="{$subcategories_to_be_shown[i][3]}"></td>
   </tr>
<div align="center" class="standard">{$subcategories_to_be_shown[i][1]}
  </table>
 </td></tr>
 </table>
</td>
{if ($smarty.section.i.index+1) is div by [COLOR=red]2[/COLOR]}</tr>{/if}
{/section}
</table>
</td>
</tr>
где 2 - кол-во колонок (встречается 2 раза)

Ещё можно поправить стили, например, у меня так:
.standard
{ font-size: 14px;
{ font-weight: normal;
}

В IE 6 если нет картинки подкатегории, появляется крестик отсутствия картинки - как от него избавитья ?
 
На счёт остального не заморчивался, а вот это:
озаботило с первого дня установки скрипта, т.к. просто список подкатегорий, не устраивал:-]

Это можно реализовать примерно так:
1. Ищем файл сore_functions\category_functions.php, а в нем функцию:
Код:
function catGetSubCategoriesSingleLayer( $categoryID )
исправляем в ней строку:
Код:
$q = db_query("SELECT categoryID, name, products_count FROM ".
На:
Код:
$q = db_query("SELECT categoryID, name, products_count, picture FROM ".

2. В функции {* show subcategories *} файла category.tpl.html:

Код:
href="index.php?categoryID={$subcategories_to_be_shown[i][0]}">{$subcategories_to_be_shown[i][1]}</a>
  ({$subcategories_to_be_shown[i][2]})<br>
 {/section}
меняем на:
Код:
href="index.php?categoryID={$subcategories_to_be_shown[i][0]}"><img border=0 
src="products_pictures/{$subcategories_to_be_shown[i][3]}" alt="{$subcategories_to_be_shown[i][3]}">{$subcategories_to_be_shown[i][1]}</a>
({$subcategories_to_be_shown[i][2]})<br>
{/section}
Должно работать, если у Вас к категориям назначены(загружены) изображения...
Пробуем;)...

Всё работает)
только теперь возникла проблемка: если категории не присвоена картинка - выводится пустой белый квадрат, как сделать чтоб если нет картинки - было как раньше, т.е. ничего не выводилось?
заранее спасибо за ответ)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху