Public Member Functions | |
| pagegenInit () | |
| Setting some vars in TSFE, primarily based on TypoScript config settings. | |
| getIncFiles () | |
| Returns an array with files to include. | |
| JSeventFunctions () | |
| Processing JavaScript handlers. | |
| renderContent () | |
| Rendering the page content. | |
| renderContentWithHeader ($pageContent) | |
| Rendering normal HTML-page with header by wrapping the generated content ($pageContent) in body-tags and setting the header accordingly. | |
| inline2TempFile ($str, $ext) | |
| Writes string to a temporary file named after the md5-hash of the string. | |
|
|
Returns an array with files to include. These files are the ones set up in TypoScript config.
Definition at line 225 of file class.tslib_pagegen.php. 00225 {
00226 $incFilesArray = array();
00227 // Get files from config.includeLibrary
00228 $includeLibrary = trim(''.$GLOBALS['TSFE']->config['config']['includeLibrary']);
00229 if ($includeLibrary) {
00230 $incFile=$GLOBALS['TSFE']->tmpl->getFileName($includeLibrary);
00231 if ($incFile) {
00232 $incFilesArray[] = $incFile;
00233 }
00234 }
00235
00236 if (is_array($GLOBALS['TSFE']->pSetup['includeLibs.'])) {$incLibs=$GLOBALS['TSFE']->pSetup['includeLibs.'];} else {$incLibs=array();}
00237 if (is_array($GLOBALS['TSFE']->tmpl->setup['includeLibs.'])) {$incLibs+=$GLOBALS['TSFE']->tmpl->setup['includeLibs.'];} // toplevel 'includeLibs' is added to the PAGE.includeLibs. In that way, PAGE-libs get first priority, because if the key already exist, it's not altered. (Due to investigation by me)
00238 if (count($incLibs)) {
00239 reset($incLibs);
00240 while(list(,$theLib)=each($incLibs)) {
00241 if (!is_array($theLib) && $incFile=$GLOBALS['TSFE']->tmpl->getFileName($theLib)) {
00242 $incFilesArray[] = $incFile;
00243 }
00244 }
00245 }
00246 // Include HTML mail library?
00247 if ($GLOBALS['TSFE']->config['config']['incT3Lib_htmlmail']) {
00248 $incFilesArray[] = 't3lib/class.t3lib_htmlmail.php';
00249 }
00250 return $incFilesArray;
00251 }
|
|
||||||||||||
|
Writes string to a temporary file named after the md5-hash of the string.
Definition at line 754 of file class.tslib_pagegen.php. References PATH_site. Referenced by renderContentWithHeader(). 00754 {
00755
00756 // Create filename / tags:
00757 $script = '';
00758 switch($ext) {
00759 case 'js':
00760 $script = 'typo3temp/javascript_'.substr(md5($str),0,10).'.js';
00761 $output = '
00762 <script type="text/javascript" src="'.htmlspecialchars($GLOBALS['TSFE']->absRefPrefix.$script).'"></script>';
00763 break;
00764 case 'css':
00765 $script = 'typo3temp/stylesheet_'.substr(md5($str),0,10).'.css';
00766 $output = '
00767 <link rel="stylesheet" type="text/css" href="'.htmlspecialchars($GLOBALS['TSFE']->absRefPrefix.$script).'" />';
00768 break;
00769 }
00770
00771 // Write file:
00772 if ($script) {
00773 if (!@is_file(PATH_site.$script)) {
00774 t3lib_div::writeFile(PATH_site.$script,$str);
00775 }
00776 }
00777
00778 return $output;
00779 }
|
|
|
Processing JavaScript handlers.
Definition at line 258 of file class.tslib_pagegen.php. Referenced by renderContentWithHeader(). 00258 {
00259 $functions=array();
00260 $setEvents=array();
00261 $setBody=array();
00262
00263 if (is_array($GLOBALS['TSFE']->JSeventFuncCalls['onmousemove']) && count($GLOBALS['TSFE']->JSeventFuncCalls['onmousemove'])) {
00264 $functions[]=' function T3_onmousemoveWrapper(e) { '.implode(' ',$GLOBALS['TSFE']->JSeventFuncCalls['onmousemove']).' }';
00265 $setEvents[]=' document.onmousemove=T3_onmousemoveWrapper;';
00266 }
00267 if (is_array($GLOBALS['TSFE']->JSeventFuncCalls['onmouseup']) && count($GLOBALS['TSFE']->JSeventFuncCalls['onmouseup'])) {
00268 $functions[]=' function T3_onmouseupWrapper(e) { '.implode(' ',$GLOBALS['TSFE']->JSeventFuncCalls['onmouseup']).' }';
00269 $setEvents[]=' document.onmouseup=T3_onmouseupWrapper;';
00270 }
00271 if (is_array($GLOBALS['TSFE']->JSeventFuncCalls['onload']) && count($GLOBALS['TSFE']->JSeventFuncCalls['onload'])) {
00272 $functions[]=' function T3_onloadWrapper() { '.implode(' ',$GLOBALS['TSFE']->JSeventFuncCalls['onload']).' }';
00273 $setEvents[]=' document.onload=T3_onloadWrapper;';
00274 $setBody[]='onload="T3_onloadWrapper();"';
00275 }
00276
00277 return Array(count($functions)?'
00278 <script type="text/javascript">
00279 /*<![CDATA[*/
00280 '.implode(chr(10),$functions).'
00281 '.implode(chr(10),$setEvents).'
00282 /*]]>*/
00283 </script>
00284 ':'',$setBody);
00285 }
|
|
|
Setting some vars in TSFE, primarily based on TypoScript config settings.
Definition at line 95 of file class.tslib_pagegen.php. 00095 {
00096 if ($GLOBALS['TSFE']->page['content_from_pid']>0) {
00097 $temp_copy_TSFE = $GLOBALS['TSFE']; // make REAL copy of TSFE object - not reference!
00098 $temp_copy_TSFE->id = $GLOBALS['TSFE']->page['content_from_pid']; // Set ->id to the content_from_pid value - we are going to evaluate this pid as was it a given id for a page-display!
00099 $temp_copy_TSFE->getPageAndRootlineWithDomain($GLOBALS['TSFE']->config['config']['content_from_pid_allowOutsideDomain']?0:$GLOBALS['TSFE']->domainStartPage);
00100 $GLOBALS['TSFE']->contentPid = intval($temp_copy_TSFE->id);
00101 unset($temp_copy_TSFE);
00102 }
00103 if ($GLOBALS['TSFE']->config['config']['MP_defaults']) {
00104 $temp_parts = t3lib_div::trimExplode('|',$GLOBALS['TSFE']->config['config']['MP_defaults'],1);
00105 reset($temp_parts);
00106 while(list(,$temp_p)=each($temp_parts)) {
00107 list($temp_idP,$temp_MPp) = explode(':',$temp_p,2);
00108 $temp_ids=t3lib_div::intExplode(',',$temp_idP);
00109 reset($temp_ids);
00110 while(list(,$temp_id)=each($temp_ids)) {
00111 $GLOBALS['TSFE']->MP_defaults[$temp_id]=$temp_MPp;
00112 }
00113 }
00114 }
00115 if ($GLOBALS['TSFE']->config['config']['simulateStaticDocuments_pEnc_onlyP']) {
00116 $temp_parts = t3lib_div::trimExplode(',',$GLOBALS['TSFE']->config['config']['simulateStaticDocuments_pEnc_onlyP'],1);
00117 foreach ($temp_parts as $temp_p) {
00118 $GLOBALS['TSFE']->pEncAllowedParamNames[$temp_p]=1;
00119 }
00120 }
00121
00122
00123 // Global vars...
00124 $GLOBALS['TSFE']->indexedDocTitle = $GLOBALS['TSFE']->page['title'];
00125 $GLOBALS['TSFE']->debug = ''.$GLOBALS['TSFE']->config['config']['debug'];
00126
00127 // Base url:
00128 if ($GLOBALS['TSFE']->config['config']['baseURL']) {
00129 $GLOBALS['TSFE']->baseUrl = (intval($GLOBALS['TSFE']->config['config']['baseURL']) ? t3lib_div::getIndpEnv('TYPO3_SITE_URL') : $GLOBALS['TSFE']->config['config']['baseURL']);
00130 $GLOBALS['TSFE']->anchorPrefix = substr(t3lib_div::getIndpEnv('TYPO3_REQUEST_URL'),strlen(t3lib_div::getIndpEnv('TYPO3_SITE_URL')));
00131 }
00132
00133 // Internal and External target defaults
00134 $GLOBALS['TSFE']->intTarget = ''.$GLOBALS['TSFE']->config['config']['intTarget'];
00135 $GLOBALS['TSFE']->extTarget = ''.$GLOBALS['TSFE']->config['config']['extTarget'];
00136 $GLOBALS['TSFE']->spamProtectEmailAddresses = t3lib_div::intInRange($GLOBALS['TSFE']->config['config']['spamProtectEmailAddresses'],-5,5,0);
00137 if ($GLOBALS['TSFE']->spamProtectEmailAddresses) {
00138 $GLOBALS['TSFE']->additionalJavaScript['UnCryptMailto()']='
00139 // JS function for uncrypting spam-protected emails:
00140 function UnCryptMailto(s) { //
00141 var n=0;
00142 var r="";
00143 for(var i=0; i < s.length; i++) {
00144 n=s.charCodeAt(i);
00145 if (n>=8364) {n = 128;}
00146 r += String.fromCharCode(n-('.$GLOBALS['TSFE']->spamProtectEmailAddresses.'));
00147 }
00148 return r;
00149 }
00150 // JS function for uncrypting spam-protected emails:
00151 function linkTo_UnCryptMailto(s) { //
00152 location.href=UnCryptMailto(s);
00153 }
00154 ';
00155 }
00156
00157
00158 $GLOBALS['TSFE']->absRefPrefix = trim(''.$GLOBALS['TSFE']->config['config']['absRefPrefix']);
00159 if ((!strcmp($GLOBALS['TSFE']->config['config']['simulateStaticDocuments'],'PATH_INFO') || $GLOBALS['TSFE']->absRefPrefix_force)
00160 && !$GLOBALS['TSFE']->absRefPrefix) {
00161 $GLOBALS['TSFE']->absRefPrefix=t3lib_div::dirname(t3lib_div::getIndpEnv('SCRIPT_NAME')).'/';
00162 } // Force absRefPrefix to this value is PATH_INFO is used.
00163
00164 if ($GLOBALS['TSFE']->type && $GLOBALS['TSFE']->config['config']['frameReloadIfNotInFrameset']) {
00165 $tdlLD = $GLOBALS['TSFE']->tmpl->linkData($GLOBALS['TSFE']->page,'_top',$GLOBALS['TSFE']->no_cache,'');
00166 $GLOBALS['TSFE']->JSCode = 'if(!parent.'.trim($GLOBALS['TSFE']->sPre).' && !parent.view_frame) top.document.location="'.$GLOBALS['TSFE']->baseUrlWrap($tdlLD['totalURL']).'"';
00167 }
00168 $GLOBALS['TSFE']->compensateFieldWidth = ''.$GLOBALS['TSFE']->config['config']['compensateFieldWidth'];
00169 $GLOBALS['TSFE']->lockFilePath = ''.$GLOBALS['TSFE']->config['config']['lockFilePath'];
00170 $GLOBALS['TSFE']->lockFilePath = $GLOBALS['TSFE']->lockFilePath ? $GLOBALS['TSFE']->lockFilePath : 'fileadmin/';
00171 $GLOBALS['TYPO3_CONF_VARS']['GFX']['im_noScaleUp'] = isset($GLOBALS['TSFE']->config['config']['noScaleUp']) ? ''.$GLOBALS['TSFE']->config['config']['noScaleUp'] : $GLOBALS['TYPO3_CONF_VARS']['GFX']['im_noScaleUp'];
00172 $GLOBALS['TSFE']->TYPO3_CONF_VARS['GFX']['im_noScaleUp'] = $GLOBALS['TYPO3_CONF_VARS']['GFX']['im_noScaleUp'];
00173
00174 $GLOBALS['TSFE']->ATagParams = trim($GLOBALS['TSFE']->config['config']['ATagParams']) ? ' '.trim($GLOBALS['TSFE']->config['config']['ATagParams']) : '';
00175 if ($GLOBALS['TSFE']->config['config']['setJS_mouseOver']) $GLOBALS['TSFE']->setJS('mouseOver');
00176 if ($GLOBALS['TSFE']->config['config']['setJS_openPic']) $GLOBALS['TSFE']->setJS('openPic');
00177
00178 $GLOBALS['TSFE']->sWordRegEx='';
00179 $GLOBALS['TSFE']->sWordList = t3lib_div::_GP('sword_list');
00180 if (is_array($GLOBALS['TSFE']->sWordList)) {
00181 $standAlone = trim(''.$GLOBALS['TSFE']->config['config']['sword_standAlone']);
00182 $noMixedCase = trim(''.$GLOBALS['TSFE']->config['config']['sword_noMixedCase']);
00183
00184 $space = ($standAlone) ? '[[:space:]]' : '';
00185 reset($GLOBALS['TSFE']->sWordList);
00186 while (list($key,$val) = each($GLOBALS['TSFE']->sWordList)) {
00187 if (trim($val)) {
00188 if (!$noMixedCase) {
00189 $GLOBALS['TSFE']->sWordRegEx.= $space.sql_regcase(quotemeta($val)).$space.'|';
00190 } else {
00191 $GLOBALS['TSFE']->sWordRegEx.= $space.quotemeta($val).$space.'|';
00192 }
00193 }
00194 }
00195 $GLOBALS['TSFE']->sWordRegEx = ereg_replace('\|$','',$GLOBALS['TSFE']->sWordRegEx);
00196 }
00197
00198 // linkVars
00199 $GLOBALS['TSFE']->linkVars = ''.$GLOBALS['TSFE']->config['config']['linkVars'];
00200 if ($GLOBALS['TSFE']->linkVars) {
00201 $linkVarArr = explode(',',$GLOBALS['TSFE']->linkVars);
00202 $GLOBALS['TSFE']->linkVars='';
00203 reset($linkVarArr);
00204 while(list(,$val)=each($linkVarArr)) {
00205 $val=trim($val);
00206 $GET = t3lib_div::_GET();
00207 if ($val && isset($GET[$val])) {
00208 if (!is_array($GET[$val])) {
00209 $GLOBALS['TSFE']->linkVars.='&'.$val.'='.rawurlencode($GET[$val]);
00210 } else {
00211 $GLOBALS['TSFE']->linkVars.=t3lib_div::implodeArrayForUrl($val,$GET[$val]);
00212 }
00213 }
00214 }
00215 } else {
00216 $GLOBALS['TSFE']->linkVars='';
00217 }
00218 }
|
|
|
Rendering the page content.
Definition at line 292 of file class.tslib_pagegen.php. References renderContentWithHeader(), and stdWrap(). 00292 {
00293 // PAGE CONTENT
00294 $GLOBALS['TT']->incStackPointer();
00295 $GLOBALS['TT']->push($GLOBALS['TSFE']->sPre, 'PAGE');
00296 $pageContent = $GLOBALS['TSFE']->cObj->cObjGet($GLOBALS['TSFE']->pSetup);
00297
00298 if ($GLOBALS['TSFE']->pSetup['wrap']) {$pageContent = $GLOBALS['TSFE']->cObj->wrap($pageContent, $GLOBALS['TSFE']->pSetup['wrap']);}
00299 if ($GLOBALS['TSFE']->pSetup['stdWrap.']) {$pageContent = $GLOBALS['TSFE']->cObj->stdWrap($pageContent, $GLOBALS['TSFE']->pSetup['stdWrap.']);}
00300
00301 // PAGE HEADER (after content - maybe JS is inserted!
00302
00303 // if 'disableAllHeaderCode' is set, all the header-code is discarded!
00304 if ($GLOBALS['TSFE']->config['config']['disableAllHeaderCode']) {
00305 $GLOBALS['TSFE']->content = $pageContent;
00306 } else {
00307 TSpagegen::renderContentWithHeader($pageContent);
00308 }
00309 $GLOBALS['TT']->pull($GLOBALS['TT']->LR?$GLOBALS['TSFE']->content:'');
00310 $GLOBALS['TT']->decStackPointer();
00311 }
|
|
|
Rendering normal HTML-page with header by wrapping the generated content ($pageContent) in body-tags and setting the header accordingly.
CSS STYLESHEET handling: Definition at line 319 of file class.tslib_pagegen.php. References $a, $key, $val, additionalHeaderData, inline2TempFile(), and JSeventFunctions(). Referenced by renderContent(). 00319 {
00320 $customContent = $GLOBALS['TSFE']->config['config']['headerComment'];
00321 if (trim($customContent)) {
00322 $customContent = chr(10).$customContent;
00323 } else $customContent='';
00324
00325 // Setting charset:
00326 $theCharset = $GLOBALS['TSFE']->metaCharset;
00327
00328 // Reset the content variables:
00329 $GLOBALS['TSFE']->content='';
00330 $htmlTagAttributes = array();
00331 $htmlLang = $GLOBALS['TSFE']->config['config']['htmlTag_langKey'] ? $GLOBALS['TSFE']->config['config']['htmlTag_langKey'] : 'en';
00332
00333 // Set content direction: (More info: http://www.tau.ac.il/~danon/Hebrew/HTML_and_Hebrew.html)
00334 if ($GLOBALS['TSFE']->config['config']['htmlTag_dir']) {
00335 $htmlTagAttributes['dir'] = htmlspecialchars($GLOBALS['TSFE']->config['config']['htmlTag_dir']);
00336 }
00337
00338 // Setting document type:
00339 $docTypeParts = array();
00340 $XMLprologue = $GLOBALS['TSFE']->config['config']['xmlprologue'] != 'none';
00341 if ($GLOBALS['TSFE']->config['config']['doctype']) {
00342
00343 // Setting doctypes:
00344 switch((string)$GLOBALS['TSFE']->config['config']['doctype']) {
00345 case 'xhtml_trans':
00346 if ($XMLprologue) $docTypeParts[]='<?xml version="1.0" encoding="'.$theCharset.'"?>';
00347 $docTypeParts[]='<!DOCTYPE html
00348 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
00349 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
00350 break;
00351 case 'xhtml_strict':
00352 if ($XMLprologue) $docTypeParts[]='<?xml version="1.0" encoding="'.$theCharset.'"?>';
00353 $docTypeParts[]='<!DOCTYPE html
00354 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
00355 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
00356 break;
00357 case 'xhtml_frames':
00358 if ($XMLprologue) $docTypeParts[]='<?xml version="1.0" encoding="'.$theCharset.'"?>';
00359 $docTypeParts[]='<!DOCTYPE html
00360 PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
00361 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">';
00362 break;
00363 case 'xhtml_11':
00364 if ($XMLprologue) $docTypeParts[]='<?xml version="1.1" encoding="'.$theCharset.'"?>';
00365 $docTypeParts[]='<!DOCTYPE html
00366 PUBLIC "-//W3C//DTD XHTML 1.1//EN"
00367 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';
00368 break;
00369 case 'xhtml_2':
00370 if ($XMLprologue) $docTypeParts[]='<?xml version="2.0" encoding="'.$theCharset.'"?>';
00371 $docTypeParts[]='<!DOCTYPE html
00372 PUBLIC "-//W3C//DTD XHTML 2.0//EN"
00373 "http://www.w3.org/TR/xhtml2/DTD/xhtml2.dtd">';
00374 break;
00375 case 'none':
00376 break;
00377 default:
00378 $docTypeParts[] = $GLOBALS['TSFE']->config['config']['doctype'];
00379 break;
00380 }
00381 // Setting <html> tag attributes:
00382 switch((string)$GLOBALS['TSFE']->config['config']['doctype']) {
00383 case 'xhtml_trans':
00384 case 'xhtml_strict':
00385 case 'xhtml_frames':
00386 $htmlTagAttributes['xmlns'] = 'http://www.w3.org/1999/xhtml';
00387 $htmlTagAttributes['xml:lang'] = $htmlLang;
00388 $htmlTagAttributes['lang'] = $htmlLang;
00389 break;
00390 case 'xhtml_11':
00391 case 'xhtml_2':
00392 $htmlTagAttributes['xmlns'] = 'http://www.w3.org/1999/xhtml';
00393 $htmlTagAttributes['xml:lang'] = $htmlLang;
00394 break;
00395 }
00396 } else {
00397 $docTypeParts[]='<!DOCTYPE html
00398 PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
00399 }
00400
00401 // Swap XML and doctype order around (for MSIE / Opera standards compliance)
00402 if ($GLOBALS['TSFE']->config['config']['doctypeSwitch']) {
00403 $docTypeParts = array_reverse($docTypeParts);
00404 }
00405
00406 // Adding doctype parts:
00407 $GLOBALS['TSFE']->content.= count($docTypeParts) ? implode(chr(10),$docTypeParts).chr(10) : '';
00408
00409 // Begin header section:
00410 if (strcmp($GLOBALS['TSFE']->config['config']['htmlTag_setParams'],'none')) {
00411 $_attr = $GLOBALS['TSFE']->config['config']['htmlTag_setParams'] ? $GLOBALS['TSFE']->config['config']['htmlTag_setParams'] : t3lib_div::implodeAttributes($htmlTagAttributes);
00412 } else {
00413 $_attr = '';
00414 }
00415 $GLOBALS['TSFE']->content.='<html'.($_attr ? ' '.$_attr : '').'>
00416 <head>';
00417 // Setting charset meta tag:
00418 $GLOBALS['TSFE']->content.='
00419 <meta http-equiv="Content-Type" content="text/html; charset='.$theCharset.'" />';
00420
00421 $GLOBALS['TSFE']->content.='
00422
00423 <!-- '.($customContent?$customContent.chr(10):'').'
00424 This website is brought to you by TYPO3 - get.content.right
00425 TYPO3 is a free open source Content Management Framework created by Kasper Skaarhoj and licensed under GNU/GPL.
00426 TYPO3 is copyright 1998-2004 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
00427 Information and contribution at http://www.typo3.com
00428 -->
00429 ';
00430
00431
00432 if ($GLOBALS['TSFE']->baseUrl) {
00433 $GLOBALS['TSFE']->content.='
00434 <base href="'.htmlspecialchars($GLOBALS['TSFE']->baseUrl).'" />';
00435 }
00436
00437 if ($GLOBALS['TSFE']->pSetup['shortcutIcon']) {
00438 $ss=$path.$GLOBALS['TSFE']->tmpl->getFileName($GLOBALS['TSFE']->pSetup['shortcutIcon']);
00439 $GLOBALS['TSFE']->content.='
00440 <link rel="SHORTCUT ICON" href="'.htmlspecialchars($ss).'" />';
00441 }
00442
00444 if (is_array($GLOBALS['TSFE']->tmpl->setup['plugin.'])) {
00445 $temp_styleLines=array();
00446 reset($GLOBALS['TSFE']->tmpl->setup['plugin.']);
00447 while(list($k2,$iCSScode)=each($GLOBALS['TSFE']->tmpl->setup['plugin.'])) {
00448 if (is_array($iCSScode) && $iCSScode['_CSS_DEFAULT_STYLE']) {
00449 $temp_styleLines[]='/* default styles for extension "'.substr($k2,0,-1).'" */'.chr(10).$iCSScode['_CSS_DEFAULT_STYLE'];
00450 }
00451 }
00452 if (count($temp_styleLines)) {
00453 if ($GLOBALS['TSFE']->config['config']['inlineStyle2TempFile']) {
00454 $GLOBALS['TSFE']->content.=TSpagegen::inline2TempFile(implode(chr(10),$temp_styleLines),'css');
00455 } else {
00456 $GLOBALS['TSFE']->content.='
00457 <style type="text/css">
00458 /*<![CDATA[*/
00459 <!--
00460 '.implode(chr(10),$temp_styleLines).'
00461 -->
00462 /*]]>*/
00463 </style>';
00464 }
00465 }
00466 }
00467
00468 if ($GLOBALS['TSFE']->pSetup['stylesheet']) {
00469 $ss=$GLOBALS['TSFE']->tmpl->getFileName($GLOBALS['TSFE']->pSetup['stylesheet']);
00470 if ($ss) {
00471 $GLOBALS['TSFE']->content.='
00472 <link rel="stylesheet" type="text/css" href="'.htmlspecialchars($ss).'" />';
00473 }
00474 }
00475 if (is_array($GLOBALS['TSFE']->pSetup['includeCSS.'])) {
00476 reset($GLOBALS['TSFE']->pSetup['includeCSS.']);
00477 while(list($k2,$iCSSfile)=each($GLOBALS['TSFE']->pSetup['includeCSS.'])) {
00478 if (!is_array($iCSSfile)) {
00479 $ss = $GLOBALS['TSFE']->tmpl->getFileName($iCSSfile);
00480 if ($ss) {
00481 if ($GLOBALS['TSFE']->pSetup['includeCSS.'][$k2.'.']['import']) {
00482 if (substr($ss,0,1)!='/') { // To fix MSIE 6 that cannot handle these as relative paths (according to Ben v Ende)
00483 $ss = t3lib_div::dirname(t3lib_div::getIndpEnv('SCRIPT_NAME')).'/'.$ss;
00484 }
00485 $GLOBALS['TSFE']->content.='
00486 <style type="text/css">
00487 <!--
00488 @import url("'.htmlspecialchars($ss).'") '.htmlspecialchars($GLOBALS['TSFE']->pSetup['includeCSS.'][$k2.'.']['media']).';
00489 -->
00490 </style>
00491 ';
00492 } else {
00493 $GLOBALS['TSFE']->content.='
00494 <link rel="'.($GLOBALS['TSFE']->pSetup['includeCSS.'][$k2.'.']['alternate'] ? 'alternate stylesheet' : 'stylesheet').'" type="text/css" href="'.htmlspecialchars($ss).'"'.
00495 ($GLOBALS['TSFE']->pSetup['includeCSS.'][$k2.'.']['title'] ? ' title="'.htmlspecialchars($GLOBALS['TSFE']->pSetup['includeCSS.'][$k2.'.']['title']).'"' : '').
00496 ($GLOBALS['TSFE']->pSetup['includeCSS.'][$k2.'.']['media'] ? ' media="'.htmlspecialchars($GLOBALS['TSFE']->pSetup['includeCSS.'][$k2.'.']['media']).'"' : '').
00497 ' />';
00498 }
00499 }
00500 }
00501 }
00502 }
00503
00504 // Stylesheets
00505 $style='';
00506 $style.=trim($GLOBALS['TSFE']->pSetup['CSS_inlineStyle']).chr(10);
00507
00508 if ($GLOBALS['TSFE']->pSetup['insertClassesFromRTE']) {
00509 $pageTSConfig = $GLOBALS['TSFE']->getPagesTSconfig();
00510 $RTEclasses = $pageTSConfig['RTE.']['classes.'];
00511 if (is_array($RTEclasses)) {
00512 reset($RTEclasses);
00513 while(list($RTEclassName,$RTEvalueArray)=each($RTEclasses)) {
00514 if ($RTEvalueArray['value']) {
00515 $style.='
00516 .'.substr($RTEclassName,0,-1).' {'.$RTEvalueArray['value'].'}';
00517 }
00518 }
00519 }
00520
00521 if ($GLOBALS['TSFE']->pSetup['insertClassesFromRTE.']['add_mainStyleOverrideDefs'] && is_array($pageTSConfig['RTE.']['default.']['mainStyleOverride_add.'])) {
00522 $mSOa_tList = t3lib_div::trimExplode(',',strtoupper($GLOBALS['TSFE']->pSetup['insertClassesFromRTE.']['add_mainStyleOverrideDefs']),1);
00523 reset($pageTSConfig['RTE.']['default.']['mainStyleOverride_add.']);
00524 while(list($mSOa_key,$mSOa_value)=each($pageTSConfig['RTE.']['default.']['mainStyleOverride_add.'])) {
00525 if (!is_array($mSOa_value) && (in_array('*',$mSOa_tList)||in_array($mSOa_key,$mSOa_tList))) {
00526 $style.='
00527 '.$mSOa_key.' {'.$mSOa_value.'}';
00528 }
00529 }
00530 }
00531 }
00532
00533 // Setting body tag margins in CSS:
00534 if (isset($GLOBALS['TSFE']->pSetup['bodyTagMargins']) && $GLOBALS['TSFE']->pSetup['bodyTagMargins.']['useCSS']) {
00535 $margins = intval($GLOBALS['TSFE']->pSetup['bodyTagMargins']);
00536 $style.='
00537 BODY {margin: '.$margins.'px '.$margins.'px '.$margins.'px '.$margins.'px;}';
00538 }
00539
00540 if ($GLOBALS['TSFE']->pSetup['noLinkUnderline']) {
00541 $style.='
00542 A:link {text-decoration: none}
00543 A:visited {text-decoration: none}
00544 A:active {text-decoration: none}';
00545 }
00546 if (trim($GLOBALS['TSFE']->pSetup['hover'])) {
00547 $style.='
00548 A:hover {color: '.trim($GLOBALS['TSFE']->pSetup['hover']).';}';
00549 }
00550 if (trim($GLOBALS['TSFE']->pSetup['hoverStyle'])) {
00551 $style.='
00552 A:hover {'.trim($GLOBALS['TSFE']->pSetup['hoverStyle']).'}';
00553 }
00554 if ($GLOBALS['TSFE']->pSetup['smallFormFields']) {
00555 $style.='
00556 SELECT { font-family: Verdana, Arial, Helvetica; font-size: 10px }
00557 TEXTAREA { font-family: Verdana, Arial, Helvetica; font-size: 10px}
00558 INPUT { font-family: Verdana, Arial, Helvetica; font-size: 10px }';
00559 }
00560 if ($GLOBALS['TSFE']->pSetup['adminPanelStyles']) {
00561 $style.='
00562
00563 /* Default styles for the Admin Panel */
00564 TABLE.typo3-adminPanel { border: 1px solid black; background-color: #F6F2E6; }
00565 TABLE.typo3-adminPanel TR.typo3-adminPanel-hRow TD { background-color: #9BA1A8; }
00566 TABLE.typo3-adminPanel TR.typo3-adminPanel-itemHRow TD { background-color: #ABBBB4; }
00567 TABLE.typo3-adminPanel TABLE, TABLE.typo3-adminPanel TD { border: 0px; }
00568 TABLE.typo3-adminPanel TD FONT { font-family: verdana; font-size: 10px; color: black; }
00569 TABLE.typo3-adminPanel TD A FONT { font-family: verdana; font-size: 10px; color: black; }
00570 TABLE.typo3-editPanel { border: 1px solid black; background-color: #F6F2E6; }
00571 TABLE.typo3-editPanel TD { border: 0px; }
00572 ';
00573 }
00574
00575 if (trim($style)) {
00576 if ($GLOBALS['TSFE']->config['config']['inlineStyle2TempFile']) {
00577 $GLOBALS['TSFE']->content.=TSpagegen::inline2TempFile($style, 'css');
00578 } else {
00579 $GLOBALS['TSFE']->content.='
00580 <style type="text/css">
00581 /*<![CDATA[*/
00582 <!--'.$style.'
00583 -->
00584 /*]]>*/
00585 </style>';
00586 }
00587 }
00588
00589
00590
00591
00592
00593 // Headerdata
00594 if (is_array($GLOBALS['TSFE']->pSetup['headerData.'])) {
00595 $GLOBALS['TSFE']->content.= chr(10).$GLOBALS['TSFE']->cObj->cObjGet($GLOBALS['TSFE']->pSetup['headerData.'],'headerData.');
00596 }
00597
00598 // <title></title> :
00599 $titleTagContent = $GLOBALS['TSFE']->tmpl->printTitle(
00600 $GLOBALS['TSFE']->altPageTitle?$GLOBALS['TSFE']->altPageTitle:$GLOBALS['TSFE']->page['title'],
00601 $GLOBALS['TSFE']->config['config']['noPageTitle'],
00602 $GLOBALS['TSFE']->config['config']['pageTitleFirst']
00603 );
00604 if ($GLOBALS['TSFE']->config['config']['titleTagFunction']) {
00605 $titleTagContent = $GLOBALS['TSFE']->cObj->callUserFunction($GLOBALS['TSFE']->config['config']['titleTagFunction'], array(), $titleTagContent);
00606 }
00607
00608 $GLOBALS['TSFE']->content.='
00609 <title>'.htmlspecialchars($titleTagContent).'</title>';
00610 $GLOBALS['TSFE']->content.='
00611 <meta name="generator" content="TYPO3 3.6 CMS" />';
00612
00613 $conf=$GLOBALS['TSFE']->pSetup['meta.'];
00614 if (is_array($conf)) {
00615 reset($conf);
00616 while(list($theKey,$theValue)=each($conf)) {
00617 if (!strstr($theKey,'.') || !isset($conf[substr($theKey,0,-1)])) { // Only if 1) the property is set but not the value itself, 2) the value and/or any property
00618 if (strstr($theKey,'.')) {
00619 $theKey = substr($theKey,0,-1);
00620 }
00621 $val = $GLOBALS['TSFE']->cObj->stdWrap($conf[$theKey],$conf[$theKey.'.']);
00622 $key = $theKey;
00623 if (trim($val)) {
00624 $a='name';
00625 if (strtolower($key)=='refresh') {$a='http-equiv';}
00626 $GLOBALS['TSFE']->content.= '
00627 <meta '.$a.'="'.$key.'" content="'.htmlspecialchars(trim($val)).'" />';
00628 }
00629 }
00630 }
00631 }
00632
00633 unset($GLOBALS['TSFE']->additionalHeaderData['JSCode']);
00634 unset($GLOBALS['TSFE']->additionalHeaderData['JSImgCode']);
00635
00636 if (is_array($GLOBALS['TSFE']->config['INTincScript'])) {
00637 // Storing the JSCode and JSImgCode vars...
00638 $GLOBALS['TSFE']->additionalHeaderData['JSCode'] = $GLOBALS['TSFE']->JSCode;
00639 $GLOBALS['TSFE']->additionalHeaderData['JSImgCode'] = $GLOBALS['TSFE']->JSImgCode;
00640 $GLOBALS['TSFE']->config['INTincScript_ext']['divKey']= $GLOBALS['TSFE']->uniqueHash();
00641 $GLOBALS['TSFE']->config['INTincScript_ext']['additionalHeaderData'] = $GLOBALS['TSFE']->additionalHeaderData; // Storing the header-data array
00642 $GLOBALS['TSFE']->config['INTincScript_ext']['additionalJavaScript'] = $GLOBALS['TSFE']->additionalJavaScript; // Storing the JS-data array
00643 $GLOBALS['TSFE']->config['INTincScript_ext']['additionalCSS'] = $GLOBALS['TSFE']->additionalCSS; // Storing the Style-data array
00644
00645 $GLOBALS['TSFE']->additionalHeaderData=array('<!--HD_'.$GLOBALS['TSFE']->config['INTincScript_ext']['divKey'].'-->'); // Clearing the array
00646 $GLOBALS['TSFE']->divSection.='<!--TDS_'.$GLOBALS['TSFE']->config['INTincScript_ext']['divKey'].'-->';
00647 } else {
00648 $GLOBALS['TSFE']->INTincScript_loadJSCode();
00649 }
00650 $JSef = TSpagegen::JSeventFunctions();
00651
00652 // Adding default Java Script:
00653 $_scriptCode = '
00654 browserName = navigator.appName;
00655 browserVer = parseInt(navigator.appVersion);
00656 var msie4 = (browserName == "Microsoft Internet Explorer" && browserVer >= 4);
00657 if ((browserName == "Netscape" && browserVer >= 3) || msie4 || browserName=="Konqueror") {version = "n3";} else {version = "n2";}
00658 // Blurring links:
00659 function blurLink(theObject) { //
00660 if (msie4) {theObject.blur();}
00661 }
00662 ';
00663 if (!$GLOBALS['TSFE']->config['config']['removeDefaultJS']) {
00664 // NOTICE: The following code must be kept synchronized with "tslib/default.js"!!!
00665 $GLOBALS['TSFE']->content.='
00666 <script type="text/javascript">
00667 /*<![CDATA[*/
00668 <!--'.$_scriptCode.'
00669 // -->
00670 /*]]>*/
00671 </script>';
00672 } elseif ($GLOBALS['TSFE']->config['config']['removeDefaultJS']==='external') {
00673 $GLOBALS['TSFE']->content.=TSpagegen::inline2TempFile($_scriptCode, 'js');
00674 }
00675
00676 $GLOBALS['TSFE']->content.=chr(10).implode($GLOBALS['TSFE']->additionalHeaderData,chr(10)).'
00677 '.$JSef[0].'
00678 </head>';
00679 if ($GLOBALS['TSFE']->pSetup['frameSet.']) {
00680 $fs = t3lib_div::makeInstance('tslib_frameset');
00681 $GLOBALS['TSFE']->content.=$fs->make($GLOBALS['TSFE']->pSetup['frameSet.']);
00682 $GLOBALS['TSFE']->content.= chr(10).'<noframes>'.chr(10);
00683 }
00684
00685 // Bodytag:
00686 $defBT = $GLOBALS['TSFE']->pSetup['bodyTagCObject'] ? $GLOBALS['TSFE']->cObj->cObjGetSingle($GLOBALS['TSFE']->pSetup['bodyTagCObject'],$GLOBALS['TSFE']->pSetup['bodyTagCObject.'],'bodyTagCObject') : '';
00687 if (!$defBT) $defBT = $GLOBALS['TSFE']->defaultBodyTag;
00688 $bodyTag = $GLOBALS['TSFE']->pSetup['bodyTag'] ? $GLOBALS['TSFE']->pSetup['bodyTag'] : $defBT;
00689 if ($bgImg=$GLOBALS['TSFE']->cObj->getImgResource($GLOBALS['TSFE']->pSetup['bgImg'],$GLOBALS['TSFE']->pSetup['bgImg.'])) {
00690 $bodyTag = ereg_replace('>$','',trim($bodyTag)).' background="'.$GLOBALS["TSFE"]->absRefPrefix.$bgImg[3].'">';
00691 }
00692
00693 if (isset($GLOBALS['TSFE']->pSetup['bodyTagMargins'])) {
00694 $margins = intval($GLOBALS['TSFE']->pSetup['bodyTagMargins']);
00695 if ($GLOBALS['TSFE']->pSetup['bodyTagMargins.']['useCSS']) {
00696 // Setting margins in CSS, see above
00697 } else {
00698 $bodyTag = ereg_replace('>$','',trim($bodyTag)).' leftmargin="'.$margins.'" topmargin="'.$margins.'" marginwidth="'.$margins.'" marginheight="'.$margins.'">';
00699 }
00700 }
00701
00702 if (trim($GLOBALS['TSFE']->pSetup['bodyTagAdd'])) {
00703 $bodyTag = ereg_replace('>$','',trim($bodyTag)).' '.trim($GLOBALS['TSFE']->pSetup['bodyTagAdd']).'>';
00704 }
00705
00706 if (count($JSef[1])) { // Event functions:
00707 $bodyTag = ereg_replace('>$','',trim($bodyTag)).' '.trim(implode(' ',$JSef[1])).'>';
00708 }
00709 $GLOBALS['TSFE']->content.= chr(10).$bodyTag;
00710
00711
00712 // Div-sections
00713 if ($GLOBALS['TSFE']->divSection) {
00714 $GLOBALS['TSFE']->content.= chr(10).$GLOBALS['TSFE']->divSection;
00715 }
00716
00717 // Page content
00718 $GLOBALS['TSFE']->content.=chr(10).$pageContent;
00719
00720 // Ending page
00721 $GLOBALS['TSFE']->content.= chr(10).'</body>';
00722 if ($GLOBALS['TSFE']->pSetup['frameSet.']) {
00723 $GLOBALS['TSFE']->content.= chr(10).'</noframes>';
00724 }
00725 $GLOBALS['TSFE']->content.=chr(10).'</html>';
00726 }
|
1.3.8-20040913