2011-08-15 12 views
0

私のXCart 4.4.2のインストールでは、いくつかのサブカテゴリを含むいくつかの主要なカテゴリの製品があります。ホームページで、私は、各カテゴリ内のサブカテゴリの一覧を表示したいのですが、このコード内からwelcome.tplからのサブカテゴリにアクセスする手間が生じています:XCartでは、カテゴリ内のサブカテゴリをどのようにリストできますか?

{foreach from=$categories_menu_list item=c name=categories} 
    <a href="home.php?cat={$c.categoryid}" title="{$c.category|escape}"> 
    <li> 
     <img src="{$c.image_path|amp}" alt="{$c.category|escape}"/> 
     <strong>{$c.category}</strong><br/> 

     <!-- list subcategories here--> 
     {php} 
      $parentid = $c.categoryid; 

      $categoryNames = func_query_column("SELECT category FROM $sql_tbl[categories] WHERE parentid = " . $parentid); 
      print_r($categoryNames); 
     {/php} 
    </li> 
    </a> 
{/foreach} 

誰もが必要なPHP/Smartyのコードで私を助けてもらえサブカテゴリのリストを生成するには?ありがとう!

+0

を私はPHPは、私が使用することができるかもしれない可能性が考え出し作るものですこれを行うには、それが動作していない(2つの理由:親の値が正しく設定されておらず、SQLクエリは常にnullセットを返します)。何か案は?助けてください!! – Vivek

答えて

2

テンプレートではなく、PHPスクリプトでサブカートの配列を定義する方がよいでしょう。/common.phpの

@@ -90,6 +90,14 @@ 
     // Get categories menu data 
     if (!empty($categories)) { 
      $smarty->assign('categories_menu_list', $categories); 
+ 
+   if (!isset($cat) || 0 == intval($cat)) { 
+    $extended_categories = func_get_categories_list(0, true, true, 1); 
+ 
+    if (!empty($extended_categories)) { 
+     $smarty->assign('extended_categories_list', $extended_categories); 
+    } 
+   } 
     } 

     if ($active_modules['Manufacturers']) { 

(行が+でマークされたコードに追加する必要があります)

肌を含めるため

パッチ:私はあなたの仕事のために、以下のソリューションを提供することができます/your-skin/customer/main/welcome.tpl

{foreach from=$categories_menu_list item=c} 
<a href="home.php?cat={$c.categoryid}" title="{$c.category|escape}"> 
    <li> 
    <img src="{$c.image_path|amp}" alt="{$c.category|escape}"/> 
      <strong>{$c.category}</strong><br/> 
    <!-- list subcategories here--> 
    {foreach from=$extended_categories_list item=ec} 
     {if $ec.parentid eq $c.categoryid}{$ec.category|escape}<br />{/if} 
    {/foreach} 
    </li> 
</a> 
{/foreach} 
1

古典の​​答えは、foはなく、かなりの仕事をしてくれましたr私。ここに私が使用したものがあります:

// Get categories menu data 
    if (!empty($categories)) { 
     $smarty->assign('categories_menu_list', $categories); 

     foreach($categories as $c){ 
      $ext_cats = func_get_categories_list($c['categoryid'], true, true, 1); 
      if(!empty($ext_cats)){ 
       $extended_categories[$c['categoryid']] = $ext_cats; 
      } 
      $ext_cats = ""; 
     } 

     if (!empty($extended_categories)) { 
      $smarty->assign('extended_categories_list', $extended_categories); 
     } 
    } 

これは、各カテゴリを繰り返し、すべてのサブカテゴリを取得します。

0

これは古いスレッドですが、古典的なコードは私にとって素晴らしい仕事でした(サブカテゴリのリンクを作るために)。 レベル3 +サブカテゴリ(サブサブカテゴリ)を表示するにはどうすればよいですか?

間違った場所に投稿することに対する謝罪。それを補うために、私は実際に古典のコードに加えています。元のコードは、単なるテキスト/画像などのサブカテゴリが記載されている、下記の私は絵を取り除くために使用されるが、サブカテゴリをクリック可能なリンク

<ul> 
    {foreach from=$categories_menu_list item=c} 
    <li><a href="home.php?cat={$c.categoryid}" title="{$c.category|escape}"><strong>{$c.category}</strong></a></li> 

    <!-- list subcategories here--> 
    {foreach from=$extended_categories_list item=ec} 
    {if $ec.parentid eq $c.categoryid}<li><a href="home.php?cat={$ec.categoryid}" style="font-size:10px;">{$ec.category|escape}</a></li>{/if} 
    {/foreach} 

    {/foreach} 
    </ul> 
+0

新しい質問がある場合は、回答を投稿する代わりに質問してください。 – empiric

関連する問題