Цель увидеть раскрытым category_tree со 2м уровнем и не видеть техническую категорию, в которой находятся товары, готовящиеся к добавлению или снятые временно с витрины.
1. Удаляем все из файла category_tree.html и пишем там
{newtree}
Затем в папке /kernel/includes/smarty/plugins создаем файл function.newtree.php, в котором пишем:
<?php
function smarty_function_newtree($params, &$smarty){
$disp='';
$disp.='<ul>';
$sql='SELECT categoryID, slug, parent, '.LanguagesManager::sql_prepareField('name').' AS name from '.CATEGORIES_TABLE. ' where parent=1 AND is_hidden=0 order by sort_order,name';
if($r=mysql_query($sql))
while($res=mysql_fetch_assoc($r)){
$disp.='<li class="parent';
if($_GET['categoryID'] == $res['categoryID']) $disp.='_current';
if($res['slug']!='')
$disp.='"><a class="l1" 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)){
$disp.='<ul>';
while($res=mysql_fetch_assoc($r)){
$disp.='<li class="child';
if($_GET['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.=subcatt($res['categoryID']).'</li>';
}
$disp.='</ul>';
}
return $disp;
}
function subcatt($parid){
$sql2='select parent from SC_categories where categoryID='.$_GET['categoryID'];
if($r2=mysql_query($sql2)){
$res2=mysql_fetch_assoc($r2);
$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)){
$disp.='<ul>';
while($res=mysql_fetch_assoc($r)){
if($res2['parent']==$parid || $_GET['categoryID'] == $res['parent'] ) {
$disp.='<li class="children';
if($_GET['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.=subcatt($res['categoryID']).'</li>';
}
}
$disp.='</ul>';
}
return $disp;
}}
?>
2. для скрытия категории необходимо сделать
создать в SC_categories колонку is_hidden со значением по умолчанию 0
Далее для сохранения изменений
нужно в published/SC/html/scripts/modules/test/_methods/b_category_settings.php где-то 113 строчка дописать$categoryEntry->is_hidden = $this->getData('is_hidden');
в массив $categoryEntry = new Category;
1. Удаляем все из файла category_tree.html и пишем там
{newtree}
Затем в папке /kernel/includes/smarty/plugins создаем файл function.newtree.php, в котором пишем:
<?php
function smarty_function_newtree($params, &$smarty){
$disp='';
$disp.='<ul>';
$sql='SELECT categoryID, slug, parent, '.LanguagesManager::sql_prepareField('name').' AS name from '.CATEGORIES_TABLE. ' where parent=1 AND is_hidden=0 order by sort_order,name';
if($r=mysql_query($sql))
while($res=mysql_fetch_assoc($r)){
$disp.='<li class="parent';
if($_GET['categoryID'] == $res['categoryID']) $disp.='_current';
if($res['slug']!='')
$disp.='"><a class="l1" 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)){
$disp.='<ul>';
while($res=mysql_fetch_assoc($r)){
$disp.='<li class="child';
if($_GET['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.=subcatt($res['categoryID']).'</li>';
}
$disp.='</ul>';
}
return $disp;
}
function subcatt($parid){
$sql2='select parent from SC_categories where categoryID='.$_GET['categoryID'];
if($r2=mysql_query($sql2)){
$res2=mysql_fetch_assoc($r2);
$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)){
$disp.='<ul>';
while($res=mysql_fetch_assoc($r)){
if($res2['parent']==$parid || $_GET['categoryID'] == $res['parent'] ) {
$disp.='<li class="children';
if($_GET['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.=subcatt($res['categoryID']).'</li>';
}
}
$disp.='</ul>';
}
return $disp;
}}
?>
2. для скрытия категории необходимо сделать
в published/SC/html/scripts/templates/backend/category.html
Далее для сохранения изменений
нужно в published/SC/html/scripts/modules/test/_methods/b_category_settings.php где-то 113 строчка дописать$categoryEntry->is_hidden = $this->getData('is_hidden');
в массив $categoryEntry = new Category;
чтобы получить is_hidden в шаблон, чтоб работать с ним, нужно заменить в published/SC/html/scripts/core_functions/category_functions.php в функции function catGetSubCategoriesSingleLayer( $categoryID ) вот на этот запрос:
Комментариев нет:
Отправить комментарий