TYPO3 CMS

Extbase-Bug „#1205414233: No suitable request handler found.“ beheben

caticonslite_bm_alt

Ist auf einer Unterseite die Option „Clear“ im Template für „Setup“ und „Contants“ aktiv, so erhält man folgenden Fehler im Frontend:

#1205414233: No suitable request handler found.

Dabei handelt es sich um einen Extbase-Bug, welchen man mit folgendem TypoScript-Setup„beheben“ kann:

config.tx_extbase {
	objects {
		Tx_Extbase_Persistence_Storage_BackendInterface {
			className = Tx_Extbase_Persistence_Storage_Typo3DbBackend
		}
	}
	mvc {
		requestHandlers {
			Tx_Extbase_MVC_Web_FrontendRequestHandler = Tx_Extbase_MVC_Web_FrontendRequestHandler
			Tx_Extbase_MVC_Web_BackendRequestHandler = Tx_Extbase_MVC_Web_BackendRequestHandler
		}
	}
}

Meta-Tags Keywords und Description setzen

caticonslite_bm_alt

In den Seiteneigenschaften können u.a. die Meta-Informationen Keywords und Description jeder einzelnen Seite festgelegt werden. Wurden für eine Seite keine Meta-Informationen hinterlegt, werden diese mit folgendem TypoScript-Setup von der Seite mit der ID 1 (i.d.R. der Startseite) eingefügt:

page.meta.keywords {
	cObject = RECORDS
	cObject {
		tables = pages
		source = 1
		dontCheckPid = 1
		conf.pages = TEXT
		conf.pages.field = keywords
	}
 
	override.field = keywords
}
 
page.meta.description {
	cObject = RECORDS
	cObject {
		tables = pages
		source = 1
		dontCheckPid = 1
		conf.pages = TEXT
		conf.pages.field = description
	}
 
	override.field = description
}

Multi-Domain-Installation oder Typolink mit mehreren Domains

caticonslite_bm_alt

Werden in einer TYPO3-Installation mehrere Seitenbäume mit unterschiedlichen Domains oder Subdomains betrieben, so ist standardmäßig eine domainübergreifende Verlinkung nicht möglich. Mit folgendem TypoScript-Setup werden Typolinks mit dem in der Rootline hinterlegten Domainrecord generiert:

config {
	typolinkCheckRootline = 1
	typolinkEnableLinksAcrossDomains = 1
}

TypoScript in externe Dateien auslagern

caticonslite_bm_alt

TypoScript lässt sich in externe Dateien auslagern, welche man dann in den jeweiligen Konfigurationen (Constants, Setup, PageTS und UserTS) inkludieren kann:

<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/templates/TypoScript/setup.ts">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:webentwickler/Configuration/TypoScript/setup.ts">

Dies Vorgehensweise ist besonders dann sinnvoll, wenn man eine Grundkonfiguration/Framework für seine häufig benutzten Extensions angelegt hat, eine Versionsverwaltung (z.B. Git, Subversion oder Mercurial) einsetzt, oder mit mehreren Servern (z.B.: Development, Testing, Staging, Production) arbeitet.

Wrap nur bei vorhandenem Inhalt anzeigen

caticonslite_bm_alt

Besonders bei Flexiblen Inhaltselementen (FCE) kommt es häufig vor, dass Felder teilweise nicht ausgefüllt und infolgedessen auch nicht angezeigt werden sollen. Abgesehen davon, dass unerwünschte HTML-Tags zu unschönem Layout führen können, kann die Folge unter Umständen auch invalides HTML sein.

Fügt man den wrap als stdWrap.wrap ein und setzt die required-Eigenschaft, so wird der Wrap nur angezeigt, wenn Inhalt vorhanden ist:

10 = TEXT
10 {
	stdWrap {
		wrap = <div class="sidebar">|</div>
		required = 1
	}
	field = field_sidebar
}

Wird ein Link mittels typolink-Eigenschaft eingefügt, so muss die Überprüfung mit if.isTrue erfolgen, da andernfalls nur der Linktext von stdWrap.rap umschlossen wird:

10 = TEXT
10 {
	wrap = <p class="email">|</p>
	field = field_name
	typolink.parameter.field = field_email
	if.isTrue.field = field_email
}
1 3 4 5 nach oben