Documentation TYPO3 par Ameos

t3lib_TStemplate Class Reference

Inheritance diagram for t3lib_TStemplate:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 init ()
 getCurrentPageData ()
 matching ($cc)
 start ($theRootLine)
 runThroughTemplates ($theRootLine, $start_template_uid=0)
 processTemplate ($row, $idList, $pid, $templateID='', $templateParent='')
 includeStaticTypoScriptSources ($idList, $templateID, $pid, $row)
 addExtensionStatics ($idList, $templateID, $pid, $row)
 prependStaticExtra ($subrow)
 generateConfig ()
 procesIncludes ()
 mergeConstantsFromPageTSconfig ($constArray)
 flattenSetup ($setupArray, $prefix, $resourceFlag)
 substituteConstants ($all)
 splitConfArray ($conf, $splitCount)
 getFileName ($fileFromSetup)
 extractFromResources ($res, $file)
 checkFile ($name, $menuArr)
 printTitle ($title, $no_title=0, $titleFirst=0)
 fileContent ($fName)
 wrap ($content, $wrap)
 removeQueryString ($url)
 sortedKeyList ($setupArr, $acceptOnlyProperties=FALSE)
 linkData ($page, $oTarget, $no_cache, $script, $overrideArray='', $addParams='', $typeOverride='')
 getFromMPmap ($pageId=0)
 initMPmap_create ($id, $MP_array=array(), $level=0)

Public Attributes

 $tt_track = 1
 $forceTemplateParsing = 0
 $matchAlternative = array()
 $matchAll = 0
 $parseEditorCfgField = 0
 $backend_info = 0
 $getFileName_backPath = ''
 $ext_constants_BRP = 0
 $ext_config_BRP = 0
 $ext_editorcfg_BRP = 0
 $ext_regLinenumbers = FALSE
 $uplPath = 'uploads/tf/'
 $tempPath = 'typo3temp/'
 $menuclasses = 'gmenu,tmenu,imgmenu,jsmenu'
 $whereClause = ''
 $debug = 0
 $allowedPaths = array()
 $currentPageData = ''
 $simulationHiddenOrTime = 0
 $loaded = 0
 $setup
 $flatSetup
 $const
 $config = array()
 $constants = array()
 $editorcfg = array()
 $hierarchyInfo = array()
 $hierarchyInfoToRoot = array()
 $nextLevel = 0
 $rootId
 $rootLine
 $absoluteRootLine
 $outermostRootlineIndexWithTemplate = 0
 $rowSum
 $resources = ''
 $sitetitle = ''
 $sections
 $sectionsMatch
 $clearList_const = array()
 $clearList_setup = array()
 $clearList_editorcfg = array()
 $parserErrors = array()
 $setup_constants = array()
 $fileCache = Array()
 $frames = Array()
 $MPmap = ''

Detailed Description

Definition at line 107 of file class.t3lib_tstemplate.php.


Member Function Documentation

t3lib_TStemplate::addExtensionStatics idList,
templateID,
pid,
row
 

Adds the default TypoScript files for extensions if any.

Parameters:
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.
string The id of the current template. Same syntax as $idList ids, eg. "sys_123"
array The PID of the input template record
array A full TypoScript template record
Returns:
void private
See also:
includeStaticTypoScriptSources()

Definition at line 628 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::checkFile name,
menuArr
 

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

Parameters:
string Property name in the menu array
array Menu array to traverse
Returns:
array Modified menu array

Definition at line 1140 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::extractFromResources res,
file
 

Searches for the TypoScript resource filename in the list of resource filenames.

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

Definition at line 1112 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::fileContent fName  ) 
 

Reads the fileContent of $fName and returns it. The same as t3lib_div::getUrl()

Parameters:
string Absolute filepath to record
Returns:
string The content returned
See also:
tslib_cObj::fileResource(), tslib_cObj::MULTIMEDIA(), t3lib_div::getUrl()

Definition at line 1180 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::flattenSetup setupArray,
prefix,
resourceFlag
 

This flattens a hierarchical TypoScript array to $this->flatSetup

Parameters:
array TypoScript array
string Prefix to the object path. Used for recursive calls to this function.
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.
Returns:
void
See also:
generateConfig()

Reimplemented in t3lib_tsparser_ext.

Definition at line 916 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::generateConfig  ) 
 

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)

Returns:
void
See also:
t3lib_TSparser, start()

Definition at line 697 of file class.t3lib_tstemplate.php.

References t3lib_div::intInRange(), t3lib_div::makeInstance(), and t3lib_div::trimExplode().

t3lib_TStemplate::getCurrentPageData  ) 
 

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

Returns:
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
See also:
start(), t3lib_fe::getFromCache()

Definition at line 247 of file class.t3lib_tstemplate.php.

References t3lib_div::md5int().

t3lib_TStemplate::getFileName fileFromSetup  ) 
 

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

Parameters:
string TypoScript "resource" data type value.
Returns:
string Resulting filename, if any.

Definition at line 1055 of file class.t3lib_tstemplate.php.

References t3lib_extMgm::extPath(), t3lib_extMgm::isLoaded(), and t3lib_div::split_fileref().

Referenced by t3lib_tsparser_ext::flattenSetup().

t3lib_TStemplate::getFromMPmap pageId = 0  ) 
 

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.

Parameters:
integer Page id to return MPvar value for.
Returns:
void
See also:
initMPmap_create()
Todo:
Implement some caching of the result between hits. (more than just the memory caching used here)

Definition at line 1405 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::includeStaticTypoScriptSources idList,
templateID,
pid,
row
 

Includes static template records (from static_template table) and static template files (from extensions) for the input template record row.

Parameters:
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.
string The id of the current template. Same syntax as $idList ids, eg. "sys_123"
array The PID of the input template record
array A full TypoScript template record
Returns:
void
See also:
processTemplate()

Definition at line 566 of file class.t3lib_tstemplate.php.

References t3lib_extMgm::extPath(), t3lib_div::inList(), t3lib_div::intExplode(), t3lib_extMgm::isLoaded(), and t3lib_div::trimExplode().

t3lib_TStemplate::init  ) 
 

Initialize MUST be called directly after creating a new template-object

Returns:
void
See also:
tslib_fe::initTemplate()

Definition at line 209 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::initMPmap_create id,
MP_array = array(),
level = 0
 

Creating MPmap for a certain ID root point.

Parameters:
integer Root id from which to start map creation.
array MP_array passed from root page.
integer Recursion brake. Incremented for each recursive call. 20 is the limit.
Returns:
void
See also:
getFromMPvar()

Definition at line 1441 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::linkData page,
oTarget,
no_cache,
script,
overrideArray = '',
addParams = '',
typeOverride = ''
 

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.

Parameters:
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.
string Default target string to use IF not $page['target'] is set.
boolean If set, then the "&no_cache=1" parameter is included in the URL.
string Alternative script name if you don't want to use $GLOBALS['TSFE']->config['mainScript'] (normally set to "index.php")
array Array with overriding values for the $page array.
string Additional URL parameters to set in the URL. Syntax is "&foo=bar&foo2=bar2" etc. Also used internally to add parameters if needed.
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.
Returns:
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"
See also:
tslib_frameset::frameParams(), tslib_cObj::typoLink(), tslib_cObj::SEARCHRESULT(), TSpagegen::pagegenInit(), tslib_menu::link()

Definition at line 1278 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::matching cc  ) 
 

Fetches data about which TypoScript-matches there are at this page. Then it performs a matchingtest.

Parameters:
array An array with three keys, "all", "rowSum" and "rootLine" - all coming from the $this->currentPageData array
Returns:
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.
See also:
t3lib_matchCondition, t3lib_fe::getFromCache()

Definition at line 264 of file class.t3lib_tstemplate.php.

References t3lib_div::makeInstance().

t3lib_TStemplate::mergeConstantsFromPageTSconfig constArray  ) 
 

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!

Parameters:
array Constants array, default input.
Returns:
array Constants array, modified
Todo:
Apply caching to the parsed Page TSconfig. This is done in the other similar functions for both frontend and backend. However, since this functions works for BOTH frontend and backend we will have to either write our own local caching function or (more likely) detect if we are in FE or BE and use caching functions accordingly. Not having caching affects mostly the backend modules inside the "Template" module since the overhead in the frontend is only seen when TypoScript templates are parsed anyways (after which point they are cached anyways...)

Definition at line 887 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::prependStaticExtra subrow  ) 
 

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

Parameters:
array Static template record/file
Returns:
array Returns the input array where the values for keys "config", "constants" and "editorcfg" may have been modified with prepended code. private
See also:
addExtensionStatics(), includeStaticTypoScriptSources()

Definition at line 661 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::printTitle title,
no_title = 0,
titleFirst = 0
 

Compiles the content for the page <title> tag.

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

Definition at line 1157 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::procesIncludes  ) 
 

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

Returns:
void
See also:
t3lib_TSparser, generateConfig()

Definition at line 863 of file class.t3lib_tstemplate.php.

References t3lib_TSparser::checkIncludeLines().

t3lib_TStemplate::processTemplate row,
idList,
pid,
templateID = '',
templateParent = ''
 

Checks if the template ($row) has some included templates and after including them it fills the arrays with the setup Builds up $this->rowSum

Parameters:
array A full TypoScript template record (sys_template/static_template/forged "dummy" record made from static template file)
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.
array The PID of the input template record
string The id of the current template. Same syntax as $idList ids, eg. "sys_123"
string Parent template id (during recursive call); Same syntax as $idList ids, eg. "sys_123"
Returns:
void
See also:
runThroughTemplates()

Definition at line 451 of file class.t3lib_tstemplate.php.

References t3lib_div::_GET(), t3lib_div::inList(), and t3lib_div::intExplode().

t3lib_TStemplate::removeQueryString url  ) 
 

Removes the "?" of input string IF the "?" is the last character.

Parameters:
string Input string
Returns:
string Output string, free of "?" in the end, if any such character.
See also:
linkData(), tslib_frameset::frameParams()

Definition at line 1214 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::runThroughTemplates theRootLine,
start_template_uid = 0
 

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

Parameters:
array The rootline of the current page (going ALL the way to tree root)
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)
Returns:
void
See also:
start()

Definition at line 404 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::sortedKeyList setupArr,
acceptOnlyProperties = FALSE
 

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()

Parameters:
array TypoScript array with numerical array in
boolean If set, then a value is not required - the properties alone will be enough.
Returns:
array An array with all integer properties listed in numeric order.
See also:
tslib_cObj::cObjGet(), tslib_gifBuilder, tslib_imgmenu::makeImageMap()

Definition at line 1231 of file class.t3lib_tstemplate.php.

Referenced by tslib_cObj::cObjGet(), tslib_cObj::FORM(), tslib_gifBuilder::make(), tslib_frameset::make(), tslib_imgmenu::makeImageMap(), t3lib_stdGraphic::splitString(), and tslib_gifBuilder::start().

t3lib_TStemplate::splitConfArray conf,
splitCount
 

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.

Parameters:
array A TypoScript array
integer The number of items for which to generated individual TypoScript arrays
Returns:
array The individualized TypoScript array.
See also:
tslib_cObj::IMGTEXT(), tslib_menu::procesItemStates() &tx_extrepmgm_pi1[extUid]=270&tx_extrepmgm_pi1[tocEl]=289&cHash=6604390b37

Definition at line 978 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::start theRootLine  ) 
 

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

Parameters:
array The rootline of the current page (going ALL the way to tree root)
Returns:
void
See also:
tslib_fe::getConfigArray()

Definition at line 288 of file class.t3lib_tstemplate.php.

References t3lib_pageSelect::getHash(), t3lib_div::md5int(), and t3lib_pageSelect::storeHash().

t3lib_TStemplate::substituteConstants all  ) 
 

Substitutes the constants from $this->flatSetup in the text string $all

Parameters:
string TypoScript code text string
Returns:
string The processed string with all constants found in $this->flatSetup as key/value pairs substituted.
See also:
generateConfig(), flattenSetup()

Reimplemented in t3lib_tsparser_ext.

Definition at line 940 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::wrap content,
wrap
 

Ordinary "wrapping" function. Used in the tslib_menu class and extension classes instead of the similar function in tslib_cObj

Parameters:
string The content to wrap
string The wrap value, eg. "<b> | </b>"
Returns:
string Wrapped input string
See also:
tslib_menu, tslib_cObj::wrap()

Definition at line 1200 of file class.t3lib_tstemplate.php.


Member Data Documentation

t3lib_TStemplate::$const
 

Initial value:

 Array (        // Default TypoScript Constants code:
                '_clear' => '<img src="clear.gif" width="1" height="1" alt="" />',
                '_blackBorderWrap' => '<table border="0" bgcolor="black" cellspacing="0" cellpadding="1"><tr><td> | </td></tr></table>',
                '_tableWrap' => '<table border="0" cellspacing="0" cellpadding="0"> | </table>',
                '_tableWrap_DEBUG' => '<table border="1" cellspacing="0" cellpadding="0"> | </table>',
                '_stdFrameParams' => 'frameborder="no" marginheight="0" marginwidth="0" noresize="noresize"',
                '_stdFramesetParams' => 'border="0" framespacing="0" frameborder="no"'
        )

Definition at line 159 of file class.t3lib_tstemplate.php.

Referenced by t3lib_tsparser_ext::substituteConstants().

t3lib_TStemplate::$flatSetup
 

Initial value:

 Array (
        )

Definition at line 157 of file class.t3lib_tstemplate.php.

t3lib_TStemplate::$setup
 

Initial value:

 Array(                                 // Default TypoScript Setup code
                'styles.' => Array (
                        'insertContent' => 'CONTENT',
                        'insertContent.' => Array (
                                'table' => 'tt_content',
                                'select.' => Array (
                                        'orderBy' => 'sorting',
                                        'where' => 'colPos=0',
                                        'languageField' => 'sys_language_uid'
                                )
                        )
                ),
                'config.' => Array (
                        'extTarget' => '_top',
                        'stat' => 1,
                        'stat_typeNumList' => '0,1'
                )
        )

Definition at line 139 of file class.t3lib_tstemplate.php.


The documentation for this class was generated from the following file:


Généré par Les spécialistes TYPO3 avec  doxygen 1.4.6