独自の方法でのカテゴリツリー(webasyst shop-script)

フォーラムで誰かを助け、ここで永続することにしました。

ストアにカテゴリーツリーを表示したり、 category_tree.htmlファイルを編集したりするためのいくつかのオプション



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 order by name';

if($r=mysql_query($sql))

while($res=mysql_fetch_assoc($r)){

$disp.='<li class="parent';

if($_REQUEST['categoryID'] == $res['categoryID']) $disp.='_current';

$disp.='"><span class="bullet">&nbsp;</span><a href="?categoryID='.$res['categoryID'].'">'.$res['name'].'</a></li>';

$disp.=subcat($res['categoryID']);

}



$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 name';

if($r=mysql_query($sql))

while($res=mysql_fetch_assoc($r)){

$disp.='<li class="child';

if($_REQUEST['categoryID'] == $res['categoryID']) $disp.='_current';

$disp.='"><span class="bullet">&nbsp;</span><span class="tab">&nbsp;</span><a href="?categoryID='.$res['categoryID'].'">'.$res['name'].'</a></li>';

$disp.=subcat($res['categoryID']);

}

return $disp;

}



?>








2.サブカテゴリのみが表示されます。



親カテゴリはメインページに表示され、サブカテゴリのみがカテゴリ内に表示されます。これを行うには、 category_tree.htmlファイルのコンテンツ全体を次のコードに置き換えます。

{* category navigation tree *}

<ul>

{if $categoryID eq 0}

{section name=i loop=$categories_tree} {if $categories_tree[i].categoryID != 1}

<li class="{if $categories_tree[i].level>1}child{else}parent{/if}{if $categoryID == $categories_tree[i].categoryID}_current{/if}">

{section name=j loop=$categories_tree max=$categories_tree[i].level-1}<span class="tab">&nbsp;</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">&nbsp;</span><a href='{$_category_url}'>{$categories_tree[i].name|escape:'html'}</a>

</li>

{/if} {/section}

{else}

{section name=i loop=$categories_tree} {if $categories_tree[i].categoryID != 1 && $categories_tree[i].parent eq $categoryID}

<li class="{if $categories_tree[i].level>1}child{else}parent{/if}{if $categoryID == $categories_tree[i].categoryID}_current{/if}">

{section name=j loop=$categories_tree max=$categories_tree[i].level-1}<span class="tab">&nbsp;</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">&nbsp;</span><a href='{$_category_url}'>{$categories_tree[i].name|escape:'html'}</a>

</li>

{/if} {/section}

{/if}

</ul>






UPD: CNCの修正:



交換

$disp.='"><span class="bullet">&nbsp;</span><span class="tab">&nbsp;</span><a href="?categoryID='.$res['categoryID'].'">'.$res['name'].'</a></li>';









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

$disp.='"><span class="bullet">&nbsp;</span><span class="tab">&nbsp;</span><a href="/category/'.$res['slug'].'/">'.$res['name'].'</a></li>';

else

$disp.='"><span class="bullet">&nbsp;</span><span class="tab">&nbsp;</span><a href="?categoryID='.$res['categoryID'].'">'.$res['name'].'</a></li>';







オリジナル記事



All Articles