階層構造のトピックリストで、選択されたトピックではなく最上位のカテゴリーを表示したい

2017年11月7日 at 11:06

以前から、トピックリストの表示や検索を質問しておりますが、
トピックの表示についても問題が出てきました……。

下記のようなトピックを設定しています。
(商品分類1は3階層、他は2階層)

---

カテゴリー

- 商品分類1
-- ブランドで探す
--- トピック1
--- トピック2
--- トピック3
-- 素材で探す
--- トピック4
--- トピック5
-- 作りたいもので探す
--- トピック6
--- トピック7

- 商品分類2
-- トピック8
-- トピック9
-- トピック10

- 商品分類3
-- トピック11
-- トピック12
-- トピック13

---

この状態で、ページリストで表示した際に
・商品分類1→ブランドで探す→トピック1 が選択されている場合、「商品分類1」を表示
・商品分類2→トピック8 が選択されている場合、「商品分類2」を表示
と、選択されているトピックではなく、最上位のカテゴリーを表示する必要が出てきました。

こちら、階層構造が違う場合でも、表示する方法があるのでしょうか……?

タグ:

Re: 階層構造のトピックリストで、選択されたトピックではなく最上位のカテゴリーを表示したい

2017年11月11日 at 15:09
こんな感じで、できました!

if (isset($topics) && count($topics)) {
/** @var \Concrete\Core\Tree\Node\Type\Topic $topic */
foreach ($topics as $topic) {
/** @var \Concrete\Core\Tree\Node\Type\Topic $parents */
$parents = $topic->getTreeNodeParentArray();
$topic = array_values(array_slice($parents, -2))[0];
echo $topic->getTreeNodeDisplayName();
}
}
 

Re: 階層構造のトピックリストで、選択されたトピックではなく最上位のカテゴリーを表示したい

2017年11月13日 at 10:11
ありがとうございます!
上記、試してみます。