TYPO3 GLOBALS: TSFE
Das Globale PHP Objekt TSFE steht für FE-Plugins zur Verfügung und enthält einige Informationen, Methoden und Objekte zur Steuerung des kompletten Frontend Renderings.
IN einem Frontend Plugin greift man darauf z.B. so zu:
$GLOBALS["TSFE"]->fe_user->setKey("ses","sessionval", $mySessionVal);
Einige BEispiele was man damit alles machen kann aus einem Artikel von: http://www.lisardo.biz/wiki/GLOBALS-TSFE/ (Datum des Zugriffs: 4.3.2009
GLOBALS TSFE[Bearbeiten]
Über GLOBAL[‘TSFE’] kann man bei der Extension-Programmierung mehr oder weniger auf das gesamte TypoScript-Setup von Typo3 zugreifen. Man kann aktuelle Konfigurationen abfragen oder auch ändern, so dass sich die Ausgabe ins Frontend abhängig vom installierten Plugin auf jeder Seite ändern kann.
Zum Beispiel können damit zusätzliche JavaScript- oder CSS-Definitionen im Kopfbereich ausgegeben werden (siehe CSS und JavaScript im Kopfbereich ausgeben) oder der Bodytag erweitert werden. Folgende Zeile fügt z. B. auf jeder Seite, auf der das Plugin installiert wirde, dem Body-Tag einen onload-Befehl hinzu, wie er für Google-Maps benötigt wird:
$GLOBALS['TSFE']->pSetup['bodyTagAdd'] = 'onload="load()" onunload="GUnload()';
Mit
$GLOBALS['TYPO3_DB']->debugOutput = true; echo t3lib_div::debug( $GLOBALS['TSFE']->pSetup );
kann man sich das gesamte Teilarray pSetup ausgeben lassen – darin ist die gesamte page-Konfiguration aus dem TypoScript-Setup enthalten. (Nicht das ganze $GLOBALS[‘TSFE’]-Array so ausgeben lassen – es ist viel zu groß … ) Wie oben zu sehen ist, kann man jede TypoScript-Anweisung, die man im Setup der Seite anwenden kann, auch über das $Globals[‘TSFE’]-Array aus PHP hinzufügen.
Mit
$GLOBALS['TYPO3_DB']->debugOutput = true;
foreach ($GLOBALS['TSFE'] as $key => $value) {
$var[] = $key;
}
echo t3lib_div::debug( $var );
kann man sich die erste Ebene des $GLOBAL-Arrays ausgeben lassen:
| 0 | id |
| 1 | type |
| 2 | idParts |
| 3 | cHash |
| 4 | no_cache |
| 5 | rootLine |
| 6 | page |
| 7 | contentPid |
| 8 | sys_page |
| 9 | jumpurl |
| 10 | pageNotFound |
| 11 | domainStartPage |
| 12 | pageAccessFailureHistory |
| 13 | MP |
| 14 | RDCT |
| 15 | page_cache_reg1 |
| 16 | siteScript |
| 17 | fe_user |
| 18 | loginUser |
| 19 | gr_list |
| 20 | beUserLogin |
| 21 | workspacePreview |
| 22 | loginAllowedInBranch |
| 23 | ADMCMD_preview_BEUSER_uid |
| 24 | fePreview |
| 25 | showHiddenPage |
| 26 | showHiddenRecords |
| 27 | simUserGroup |
| 28 | TYPO3_CONF_VARS |
| 29 | TCAcachedExtras |
| 30 | tmpl |
| 31 | cacheTimeOutDefault |
| 32 | cacheContentFlag |
| 33 | cacheExpires |
| 34 | isClientCachable |
| 35 | all |
| 36 | sPre |
| 37 | pSetup |
| 38 | newHash |
| 39 | getMethodUrlIdToken |
| 40 | no_CacheBeforePageGen |
| 41 | tempContent |
| 42 | forceTemplateParsing |
| 43 | cHash_array |
| 44 | hash_base |
| 45 | pagesTSconfig |
| 46 | additionalHeaderData |
| 47 | additionalJavaScript |
| 48 | additionalCSS |
| 49 | JSeventFuncCalls |
| 50 | JSCode |
| 51 | JSImgCode |
| 52 | divSection |
| 53 | defaultBodyTag |
| 54 | debug |
| 55 | intTarget |
| 56 | extTarget |
| 57 | MP_defaults |
| 58 | spamProtectEmailAddresses |
| 59 | absRefPrefix |
| 60 | absRefPrefix_force |
| 61 | compensateFieldWidth |
| 62 | lockFilePath |
| 63 | ATagParams |
| 64 | sWordRegEx |
| 65 | sWordList |
| 66 | linkVars |
| 67 | excludeCHashVars |
| 68 | displayEditIcons |
| 69 | displayFieldEditIcons |
| 70 | sys_language_uid |
| 71 | sys_language_mode |
| 72 | sys_language_content |
| 73 | sys_language_contentOL |
| 74 | sys_language_isocode |
| 75 | applicationData |
| 76 | register |
| 77 | registerStack |
| 78 | cObjectDepthCounter |
| 79 | recordRegister |
| 80 | currentRecord |
| 81 | accessKey |
| 82 | imagesOnPage |
| 83 | lastImageInfo |
| 84 | uniqueCounter |
| 85 | uniqueString |
| 86 | indexedDocTitle |
| 87 | altPageTitle |
| 88 | pEncAllowedParamNames |
| 89 | baseUrl |
| 90 | anchorPrefix |
| 91 | cObj |
| 92 | content |
| 93 | clientInfo |
| 94 | scriptParseTime |
| 95 | TCAloaded |
| 96 | csConvObj |
| 97 | defaultCharSet |
| 98 | renderCharset |
| 99 | metaCharset |
| 100 | localeCharset |
| 101 | lang |
| 102 | langSplitIndex |
| 103 | labelsCharset |
| 104 | convCharsetToFrom |
| 105 | LL_labels_cache |
| 106 | LL_files_cache |
| 107 | config |
| 108 | no_cacheBeforePageGen |
| 109 | xhtmlDoctype |
| 110 | xhtmlVersion |
Viele der Einträge kommen bekannt vor und man kann sich denken, worum es dabei geht. Wenn man sich für eine Rubrik interessiert, kann man sie sich einzeln ausgeben lassen, z. B. das gesamte config-Setup:
$GLOBALS['TYPO3_DB']->debugOutput = true; echo t3lib_div::debug( $GLOBALS['TSFE']->config );
TSFE mit Typoscript auslesen[Bearbeiten]
Man kann über Typoscript alle Werte des TSFE auslesen, hier ein Beispiel mit lastImageInfo:
temp.bildinfo = COA
temp. bildinfo {
10 = IMAGE
# Das Bild muss existieren!
10.file = fileadmin/img/bild.jpg
# Bildbreite
20 = TEXT
20.data = TSFE:lastImageInfo|0
# Höhe
30 = TEXT
30.data = TSFE:lastImageInfo|1
# Typ
40 = TEXT
40.data = TSFE:lastImageInfo|2
# Pfad
50 = TEXT
50.data = TSFE:lastImageInfo|3
# Pfad zum Originalbild
60 = TEXT
60.data = TSFE:lastImageInfo|origFile
# Datum und Zeit des Uplaods
70 = TEXT
70.data = TSFE:lastImageInfo|origFile_mtime
}