26.05.2011
Количество показов: 5813
Shop-Script - как переопределить корневую директорию
Иногда может понадобиться переопределить корневую директорию, например, если хотим сделать подбор по параметрам, а параметры задать в стандартную корневую директорию невозможно.
Так вот как это решается.
Заходим в файл \published\SC\html\scripts\modules\test\class.test.php и там правим код, приведенный ниже.
function methodCategoryTree(){
global $smarty;
$Register = &Register::getInstance();
$categoryID = isset($_GET['categoryID'])?$_GET['categoryID']:$Register->get('categoryID');
/*@var $Register Register*/
// category navigation form
if ($categoryID){
$category = new Category();
if(!$category->loadByID($categoryID)){
error404page();
//RedirectSQ('ukey=page_not_found');
}
$out = catGetCategoryCompactCList($categoryID);
}else{
$out = catGetCategoryCompactCList( 1 );
}
$smarty->assign( "categories_tree", $out );
Вписываем в строку наш ID новой корневой категории, например, 579 :
$out = catGetCategoryCompactCList( 579, 1 );
Далее Вам надо поиграть с файлом category_tree.html, чтобы настроить отображение более правильно.
Приведу уже готовый пример такого файла, Вы уже в нем разберетесь сами.
{* category navigation tree *}
<ul>
{section name=i loop=$categories_tree}
{if $categories_tree[i].categoryID != 1}
{if $categories_tree[i].categoryID != 579}
<li class="{if $categories_tree[i].level>2}child{else}parent{/if}{if $categoryID == $categories_tree[i].categoryID}_current{/if}">
{section name=j loop=$categories_tree max=$categories_tree[i].level-2}<span class="tab"> </span>{/section}
{if $categories_tree[i].slug}
{assign var=_category_url value="?categoryID=`$categories_tree[i].categoryID`&category_slug=`$categories_tree[i].slug`"|set_query_html}
{else}
{assign var=_category_url value="?categoryID=`$categories_tree[i].categoryID`"|set_query_html}
{/if}
<span class="bullet"> </span><a href='{$_category_url}'>{$categories_tree[i].name|escape:'html'|default:"(no name)"}</a>
</li>
{/if}{/if}
{/section}
</ul>
Наслаждайтесь!
Количество показов: 5813