tslib_fe Class Reference

List of all members.

Public Member Functions

 tslib_fe ($TYPO3_CONF_VARS, $id, $type, $no_cache='', $cHash='', $jumpurl='', $MP='', $RDCT='')
 connectToMySQL ()
 connectToDB ()
 sendRedirect ()
 initFEuser ()
 initUserGroups ()
 isUserOrGroupSet ()
 checkAlternativeIdMethods ()
 clear_preview ()
 determineId ()
 fetch_the_id ()
 getPageAndRootline ()
 getPageShortcut ($SC, $mode, $thisUid, $itera=20, $pageLog=array())
 checkRootlineForIncludeSection ()
 checkEnableFields ($row, $bypassGroupCheck=FALSE)
 checkPageGroupAccess ($row, $groupList=NULL)
 checkPagerecordForIncludeSection ($row)
 checkIfLoginAllowedInBranch ()
 getPageAccessFailureReasons ()
 setIDfromArgV ()
 getPageAndRootlineWithDomain ($domainStartPage)
 setSysPageWhereClause ()
 findDomainRecord ($recursive=0)
 pageNotFoundAndExit ($reason='', $header='')
 pageNotFoundHandler ($code, $header='', $reason='')
 checkAndSetAlias ()
 idPartsAnalyze ($str)
 mergingWithGetVars ($GET_VARS)
 ADMCMD_preview ()
 ADMCMD_preview_postInit ($previewConfig)
 makeCacheHash ()
 reqCHash ()
 cHashParams ($addQueryParams)
 initTemplate ()
 getFromCache ()
 getFromCache_queryRow ()
 headerNoCache ()
 getHash ()
 getConfigArray ()
 getCompressedTCarray ()
 includeTCA ($TCAloaded=1)
 settingLanguage ()
 settingLocale ()
 checkDataSubmission ()
 fe_tce ()
 locDataCheck ($locationData)
 sendFormmail ()
 extractRecipientCopy ($bodytext)
 setExternalJumpUrl ()
 checkJumpUrlReferer ()
 jumpUrl ()
 setUrlIdToken ()
 isGeneratePage ()
 tempPageCacheContent ()
 realPageCacheContent ()
 setPageCacheContent ($content, $data, $tstamp)
 clearPageCacheContent ()
 clearPageCacheContent_pidList ($pidList)
 pageCachePostProcess (&$row, $type)
 setSysLastChanged ()
 generatePage_preProcessing ()
 generatePage_whichScript ()
 generatePage_postProcessing ()
 INTincScript ()
 INTincScript_loadJSCode ()
 isINTincScript ()
 doXHTML_cleaning ()
 doLocalAnchorFix ()
 isOutputting ()
 processOutput ()
 sendCacheHeaders ()
 isStaticCacheble ()
 contentStrReplace ()
 isEXTincScript ()
 storeSessionData ()
 setParseTime ()
 statistics ()
 previewInfo ()
 hook_eofe ()
 beLoginLinkIPList ()
 addTempContentHttpHeaders ()
 makeSimulFileName ($inTitle, $page, $type, $addParams='', $no_cache=false)
 simulateStaticDocuments_pEnc_onlyP_proc ($linkVars)
 getSimulFileName ()
 setSimulReplacementChar ()
 fileNameASCIIPrefix ($inTitle, $titleChars, $mergeChar='.')
 encryptCharcode ($n, $start, $end, $offset)
 encryptEmail ($string, $back=0)
 codeString ($string, $decode=FALSE)
 roundTripCryptString ($string)
 checkFileInclude ($incFile)
 newCObj ()
 setAbsRefPrefix ()
 baseUrlWrap ($url)
 printError ($label, $header='Error!')
 updateMD5paramsRecord ($hash)
 tidyHTML ($content)
 prefixLocalAnchorsWithScript ()
 workspacePreviewInit ()
 doWorkspacePreview ()
 whichWorkspace ($returnTitle=FALSE)
 getStorageSiterootPids ()
 getPagesTSconfig ()
 setJS ($key, $content='')
 setCSS ($key, $content)
 make_seed ()
 uniqueHash ($str='')
 set_no_cache ()
 set_cache_timeout_default ($seconds)
 get_cache_timeout ()
 plainMailEncoded ($email, $subject, $message, $headers='')
 sL ($input)
 readLLfile ($fileRef)
 getLLL ($index, $LOCAL_LANG)
 initLLvars ()
 csConv ($str, $from='')
 convOutputCharset ($content, $label='')
 convPOSTCharset ()

Public Attributes

 $id = ''
 $type = ''
 $idParts = array()
 $cHash = ''
 $no_cache = ''
 $rootLine = ''
 $page = ''
 $contentPid = 0
 $sys_page = ''
 $jumpurl = ''
 $pageNotFound = 0
 $domainStartPage = 0
 $pageAccessFailureHistory = array()
 $MP = ''
 $RDCT = ''
 $page_cache_reg1 = 0
 $siteScript = ''
 $fe_user = ''
 $loginUser = ''
 $gr_list = ''
 $beUserLogin = ''
 $workspacePreview = ''
 $loginAllowedInBranch = TRUE
 $ADMCMD_preview_BEUSER_uid = 0
 $fePreview = ''
 $showHiddenPage = ''
 $showHiddenRecords = ''
 $simUserGroup = '0'
 $TYPO3_CONF_VARS = array()
 $config = ''
 $TCAcachedExtras = array()
 $tmpl = ''
 $cacheTimeOutDefault = ''
 $cacheContentFlag = ''
 $cacheExpires = 0
 $isClientCachable = FALSE
 $all = ''
 $sPre = ''
 $pSetup = ''
 $newHash = ''
 $getMethodUrlIdToken = ''
 $no_CacheBeforePageGen = ''
 $tempContent = FALSE
 $forceTemplateParsing = ''
 $cHash_array = array()
 $hash_base = ''
 $pagesTSconfig = ''
 $additionalHeaderData = array()
 $additionalJavaScript = array()
 $additionalCSS = array()
 $JSeventFuncCalls
 $JSCode = ''
 $JSImgCode = ''
 $divSection = ''
 $defaultBodyTag = '<body>'
 $debug = ''
 $intTarget = ''
 $extTarget = ''
 $MP_defaults = array()
 $spamProtectEmailAddresses = 0
 $absRefPrefix = ''
 $absRefPrefix_force = 0
 $compensateFieldWidth = ''
 $lockFilePath = ''
 $ATagParams = ''
 $sWordRegEx = ''
 $sWordList = ''
 $linkVars = ''
 $excludeCHashVars = ''
 $displayEditIcons = ''
 $displayFieldEditIcons = ''
 $sys_language_uid = 0
 $sys_language_mode = ''
 $sys_language_content = 0
 $sys_language_contentOL = 0
 $sys_language_isocode = ''
 $applicationData = Array()
 $register = Array()
 $registerStack = Array()
 $cObjectDepthCounter = 50
 $recordRegister = Array()
 $currentRecord = ''
 $accessKey = array()
 $imagesOnPage = array()
 $lastImageInfo = array()
 $uniqueCounter = 0
 $uniqueString = ''
 $indexedDocTitle = ''
 $altPageTitle = ''
 $pEncAllowedParamNames = array()
 $baseUrl = ''
 $anchorPrefix = ''
 $cObj = ''
 $content = ''
 $clientInfo = ''
 $scriptParseTime = 0
 $TCAloaded = 0
 $csConvObj
 $defaultCharSet = 'iso-8859-1'
 $renderCharset = ''
 $metaCharset = ''
 $localeCharset = ''
 $lang = ''
 $langSplitIndex = 0
 $labelsCharset = ''
 $convCharsetToFrom = ''
 $LL_labels_cache = array()
 $LL_files_cache = array()


Detailed Description

Definition at line 213 of file class.tslib_fe.php.


Member Function Documentation

tslib_fe::tslib_fe ( TYPO3_CONF_VARS,
id,
type,
no_cache = '',
cHash = '',
jumpurl = '',
MP = '',
RDCT = '' 
)

Class constructor Takes a number of GET/POST input variable as arguments and stores them internally. The processing of these variables goes on later in this class. Also sets internal clientInfo array (browser information) and a unique string (->uniqueString) for this script instance; A md5 hash of the microtime()

Parameters:
array The global $TYPO3_CONF_VARS array. Will be set internally in ->TYPO3_CONF_VARS
mixed The value of t3lib_div::_GP('id')
integer The value of t3lib_div::_GP('type')
boolean The value of t3lib_div::_GP('no_cache'), evaluated to 1/0
string The value of t3lib_div::_GP('cHash')
string The value of t3lib_div::_GP('jumpurl')
string The value of t3lib_div::_GP('MP')
string The value of t3lib_div::_GP('RDCT')
Returns:
void
See also:
index_ts.php

Definition at line 415 of file class.tslib_fe.php.

tslib_fe::connectToMySQL (  ) 

Connect to MySQL database May exit after outputting an error message or some JavaScript redirecting to the install tool. Use connectToDB() instead!

Returns:
void
Deprecated:

Definition at line 448 of file class.tslib_fe.php.

tslib_fe::connectToDB (  ) 

Connect to SQL database May exit after outputting an error message or some JavaScript redirecting to the install tool.

Returns:
void

Definition at line 458 of file class.tslib_fe.php.

tslib_fe::sendRedirect (  ) 

Looks up the value of $this->RDCT in the database and if it is found to be associated with a redirect URL then the redirection is carried out with a 'Location:' header May exit after sending a location-header.

Returns:
void

Definition at line 505 of file class.tslib_fe.php.

tslib_fe::initFEuser (  ) 

Initializes the front-end login user.

Returns:
void

Definition at line 543 of file class.tslib_fe.php.

tslib_fe::initUserGroups (  ) 

Initializes the front-end user groups. Sets ->loginUser and ->gr_list based on front-end user status.

Returns:
void

Definition at line 593 of file class.tslib_fe.php.

tslib_fe::isUserOrGroupSet (  ) 

Checking if a user is logged in or a group constellation different from "0,-1"

Returns:
boolean TRUE if either a login user is found (array fe_user->user) OR if the gr_list is set to something else than '0,-1' (could be done even without a user being logged in!)

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

tslib_fe::checkAlternativeIdMethods (  ) 

Provides ways to bypass the '?id=[xxx]&type=[xx]' format, using either PATH_INFO or virtual HTML-documents (using Apache mod_rewrite)

Three options: 1) Apache mod_rewrite: Here a .htaccess file maps all .html-files to index.php and then we extract the id and type from the name of that HTML-file. (AKA "simulateStaticDocuments") 2) Use PATH_INFO (also Apache) to extract id and type from that var. Does not require any special modules compiled with apache. (less typical) 3) Using hook which enables features like those provided from "realurl" extension (AKA "Speaking URLs")

Support for RewriteRule to generate (simulateStaticDocuments) With the mod_rewrite compiled into apache, put these lines into a .htaccess in this directory: RewriteEngine On RewriteRule ^[^/]*\.html$ index.php The url must end with '.html' and the format must comply with either of these: 1: '[title].[id].[type].html' - title is just for easy recognition in the logfile!; no practical use of the title for TYPO3. 2: '[id].[type].html' - above, but title is omitted; no practical use of the title for TYPO3. 3: '[id].html' - only id, type is set to the default, zero! NOTE: In all case 'id' may be the uid-number OR the page alias (if any)

Returns:
void &tx_extrepmgm_pi1[extUid]=270&cHash=4ad9d7acb4

Definition at line 653 of file class.tslib_fe.php.

tslib_fe::clear_preview (  ) 

Clears the preview-flags, sets sim_exec_time to current time. Hidden pages must be hidden as default, $GLOBALS['SIM_EXEC_TIME'] is set to $GLOBALS['EXEC_TIME'] in t3lib/config_default.inc. Alter it by adding or subtracting seconds.

Returns:
void

Definition at line 705 of file class.tslib_fe.php.

tslib_fe::determineId (  ) 

Determines the id and evaluates any preview settings Basically this function is about determining whether a backend user is logged in, if he has read access to the page and if he's previewing the page. That all determines which id to show and how to initialize the id.

Returns:
void

Definition at line 718 of file class.tslib_fe.php.

tslib_fe::fetch_the_id (  ) 

Get The Page ID This gets the id of the page, checks if the page is in the domain and if the page is accessible Sets variables such as $this->sys_page, $this->loginUser, $this->gr_list, $this->id, $this->type, $this->domainStartPage, $this->idParts

Returns:
void private

Definition at line 851 of file class.tslib_fe.php.

tslib_fe::getPageAndRootline (  ) 

Gets the page and rootline arrays based on the id, $this->id

If the id does not correspond to a proper page, the 'previous' valid page in the rootline is found If the page is a shortcut (doktype=4), the ->id is loaded with that id

Whether or not the ->id is changed to the shortcut id or the previous id in rootline (eg if a page is hidden), the ->page-array and ->rootline is found and must also be valid.

Sets or manipulates internal variables such as: $this->id, $this->page, $this->rootLine, $this->MP, $this->pageNotFound

Returns:
void private

Definition at line 947 of file class.tslib_fe.php.

tslib_fe::getPageShortcut ( SC,
mode,
thisUid,
itera = 20,
pageLog = array() 
)

Get page shortcut; Finds the records pointed to by input value $SC (the shortcut value)

Parameters:
integer The value of the "shortcut" field from the pages record
integer The shortcut mode: 1 and 2 will select either first subpage or random subpage; the default is the page pointed to by $SC
integer The current page UID of the page which is a shortcut
integer Safety feature which makes sure that the function is calling itself recursively max 20 times (since this function can find shortcuts to other shortcuts to other shortcuts...)
array An array filled with previous page uids tested by the function - new page uids are evaluated against this to avoid going in circles.
Returns:
mixed Returns the page record of the page that the shortcut pointed to. private
See also:
getPageAndRootline()

Definition at line 1047 of file class.tslib_fe.php.

tslib_fe::checkRootlineForIncludeSection (  ) 

Checks the current rootline for defined sections.

Returns:
boolean private

Definition at line 1099 of file class.tslib_fe.php.

tslib_fe::checkEnableFields ( row,
bypassGroupCheck = FALSE 
)

Checks page record for enableFields Returns true if enableFields does not disable the page record. Takes notice of the ->showHiddenPage flag and uses SIM_EXEC_TIME for start/endtime evaluation

Parameters:
array The page record to evaluate (needs fields: hidden, starttime, endtime, fe_group)
boolean Bypass group-check
Returns:
boolean True, if record is viewable.
See also:
tslib_cObj::getTreeList(), checkPagerecordForIncludeSection()

Definition at line 1136 of file class.tslib_fe.php.

tslib_fe::checkPageGroupAccess ( row,
groupList = NULL 
)

Check group access against a page record

Parameters:
array The page record to evaluate (needs field: fe_group)
mixed List of group id's (comma list or array). Default is $this->gr_list
Returns:
boolean True, if group access is granted. private

Definition at line 1152 of file class.tslib_fe.php.

tslib_fe::checkPagerecordForIncludeSection ( row  ) 

Checks page record for include section

Parameters:
array The page record to evaluate (needs fields: extendToSubpages + hidden, starttime, endtime, fe_group)
Returns:
boolean Returns true if either extendToSubpages is not checked or if the enableFields does not disable the page record. private
See also:
checkEnableFields(), tslib_cObj::getTreeList(), checkRootlineForIncludeSection()

Definition at line 1171 of file class.tslib_fe.php.

tslib_fe::checkIfLoginAllowedInBranch (  ) 

Checks if logins are allowed in the current branch of the page tree. Traverses the full root line and returns TRUE if logins are OK, otherwise false (and then the login user must be unset!)

Returns:
boolean returns TRUE if logins are OK, otherwise false (and then the login user must be unset!)

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

tslib_fe::getPageAccessFailureReasons (  ) 

Analysing $this->pageAccessFailureHistory into a summary array telling which features disabled display and on which pages and conditions. That data can be used inside a page-not-found handler

Returns:
array Summary of why page access was not allowed.

Definition at line 1205 of file class.tslib_fe.php.

tslib_fe::setIDfromArgV (  ) 

This checks if there are ARGV-parameters in the QUERY_STRING and if so, those are used for the id $this->id must be 'false' in order for any processing to happen in here If an id/alias value is extracted from the QUERY_STRING it is set in $this->id

Returns:
void private

Definition at line 1237 of file class.tslib_fe.php.

tslib_fe::getPageAndRootlineWithDomain ( domainStartPage  ) 

Gets ->page and ->rootline information based on ->id. ->id may change during this operation. If not inside domain, then default to first page in domain.

Parameters:
integer Page uid of the page where the found domain record is (pid of the domain record)
Returns:
void private

Definition at line 1253 of file class.tslib_fe.php.

tslib_fe::setSysPageWhereClause (  ) 

Sets sys_page where-clause

Returns:
void private

Definition at line 1280 of file class.tslib_fe.php.

tslib_fe::findDomainRecord ( recursive = 0  ) 

Looking up a domain record based on HTTP_HOST

Parameters:
boolean If set, it looks "recursively" meaning that a domain like "123.456.typo3.com" would find a domain record like "typo3.com" if "123.456.typo3.com" or "456.typo3.com" did not exist.
Returns:
integer Returns the page id of the page where the domain record was found. private

Definition at line 1292 of file class.tslib_fe.php.

tslib_fe::pageNotFoundAndExit ( reason = '',
header = '' 
)

Page-not-found handler for use in frontend plugins from extensions.

Parameters:
string Reason text
string HTTP header to send
Returns:
void Function exits.

Definition at line 1312 of file class.tslib_fe.php.

tslib_fe::pageNotFoundHandler ( code,
header = '',
reason = '' 
)

Page not found handler. Exits.

Parameters:
mixed Which type of handling; If a true PHP-boolean or TRUE then a ->printError message is outputted. If integer an error message with that number is shown. Otherwise the $code value is expected to be a "Location:" header value.
string If set, this is passed directly to the PHP function, header()
string If set, error messages will also mention this as the reason for the page-not-found.
Returns:
void (The function exits!)

Definition at line 1327 of file class.tslib_fe.php.

tslib_fe::checkAndSetAlias (  ) 

Fetches the integer page id for a page alias. Looks if ->id is not an integer and if so it will search for a page alias and if found the page uid of that page is stored in $this->id

Returns:
void private

Definition at line 1453 of file class.tslib_fe.php.

tslib_fe::idPartsAnalyze ( str  ) 

Analyzes the second part of a id-string (after the "+"), looking for B6 or M5 encoding and if found it will resolve it and restore the variables in global $_GET If values for ->cHash, ->no_cache, ->jumpurl and ->MP is found, they are also loaded into the internal vars of this class.

Parameters:
string String to analyze
Returns:
void private

Definition at line 1472 of file class.tslib_fe.php.

tslib_fe::mergingWithGetVars ( GET_VARS  ) 

Merging values into the global $_GET

Parameters:
array Array of key/value pairs that will be merged into the current GET-vars. (Non-escaped values)
Returns:
void

Definition at line 1497 of file class.tslib_fe.php.

tslib_fe::ADMCMD_preview (  ) 

Looking for a ADMCMD_prev code, looks it up if found and returns configuration data. Background: From the backend a request to the frontend to show a page, possibly with workspace preview can be "recorded" and associated with a keyword. When the frontend is requested with this keyword the associated request parameters are restored from the database AND the backend user is loaded - only for that request. The main point is that a special URL valid for a limited time, eg. http://localhost/typo3site/index.php?ADMCMD_prev=035d9bf938bd23cb657735f68a8cedbf will open up for a preview that doesn't require login. Thus its useful for sending an email. This can also be used to generate previews of hidden pages, start/endtimes, usergroups and those other settings from the Admin Panel - just not implemented yet.

Returns:
array Preview configuration array from sys_preview record.
See also:
t3lib_BEfunc::compilePreviewKeyword()

Definition at line 1527 of file class.tslib_fe.php.

tslib_fe::ADMCMD_preview_postInit ( previewConfig  ) 

Configuration after initialization of TSFE object. Basically this unsets the BE cookie if any and forces the BE user set according to the preview configuration.

Parameters:
array Preview configuration, see ADMCMD_preview()
Returns:
void
See also:
ADMCMD_preview(), index_ts.php

Definition at line 1595 of file class.tslib_fe.php.

tslib_fe::makeCacheHash (  ) 

Calculates a hash string based on additional parameters in the url. This is used to cache pages with more parameters than just id and type

Returns:
void
See also:
reqCHash()

Definition at line 1627 of file class.tslib_fe.php.

tslib_fe::reqCHash (  ) 

Will disable caching if the cHash value was not set. This function should be called to check the _existence_ of "&cHash" whenever a plugin generating cachable output is using extra GET variables. If there _is_ a cHash value the validation of it automatically takes place in makeCacheHash() (see above)

Returns:
void
See also:
makeCacheHash(), tslib_pibase::pi_cHashCheck()

Definition at line 1651 of file class.tslib_fe.php.

tslib_fe::cHashParams ( addQueryParams  ) 

Splits the input query-parameters into an array with certain parameters filtered out. Used to create the cHash value

Parameters:
string Query-parameters: "&xxx=yyy&zzz=uuu"
Returns:
array Array with key/value pairs of query-parameters WITHOUT a certain list of variable names (like id, type, no_cache etc) and WITH a variable, encryptionKey, specific for this server/installation private
See also:
makeCacheHash(), tslib_cObj::typoLink()

Definition at line 1673 of file class.tslib_fe.php.

tslib_fe::initTemplate (  ) 

Initialize the TypoScript template parser

Returns:
void

Definition at line 1682 of file class.tslib_fe.php.

tslib_fe::getFromCache (  ) 

See if page is in cache and get it if so Stores the page content in $this->content if something is found.

Returns:
void

Definition at line 1694 of file class.tslib_fe.php.

tslib_fe::getFromCache_queryRow (  ) 

Returning the cached version of page with hash = newHash

Returns:
array Cached row, if any. Otherwise void.

Definition at line 1746 of file class.tslib_fe.php.

tslib_fe::headerNoCache (  ) 

Detecting if shift-reload has been clicked Will not be called if re-generation of page happens by other reasons (for instance that the page is not in cache yet!) Also, a backend user MUST be logged in for the shift-reload to be detected due to DoS-attack-security reasons.

Returns:
boolean If shift-reload in client browser has been clicked, disable getting cached page (and regenerate it).

Definition at line 1776 of file class.tslib_fe.php.

tslib_fe::getHash (  ) 

Calculates the cache-hash This hash is unique to the template, the variables ->id, ->type, ->gr_list (list of groups), ->MP (Mount Points) and cHash array Used to get and later store the cached data.

Returns:
string MD5 hash of $this->hash_base which is a serialized version of there variables. private
See also:
getFromCache()

Definition at line 1805 of file class.tslib_fe.php.

tslib_fe::getConfigArray (  ) 

Checks if config-array exists already but if not, gets it

Returns:
void

Definition at line 1825 of file class.tslib_fe.php.

tslib_fe::getCompressedTCarray (  ) 

Get the compressed $TCA array for use in the front-end A compressed $TCA array holds only the ctrl- and feInterface-part for each table. But the column-definitions are omitted in order to save some memory and be more efficient. Operates on the global variable, $TCA

Returns:
void
See also:
includeTCA()

Definition at line 2016 of file class.tslib_fe.php.

tslib_fe::includeTCA ( TCAloaded = 1  ) 

Includes full TCA. Normally in the frontend only a part of the global $TCA array is loaded, for instance the "ctrl" part. Thus it doesn't take up too much memory. If you need the FULL TCA available for some reason (like plugins using it) you should call this function which will include the FULL TCA. Global vars $TCA, $PAGES_TYPES, $LANG_GENERAL_LABELS can/will be affected. The flag $this->TCAloaded will make sure that such an inclusion happens only once since; If $this->TCAloaded is set, nothing is included.

Parameters:
boolean Probably, keep hands of this value. Just don't set it. (This may affect the first-ever time this function is called since if you set it to zero/false any subsequent call will still trigger the inclusion; In other words, this value will be set in $this->TCAloaded after inclusion and therefore if its false, another inclusion will be possible on the next call. See ->getCompressedTCarray())
Returns:
void
See also:
getCompressedTCarray()

Definition at line 2070 of file class.tslib_fe.php.

tslib_fe::settingLanguage (  ) 

Setting the language key that'll be used by the current page. In this function it should be checked, 1) that this