2017-02-21 7 views
1

Мне нужно получить медиафайлы и вырезки случайной страницы, содержащей одну или несколько sys_categories вместе с последней страницей.TYPO3: Extbase получить связанные страницы по sys_categories

Я пытался получать кот идентификаторы для где положения так:

$categories = $GLOBALS['TSFE']->page['categories']; 
$cats = explode(',',$categories); 
foreach($cats as $cat) { 
    if($whereClauses != '') $whereClauses .= " OR "; 
    $whereClauses .= $cat.' IN pages.categories'; 
} 

Но я не получил эту работу, как ИНЕКЕ $this->pageRepository->getRecordsByField надежды кто-то может помочь мне получить доступ к странице.

Это 7.6.x TYPO3 и Extbase

ответ

0

pages.categories содержит только количество категорий страница присвоенных.

Фактические идентификаторы категорий указаны в таблице мм sys_category_record_mm.

2

Категории назначаются в таблице отношений MM (sys_category_record_mm), поэтому категории не сохраняются в таблице страниц.

Таким образом, вам нужно запросить эту таблицу, чтобы получить страницы, присвоенные категории.

например:

$GLOBALS['TYPO3_DB']->exec_SELECT_mm_query('*', 'sys_category', 'sys_category_record_mm', 'pages', 'tablenames = "pages" AND sys_category.uid = 123') 

EDIT: Пример использования с CategoryCollection:

$collection = \TYPO3\CMS\Core\Category\Collection\CategoryCollection::load($id, false, 'pages'); 
$items = $collection->getItems(); 
+0

Вы оба правы. Я уже тестировал это так: '$ pid = $ GLOBALS ['TSFE'] -> страница ['uid']; $ query = \ TYPO3 \ CMS \ Extbase \ Domain \ Repository \ CategoryRepository :: createQuery(); $ query-> Заявление ("SELECT uid_local FROM sys_category_record_mm \t \t \t \t \t \t ГДЕ \t \t \t \t \t \t tablenames = 'страницы' \t \t \t \t \t \t И \t \t \t \t \t \t uid_foreign = .»$ ИДП); $ categories = $ query-> execute(); ' Но не удается получить страницу у кошек. –

+0

Я не думаю, что вы можете получать страницы из категорий с некоторыми материалами extbase. Вы можете попробовать использовать '\ TYPO3 \ CMS \ Core \ Category \ Collection \ CategoryCollection' для получения страниц. –

+0

Я добавил некоторый пример кода для CategoryCollection. –

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