[ Index ]
 

Code source de Typo3 4.1.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/t3lib/ -> class.t3lib_tstemplate.php (sommaire)

Class with template object that is responsible for generating the template $Id: class.t3lib_tstemplate.php 2001 2007-02-06 07:45:40Z mundaun $ Revised for TYPO3 3.6 July/2003 by Kasper Skaarhoj

Author: Kasper Skaarhoj <kasperYYYY@typo3.com>
Poids: 1567 lignes (64 kb)
Inclus ou requis:0 fois
Référencé: 0 fois
Nécessite: 0 fichiers

Définit 1 class

t3lib_TStemplate:: (28 méthodes):
  init()
  getCurrentPageData()
  matching()
  start()
  runThroughTemplates()
  processTemplate()
  includeStaticTypoScriptSources()
  addExtensionStatics()
  prependStaticExtra()
  versionOL()
  generateConfig()
  procesIncludes()
  mergeConstantsFromPageTSconfig()
  flattenSetup()
  substituteConstants()
  substituteConstantsCallBack()
  splitConfArray()
  getFileName()
  extractFromResources()
  checkFile()
  printTitle()
  fileContent()
  wrap()
  removeQueryString()
  sortedKeyList()
  linkData()
  getFromMPmap()
  initMPmap_create()


Classe: t3lib_TStemplate  - X-Ref

Template object that is responsible for generating the TypoScript template based on template records.

init()   X-Ref
Initialize
MUST be called directly after creating a new template-object

return: void

getCurrentPageData()   X-Ref
Fetches the "currentPageData" array from cache

NOTE about currentPageData:
It holds information about the TypoScript conditions along with the list of template uid's which is used on the page.
In the getFromCache function in TSFE, currentPageData is used to evaluate if there is a template and if the matching conditions are alright
Unfortunately this does not take into account if the templates in the rowSum of currentPageData has changed composition, eg. due to hidden fields or start/end time.
So if a template is hidden or times out, it'll not be discovered unless the page is regenerated - at least the this->start function must be called, because this will make a new portion of data in currentPageData string

return: mixed        The array $this->currentPageData if found cached in "cache_pagesection". If the string "none" was returned it means the array must be generated and stored in the cache-table

matching($cc)   X-Ref
Fetches data about which TypoScript-matches there are at this page. Then it performs a matchingtest.

param: array        An array with three keys, "all", "rowSum" and "rootLine" - all coming from the $this->currentPageData array
return: array        The input array but with a new key added, "match" which contains the items from the "all" key which when passed to tslib_matchCondition returned true.

start($theRootLine)   X-Ref
This is all about fetching the right TypoScript template structure. If it's not cached then it must be generated and cached!
The method traverse the rootline structure from out to in, fetches the hierarchy of template records and based on this either finds the cached TypoScript template structure or parses the template and caches it for next time.
Sets $this->setup to the parsed TypoScript Template array

param: array        The rootline of the current page (going ALL the way to tree root)
return: void

runThroughTemplates($theRootLine,$start_template_uid=0)   X-Ref
Traverses the rootLine from the root and out. For each page it checks if there is a template record. If there is a template record, $this->processTemplate() is called.
Resets and affects internal variables like $this->constants, $this->config, $this->editorcfg and $this->rowSum
Also creates $this->rootLine which is a root line stopping at the root template (contrary to $GLOBALS['TSFE']->rootLine which goes all the way to the root of the tree

param: array        The rootline of the current page (going ALL the way to tree root)
param: integer        Set specific template record UID to select; this is only for debugging/development/analysis use in backend modules like "Web > Template". For parsing TypoScript templates in the frontend it should be 0 (zero)
return: void

processTemplate($row, $idList,$pid,$templateID='',$templateParent='')   X-Ref
Checks if the template ($row) has some included templates and after including them it fills the arrays with the setup
Builds up $this->rowSum

param: array        A full TypoScript template record (sys_template/static_template/forged "dummy" record made from static template file)
param: string        A list of already processed template ids including the current; The list is on the form "[prefix]_[uid]" where [prefix] is "sys" for "sys_template" records, "static" for "static_template" records and "ext_" for static include files (from extensions). The list is used to check that the recursive inclusion of templates does not go into circles: Simply it is used to NOT include a template record/file which has already BEEN included somewhere in the recursion.
param: array        The PID of the input template record
param: string        The id of the current template. Same syntax as $idList ids, eg. "sys_123"
param: string        Parent template id (during recursive call); Same syntax as $idList ids, eg. "sys_123"
return: void

includeStaticTypoScriptSources($idList,$templateID,$pid,$row)   X-Ref
Includes static template records (from static_template table) and static template files (from extensions) for the input template record row.

param: string        A list of already processed template ids including the current; The list is on the form "[prefix]_[uid]" where [prefix] is "sys" for "sys_template" records, "static" for "static_template" records and "ext_" for static include files (from extensions). The list is used to check that the recursive inclusion of templates does not go into circles: Simply it is used to NOT include a template record/file which has already BEEN included somewhere in the recursion.
param: string        The id of the current template. Same syntax as $idList ids, eg. "sys_123"
param: array        The PID of the input template record
param: array        A full TypoScript template record
return: void

addExtensionStatics($idList,$templateID,$pid,$row)   X-Ref
Adds the default TypoScript files for extensions if any.

param: string        A list of already processed template ids including the current; The list is on the form "[prefix]_[uid]" where [prefix] is "sys" for "sys_template" records, "static" for "static_template" records and "ext_" for static include files (from extensions). The list is used to check that the recursive inclusion of templates does not go into circles: Simply it is used to NOT include a template record/file which has already BEEN included somewhere in the recursion.
param: string        The id of the current template. Same syntax as $idList ids, eg. "sys_123"
param: array        The PID of the input template record
param: array        A full TypoScript template record
return: void

prependStaticExtra($subrow)   X-Ref
Appends (not prepends) additional TypoScript code to static template records/files as set in TYPO3_CONF_VARS
For records the "uid" value is the integer of the "static_template" record
For files the "uid" value is the extension key but with any underscores removed. Possibly with a path if its a static file selected in the template record

param: array        Static template record/file
return: array        Returns the input array where the values for keys "config", "constants" and "editorcfg" may have been modified with prepended code.

versionOL(&$row)   X-Ref
Creating versioning overlay of a sys_template record. This will use either frontend or backend overlay functionality depending on environment.

param: array        Row to overlay.
return: void        Row is passed by reference.

generateConfig()   X-Ref
Generates the configuration array by replacing constants and parsing the whole thing.
Depends on $this->config and $this->constants to be set prior to this! (done by processTemplate/runThroughTemplates)

return: void

procesIncludes()   X-Ref
Searching TypoScript code text (for constants, config (Setup) and editorcfg) for include instructions and does the inclusion if needed.
Modifies

return: void

mergeConstantsFromPageTSconfig($constArray)   X-Ref
Loads Page TSconfig until the outermost template record and parses the configuration - if TSFE.constants object path is found it is merged with the default data in here!

param: array        Constants array, default input.
return: array        Constants array, modified

flattenSetup($setupArray, $prefix, $resourceFlag)   X-Ref
This flattens a hierarchical TypoScript array to $this->flatSetup

param: array        TypoScript array
param: string        Prefix to the object path. Used for recursive calls to this function.
param: boolean        If set, then the constant value will be resolved as a TypoScript "resource" data type. Also used internally during recursive calls so that all subproperties for properties named "file." will be resolved as resources.
return: void

substituteConstants($all)   X-Ref
Substitutes the constants from $this->flatSetup in the text string $all

param: string        TypoScript code text string
return: string        The processed string with all constants found in $this->flatSetup as key/value pairs substituted.

substituteConstantsCallBack($matches)   X-Ref
Call back method for preg_replace_callback in substituteConstants

param: array        Regular expression matches
return: string        Replacement

splitConfArray($conf,$splitCount)   X-Ref
Implementation of the "optionSplit" feature in TypoScript (used eg. for MENU objects)
What it does is to split the incoming TypoScript array so that the values are exploded by certain strings ("||" and "|*|") and each part distributed into individual TypoScript arrays with a similar structure, but individualized values.
The concept is known as "optionSplit" and is rather advanced to handle but quite powerful, in particular for creating menus in TYPO3.

param: array        A TypoScript array
param: integer        The number of items for which to generated individual TypoScript arrays
return: array        The individualized TypoScript array.

getFileName($fileFromSetup)   X-Ref
Returns the reference to a 'resource' in TypoScript.
This could be from the filesystem if '/' is found in the value $fileFromSetup, else from the resource-list

param: string        TypoScript "resource" data type value.
return: string        Resulting filename, if any.

extractFromResources($res,$file)   X-Ref
Searches for the TypoScript resource filename in the list of resource filenames.

param: string        The resource file name list (from $this->setup['resources'])
param: string        The resource value to match
return: string        If found, this will be the resource filename that matched. Typically this file is found in "uploads/tf/"

checkFile($name,$menuArr)   X-Ref
CheckFile runs through the $menuArr and checks every file-reference in $name
(Not used anywhere)

param: string        Property name in the menu array
param: array        Menu array to traverse
return: array        Modified menu array

printTitle($title,$no_title=0,$titleFirst=0)   X-Ref
Compiles the content for the page <title> tag.

param: string        The input title string, typically the "title" field of a page's record.
param: boolean        If set, then only the site title is outputted (from $this->setup['sitetitle'])
param: boolean        If set, then "sitetitle" and $title is swapped
return: string        The page title on the form "[sitetitle]: [input-title]". Not htmlspecialchar()'ed.

fileContent($fName)   X-Ref
Reads the fileContent of $fName and returns it.
Similar to t3lib_div::getUrl()

param: string        Absolute filepath to record
return: string        The content returned

wrap($content,$wrap)   X-Ref
Ordinary "wrapping" function. Used in the tslib_menu class and extension classes instead of the similar function in tslib_cObj

param: string        The content to wrap
param: string        The wrap value, eg. "<b> | </b>"
return: string        Wrapped input string

removeQueryString($url)   X-Ref
Removes the "?" of input string IF the "?" is the last character.

param: string        Input string
return: string        Output string, free of "?" in the end, if any such character.

sortedKeyList($setupArr, $acceptOnlyProperties=FALSE)   X-Ref
Takes a TypoScript array as input and returns an array which contains all integer properties found which had a value (not only properties). The output array will be sorted numerically.
Call it like t3lib_TStemplate::sortedKeyList()

param: array        TypoScript array with numerical array in
param: boolean        If set, then a value is not required - the properties alone will be enough.
return: array        An array with all integer properties listed in numeric order.

linkData($page,$oTarget,$no_cache,$script,$overrideArray='',$addParams='',$typeOverride='')   X-Ref
The mother of all functions creating links/URLs etc in a TypoScript environment.
See the references below.
Basically this function takes care of issues such as type,id,alias and Mount Points, simulate static documents, M5/B6 encoded parameters etc.
It is important to pass all links created through this function since this is the guarantee that globally configured settings for link creating are observed and that your applications will conform to the various/many configuration options in TypoScript Templates regarding this.

param: array        The page record of the page to which we are creating a link. Needed due to fields like uid, alias, target, no_cache, title and sectionIndex_uid.
param: string        Default target string to use IF not $page['target'] is set.
param: boolean        If set, then the "&no_cache=1" parameter is included in the URL.
param: string        Alternative script name if you don't want to use $GLOBALS['TSFE']->config['mainScript'] (normally set to "index.php")
param: array        Array with overriding values for the $page array.
param: string        Additional URL parameters to set in the URL. Syntax is "&foo=bar&foo2=bar2" etc. Also used internally to add parameters if needed.
param: string        If you set this value to something else than a blank string, then the typeNumber used in the link will be forced to this value. Normally the typeNum is based on the target set OR on $GLOBALS['TSFE']->config['config']['forceTypeValue'] if found.
return: array        Contains keys like "totalURL", "url", "sectionIndex", "linkVars", "no_cache", "type", "target" of which "totalURL" is normally the value you would use while the other keys contains various parts that was used to construct "totalURL"

getFromMPmap($pageId=0)   X-Ref
Initializes the automatically created MPmap coming from the "config.MP_mapRootPoints" setting
Can be called many times with overhead only the first time since then the map is generated and cached in memory.

param: integer        Page id to return MPvar value for.
return: void

initMPmap_create($id,$MP_array=array()   X-Ref
Creating MPmap for a certain ID root point.

param: integer        Root id from which to start map creation.
param: array        MP_array passed from root page.
param: integer        Recursion brake. Incremented for each recursive call. 20 is the limit.
return: void



Généré le : Sun Nov 25 17:13:16 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics