De:TSref/getText
This page is document in progress. TypoScript (Liste TypoScript)
getText ist ein TypoScript (Liste TypoScript)) Datentyp. D.h. es gibt Funktionen, die erwarten Eingaben in Form eines getText-Datentyps.
Beim stdWrap erwartet der Parameter .data Inhalte vom Typ getText.
# Beispiel: page.40 = HTML page.40.value = Hallo Welt # der ursprüngliche Wert "Hallo Welt" wird jetzt von dem Inhalt von .data überschrieben. page.40.value.data = field:nav_title // field:author // field:uid page.40.value.wrap = <h1>|</h1>
getText ist ein Sammelsurium von unterschiedlichen Möglichkeiten dynamische Daten während des Seitenaufbaus zu ermitteln.
Contents |
alternativer Datensatz
In einigen Situationen ist nicht bekannt, ob ein bestimmtes Feld einen Wert enthält oder nicht (z.B. pages.nav_title). Wenn also sichergestellt werden soll, dass der Seitentitel angezeigt wird, wenn kein Navigationstitel vorhanden ist, dann kann das über ein if Konstrukt hergestellt werden. Die einfachere Alternative besteht darin, dem getText direkt mitzuteilen was passieren soll, wenn kein Wert gefunden wird.
# Beispiel: page.40 = HTML page.40.value = Hallo Welt # der ursprüngliche Wert "Hallo Welt" wird jetzt von dem Inhalt von .data überschrieben. # Mit // wird die Anfrage in unterschiedliche Teile aufgeteilt. # Die Seiten uid wird nur zurückgeliefert, wenn weder der alternative Seitentitel (nav_title) noch das Autoren Feld (author) gesetzt ist. page.40.value.data = field:nav_title // field:author // field:uid
getText erlaubt die Angabe von mehreren Bedingungen die mit ___//___ abgetrennt werden. Diese Bedingungen werden solange von links nach rechts abgearbeitet, bis eine Bedingung einen nicht leeren Wert zurückliefert.
field
Es ist möglich aus dem aktuell bearbeiteten Datensatz ein bestimmtes Feld anzusprechen. Intern werden die im $cObj-Array geladenen Daten angesprochen.
# Beispiel .data = field:header
Entscheidend ist dabei, welcher Datensatz gerade angesprochen wird. Auf der Ebene von page ist das die Tabelle pages, also die Seitenebene. Allerdings kann via TSref/De:select select auf jede beliebige Tabelle zugegriffen werden.
# Beispiel # Den Inhalt der Spalte "normal" laden # hinter diesem Aufruf verbirgt sich ein select-Statement, dass auf die Tabelle tt_content zugreift. page.40 < styles.content.get page.40.renderObj.stdWrap.append = COA page.40.renderObj.stdWrap.append.10 = HTML # Achtung, das Datum wird als unix-timestamp geliefert und somit einfach als Zahl ausgegeben page.40.renderObj.stdWrap.append.10.value.data = field:date # damit sie schön ausschaut, benötigt es noch eine Formatierung via strftime page.40.renderObj.stdWrap.append.10.value.strftime = %e.%m.%y page.40.renderObj.stdWrap.append.10.value.wrap = <h2>Datum: |</h2>
Welche Felder in der Datenbank existieren, lässt sich am einfachsten mit Hilfe der Extension phpmyadmin herausfinden.
getIndpEnv
Name of the "environment variable"/"server variable" you wish to use. Valid values are SCRIPT_NAME, SCRIPT_FILENAME, REQUEST_URI, PATH_INFO, REMOTE_ADDR, REMOTE_HOST, HTTP_REFERER, HTTP_HOST, HTTP_USER_AGENT, HTTP_ACCEPT_LANGUAGE, QUERY_STRING, TYPO3_DOCUMENT_ROOT, TYPO3_HOST_ONLY, TYPO3_REQUEST_HOST, TYPO3_REQUEST_URL, TYPO3_REQUEST_SCRIPT, TYPO3_REQUEST_DIR, TYPO3_SITE_URL, _ARRAY
Beispiele
# ungetestet! geschachtelte Klammern werden auch ersetzt?!
headerData.10.data = {PATH:{$plugin.sg_customlayout.ieStyle}}
headerData.10.insertData = 1
# Liefert die URL der aktuellen Seite page.10 = HTML page.10.value.data = getIndpEnv:TYPO3_REQUEST_URL
Informationen über angemeldete Benutzer ausgeben
# Hinweis: damit der Name usw. nicht gecached wird und der Nutzer
# tatsächlich nur seine Daten sieht, darf der Bereich nicht
# gecached werden.
lib.username = COA_INT
lib.username {
10 = TEXT
10.data = TSFE:fe_user|user|username
}