[Помощь] Как определить первую и последнюю категорию в дереве категорий webasyst?

vicsk

Постоялец
Регистрация
19 Янв 2010
Сообщения
147
Реакции
8
Мне нужно в дереве категорий определить первую и последнюю категорию в дереве чтобы задать им свой стиль через smarty, как это можно сделать и какое условие прописать,примерно такого вида
Код:
<ul><li {if...} class="first" {/if} {if...} class="last" {/if}></li></ul>
 
Производите условие на первую и последнюю итерацию
HTML:
{if $smarty.section.i.first} class="first"
{elseif $smarty.section.i.last} class="last"
{/if}
 
Производите условие на первую и последнюю итерацию
HTML:
{if $smarty.section.i.first} class="first"
{elseif $smarty.section.i.last} class="last"
{/if}
Подскажите пожайлуста поточнее,вот код моего function.newtree.php,мне куда прописать условие?
PHP:
<?php
function smarty_function_newtree($params, &$smarty){
$disp.='<ul id="navmenu-v"> ';
$sql='SELECT categoryID, slug, parent, '.LanguagesManager::sql_prepareField('name').' AS name from '.CATEGORIES_TABLE. ' where parent=1 order by sort_order,name';
if($r=mysql_query($sql))
while($res=mysql_fetch_assoc($r)){
$disp.='<li>';

if($res['slug']!='')

$disp.='<a href="/category/'.$res['slug'].'/">'.$res['name'].'</a>';
else
$disp.='<a href="?categoryID='.$res['categoryID'].'">'.$res['name'].'</a>';
$disp.=subcat($res['categoryID']).'';
}
$disp.='</li></ul>';
return $disp;
}

function subcat($parid){
$sql='SELECT categoryID, slug, parent, '.LanguagesManager::sql_prepareField('name').' AS name from '.CATEGORIES_TABLE. ' where parent='.$parid.' order by sort_order, name';
if($r=mysql_query($sql)){
if(mysql_num_rows($r)>0){
$disp.='<ul>';
while($res=mysql_fetch_assoc($r)){
$disp.='<li >';
if($_GET['categoryID'] == $res['categoryID']) ;
if($res['slug']!='')
$disp.='<a href="/category/'.$res['slug'].'/">'.$res['name'].'</a>';
else
$disp.='<a href="?categoryID='.$res['categoryID'].'">'.$res['name'].'</a>';
$disp.=subcat($res['categoryID']).'';
}
$disp.='</li></ul>';
}
}
return $disp;
}

?>
Пробовал так: <li {if $smarty.section.i.first} class="first" {elseif $smarty.section.i.last} class="last" {/if}> ,не срабатывает...
 
так у вас нестандартный вывод дерева категорий. Здесь подругому нужно. Один из вариантов first определять по счетчику, который нужно создать вначале и увеличивать в цикле, а last определять по count(), то есть сравнивать общее количество категорий с счетчиком.
 
Я не очень силен во всем этом,сможете помочь вывести это у меня?
<-------------- добавлено через 44 сек. -------------->
так у вас нестандартный вывод дерева категорий. Здесь подругому нужно. Один из вариантов first определять по счетчику, который нужно создать вначале и увеличивать в цикле, а last определять по count(), то есть сравнивать общее количество категорий с счетчиком.
Я не очень силен во всем этом,сможете помочь вывести это у меня?
 
проще не маяться и через стили задать

HTML:
#navmenu-v li:first-child a {
 
color:#f00;
 
}
 
#navmenu-v li:last-child a {
 
color:#000;
 
}
 
Назад
Сверху