Documentation TYPO3 par Ameos

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)
 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 387 of file class.tslib_fe.php.

References $cHash, $id, $jumpurl, $MP, $no_cache, $RDCT, $type, $TYPO3_CONF_VARS, t3lib_div::callUserFunction(), t3lib_div::clientInfo(), and t3lib_div::makeInstance().

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 420 of file class.tslib_fe.php.

References connectToDB().

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 430 of file class.tslib_fe.php.

References t3lib_div::callUserFunction(), and printError().

Referenced by connectToMySQL().

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 475 of file class.tslib_fe.php.

References updateMD5paramsRecord().

tslib_fe::initFEuser (  ) 

Initializes the front-end login user.

Returns:
void

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

References t3lib_div::_GP(), t3lib_div::callUserFunction(), and t3lib_div::makeInstance().

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 563 of file class.tslib_fe.php.

References t3lib_div::devLog().

Referenced by fetch_the_id().

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 598 of file class.tslib_fe.php.

Referenced by determineId(), and isStaticCacheble().

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 623 of file class.tslib_fe.php.

References t3lib_div::callUserFunction(), t3lib_div::getIndpEnv(), t3lib_div::split_fileref(), and t3lib_div::trimExplode().

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 675 of file class.tslib_fe.php.

Referenced by determineId().

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 688 of file class.tslib_fe.php.

References $simUserGroup, t3lib_div::_GP(), t3lib_div::callUserFunction(), checkIfLoginAllowedInBranch(), clear_preview(), doWorkspacePreview(), fetch_the_id(), isUserOrGroupSet(), t3lib_div::makeInstance(), set_no_cache(), setIDfromArgV(), t3lib_div::testInt(), and whichWorkspace().

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 822 of file class.tslib_fe.php.

References checkAndSetAlias(), findDomainRecord(), getPageAndRootlineWithDomain(), idPartsAnalyze(), initUserGroups(), t3lib_div::makeInstance(), pageNotFoundAndExit(), printError(), set_no_cache(), setSysPageWhereClause(), and whichWorkspace().

Referenced by determineId().

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 916 of file class.tslib_fe.php.

References checkRootlineForIncludeSection(), getPageShortcut(), pageNotFoundAndExit(), and printError().

Referenced by getPageAndRootlineWithDomain().

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 999 of file class.tslib_fe.php.

References $page, t3lib_div::intExplode(), make_seed(), and printError().

Referenced by getPageAndRootline().

tslib_fe::checkRootlineForIncludeSection (  ) 

Checks the current rootline for defined sections.

Returns:
boolean private

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

References checkPagerecordForIncludeSection().

Referenced by getPageAndRootline().

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 1086 of file class.tslib_fe.php.

References checkPageGroupAccess().

Referenced by checkPagerecordForIncludeSection().

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 1102 of file class.tslib_fe.php.

Referenced by checkEnableFields(), and getPageAccessFailureReasons().

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 1121 of file class.tslib_fe.php.

References checkEnableFields().

Referenced by checkRootlineForIncludeSection().

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 1130 of file class.tslib_fe.php.

Referenced by determineId().

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 1155 of file class.tslib_fe.php.

References checkPageGroupAccess().

Referenced by pageNotFoundHandler().

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 1187 of file class.tslib_fe.php.

References t3lib_div::getIndpEnv().

Referenced by determineId().

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 1203 of file class.tslib_fe.php.

References $domainStartPage, and getPageAndRootline().

Referenced by fetch_the_id().

tslib_fe::setSysPageWhereClause (  ) 

Sets sys_page where-clause

Returns:
void private

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

Referenced by fetch_the_id().

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 1242 of file class.tslib_fe.php.

References t3lib_div::getIndpEnv().

Referenced by fetch_the_id().

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 1262 of file class.tslib_fe.php.

References pageNotFoundHandler().

Referenced by fetch_the_id(), getPageAndRootline(), makeCacheHash(), reqCHash(), and settingLanguage().

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 1277 of file class.tslib_fe.php.

References $content, t3lib_div::callUserFunction(), t3lib_div::getFileAbsFileName(), t3lib_div::getIndpEnv(), getPageAccessFailureReasons(), t3lib_div::getURL(), t3lib_div::isFirstPartOfStr(), t3lib_div::locationHeaderUrl(), and printError().

Referenced by pageNotFoundAndExit().

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 1407 of file class.tslib_fe.php.

References t3lib_div::testInt().

Referenced by fetch_the_id().

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 1426 of file class.tslib_fe.php.

References mergingWithGetVars(), and updateMD5paramsRecord().

Referenced by fetch_the_id().

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 1451 of file class.tslib_fe.php.

References t3lib_div::_GET(), t3lib_div::_GETset(), t3lib_div::array_merge_recursive_overrule(), and set_no_cache().

Referenced by idPartsAnalyze().

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 1481 of file class.tslib_fe.php.

References t3lib_div::_GETset(), t3lib_div::_GP(), t3lib_div::_POST(), and t3lib_div::getIndpEnv().

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 1524 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 1556 of file class.tslib_fe.php.

References t3lib_div::_GET(), t3lib_div::cHashParams(), t3lib_div::implodeArrayForUrl(), pageNotFoundAndExit(), set_no_cache(), and t3lib_div::shortMD5().

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 1580 of file class.tslib_fe.php.

References clearPageCacheContent(), pageNotFoundAndExit(), and set_no_cache().

tslib_fe::cHashParams ( addQueryParams  ) 

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