Silverstripe 3: Как получить изображения с нескольких страниц для отображения на другой странице в функции?

У меня есть PageType - "GalleryPage". На многих из этих страниц есть одно изображение под названием "$ ClientLogo". Как написать функцию, которая может вызывать все эти изображения ClientLogo и сопоставлять их на отдельной странице "ClienListPage".

Подобно этому Silverstripe 3: создайте функцию управления страницей для получения изображений со страниц внуков и сортируйте их произвольно, но вместо таргетинга на дочерние страницы, предназначенные для определенного типа страницы.

1 ответ

Если ваши страницы галереи являются дочерними страницами вашей страницы списка клиентов, вы можете вызвать loop Children и получить каждый ClientLogo:

Шаблон ClientListPage

<% loop $Children %>
 $ClientLogo
<% end_loop %>

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

Контроллер ClientListPage

private static $allowed_actions = array (
 'GalleryPages'
);

function GalleryPages()
{
 $galleryPages = GalleryPage::get();
 return $galleryPages ? $galleryPages : false;
}

Шаблон ClientListPage

<% loop $GalleryPages %>
 $ClientLogo
<% end_loop %>

licensed under cc by-sa 3.0 with attribution.