\TYPO3\CMS\Extbase\Mvc\Controller\ActionController
Beispiele und Schnipsel innerhalb einem ActionController.
Seitenbaum / Pagetree auslesen
$node = $this->objectManager->get('TYPO3\CMS\Backend\Tree\Pagetree\PagetreeNode');
$node->setId( $this->settings['pid'] ); // <= hier die PageID mitgeben
$node->setExpanded(FALSE);
$dataProvider = $this->objectManager->get('TYPO3\CMS\Backend\Tree\Pagetree\DataProvider');
$nodeCollection = $dataProvider->getNodes($node);
$pageTree = $this->getPageTree($nodeCollection, true, true);
// An FLUID übergeben
$this->view->assign('pages', $pageTree);
/**
* @param TYPO3\CMS\Backend\Tree\Pagetree\PagetreeNode $nodeCollection
* @return array
*/
protected function getPageTree( \TYPO3\CMS\Backend\Tree\TreeNodeCollection $nodeCollection ) {
foreach ($nodeCollection as $childNode) {
$record = $childNode->getRecord();
if ( !(bool)$record['hidden'] ) {
$pagesData = array(
'id' => $childNode->getId(),
'text' => $childNode->getText(),
'viewable' => $childNode->canBeViewed(),
'hidden' => (bool)$record['hidden'],
'alias' => $record['alias'],
'lastchange' => $record['SYS_LASTCHANGED'],
'record' => $record,
);
if ( $childNode->hasChildNodes() ) {
$pagesData['subPages'] = $this->getPageTree( $childNode->getChildNodes() );
}
$pages[] = $pagesData;
}
}
return $pages;
}
Pagetree mit ziemlich vielen Daten
Meida Daten (FAL) auf Pages (media) Feld auslesen (objectManager)
public function myFunctionName($pageUid) {
$fileRepository = $this->objectManager->get('TYPO3\CMS\Core\Resource\FileRepository');
$fileObjects = $fileRepository->findByRelation('pages', 'media', $pageUid);
// Gibt Image Object Information
$files = array();
foreach ($fileObjects as $key => $value) {
$files[$key]['reference'] = $value->getReferenceProperties();
$files[$key]['original'] = $value->getOriginalFile()->getProperties();
}
return $files;
}
Gibt ein Array mit Reference und Original Daten zurück. ( Hinweis: Reference Daten sollten Original Daten überschreiben )
Seiten auslesen per exec_SELECTquery
$rows = array();
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
// select fields
'uid,title,nav_title,subtitle,abstract,description,author,lastUpdated,media',
// from table
'pages',
// where clause
'hidden = 0 AND deleted = 0',
// groupBy
'',
// orderBy
'title',
// limit
''
);
Rootpage und Mehrsprachigkeit nicht berücksichtigt!