2012-05-30 4 views
0

J'ai les catégories & sous-catégories. Je veux sélectionner toutes les catégories parentales & sous-catégories. Mais vous voulez montrer seulement 3-4 sous-catégories sous chaque catégorie parente.Smarty: tronquer no. de divs dans {section}

Mon Php code

/******Start Categories********/ 
    $ca=mysql_query('select * from category where parent_id=0'); 
    while($ca1 = mysql_fetch_array($ca)) 
{ 
$ca2[]=$ca1; 
} 
$smarty->assign('ca2',$ca2); 


    /******End Categories********/ 
    /******Start SubCategories********/ 
    $sub=mysql_query('select * from category where parent_id!=0 '); 
    while($sub1 = mysql_fetch_array($sub)) 
{ 
$sub2[]=$sub1; 
} 
$smarty->assign('sub2',$sub2); 


    /******End SubCategories********/ 

Et Tpl code:

<div id="sub_ltcol"> 
       {section name=loopc loop=$ca2} 
        <div id="gr_design"> 
         <div id="gr_head"> 
          <h4>{$ca2[loopc].category_name}</h4> 
         </div> 
         {section name=loops loop=$sub2} 
         {if $ca2[loopc].category_id eq $sub2[loops].parent_id} 
         <div id="gr_body"> 
          <ul> 
          <li> 
            <div class="arw_icon"><img src="images/arw_icon.png"></div> 
            <a href="#">{$sub2[loops].category_name}</a> 
           </li> 
           <div class="dotted_line"></div> 
          </ul> 
         </div>{/if} 
         {/section} 
        </div> 
        {/section} 


       </div> 

Je veux montrer l'étiquette <li> seulement 3-4 fois.

Répondre

0

Vous pouvez

{section name=loops loop=$sub2} 
    {if $ca2[loopc].category_id eq $sub2[loops].parent_id AND $smarty.section.loops.iteration <= 4} 

     ... 
    {/if} 

{/section} 
0

Vous pouvez utiliser cette méthode:

<div id="sub_ltcol"> 
{section name=loopc loop=$ca2} 
    <div id="gr_design"> 
     <div id="gr_head"> 
      <h4>{$ca2[loopc].category_name}</h4> 
     </div> 
     {section name=loops loop=$sub2} 
     {if $ca2[loopc].category_id eq $sub2[loops].parent_id} 
     {if $smarty.foreach.loops.index lte 3} 
     <div id="gr_body"> 
      <ul> 
      <li> 
        <div class="arw_icon"><img src="images/arw_icon.png"></div> 
        <a href="#">{$sub2[loops].category_name}</a> 
       </li> 
       <div class="dotted_line"></div> 
      </ul> 
     </div>{/if} 
     {/if} 
    {/section} 
</div> 
{/section} 
</div> 
0

si vous aurez besoin pour ne montrer que 3 sous-catégories, prenez seulement autant de DB et le montrer. vous pouvez utiliser l'attribut limite pour même

/******Start SubCategories********/ 
    $sub=mysql_query('select * from category where parent_id!=0 limit 3'); 

il aide à améliorer les performances de chargement des pages aussi.