0

カテゴリのサブカテゴリがあるかどうかを確認し、ある場合はリストビューにサブカテゴリを表示するコードのセクションがあります。

サブカテゴリが1を超えている場合は、DIVを表示し、そうでない場合は、サブカテゴリが表示されないため、DIVを表示しないという関数を追加しようとしています。

これは私がこれまでに持っているものですが、機能していないようです。

<?php 
/* Load category by id */
$cat = Mage::registry('current_category');

/*Returns comma separated ids*/
$subcats = $cat->getChildren();

if (count($subcats) > 0): ?>

<div style="width:100%; height:auto; text-align:center; font-size:16px; color:#373737; padding:2px 0; margin-top:-5px; margin-bottom:3px; background:#f1f1f1;">Choose Your Category</div>

<?php endif;

foreach(explode(',',$subcats) as $subCatid)
{
$_category = Mage::getModel('catalog/category')->load($subCatid);
if($_category->getIsActive()) {
  echo '<li><a href="'.$_category->getURL().'" title="View the products for the "'.$_category->getName().'" category">'.$_category->getName().'</a></li>';

/* Load category by id */
$sub_cat = Mage::getModel('catalog/category')->load($_category->getId());

}
}
?> 
4

2 に答える 2

1
if (count($subcats) > 0) 

$ subcatsは文字列の配列ではないと思うので、代わりにstrlen関数を使用する必要があります

if(strlen(trim($subcats)) > 0)
于 2012-09-20T08:40:28.517 に答える
0

多分あなたはこれをするべきです:

$subcats = explode(',', $cat->getChildren());

前 :

if (count($subcats) > 0)

$ subcatsがcsv文字列のように見えるので、:を置き換えます。

foreach(explode(',',$subcats) as $subCatid)

に :

foreach ($subcats as $subCatid)
于 2012-09-20T09:01:51.103 に答える