Жесткий код блога page_list в Concrete5

Ранее я работал над тем, как жестко закодировать области содержимого и блок autonav в мои шаблоны. Я пытаюсь сделать то же самое для page_list, который отображает страницы с определенным типом страницы news entry, используя нумерацию страниц и просто показывая заголовок.

Вот как далеко я добрался:

<?php
$archive = BlockType::getByHandle("page_list");
$archive->controller->orderBy = "chrono_desc";
$archive->controller->ctID = "news";
$archive->controller->paginate = true;
$archive->render("view");
?>

Но это, кажется, не отображать какие-либо страницы на сайте. Что я сделал не так?

0

Решение

Похоже, вы предоставляете дескриптор типа страницы вместо идентификатора типа страницы для ctID.

Вы должны быть в состоянии сделать что-то вроде этого:

$sweetPageType = PageType::getByHandle('news');
if(is_object($sweetPageType)) { // let's be extra safe, eh?
$sweetPageTypeID = $sweetPageType->getPageTypeID();
}

А затем, в вашем жестко запрограммированном блоке (вы можете проверить, что у вас есть идентификатор, хотя я думаю, что если он будет нулевым, это просто не будет иметь никакого эффекта)

$archive->controller->ctID = $sweetpageTypeID;

Не знаю, если вы используете 5.6 или 5.7, но я считаю, что это должно быть одинаково для обоих. Вот соответствующая ссылка на API c5:
http://concrete5.org/api/class-Concrete.Core.Page.Type.Type.html

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector