私はこれにかなりの時間を費やし、2番目の目を使うことができました。Magentoを使用していて、カテゴリの「テキスト階層」を印刷したいと思います。何かのようなもの:
Default Category > Weightlifting Bars & Plates > Bars
私のテキストは重複しています。これが私の内訳がどのように見えるべきかです
category_name(top_category、sub_category1、sub_sub_category1、sub_sub_sub_category3など)
これが私が持っているものです:
Default Category (Default Category)
Weightlifting Bars & Plates (Default Category > Weightlifting Bars & Plates)
Bars (Default Category > Weightlifting Bars & Plates > Bars)
Men's 20kg Bars (Default Category > Weightlifting Bars & Plates > Bars > Men's 20kg Bars)
Women's 15kg Bars (Default Category > Weightlifting Bars & Plates > Bars > Men's 20kg Bars > Women's 15kg Bars)
Junior 10k Bars (Default Category > Weightlifting Bars & Plates > Bars > Men's 20kg Bars > Women's 15kg Bars > Junior 10k Bars)
Technique Bars (Default Category > Weightlifting Bars & Plates > Bars > Men's 20kg Bars > Women's 15kg Bars > Junior 10k Bars > Technique Bars)
「メンズ20kgバー」の後に複製が始まることに注意してください。これは、変数がリセットされないためです。
これが私のコードです:
function print_tree($tree, $level, $category, $root_id, $print_category) {
$r = $root_id;
$cat = $category;
$level++;
foreach($tree as $item) {
if ( $item['name'] == "Default Category" || $r != '' ) {
if ($level == 1) {
$cat = $item['name'];
}
else {
$cat .= " > " . $item['name'];
}
$parent_id = ($r != '' ? $r : $item['category_id']);
echo str_repeat(" ", $level) . $item['name'] . " (" . $cat . ")<br/>";
$this->print_tree(
$item['children'],
$level,
$cat,
$parent_id,
$print_category
);
}
}
return;
}
そしてそれを呼ぶもの:
$string = Mage::helper('googlemerchant/data')->print_tree($tree['children'], 0, 'Default Category', 0, $cat->getName());
$print_categoryには注意を払わないでください。これは私が他の用途に使用している変数です。私はそれがMagentoエラーではなく、論理エラーであることを知っています。コードは正常に機能します。
ヘルプに感謝します。ありがとうございました。