Page::getField() 

\nn\t3::Page()->getField($key, $slide = false, $override = ''); 

Get single field from page data. The value can be inherited from parent pages via slide = true.

(!) Important: Custom fields must be defined as rootLine in ext_localconf.php! See also \nn\t3::Registry()->rootLineFields(['key', '...']);

\nn\t3::Page()->getField('layout');
\nn\t3::Page()->getField('backend_layout_next_level', true, 'backend_layout');
Copied!

Also exists as ViewHelper:

{nnt3:page.data(key:'uid')}
{nnt3:page.data(key:'media', slide:1)}
{nnt3:page.data(key:'backend_layout_next_level', slide:1, override:'backend_layout')}
Copied!

| @return mixed

Source Code 

public function getField( $key, $slide = false, $override = '' ) {
	// Rootline holen. Enthält Breadcrumb aller Menüpunkte von aktueller Seite aufwärts
	$rootline = $this->getRootline();
	$currentPage = $rootline[0];
	// Kein Slide? Dann nur aktuelle Seite verwenden
	if (!$slide) {
		$rootline = array_slice($rootline, 0, 1, true);
	}
	// Override gesetzt und Wert in aktueller Seite vorhanden? Dann verwenden.
	if ($override && $currentPage[$override]) {
		$key = $override;
	}
	// Infos zum gesuchten Column aus TCA holen
	$tcaColumn = \nn\t3::TCA()->getColumn( 'pages', $key )['config'] ?? [];
	foreach ($rootline as $page) {
		$val = false;
		if ($page[$key]) $val = $page[$key];
		if ($val) {
			// Ist es eine SysFileReference? Dann "echtes" SysFileReference-Object zurückgeben
			// ToDo: Prüfen, ob Typ besser ermittelt werden kann
			// evtl. bei \TYPO3\CMS\Core\Utility\RootlineUtility->enrichWithRelationFields() schauen.
			$isFal = in_array($tcaColumn['type'], ['inline', 'file']);
			if ($isFal && $tcaColumn['foreign_table'] == 'sys_file_reference') {
				$fileRepository = GeneralUtility::makeInstance( \TYPO3\CMS\Core\Resource\FileRepository::class );
				$fileObjects = $fileRepository->findByRelation('pages', $key, $page['uid']);
				return $fileObjects;
			}
			return $val;
		}
	}
	return null;
}
Copied!