2011-08-15 3 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를 도와 줄 수/스마티 코드가 필요를 하위 카테고리 목록을 생성 하시겠습니까? 감사!

+0

을 그냥 PHP는 내가 사용 할 수있을 수 파악 할 것입니다 이 작업을 수행하지만 작동하지 않습니다 (두 가지 이유 : 상위 값이 올바르게 설정되지 않고 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를 확실히 일했다 나. 여기에 내가 무엇을 사용 :

// 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