1

私はconcrete5が初めてで、親の子ページをループアウトする必要があります(親は必ずしも現在のページではないため、おそらく引数として渡す親スラッグが必要です)。

これは単純だと思いますが、私が見つけたものはすべてオートナビに関連しています。サイト ナビゲーションが非標準の形式であるため、オートナビを使用できません。

このソリューションでは、必ずしもマークアップを印刷する必要はありません。スラッグとタイトルの PHP 配列を生成するだけで問題なく、マークアップにループできます。しかし、私はどちらの方法でも取ります:-) よろしくお願いします!

4

2 に答える 2

2

何らかのマークアップが必要で、これを何らかのページに表示したい場合は、ページ リスト ブロックをチェックしてください: http://www.concrete5.org/documentation/editors-guide/in-page-editing/block-areas/追加ブロック/ページリスト/

プログラムでページが必要な場合はPageList、親ページを渡してすべての子をPageオブジェクトの配列として取得できるモデルがあります。https://github.com/concrete5/concrete5/blob/master/web/concrete/core/models/page_list.php

于 2013-05-02T22:29:04.837 に答える
1

具体的な 5 を使い始めたばかりですが、これは最適なコードではないことがわかります。しかし、それは機能し、他の記事はあまり役に立たなかったので、おそらくあなたを助けるでしょう.

つまり、サブページを取得したいページの ID を持っている場合は、次のようにすることができます。

$page = Page::getByID("page_id_here");
$sub_page_ids = $page->getCollectionChildrenArray(1);
foreach ($sub_page_ids as $id) {
    $page = Page::getByID($id);
    $pages_array[$page->getCollectionName()] = DIR_REL . $page->getCollectionPath();
}

これは、次のような配列を出力します

$pages_array["page-url-here"] = "Title of Page Here"

明らかに、あなたが望むものに応じて、コードを変更する必要がありますが、これは私のサイトで最終的に使用したものです. たとえば、すべての子ページを 1 つずつではなく一度に取得する方法について提案がある場合は、それがはるかに優れていると思います。

于 2014-05-03T16:16:43.760 に答える