本文整理汇总了PHP中t3lib_BEfunc::getTSCpid方法的典型用法代码示例。如果您正苦于以下问题:PHP t3lib_BEfunc::getTSCpid方法的具体用法?PHP t3lib_BEfunc::getTSCpid怎么用?PHP t3lib_BEfunc::getTSCpid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类t3lib_BEfunc
的用法示例。
在下文中一共展示了t3lib_BEfunc::getTSCpid方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: renderRecord
/**
* This function performs processing on the input $row array and stores internally a corresponding array which contains processed values, ready to pass on to the TCEforms rendering in the frontend!
* The objective with this function is to prepare the content for handling in TCEforms.
* Default values from outside/TSconfig is added by fetchRecord(). In this function default values from TCA is used if a field is NOT defined in $row.
* The resulting, processed row is stored in $this->regTableItems_data[$uniqueItemRef], where $uniqueItemRef is "[tablename]_[id-value]"
*
* @param string The table name
* @param string The uid value of the record (integer). Can also be a string (NEW-something) if the record is a NEW record.
* @param integer The pid integer. For existing records this is of course the row's "pid" field. For new records it can be either a page id (positive) or a pointer to another record from the SAME table (negative) after which the record should be inserted (or on same page)
* @param array The row of the current record. If NEW record, then it may be loaded with default values (by eg. fetchRecord()).
* @return void
* @see fetchRecord()
*/
function renderRecord($table, $id, $pid, $row)
{
global $TCA;
// Init:
$uniqueItemRef = $table . '_' . $id;
t3lib_div::loadTCA($table);
// Fetches the true PAGE TSconfig pid to use later, if needed. (Until now, only for the RTE, but later..., who knows?)
list($tscPID) = t3lib_BEfunc::getTSCpid($table, $id, $pid);
$TSconfig = t3lib_BEfunc::getTCEFORM_TSconfig($table, array_merge($row, array('uid' => $id, 'pid' => $pid)));
// If the record has not already been loaded (in which case we DON'T do it again)...
if (!$this->regTableItems[$uniqueItemRef]) {
$this->regTableItems[$uniqueItemRef] = 1;
// set "loaded" flag.
// If the table is pages, set the previous page id internally.
if ($table == 'pages') {
$this->prevPageID = $id;
}
$this->regTableItems_data[$uniqueItemRef] = $this->renderRecordRaw($table, $id, $pid, $row, $TSconfig, $tscPID);
// Merges the processed array on-top of the raw one - this is done because some things in TCEforms may need access to other fields than those in the columns configuration!
if ($this->addRawData && is_array($row) && is_array($this->regTableItems_data[$uniqueItemRef])) {
$this->regTableItems_data[$uniqueItemRef] = array_merge($row, $this->regTableItems_data[$uniqueItemRef]);
}
}
}
示例2: clear_cache
/**
* Clearing the cache based on a page being updated
* If the $table is 'pages' then cache is cleared for all pages on the same level (and subsequent?)
* Else just clear the cache for the parent page of the record.
*
* @param string Table name of record that was just updated.
* @param integer UID of updated / inserted record
* @return void
*/
function clear_cache($table, $uid)
{
global $TCA, $TYPO3_CONF_VARS;
$uid = intval($uid);
$pageUid = 0;
if (is_array($TCA[$table]) && $uid > 0) {
// Get Page TSconfig relavant:
list($tscPID) = t3lib_BEfunc::getTSCpid($table, $uid, '');
$TSConfig = $this->getTCEMAIN_TSconfig($tscPID);
if (!$TSConfig['clearCache_disable']) {
// If table is "pages":
if (t3lib_extMgm::isLoaded('cms')) {
$list_cache = array();
if ($table === 'pages' || $table === 'pages_language_overlay') {
if ($table === 'pages_language_overlay') {
$pageUid = $this->getPID($table, $uid);
} else {
$pageUid = $uid;
}
// Builds list of pages on the SAME level as this page (siblings)
$res_tmp = $GLOBALS['TYPO3_DB']->exec_SELECTquery('A.pid AS pid, B.uid AS uid', 'pages A, pages B', 'A.uid=' . intval($pageUid) . ' AND B.pid=A.pid AND B.deleted=0');
$pid_tmp = 0;
while ($row_tmp = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_tmp)) {
$list_cache[] = $row_tmp['uid'];
$pid_tmp = $row_tmp['pid'];
// Add children as well:
if ($TSConfig['clearCache_pageSiblingChildren']) {
$res_tmp2 = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', 'pages', 'pid=' . intval($row_tmp['uid']) . ' AND deleted=0');
while ($row_tmp2 = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_tmp2)) {
$list_cache[] = $row_tmp2['uid'];
}
$GLOBALS['TYPO3_DB']->sql_free_result($res_tmp2);
}
}
$GLOBALS['TYPO3_DB']->sql_free_result($res_tmp);
// Finally, add the parent page as well:
$list_cache[] = $pid_tmp;
// Add grand-parent as well:
if ($TSConfig['clearCache_pageGrandParent']) {
$res_tmp = $GLOBALS['TYPO3_DB']->exec_SELECTquery('pid', 'pages', 'uid=' . intval($pid_tmp));
if ($row_tmp = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_tmp)) {
$list_cache[] = $row_tmp['pid'];
}
}
} else {
// For other tables than "pages", delete cache for the records "parent page".
$list_cache[] = $pageUid = intval($this->getPID($table, $uid));
}
// Call pre-processing function for clearing of cache for page ids:
if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearPageCacheEval'])) {
foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearPageCacheEval'] as $funcName) {
$_params = array('pageIdArray' => &$list_cache, 'table' => $table, 'uid' => $uid, 'functionID' => 'clear_cache()');
// Returns the array of ids to clear, false if nothing should be cleared! Never an empty array!
t3lib_div::callUserFunction($funcName, $_params, $this);
}
}
// Delete cache for selected pages:
if (is_array($list_cache)) {
if (TYPO3_UseCachingFramework) {
$pageCache = $GLOBALS['typo3CacheManager']->getCache('cache_pages');
$pageSectionCache = $GLOBALS['typo3CacheManager']->getCache('cache_pagesection');
$pageIds = $GLOBALS['TYPO3_DB']->cleanIntArray($list_cache);
foreach ($pageIds as $pageId) {
$pageCache->flushByTag('pageId_' . $pageId);
$pageSectionCache->flushByTag('pageId_' . $pageId);
}
} else {
$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pages', 'page_id IN (' . implode(',', $GLOBALS['TYPO3_DB']->cleanIntArray($list_cache)) . ')');
$GLOBALS['TYPO3_DB']->exec_DELETEquery('cache_pagesection', 'page_id IN (' . implode(',', $GLOBALS['TYPO3_DB']->cleanIntArray($list_cache)) . ')');
}
}
}
}
// Clear cache for pages entered in TSconfig:
if ($TSConfig['clearCacheCmd']) {
$Commands = t3lib_div::trimExplode(',', strtolower($TSConfig['clearCacheCmd']), 1);
$Commands = array_unique($Commands);
foreach ($Commands as $cmdPart) {
$this->clear_cacheCmd($cmdPart);
}
}
// Call post processing function for clear-cache:
if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearCachePostProc'])) {
$_params = array('table' => $table, 'uid' => $uid, 'uid_page' => $pageUid, 'TSConfig' => $TSConfig);
foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearCachePostProc'] as $_funcRef) {
t3lib_div::callUserFunction($_funcRef, $_params, $this);
}
}
}
}
示例3: isRTEforField
/**
* Checking if the RTE is available/enabled for a certain table/field and if so, it returns true.
* Used to determine if the RTE button should be displayed.
*
* @param string Table name
* @param array Record row (needed, if there are RTE dependencies based on other fields in the record)
* @param string Field name
* @return boolean Returns true if the rich text editor would be enabled/available for the field name specified.
*/
function isRTEforField($table, $row, $field)
{
$specConf = $this->getSpecConfForField($table, $row, $field);
$p = t3lib_BEfunc::getSpecConfParametersFromArray($specConf['rte_transform']['parameters']);
if (isset($specConf['richtext']) && (!$p['flag'] || !$row[$p['flag']])) {
t3lib_BEfunc::fixVersioningPid($table, $row);
list($tscPID, $thePidValue) = t3lib_BEfunc::getTSCpid($table, $row['uid'], $row['pid']);
if ($thePidValue >= 0) {
// If the pid-value is not negative (that is, a pid could NOT be fetched)
$RTEsetup = $GLOBALS['BE_USER']->getTSConfig('RTE', t3lib_BEfunc::getPagesTSconfig($tscPID));
$RTEtypeVal = t3lib_BEfunc::getTCAtypeValue($table, $row);
$thisConfig = t3lib_BEfunc::RTEsetup($RTEsetup['properties'], $table, $field, $RTEtypeVal);
if (!$thisConfig['disabled']) {
return TRUE;
}
}
}
return FALSE;
}
示例4: getTSCpid
/**
* Return TSCpid (cached)
* Using t3lib_BEfunc::getTSCpid()
*
* @param string Tablename
* @param string UID value
* @param string PID value
* @return integer Returns the REAL pid of the record, if possible. If both $uid and $pid is strings, then pid=-1 is returned as an error indication.
* @see t3lib_BEfunc::getTSCpid()
*/
function getTSCpid($table, $uid, $pid)
{
$key = $table . ':' . $uid . ':' . $pid;
if (!isset($this->cache_getTSCpid[$key])) {
$this->cache_getTSCpid[$key] = t3lib_BEfunc::getTSCpid($table, $uid, $pid);
}
return $this->cache_getTSCpid[$key];
}
示例5: drawRTE
/**
* Draws the RTE as an iframe
*
* @param object Reference to parent object, which is an instance of the TCEforms.
* @param string The table name
* @param string The field name
* @param array The current row from which field is being rendered
* @param array Array of standard content for rendering form fields from TCEforms. See TCEforms for details on this. Includes for instance the value and the form field name, java script actions and more.
* @param array "special" configuration - what is found at position 4 in the types configuration of a field from record, parsed into an array.
* @param array Configuration for RTEs; A mix between TSconfig and otherwise. Contains configuration for display, which buttons are enabled, additional transformation information etc.
* @param string Record "type" field value.
* @param string Relative path for images/links in RTE; this is used when the RTE edits content from static files where the path of such media has to be transformed forth and back!
* @param integer PID value of record (true parent page id)
* @return string HTML code for RTE!
*/
function drawRTE($parentObject, $table, $field, $row, $PA, $specConf, $thisConfig, $RTEtypeVal, $RTErelPath, $thePidValue)
{
global $BE_USER, $LANG, $TYPO3_DB, $TYPO3_CONF_VARS;
$this->TCEform = $parentObject;
$inline = $this->TCEform->inline;
$LANG->includeLLFile('EXT:' . $this->ID . '/locallang.xml');
$this->client = $this->clientInfo();
$this->typoVersion = t3lib_div::int_from_ver(TYPO3_version);
$this->userUid = 'BE_' . $BE_USER->user['uid'];
// Draw form element:
if ($this->debugMode) {
// Draws regular text area (debug mode)
$item = parent::drawRTE($this->TCEform, $table, $field, $row, $PA, $specConf, $thisConfig, $RTEtypeVal, $RTErelPath, $thePidValue);
} else {
// Draw real RTE
/* =======================================
* INIT THE EDITOR-SETTINGS
* =======================================
*/
// Set backPath
$this->backPath = $this->TCEform->backPath;
// Get the path to this extension:
$this->extHttpPath = $this->backPath . t3lib_extMgm::extRelPath($this->ID);
// Get the site URL
$this->siteURL = t3lib_div::getIndpEnv('TYPO3_SITE_URL');
// Get the host URL
$this->hostURL = $this->siteURL . TYPO3_mainDir;
// Element ID + pid
$this->elementId = $PA['itemFormElName'];
// Form element name
$this->elementParts = explode('][', preg_replace('/\\]$/', '', preg_replace('/^(TSFE_EDIT\\[data\\]\\[|data\\[)/', '', $this->elementId)));
// Find the page PIDs:
list($this->tscPID, $this->thePid) = t3lib_BEfunc::getTSCpid(trim($this->elementParts[0]), trim($this->elementParts[1]), $thePidValue);
// Record "types" field value:
$this->typeVal = $RTEtypeVal;
// TCA "types" value for record
// Find "thisConfig" for record/editor:
unset($this->RTEsetup);
$this->RTEsetup = $BE_USER->getTSConfig('RTE', t3lib_BEfunc::getPagesTSconfig($this->tscPID));
$this->thisConfig = $thisConfig;
// Special configuration and default extras:
$this->specConf = $specConf;
if ($this->thisConfig['forceHTTPS']) {
$this->extHttpPath = preg_replace('/^(http|https)/', 'https', $this->extHttpPath);
$this->siteURL = preg_replace('/^(http|https)/', 'https', $this->siteURL);
$this->hostURL = preg_replace('/^(http|https)/', 'https', $this->hostURL);
}
/* =======================================
* LANGUAGES & CHARACTER SETS
* =======================================
*/
// Languages: interface and content
$this->language = $LANG->lang;
if ($this->language == 'default' || !$this->language) {
$this->language = 'en';
}
$this->contentTypo3Language = $this->language;
$this->contentISOLanguage = 'en';
$this->contentLanguageUid = $row['sys_language_uid'] > 0 ? $row['sys_language_uid'] : 0;
if (t3lib_extMgm::isLoaded('static_info_tables')) {
if ($this->contentLanguageUid) {
$tableA = 'sys_language';
$tableB = 'static_languages';
$languagesUidsList = $this->contentLanguageUid;
$selectFields = $tableA . '.uid,' . $tableB . '.lg_iso_2,' . $tableB . '.lg_country_iso_2,' . $tableB . '.lg_typo3';
$tableAB = $tableA . ' LEFT JOIN ' . $tableB . ' ON ' . $tableA . '.static_lang_isocode=' . $tableB . '.uid';
$whereClause = $tableA . '.uid IN (' . $languagesUidsList . ') ';
$whereClause .= t3lib_BEfunc::BEenableFields($tableA);
$whereClause .= t3lib_BEfunc::deleteClause($tableA);
$res = $TYPO3_DB->exec_SELECTquery($selectFields, $tableAB, $whereClause);
while ($languageRow = $TYPO3_DB->sql_fetch_assoc($res)) {
$this->contentISOLanguage = strtolower(trim($languageRow['lg_iso_2']) . (trim($languageRow['lg_country_iso_2']) ? '_' . trim($languageRow['lg_country_iso_2']) : ''));
$this->contentTypo3Language = strtolower(trim($languageRow['lg_typo3']));
}
} else {
$this->contentISOLanguage = trim($this->thisConfig['defaultContentLanguage']) ? trim($this->thisConfig['defaultContentLanguage']) : 'en';
$selectFields = 'lg_iso_2, lg_typo3';
$tableAB = 'static_languages';
$whereClause = 'lg_iso_2 = ' . $TYPO3_DB->fullQuoteStr(strtoupper($this->contentISOLanguage), $tableAB);
$res = $TYPO3_DB->exec_SELECTquery($selectFields, $tableAB, $whereClause);
while ($languageRow = $TYPO3_DB->sql_fetch_assoc($res)) {
$this->contentTypo3Language = strtolower(trim($languageRow['lg_typo3']));
}
}
}
//.........这里部分代码省略.........
示例6: processParams
/**
* Processes bparams parameter
* Example value: "data[pages][39][bodytext]|||tt_content|" or "data[tt_content][NEW3fba56fde763d][image]|||gif,jpg,jpeg,tif,bmp,pcx,tga,png,pdf,ai|"
*
* Values:
* 0: form field name reference
* 1: old/unused?
* 2: RTEConfigParams
* 3: allowed types. Eg. "tt_content" or "gif,jpg,jpeg,tif,bmp,pcx,tga,png,pdf,ai"
* 4: allowed file types when tx_dam table. Eg. "gif,jpg,jpeg,tif,bmp,pcx,tga,png,pdf,ai"
*
* @return void
*/
function processParams()
{
$this->act = $this->isParamPassed('act') ? $this->act : $this->getModSettings('act');
$this->mode = $this->isParamPassed('mode') ? $this->mode : $this->getModSettings('mode');
$this->bparams = $this->isParamPassed('bparams') ? $this->bparams : $this->getModSettings('bparams');
$this->reinitParams();
// Set Page TSConfig
$pArr = explode('|', $this->bparams);
if ($this->mode == 'rte') {
$RTEtsConfigParts = explode(':', $pArr[2]);
$tscPID = $RTEtsConfigParts[5];
} else {
$this->formFieldName = $pArr[0];
$elementParts = explode('][', preg_replace('/\\]$/', '', preg_replace('/^(TSFE_EDIT\\[data\\]\\[|data\\[)/', '', $this->formFieldName)));
list($tscPID, $thePid) = t3lib_BEfunc::getTSCpid(trim($elementParts[0]), trim($elementParts[1]), $thePidValue);
}
$this->modPageConfig = $GLOBALS['BE_USER']->getTSConfig('tx_dam.elementBrowser', t3lib_BEfunc::getPagesTSconfig($tscPID));
$this->allowedFileTypes = array();
$this->disallowedFileTypes = array();
switch ((string) $this->mode) {
case 'rte':
break;
case 'db':
$this->allowedTables = $pArr[3];
if ($this->allowedTables === 'tx_dam') {
$this->allowedFileTypes = t3lib_div::trimExplode(',', $pArr[4], true);
$this->disallowedFileTypes = t3lib_div::trimExplode(',', $pArr[5], true);
}
break;
case 'file':
case 'filedrag':
$this->allowedTables = '';
$this->allowedFileTypes = t3lib_div::trimExplode(',', $pArr[3], true);
break;
case 'wizard':
break;
}
if ($this->allowedFileTypes) {
$allAllowed = false;
foreach ($this->allowedFileTypes as $key => $type) {
if ($type === '*') {
$allAllowed = true;
} elseif (substr($type, 0, 1) === '-') {
unset($this->allowedFileTypes[$key]);
$this->disallowedFileTypes[] = substr($type, 1);
}
}
if ($allAllowed) {
$this->allowedFileTypes = array();
}
}
}