ActionController

\TYPO3\CMS\Extbase\Mvc\Controller\ActionController

Beispiele und Schnipsel innerhalb einem ActionController.

Ich gebe keine Garantie auf 100% richtige Anwenungsfälle und Beispiele ;-)

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!