Объявления:
Мои услуги:
Создание сайтов в Саратове
Продвижение сайтов в Саратове
МММ-2011 в Саратове
Реклама на блоге
Мои контакты
Создание сайтов в Саратове
Продвижение сайтов в Саратове
МММ-2011 в Саратове
Реклама на блоге
Мои контакты
Долго искал и нашел решение для реализации раскрытого дерева категорий в каталоге Интернет магазина на webasyst Shop Skript. Пишу как памятку для себя, но думаю эта статья так же будет полезна начинающим веб-мастерам.
В общем если вы хотите сделать раскрытое дерево категорий вам необходимо удалить весь код из файла /ваш-сайт/published/SC/html/scripts/templates/frontend/category_tree.html и вместо него прописать {newtree}
Далее создать в каталоге /kernel/includes/smarty/plugins - файл function.newtree.php и прописать в нем следующий код:
<?php function smarty_function_newtree($params, &$smarty){ $disp=''; $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 class="parent'; if($_REQUEST['categoryID'] == $res['categoryID']) $disp.='_current'; 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']).'</li>'; } $disp.='</ul>'; return $disp; } function subcat($parid){ $disp=''; $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 class="child'; if($_REQUEST['categoryID'] == $res['categoryID']) $disp.='_current'; 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']).'</li>';; } $disp.='</ul>'; } } return $disp; } ?>
<?php
function smarty_function_newtree($params, &$smarty){
$disp='';
$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 class="parent';
if($_REQUEST['categoryID'] == $res['categoryID']) $disp.='_current';
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']).'</li>';
}
$disp.='</ul>';
return $disp;
}
function subcat($parid){
$disp='';
$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 class="child';
if($_REQUEST['categoryID'] == $res['categoryID']) $disp.='_current';
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']).'</li>';;
}
$disp.='</ul>';
}
}
return $disp;
}
?>И о чудо — у нас получилось раскрытое дерево категорий.

