2013-05-02 2 views
0

Я новичок в конкретном5 и вам необходимо вычеркнуть дочерние страницы родителя (родительский элемент, который не является текущей страницей, обязательно, поэтому, вероятно, необходимо передать родительский промах в качестве аргумента).specific5 loop дочерние страницы родителя

Я ожидаю, что это будет просто, но все, что я нашел на нем, относится к автонавцу. Я не могу использовать autonav из-за навигации сайта в нестандартном формате.

Решение не обязательно печатать какую-либо разметку - было бы хорошо, чтобы просто сгенерировать массив пулов и заголовков PHP, после чего я мог бы зациклиться на некоторой разметке. Но я возьму в любом случае :-) Спасибо заранее!

+0

Думая об этом на самом деле ... было бы хорошо, если бы просто вырезали дочерние страницы текущей страницы. – splscs

ответ

2

Если вы хотите некоторые разметку, и вы хотите, это отображается на какой-то странице, проверьте блок списка страница: http://www.concrete5.org/documentation/editors-guide/in-page-editing/block-areas/add-block/page-list/

Если вам нужны страницы программно, то есть PageList модель, которую вы можете передать родительскую страницу и получить все дочерние элементы в виде массива из Page объектов. https://github.com/concrete5/concrete5/blob/master/web/concrete/core/models/page_list.php

0

Я только начал работать с конкретным 5, и могу сказать, что это не оптимальный код. Но это работает, и, может быть, это поможет вам, поскольку эти другие статьи мне не слишком помогли.

Тем не менее, если у вас есть идентификатор страницы, которую вы хотите получить вложенные страницы для, вы можете сделать что-то вроде этого:

$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" 

Очевидно, что в зависимости от того, что вы хотите, вам нужно будет изменить код, но это то, что я использовал на моем сайте. Если у кого-то есть предложения о том, как сделать захват, скажем, всех дочерних страниц одновременно, а не один за другим, я думаю, что это будет намного лучше.

Смежные вопросы