Project

General

Profile

Bug #19789 ยป 00010094.patch

Administrator Admin, 2009-01-11 02:08

View differences:

t3lib/class.t3lib_tcemain.php (Arbeitskopie)
*/
function setMirror($mirror) {
if (is_array($mirror)) {
reset($mirror);
while(list($table,$uid_array)=each($mirror)) {
foreach ($mirror as $table => $uid_array) {
if (isset($this->datamap[$table])) {
reset($uid_array);
while (list($id,$uidList) = each($uid_array)) {
foreach ($uid_array as $id => $uidList) {
if (isset($this->datamap[$table][$id])) {
$theIdsInArray = t3lib_div::trimExplode(',',$uidList,1);
while(list(,$copyToUid)=each($theIdsInArray)) {
foreach ($theIdsInArray as $copyToUid) {
$this->datamap[$table][$copyToUid] = $this->datamap[$table][$id];
}
}
......
if (isset($this->datamap['pages'])) { // Set pages first.
$orderOfTables[]='pages';
}
reset($this->datamap);
while (list($table,) = each($this->datamap)) {
if ($table!='pages') {
$orderOfTables[]=$table;
}
}
$orderOfTables = array_unique($orderOfTables + array_keys($this->datamap));
// Process the tables...
foreach($orderOfTables as $table) {
......
$types_fieldConfig = t3lib_BEfunc::getTCAtypes($table,$currentRecord);
$theTypeString = t3lib_BEfunc::getTCAtypeValue($table,$currentRecord);
if (is_array($types_fieldConfig)) {
reset($types_fieldConfig);
while(list(,$vconf) = each($types_fieldConfig)) {
foreach ($types_fieldConfig as $vconf) {
// Write file configuration:
$eFile = t3lib_parsehtml_proc::evalWriteFile($vconf['spec']['static_write'],array_merge($currentRecord,$fieldArray)); // inserted array_merge($currentRecord,$fieldArray) 170502
......
$dbAnalysis = t3lib_div::makeInstance('t3lib_loadDBGroup');
/* @var $dbAnalysis t3lib_loadDBGroup */
$dbAnalysis->start('','files',$tcaFieldConf['MM'],$id);
reset($dbAnalysis->itemArray);
while (list($somekey,$someval)=each($dbAnalysis->itemArray)) {
if ($someval['id']) {
$theFileValues[]=$someval['id'];
foreach ($dbAnalysis->itemArray as $item) {
if ($item['id']) {
$theFileValues[] = $item['id'];
}
}
} else {
......
/* @var $dbAnalysis t3lib_loadDBGroup */
$dbAnalysis->tableArray['files']=array(); // dummy
reset($valueArray);
while (list($key,$theFile)=each($valueArray)) {
foreach ($valueArray as $key => $theFile) {
// explode files
$dbAnalysis->itemArray[]['id']=$theFile;
}
......
*/
function checkValue_group_select_explodeSelectGroupValue($value) {
$valueArray = t3lib_div::trimExplode(',',$value,1);
reset($valueArray);
while(list($key,$newVal)=each($valueArray)) {
foreach ($valueArray as &$newVal) {
$temp=explode('|',$newVal,2);
$valueArray[$key] = str_replace(',','',str_replace('|','',rawurldecode($temp[0])));
$newVal = str_replace(
',',
'',
str_replace('|', '', rawurldecode($temp[0]))
);
}
return $valueArray;
}
......
$this->accumulateForNotifEmail = array(); // Reset notification array
// Traverse command map:
reset($this->cmdmap);
while(list($table,) = each($this->cmdmap)) {
foreach (array_keys($this->cmdmap) as $table) {
// Check if the table may be modified!
$modifyAccessList = $this->checkModifyAccessList($table);
......
* @see deletePages()
*/
function deleteSpecificPage($uid,$forceHardDelete=FALSE) {
global $TCA;
reset ($TCA);
$uid = intval($uid);
if ($uid) {
while (list($table)=each($TCA)) {
foreach (array_keys($GLOBALS['TCA']) as $table) {
if ($table!='pages') {
$mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', $table, 'pid='.intval($uid).$this->deleteClause($table));
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($mres)) {
......
global $TCA;
if (count($this->registerDBList)) {
reset($this->registerDBList);
while(list($table,$records)=each($this->registerDBList)) {
foreach ($this->registerDBList as $table => $records) {
t3lib_div::loadTCA($table);
reset($records);
while(list($uid,$fields)=each($records)) {
foreach ($records as $uid => $fields) {
$newData = array();
$theUidToUpdate = $this->copyMappingArray_merged[$table][$uid];
$theUidToUpdate_saveTo = t3lib_BEfunc::wsMapId($table,$theUidToUpdate);
......
* @return array Array of [table]-[field] pairs to exclude from editing.
*/
function getExcludeListArray() {
global $TCA;
$list = array();
reset($TCA);
while (list($table)=each($TCA)) {
foreach (array_keys($GLOBALS['TCA']) as $table) {
t3lib_div::loadTCA($table);
while (list($field,$config)=each($TCA[$table]['columns'])) {
foreach ($GLOBALS['TCA'][$table]['columns'] as $field => $config) {
if ($config['exclude'] && !t3lib_div::inList($this->BE_USER->groupData['non_exclude_fields'],$table.':'.$field)) {
$list[]=$table.'-'.$field;
}
......
* @return array Returns a list of the tables that are 'present' on the page but not allowed with the page_uid/doktype
*/
function doesPageHaveUnallowedTables($page_uid,$doktype) {
global $TCA, $PAGES_TYPES;
global $PAGES_TYPES;
$page_uid = intval($page_uid);
if (!$page_uid) {
......
return FALSE; // OK...
}
reset ($TCA);
$tableList = array();
while (list($table)=each($TCA)) {
foreach (array_keys($GLOBALS['TCA']) as $table) {
if (!in_array($table,$allowedArray)) { // If the table is not in the allowed list, check if there are records...
$mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery('count(*)', $table, 'pid='.intval($page_uid));
$count = $GLOBALS['TYPO3_DB']->sql_fetch_row($mres);
......
* @return array Array with default values.
*/
function newFieldArray($table) {
global $TCA;
t3lib_div::loadTCA($table);
$fieldArray=Array();
if (is_array($TCA[$table]['columns'])) {
reset ($TCA[$table]['columns']);
while (list($field,$content)=each($TCA[$table]['columns'])) {
if (is_array($GLOBALS['TCA'][$table]['columns'])) {
foreach ($GLOBALS['TCA'][$table]['columns'] as $field => $content) {
if (isset($this->defaultValues[$table][$field])) {
$fieldArray[$field] = $this->defaultValues[$table][$field];
} elseif (isset($content['config']['default'])) {
......
function assemblePermissions($string) {
$keyArr = t3lib_div::trimExplode(',',$string,1);
$value=0;
while(list(,$key)=each($keyArr)) {
foreach ($keyArr as $key) {
if ($key && isset($this->pMap[$key])) {
$value |= $this->pMap[$key];
}
......
* @return void
*/
function dbAnalysisStoreExec() {
reset($this->dbAnalysisStore);
while(list($k,$v)=each($this->dbAnalysisStore)) {
$id = t3lib_BEfunc::wsMapId($v[4],$this->substNEWwithIDs[$v[2]]);
foreach ($this->dbAnalysisStore as $action) {
$id = t3lib_BEfunc::wsMapId($action[4], $this->substNEWwithIDs[$action[2]]);
if ($id) {
$v[2] = $id;
$v[0]->writeMM($v[1],$v[2],$v[3]);
$action[0]->writeMM($$action[1], $id, $action[3]);
}
}
}
......
* @return void
*/
function removeRegisteredFiles() {
reset($this->removeFilesStore);
while(list($k,$v)=each($this->removeFilesStore)) {
unlink($v);
foreach ($this->removeFilesStore as $file) {
unlink($file);
}
}
......
* @return array Array of all TCA table names
*/
function compileAdminTables() {
global $TCA;
reset ($TCA);
$listArr = array();
while (list($table)=each($TCA)) {
$listArr[]=$table;
}
return $listArr;
return array_keys($GLOBALS['TCA']);
}
/**
......
* @return void
*/
function fixUniqueInPid($table,$uid) {
global $TCA;
if ($TCA[$table]) {
if ($GLOBALS['TCA'][$table]) {
t3lib_div::loadTCA($table);
reset ($TCA[$table]['columns']);
$curData=$this->recordInfo($table,$uid,'*');
$newData=array();
while (list($field,$conf)=each($TCA[$table]['columns'])) {
foreach ($GLOBALS['TCA']['columns'] as $field => $conf) {
if ($conf['config']['type']=='input') {
$evalCodesArray = t3lib_div::trimExplode(',',$conf['config']['eval'],1);
if (in_array('uniqueInPid',$evalCodesArray)) {
......
t3lib_div::loadTCA($table);
$prevData=$this->recordInfo($table,$prevUid,'*');
$theFields = t3lib_div::trimExplode(',',$TCA[$table]['ctrl']['copyAfterDuplFields'],1);
reset($theFields);
while(list(,$field)=each($theFields)) {
foreach ($theFields as $field) {
if ($TCA[$table]['columns'][$field] && ($update || !isset($newData[$field]))) {
$newData[$field]=$prevData[$field];
}
......
* @return array Array of fieldnames that are either "group" or "file" types.
*/
function extFileFields($table) {
global $TCA;
$listArr=array();
t3lib_div::loadTCA($table);
if ($TCA[$table]['columns']) {
reset($TCA[$table]['columns']);
while (list($field,$configArr)=each($TCA[$table]['columns'])) {
if (isset($GLOBALS['TCA'][$table]['columns'])) {
foreach ($GLOBALS['TCA'][$table]['columns'] as $field => $configArr) {
if ($configArr['config']['type']=='group' && $configArr['config']['internal_type']=='file') {
$listArr[]=$field;
}
......
* @return array Array of fieldnames
*/
function getUniqueFields($table) {
global $TCA;
$listArr=array();
t3lib_div::loadTCA($table);
if ($TCA[$table]['columns']) {
reset($TCA[$table]['columns']);
while (list($field,$configArr)=each($TCA[$table]['columns'])) {
if ($GLOBALS['TCA'][$table]['columns']) {
foreach ($GLOBALS['TCA'][$table]['columns'] as $field => $configArr) {
if ($configArr['config']['type']==='input') {
$evalCodesArray = t3lib_div::trimExplode(',',$configArr['config']['eval'],1);
if (in_array('uniqueInPid',$evalCodesArray) || in_array('unique',$evalCodesArray)) {
......
if ($uploadFolder && trim($filelist)) {
$uploadPath = $this->destPathFromUploadFolder($uploadFolder);
$fileArray = explode(',',$filelist);
while (list(,$theFile)=each($fileArray)) {
foreach ($fileArray as $theFile) {
$theFile=trim($theFile);
if ($theFile) {
switch($func) {
......
* @return boolean Return true, if permission granted
*/
function noRecordsFromUnallowedTables($inList) {
global $TCA;
reset ($TCA);
$inList = trim($this->rmComma(trim($inList)));
if ($inList && !$this->admin) {
while (list($table) = each($TCA)) {
foreach (array_keys($GLOBALS['TCA']) as $table) {
$mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery('count(*)', $table, 'pid IN ('.$inList.')'.t3lib_BEfunc::deleteClause($table));
$count = $GLOBALS['TYPO3_DB']->sql_fetch_row($mres);
if ($count[0] && ($this->tableReadOnly($table) || !$this->checkModifyAccessList($table))) {
    (1-1/1)