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
Ü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
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
}