Bug #22410 » 14050_cleaning_t3lib_tsparser_ext.patch
t3lib/class.t3lib_tsparser_ext.php (revision ) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 1999-2010 Kasper Sk?rh?j (kasperYYYY@typo3.com)
|
||
* All rights reserved
|
||
*
|
||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||
* free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* The GNU General Public License can be found at
|
||
* http://www.gnu.org/copyleft/gpl.html.
|
||
* A copy is found in the textfile GPL.txt and important notices to the license
|
||
* from the author is found in LICENSE.txt distributed with these scripts.
|
||
*
|
||
*
|
||
* This script is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
* Copyright notice
|
||
*
|
||
* (c) 1999-2010 Kasper Sk?rh?j (kasperYYYY@typo3.com)
|
||
* All rights reserved
|
||
*
|
||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||
* free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* The GNU General Public License can be found at
|
||
* http://www.gnu.org/copyleft/gpl.html.
|
||
* A copy is found in the textfile GPL.txt and important notices to the license
|
||
* from the author is found in LICENSE.txt distributed with these scripts.
|
||
*
|
||
*
|
||
* This script is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
/**
|
||
* TSParser extension class to t3lib_TStemplate
|
||
*
|
||
... | ... | |
*
|
||
*
|
||
* 105: class t3lib_tsparser_ext extends t3lib_TStemplate
|
||
* 191: function flattenSetup($setupArray, $prefix, $resourceFlag)
|
||
* 191: function flattenSetup($setupArray, $prefix, $resourceFlag)
|
||
* 218: function substituteConstants($all)
|
||
* 218: function substituteConstants($all)
|
||
* 231: function substituteConstantsCallBack($matches)
|
||
* 231: function substituteConstantsCallBack($matches)
|
||
* 261: function substituteCMarkers($all)
|
||
* 261: function substituteCMarkers($all)
|
||
* 284: function generateConfig_constants()
|
||
* 284: function generateConfig_constants()
|
||
* 330: function ext_getSetup($theSetup,$theKey)
|
||
* 330: function ext_getSetup($theSetup,$theKey)
|
||
* 358: function ext_getObjTree($arr, $depth_in, $depthData, $parentType='',$parentValue='', $alphaSort='0')
|
||
* 358: function ext_getObjTree($arr, $depth_in, $depthData, $parentType='',$parentValue='', $alphaSort='0')
|
||
* 463: function lineNumberToScript($lnArr)
|
||
* 463: function lineNumberToScript($lnArr)
|
||
* 494: function makeHtmlspecialchars($theValue)
|
||
* 494: function makeHtmlspecialchars($theValue)
|
||
* 507: function ext_getSearchKeys($arr, $depth_in, $searchString, $keyArray)
|
||
* 507: function ext_getSearchKeys($arr, $depth_in, $searchString, $keyArray)
|
||
* 562: function ext_getRootlineNumber($pid)
|
||
* 562: function ext_getRootlineNumber($pid)
|
||
* 580: function ext_getTemplateHierarchyArr($arr,$depthData, $keyArray,$first=0)
|
||
* 580: function ext_getTemplateHierarchyArr($arr,$depthData, $keyArray,$first=0)
|
||
* 639: function ext_process_hierarchyInfo($depthDataArr,&$pointer)
|
||
* 639: function ext_process_hierarchyInfo($depthDataArr,&$pointer)
|
||
* 670: function ext_outputTS($config, $lineNumbers=0, $comments=0, $crop=0, $syntaxHL=0, $syntaxHLBlockmode=0)
|
||
* 670: function ext_outputTS($config, $lineNumbers=0, $comments=0, $crop=0, $syntaxHL=0, $syntaxHLBlockmode=0)
|
||
* 697: function ext_fixed_lgd($string,$chars)
|
||
* 697: function ext_fixed_lgd($string,$chars)
|
||
* 713: function ext_lnBreakPointWrap($ln,$str)
|
||
* 713: function ext_lnBreakPointWrap($ln,$str)
|
||
* 726: function ext_formatTS($input, $ln, $comments=1, $crop=0)
|
||
* 726: function ext_formatTS($input, $ln, $comments=1, $crop=0)
|
||
* 765: function ext_getFirstTemplate($id,$template_uid=0)
|
||
* 765: function ext_getFirstTemplate($id,$template_uid=0)
|
||
* 785: function ext_getAllTemplates($id)
|
||
* 785: function ext_getAllTemplates($id)
|
||
* 806: function ext_compareFlatSetups($default)
|
||
* 806: function ext_compareFlatSetups($default)
|
||
* 872: function ext_categorizeEditableConstants($editConstArray)
|
||
* 872: function ext_categorizeEditableConstants($editConstArray)
|
||
* 895: function ext_getCategoryLabelArray()
|
||
* 895: function ext_getCategoryLabelArray()
|
||
* 912: function ext_getTypeData($type)
|
||
* 912: function ext_getTypeData($type)
|
||
* 953: function ext_getTSCE_config($category)
|
||
* 953: function ext_getTSCE_config($category)
|
||
* 992: function ext_getKeyImage($key)
|
||
* 992: function ext_getKeyImage($key)
|
||
* 1002: function ext_getTSCE_config_image($imgConf)
|
||
* 1002: function ext_getTSCE_config_image($imgConf)
|
||
* 1026: function ext_resourceDims()
|
||
* 1026: function ext_resourceDims()
|
||
* 1056: function ext_readDirResources($path)
|
||
* 1056: function ext_readDirResources($path)
|
||
* 1071: function readDirectory($path,$type='file')
|
||
* 1071: function readDirectory($path,$type='file')
|
||
* 1096: function ext_fNandV($params)
|
||
* 1096: function ext_fNandV($params)
|
||
* 1114: function ext_printFields($theConstants,$category)
|
||
* 1114: function ext_printFields($theConstants,$category)
|
||
*
|
||
* SECTION: Processing input values
|
||
* SECTION: Processing input values
|
||
* 1408: function ext_regObjectPositions($constants)
|
||
* 1408: function ext_regObjectPositions($constants)
|
||
* 1423: function ext_regObjects($pre)
|
||
* 1423: function ext_regObjects($pre)
|
||
* 1468: function ext_putValueInConf($key, $var)
|
||
* 1468: function ext_putValueInConf($key, $var)
|
||
* 1491: function ext_removeValueInConf($key)
|
||
* 1491: function ext_removeValueInConf($key)
|
||
* 1507: function ext_depthKeys($arr,$settings)
|
||
* 1507: function ext_depthKeys($arr,$settings)
|
||
* 1542: function ext_procesInput($http_post_vars,$http_post_files,$theConstants,$tplRow)
|
||
* 1542: function ext_procesInput($http_post_vars,$http_post_files,$theConstants,$tplRow)
|
||
* 1666: function upload_copy_file($typeDat,&$tplRow,$theRealFileName,$tmp_name)
|
||
* 1666: function upload_copy_file($typeDat,&$tplRow,$theRealFileName,$tmp_name)
|
||
* 1715: function ext_prevPageWithTemplate($id,$perms_clause)
|
||
* 1715: function ext_prevPageWithTemplate($id,$perms_clause)
|
||
* 1731: function ext_setStar($val)
|
||
* 1731: function ext_setStar($val)
|
||
* 1743: function ext_detectAndFixExtensionPrefix($value)
|
||
* 1743: function ext_detectAndFixExtensionPrefix($value)
|
||
*
|
||
* TOTAL FUNCTIONS: 41
|
||
* (This index is automatically created/updated by the extension "extdeveval")
|
||
... | ... | |
*/
|
||
/**
|
||
* TSParser extension class to t3lib_TStemplate
|
||
*
|
||
... | ... | |
* @package TYPO3
|
||
* @subpackage t3lib
|
||
*/
|
||
class t3lib_tsparser_ext extends t3lib_TStemplate {
|
||
class t3lib_tsparser_ext extends t3lib_TStemplate {
|
||
var $edit_divider = '###MOD_TS:EDITABLE_CONSTANTS###'; // This string is used to indicate the point in a template from where the editable constants are listed. Any vars before this point (if it exists though) is regarded as default values.
|
||
var $edit_divider = '###MOD_TS:EDITABLE_CONSTANTS###'; // This string is used to indicate the point in a template from where the editable constants are listed. Any vars before this point (if it exists though) is regarded as default values.
|
||
var $HTMLcolorList = 'aqua,beige,black,blue,brown,fuchsia,gold,gray,green,lime,maroon,navy,olive,orange,purple,red,silver,tan,teal,turquoise,yellow,white';
|
||
// internal
|
||
var $categories = array(
|
||
'basic' => array(), // Constants of superior importance for the template-layout. This is dimensions, imagefiles and enabling of various features. The most basic constants, which you would almost always want to configure.
|
||
'basic' => array(), // Constants of superior importance for the template-layout. This is dimensions, imagefiles and enabling of various features. The most basic constants, which you would almost always want to configure.
|
||
'menu' => array(), // Menu setup. This includes fontfiles, sizes, background images. Depending on the menutype.
|
||
'menu' => array(), // Menu setup. This includes fontfiles, sizes, background images. Depending on the menutype.
|
||
'content' => array(), // All constants related to the display of pagecontent elements
|
||
'content' => array(), // All constants related to the display of pagecontent elements
|
||
'page' => array(), // General configuration like metatags, link targets
|
||
'page' => array(), // General configuration like metatags, link targets
|
||
'advanced' => array(), // Advanced functions, which are used very seldomly.
|
||
'advanced' => array(), // Advanced functions, which are used very seldomly.
|
||
'all' => array() // All constants are put here also!
|
||
'all' => array() // All constants are put here also!
|
||
); // This will be filled with the available categories of the current template.
|
||
); // This will be filled with the available categories of the current template.
|
||
var $subCategories = array(
|
||
// Standard categories:
|
||
// Standard categories:
|
||
'enable' => Array('Enable features', 'a'),
|
||
'dims' => Array('Dimensions, widths, heights, pixels', 'b'),
|
||
'file' => Array('Files', 'c'),
|
||
'typo' => Array('Typography', 'd'),
|
||
'typo' => Array('Typography', 'd'),
|
||
'color' => Array('Colors', 'e'),
|
||
'links' => Array('Links and targets', 'f'),
|
||
'language' => Array('Language specific constants', 'g'),
|
||
// subcategories based on the default content elements
|
||
// subcategories based on the default content elements
|
||
'cheader' => Array('Content: \'Header\'', 'ma'),
|
||
'cheader_g' => Array('Content: \'Header\', Graphical', 'ma'),
|
||
'ctext' => Array('Content: \'Text\'', 'mb'),
|
||
... | ... | |
var $resourceDimensions = array();
|
||
var $dirResources = array();
|
||
var $backend_info=1;
|
||
var $backend_info = 1;
|
||
// tsconstanteditor
|
||
var $ext_inBrace=0;
|
||
var $ext_inBrace = 0;
|
||
// tsbrowser
|
||
var $tsbrowser_searchKeys = array();
|
||
var $tsbrowser_depthKeys = array();
|
||
var $constantMode='';
|
||
var $constantMode = '';
|
||
var $regexMode='';
|
||
var $regexMode = '';
|
||
var $fixedLgd='';
|
||
var $fixedLgd = '';
|
||
var $resourceCheck=0;
|
||
var $resourceCheck = 0;
|
||
var $ext_lineNumberOffset=0;
|
||
var $ext_lineNumberOffset = 0;
|
||
var $ext_localGfxPrefix='';
|
||
var $ext_localGfxPrefix = '';
|
||
var $ext_localWebGfxPrefix='';
|
||
var $ext_localWebGfxPrefix = '';
|
||
var $ext_expandAllNotes=0;
|
||
var $ext_expandAllNotes = 0;
|
||
var $ext_noPMicons=0;
|
||
var $ext_noPMicons = 0;
|
||
var $ext_noSpecialCharsOnLabels=0;
|
||
var $ext_noSpecialCharsOnLabels = 0;
|
||
var $ext_listOfTemplatesArr=array();
|
||
var $ext_listOfTemplatesArr = array();
|
||
var $ext_lineNumberOffset_mode='';
|
||
var $ext_lineNumberOffset_mode = '';
|
||
var $ext_dontCheckIssetValues=0; // Dont change...
|
||
var $ext_dontCheckIssetValues = 0; // Dont change...
|
||
var $ext_noCEUploadAndCopying=0;
|
||
var $ext_noCEUploadAndCopying = 0;
|
||
var $ext_printAll=0;
|
||
var $ext_printAll = 0;
|
||
var $ext_CEformName='forms[0]';
|
||
var $ext_CEformName = 'forms[0]';
|
||
var $ext_defaultOnlineResourceFlag=0;
|
||
var $ext_defaultOnlineResourceFlag = 0;
|
||
var $doNotSortCategoriesBeforeMakingForm = FALSE;
|
||
// ts analyzer
|
||
var $templateTitles=array();
|
||
var $templateTitles = array();
|
||
/**
|
||
... | ... | |
* @param [type] $resourceFlag: ...
|
||
* @return [type] ...
|
||
*/
|
||
function flattenSetup($setupArray, $prefix, $resourceFlag) {
|
||
function flattenSetup($setupArray, $prefix, $resourceFlag) {
|
||
if (is_array($setupArray)) {
|
||
if (is_array($setupArray)) {
|
||
$this->getFileName_backPath=PATH_site; // Setting absolute prefixed path for relative resources.
|
||
$this->getFileName_backPath = PATH_site; // Setting absolute prefixed path for relative resources.
|
||
foreach ($setupArray as $key => $val) {
|
||
if ($prefix || substr($key,0,16)!='TSConstantEditor') { // We don't want 'TSConstantEditor' in the flattend setup.
|
||
if ($prefix || substr($key, 0, 16) != 'TSConstantEditor') { // We don't want 'TSConstantEditor' in the flattend setup.
|
||
if (is_array($val)) {
|
||
if (is_array($val)) {
|
||
$this->flattenSetup($val,$prefix.$key, ($key=='file.'));
|
||
$this->flattenSetup($val, $prefix . $key, ($key == 'file.'));
|
||
} elseif ($resourceFlag && $this->resourceCheck) {
|
||
$this->flatSetup[$prefix.$key] = $this->getFileName($val);
|
||
$this->flatSetup[$prefix . $key] = $this->getFileName($val);
|
||
if ($this->removeFromGetFilePath && substr($this->flatSetup[$prefix.$key],0,strlen($this->removeFromGetFilePath))==$this->removeFromGetFilePath) {
|
||
if ($this->removeFromGetFilePath &&
|
||
substr($this->flatSetup[$prefix . $key], 0, strlen($this->removeFromGetFilePath)) == $this->removeFromGetFilePath) {
|
||
$this->flatSetup[$prefix.$key] = substr($this->flatSetup[$prefix.$key],strlen($this->removeFromGetFilePath));
|
||
$this->flatSetup[$prefix . $key] = substr($this->flatSetup[$prefix . $key], strlen($this->removeFromGetFilePath));
|
||
}
|
||
} else {
|
||
$this->flatSetup[$prefix.$key] = $val;
|
||
$this->flatSetup[$prefix . $key] = $val;
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $all: ...
|
||
* @return [type] ...
|
||
*/
|
||
function substituteConstants($all) {
|
||
function substituteConstants($all) {
|
||
$this->Cmarker = substr(md5(uniqid('')),0,6);
|
||
$this->Cmarker = substr(md5(uniqid('')), 0, 6);
|
||
return preg_replace_callback('/\{\$(.[^}]+)\}/', array($this, 'substituteConstantsCallBack'), $all);
|
||
}
|
||
... | ... | |
* @see substituteConstants()
|
||
*/
|
||
function substituteConstantsCallBack($matches) {
|
||
switch($this->constantMode) {
|
||
switch ($this->constantMode) {
|
||
case 'const':
|
||
$ret_val = isset($this->flatSetup[$matches[1]]) && !is_array($this->flatSetup[$matches[1]]) ?
|
||
$ret_val = isset($this->flatSetup[$matches[1]]) && !is_array($this->flatSetup[$matches[1]]) ?
|
||
'##'.$this->Cmarker.'_B##'.$matches[0].'##'.$this->Cmarker.'_E##' :
|
||
'##' . $this->Cmarker . '_B##' . $matches[0] . '##' . $this->Cmarker . '_E##' :
|
||
$matches[0];
|
||
break;
|
||
$matches[0];
|
||
break;
|
||
case 'subst':
|
||
$ret_val = isset($this->flatSetup[$matches[1]]) && !is_array($this->flatSetup[$matches[1]]) ?
|
||
$ret_val = isset($this->flatSetup[$matches[1]]) && !is_array($this->flatSetup[$matches[1]]) ?
|
||
'##'.$this->Cmarker.'_B##'.$this->flatSetup[$matches[1]].'##'.$this->Cmarker.'_E##' :
|
||
'##' . $this->Cmarker . '_B##' . $this->flatSetup[$matches[1]] . '##' . $this->Cmarker . '_E##' :
|
||
$matches[0];
|
||
break;
|
||
$matches[0];
|
||
break;
|
||
case 'untouched':
|
||
$ret_val = $matches[0];
|
||
break;
|
||
break;
|
||
default:
|
||
$ret_val = isset($this->flatSetup[$matches[1]]) && !is_array($this->flatSetup[$matches[1]]) ?
|
||
$ret_val = isset($this->flatSetup[$matches[1]]) && !is_array($this->flatSetup[$matches[1]]) ?
|
||
$this->flatSetup[$matches[1]] :
|
||
$matches[0];
|
||
$this->flatSetup[$matches[1]] :
|
||
$matches[0];
|
||
}
|
||
return $ret_val;
|
||
... | ... | |
* @param [type] $all: ...
|
||
* @return [type] ...
|
||
*/
|
||
function substituteCMarkers($all) {
|
||
function substituteCMarkers($all) {
|
||
switch($this->constantMode) {
|
||
switch ($this->constantMode) {
|
||
case 'const':
|
||
$all = str_replace('##'.$this->Cmarker.'_B##', '<font color="green"><strong>', $all);
|
||
$all = str_replace('##' . $this->Cmarker . '_B##', '<font color="green"><strong>', $all);
|
||
$all = str_replace('##'.$this->Cmarker.'_E##', '</strong></font>', $all);
|
||
$all = str_replace('##' . $this->Cmarker . '_E##', '</strong></font>', $all);
|
||
break;
|
||
case 'subst':
|
||
$all = str_replace('##'.$this->Cmarker.'_B##', '<font color="green"><strong>', $all);
|
||
$all = str_replace('##' . $this->Cmarker . '_B##', '<font color="green"><strong>', $all);
|
||
$all = str_replace('##'.$this->Cmarker.'_E##', '</strong></font>', $all);
|
||
$all = str_replace('##' . $this->Cmarker . '_E##', '</strong></font>', $all);
|
||
break;
|
||
default:
|
||
$all = $all;
|
||
... | ... | |
*
|
||
* @return [type] ...
|
||
*/
|
||
function generateConfig_constants() {
|
||
function generateConfig_constants() {
|
||
// These vars are also set lateron...
|
||
$this->setup['resources'] = $this->resources;
|
||
$this->setup['sitetitle'] = $this->sitetitle;
|
||
// parse constants
|
||
$constants = t3lib_div::makeInstance('t3lib_TSparser');
|
||
$constants->regComments=1; // Register comments!
|
||
$constants->regComments = 1; // Register comments!
|
||
$constants->setup = $this->const;
|
||
$constants->setup = $this->mergeConstantsFromPageTSconfig($constants->setup);
|
||
/* @var $matchObj t3lib_matchCondition_frontend */
|
||
$matchObj = t3lib_div::makeInstance('t3lib_matchCondition_frontend');
|
||
$matchObj->setSimulateMatchResult(true); // Matches ALL conditions in TypoScript
|
||
$matchObj->setSimulateMatchResult(TRUE); // Matches ALL conditions in TypoScript
|
||
$c=0;
|
||
$c = 0;
|
||
$cc=count($this->constants);
|
||
$cc = count($this->constants);
|
||
foreach ($this->constants as $str) {
|
||
$c++;
|
||
if ($c==$cc) {
|
||
if ($c == $cc) {
|
||
if (strstr($str,$this->edit_divider)) {
|
||
if (strstr($str, $this->edit_divider)) {
|
||
$parts = explode($this->edit_divider,$str,2);
|
||
$parts = explode($this->edit_divider, $str, 2);
|
||
$str=$parts[1];
|
||
$str = $parts[1];
|
||
$constants->parse($parts[0],$matchObj);
|
||
$constants->parse($parts[0], $matchObj);
|
||
}
|
||
$this->flatSetup = Array();
|
||
$this->flattenSetup($constants->setup,'','');
|
||
$this->flattenSetup($constants->setup, '', '');
|
||
$defaultConstants=$this->flatSetup;
|
||
$defaultConstants = $this->flatSetup;
|
||
}
|
||
$constants->parse($str,$matchObj);
|
||
$constants->parse($str, $matchObj);
|
||
}
|
||
$this->flatSetup = Array();
|
||
$this->flattenSetup($constants->setup,'','');
|
||
$this->flattenSetup($constants->setup, '', '');
|
||
$this->setup['constants'] = $constants->setup;
|
||
return $this->ext_compareFlatSetups($defaultConstants);
|
||
... | ... | |
* @param [type] $theKey: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getSetup($theSetup,$theKey) {
|
||
function ext_getSetup($theSetup, $theKey) {
|
||
$parts = explode('.',$theKey,2);
|
||
$parts = explode('.', $theKey, 2);
|
||
if (strcmp($parts[0],'') && is_array($theSetup[$parts[0].'.'])) {
|
||
if (strcmp($parts[0], '') && is_array($theSetup[$parts[0] . '.'])) {
|
||
if (strcmp(trim($parts[1]),'')) {
|
||
if (strcmp(trim($parts[1]), '')) {
|
||
return $this->ext_getSetup($theSetup[$parts[0].'.'],trim($parts[1]));
|
||
return $this->ext_getSetup($theSetup[$parts[0] . '.'], trim($parts[1]));
|
||
} else {
|
||
return array($theSetup[$parts[0].'.'], $theSetup[$parts[0]]);
|
||
return array($theSetup[$parts[0] . '.'], $theSetup[$parts[0]]);
|
||
}
|
||
} else {
|
||
if (strcmp(trim($theKey),'')) {
|
||
if (strcmp(trim($theKey), '')) {
|
||
return array(array(),$theSetup[$theKey]);
|
||
return array(array(), $theSetup[$theKey]);
|
||
} else {
|
||
return array($theSetup,'');
|
||
return array($theSetup, '');
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param boolean $alphaSort sorts the array keys / tree by alphabet when set to 1
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getObjTree($arr, $depth_in, $depthData, $parentType='',$parentValue='', $alphaSort='0') {
|
||
function ext_getObjTree($arr, $depth_in, $depthData, $parentType = '', $parentValue = '', $alphaSort = '0') {
|
||
$HTML='';
|
||
$HTML = '';
|
||
$a=0;
|
||
$a = 0;
|
||
if($alphaSort == '1') {
|
||
if ($alphaSort == '1') {
|
||
ksort($arr);
|
||
}
|
||
$keyArr_num=array();
|
||
$keyArr_num = array();
|
||
$keyArr_alpha=array();
|
||
$keyArr_alpha = array();
|
||
foreach ($arr as $key => $value) {
|
||
if (substr($key,-2)!='..') { // Don't do anything with comments / linenumber registrations...
|
||
if (substr($key, -2) != '..') { // Don't do anything with comments / linenumber registrations...
|
||
$key=preg_replace('/\.$/','',$key);
|
||
$key = preg_replace('/\.$/', '', $key);
|
||
if (substr($key,-1)!='.') {
|
||
if (substr($key, -1) != '.') {
|
||
if (t3lib_div::testInt($key)) {
|
||
if (t3lib_div::testInt($key)) {
|
||
$keyArr_num[$key]=$arr[$key];
|
||
$keyArr_num[$key] = $arr[$key];
|
||
} else {
|
||
$keyArr_alpha[$key]=$arr[$key];
|
||
$keyArr_alpha[$key] = $arr[$key];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
ksort($keyArr_num);
|
||
$keyArr=$keyArr_num+$keyArr_alpha;
|
||
$keyArr = $keyArr_num + $keyArr_alpha;
|
||
$c=count($keyArr);
|
||
$c = count($keyArr);
|
||
if ($depth_in) {$depth_in = $depth_in.'.';}
|
||
if ($depth_in) {
|
||
$depth_in = $depth_in . '.';
|
||
}
|
||
foreach ($keyArr as $key => $value) {
|
||
$a++;
|
||
$depth=$depth_in.$key;
|
||
$depth = $depth_in . $key;
|
||
if ($this->bType!='const' || substr($depth,0,1)!='_') { // this excludes all constants starting with '_' from being shown.
|
||
if ($this->bType != 'const' || substr($depth, 0, 1) != '_') { // this excludes all constants starting with '_' from being shown.
|
||
$goto = substr(md5($depth),0,6);
|
||
$goto = substr(md5($depth), 0, 6);
|
||
$deeper = (is_array($arr[$key.'.']) && ($this->tsbrowser_depthKeys[$depth] || $this->ext_expandAllNotes)) ? 1 : 0;
|
||
$deeper = (is_array($arr[$key . '.']) && ($this->tsbrowser_depthKeys[$depth] || $this->ext_expandAllNotes)) ? 1 : 0;
|
||
$PM = 'join';
|
||
$LN = ($a==$c)?'blank':'line';
|
||
$LN = ($a == $c) ? 'blank' : 'line';
|
||
$BTM = ($a==$c)?'bottom':'';
|
||
$BTM = ($a == $c) ? 'bottom' : '';
|
||
$PM = is_array($arr[$key.'.']) && !$this->ext_noPMicons ? ($deeper ? 'minus':'plus') : 'join';
|
||
$PM = is_array($arr[$key . '.']) && !$this->ext_noPMicons ? ($deeper ? 'minus' : 'plus') : 'join';
|
||
$HTML.=$depthData;
|
||
$HTML .= $depthData;
|
||
$theIcon='<img src="'.$GLOBALS['BACK_PATH'].'gfx/ol/'.$PM.$BTM.'.gif" width="18" height="16" align="top" border="0" alt="" />';
|
||
$theIcon = '<img src="' . $GLOBALS['BACK_PATH'] . 'gfx/ol/' . $PM . $BTM . '.gif" width="18" height="16" align="top" border="0" alt="" />';
|
||
if ($PM=='join') {
|
||
if ($PM == 'join') {
|
||
$HTML.=$theIcon;
|
||
$HTML .= $theIcon;
|
||
} else {
|
||
$aHref='index.php?id=' . $GLOBALS['SOBE']->id .
|
||
$aHref = 'index.php?id=' . $GLOBALS['SOBE']->id .
|
||
'&tsbr[' . $depth.']=' . ($deeper ? 0 : 1) .
|
||
'&tsbr[' . $depth . ']=' . ($deeper ? 0 : 1) .
|
||
(t3lib_div::_GP("breakPointLN") ? '&breakPointLN=' . t3lib_div::_GP("breakPointLN") : '') .
|
||
(t3lib_div::_GP("breakPointLN") ? '&breakPointLN=' . t3lib_div::_GP("breakPointLN") : '') .
|
||
'#' .$goto;
|
||
'#' . $goto;
|
||
$HTML.='<a name="'.$goto.'" href="'.htmlspecialchars($aHref).'">'.$theIcon.'</a>';
|
||
$HTML .= '<a name="' . $goto . '" href="' . htmlspecialchars($aHref) . '">' . $theIcon . '</a>';
|
||
}
|
||
$label = $key;
|
||
if (t3lib_div::inList('types,resources,sitetitle',$depth) && $this->bType=='setup') { // Read only...
|
||
if (t3lib_div::inList('types,resources,sitetitle', $depth) && $this->bType == 'setup') { // Read only...
|
||
$label='<font color="#666666">'.$label.'</font>';
|
||
$label = '<font color="#666666">' . $label . '</font>';
|
||
} else {
|
||
if ($this->linkObjects) {
|
||
if ($this->linkObjects) {
|
||
$aHref = 'index.php?id='.$GLOBALS['SOBE']->id .
|
||
$aHref = 'index.php?id=' . $GLOBALS['SOBE']->id .
|
||
'&sObj=' . $depth .
|
||
(t3lib_div::_GP("breakPointLN") ? '&breakPointLN=' . t3lib_div::_GP("breakPointLN") : '');
|
||
'&sObj=' . $depth .
|
||
(t3lib_div::_GP("breakPointLN") ? '&breakPointLN=' . t3lib_div::_GP("breakPointLN") : '');
|
||
if ($this->bType!='const') {
|
||
if ($this->bType != 'const') {
|
||
$ln = is_array($arr[$key.'.ln..']) ? 'Defined in: '.$this->lineNumberToScript($arr[$key.'.ln..']) : 'N/A';
|
||
$ln = is_array($arr[$key . '.ln..']) ? 'Defined in: ' . $this->lineNumberToScript($arr[$key . '.ln..']) : 'N/A';
|
||
} else {
|
||
$ln = '';
|
||
}
|
||
if ($this->tsbrowser_searchKeys[$depth] & 4) { $label = '<strong><font color="red">'.$label.'</font></strong>'; } // The key has matched the search string
|
||
if ($this->tsbrowser_searchKeys[$depth] & 4) {
|
||
$label = '<strong><font color="red">' . $label . '</font></strong>';
|
||
} // The key has matched the search string
|
||
$label = '<a href="'.htmlspecialchars($aHref).'" title="'.htmlspecialchars($ln).'">'.$label.'</a>';
|
||
$label = '<a href="' . htmlspecialchars($aHref) . '" title="' . htmlspecialchars($ln) . '">' . $label . '</a>';
|
||
}
|
||
}
|
||
$HTML.='['.$label.']';
|
||
$HTML .= '[' . $label . ']';
|
||
if (isset($arr[$key])) {
|
||
if (isset($arr[$key])) {
|
||
$theValue = $arr[$key];
|
||
if ($this->fixedLgd) {
|
||
if ($this->fixedLgd) {
|
||
$imgBlocks = ceil(1+strlen($depthData)/77);
|
||
$imgBlocks = ceil(1 + strlen($depthData) / 77);
|
||
$lgdChars = 68-ceil(strlen('['.$key.']')*0.8)-$imgBlocks*3;
|
||
$lgdChars = 68 - ceil(strlen('[' . $key . ']') * 0.8) - $imgBlocks * 3;
|
||
$theValue = $this->ext_fixed_lgd($theValue,$lgdChars);
|
||
$theValue = $this->ext_fixed_lgd($theValue, $lgdChars);
|
||
}
|
||
if ($this->tsbrowser_searchKeys[$depth] & 2) { // The value has matched the search string
|
||
if ($this->tsbrowser_searchKeys[$depth] & 2) { // The value has matched the search string
|
||
$HTML.=' = <strong><font color="red">'.$this->makeHtmlspecialchars($theValue).'</font></strong>';
|
||
$HTML .= ' = <strong><font color="red">' . $this->makeHtmlspecialchars($theValue) . '</font></strong>';
|
||
} else {
|
||
$HTML.=' = <strong>'.$this->makeHtmlspecialchars($theValue).'</strong>';
|
||
$HTML .= ' = <strong>' . $this->makeHtmlspecialchars($theValue) . '</strong>';
|
||
}
|
||
if ($this->ext_regComments && isset($arr[$key.'..'])) {
|
||
if ($this->ext_regComments && isset($arr[$key . '..'])) {
|
||
$comment = $arr[$key.'..'];
|
||
$comment = $arr[$key . '..'];
|
||
if (!preg_match('/### <INCLUDE_TYPOSCRIPT:.*/', $comment)) { // Skip INCLUDE_TYPOSCRIPT comments, they are almost useless
|
||
if (!preg_match('/### <INCLUDE_TYPOSCRIPT:.*/', $comment)) { // Skip INCLUDE_TYPOSCRIPT comments, they are almost useless
|
||
$comment = preg_replace('/[\r\n]/', ' ', $comment); // Remove linebreaks, replace with ' '
|
||
$comment = preg_replace('/[\r\n]/', ' ', $comment); // Remove linebreaks, replace with ' '
|
||
$comment = preg_replace('/[#\*]{2,}/', '', $comment); // Remove # and * if more than twice in a row
|
||
$comment = preg_replace('/[#\*]{2,}/', '', $comment); // Remove # and * if more than twice in a row
|
||
$comment = preg_replace('/^[#\*\s]+/', '# ', $comment); // Replace leading # (just if it exists) and add it again. Result: Every comment should be prefixed by a '#'.
|
||
$comment = preg_replace('/^[#\*\s]+/', '# ', $comment); // Replace leading # (just if it exists) and add it again. Result: Every comment should be prefixed by a '#'.
|
||
$comment = $this->makeHtmlspecialchars($comment); // Masking HTML Tags: Replace < with < and > with >
|
||
$comment = $this->makeHtmlspecialchars($comment); // Masking HTML Tags: Replace < with < and > with >
|
||
$HTML.= ' <span class="comment">'.trim($comment).'</span>';
|
||
$HTML .= ' <span class="comment">' . trim($comment) . '</span>';
|
||
}
|
||
}
|
||
}
|
||
$HTML.='<br />';
|
||
$HTML .= '<br />';
|
||
if ($deeper) {
|
||
if ($deeper) {
|
||
$HTML.=$this->ext_getObjTree($arr[$key.'.'], $depth, $depthData.'<img src="'.$GLOBALS['BACK_PATH'].'gfx/ol/'.$LN.'.gif" width="18" height="16" align="top" alt="" />', '' /* not used: $validate_info[$key] */, $arr[$key], $alphaSort);
|
||
$HTML .= $this->ext_getObjTree(
|
||
$arr[$key . '.'],
|
||
$depth,
|
||
$depthData . '<img src="' . $GLOBALS['BACK_PATH'] . 'gfx/ol/' . $LN . '.gif" width="18" height="16" align="top" alt="" />',
|
||
'' /* not used: $validate_info[$key] */,
|
||
$arr[$key],
|
||
$alphaSort
|
||
);
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $lnArr: ...
|
||
* @return [type] ...
|
||
*/
|
||
function lineNumberToScript($lnArr) {
|
||
function lineNumberToScript($lnArr) {
|
||
if (!is_array($this->lnToScript)) {
|
||
if (!is_array($this->lnToScript)) {
|
||
$this->lnToScript = array();
|
||
$c=1;
|
||
$c = 1;
|
||
$c+=substr_count($GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup'],LF)+2;
|
||
$c += substr_count($GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup'], LF) + 2;
|
||
$this->lnToScript[$c] = '[Default]';
|
||
foreach($this->hierarchyInfoToRoot as $info) {
|
||
foreach ($this->hierarchyInfoToRoot as $info) {
|
||
$c+=$info['configLines']+1;
|
||
$c += $info['configLines'] + 1;
|
||
$this->lnToScript[$c] = $info['title'];
|
||
}
|
||
}
|
||
foreach($lnArr as $k => $ln) {
|
||
foreach ($lnArr as $k => $ln) {
|
||
foreach($this->lnToScript as $endLn => $title) {
|
||
foreach ($this->lnToScript as $endLn => $title) {
|
||
if ($endLn >= intval($ln)) {
|
||
if ($endLn >= intval($ln)) {
|
||
$lnArr[$k] = '"'.$title.'", '.$ln;
|
||
$lnArr[$k] = '"' . $title . '", ' . $ln;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return implode('; ',$lnArr);
|
||
return implode('; ', $lnArr);
|
||
}
|
||
/**
|
||
... | ... | |
* @param [type] $theValue: ...
|
||
* @return [type] ...
|
||
*/
|
||
function makeHtmlspecialchars($theValue){
|
||
function makeHtmlspecialchars($theValue) {
|
||
return $this->ext_noSpecialCharsOnLabels ? $theValue : htmlspecialchars($theValue);
|
||
}
|
||
... | ... | |
* @param [type] $keyArray: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getSearchKeys($arr, $depth_in, $searchString, $keyArray) {
|
||
function ext_getSearchKeys($arr, $depth_in, $searchString, $keyArray) {
|
||
$keyArr=array();
|
||
$keyArr = array();
|
||
foreach ($arr as $key => $value) {
|
||
$key=preg_replace('/\.$/','',$key);
|
||
$key = preg_replace('/\.$/', '', $key);
|
||
if (substr($key,-1)!='.') {
|
||
if (substr($key, -1) != '.') {
|
||
$keyArr[$key]=1;
|
||
$keyArr[$key] = 1;
|
||
}
|
||
}
|
||
$c=count($keyArr);
|
||
$c = count($keyArr);
|
||
if ($depth_in) { $depth_in = $depth_in.'.'; }
|
||
if ($depth_in) {
|
||
$depth_in = $depth_in . '.';
|
||
}
|
||
foreach ($keyArr as $key => $value) {
|
||
$depth=$depth_in.$key;
|
||
$depth = $depth_in . $key;
|
||
$deeper = is_array($arr[$key.'.']);
|
||
$deeper = is_array($arr[$key . '.']);
|
||
if ($this->regexMode) {
|
||
if ($this->regexMode) {
|
||
if (preg_match('/'.$searchString.'/',$arr[$key])) { // The value has matched
|
||
if (preg_match('/' . $searchString . '/', $arr[$key])) { // The value has matched
|
||
$this->tsbrowser_searchKeys[$depth]+=2;
|
||
$this->tsbrowser_searchKeys[$depth] += 2;
|
||
}
|
||
if (preg_match('/'.$searchString.'/',$key)) { // The key has matched
|
||
if (preg_match('/' . $searchString . '/', $key)) { // The key has matched
|
||
$this->tsbrowser_searchKeys[$depth]+=4;
|
||
$this->tsbrowser_searchKeys[$depth] += 4;
|
||
}
|
||
if (preg_match('/'.$searchString.'/',$depth_in)) { // Just open this subtree if the parent key has matched the search
|
||
if (preg_match('/' . $searchString . '/', $depth_in)) { // Just open this subtree if the parent key has matched the search
|
||
$this->tsbrowser_searchKeys[$depth]=1;
|
||
$this->tsbrowser_searchKeys[$depth] = 1;
|
||
}
|
||
} else {
|
||
if (stristr($arr[$key],$searchString)) { // The value has matched
|
||
if (stristr($arr[$key], $searchString)) { // The value has matched
|
||
$this->tsbrowser_searchKeys[$depth]+=2;
|
||
$this->tsbrowser_searchKeys[$depth] += 2;
|
||
}
|
||
if (stristr($key,$searchString)) { // The key has matches
|
||
if (stristr($key, $searchString)) { // The key has matches
|
||
$this->tsbrowser_searchKeys[$depth]+=4;
|
||
$this->tsbrowser_searchKeys[$depth] += 4;
|
||
}
|
||
if (stristr($depth_in,$searchString)) { // Just open this subtree if the parent key has matched the search
|
||
if (stristr($depth_in, $searchString)) { // Just open this subtree if the parent key has matched the search
|
||
$this->tsbrowser_searchKeys[$depth]=1;
|
||
$this->tsbrowser_searchKeys[$depth] = 1;
|
||
}
|
||
}
|
||
if ($deeper) {
|
||
if ($deeper) {
|
||
$cS = count($this->tsbrowser_searchKeys);
|
||
$keyArray = $this->ext_getSearchKeys($arr[$key.'.'], $depth, $searchString, $keyArray);
|
||
$keyArray = $this->ext_getSearchKeys($arr[$key . '.'], $depth, $searchString, $keyArray);
|
||
if ($cS != count($this->tsbrowser_searchKeys)) {
|
||
if ($cS != count($this->tsbrowser_searchKeys)) {
|
||
$keyArray[$depth]=1;
|
||
$keyArray[$depth] = 1;
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $pid: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getRootlineNumber($pid) {
|
||
function ext_getRootlineNumber($pid) {
|
||
if ($pid && is_array($GLOBALS['rootLine'])) {
|
||
if ($pid && is_array($GLOBALS['rootLine'])) {
|
||
foreach ($GLOBALS['rootLine'] as $key => $val) {
|
||
if ($val['uid']==$pid) return $key;
|
||
if ($val['uid'] == $pid) {
|
||
return $key;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
... | ... | |
* @param [type] $first: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getTemplateHierarchyArr($arr,$depthData, $keyArray,$first=0) {
|
||
function ext_getTemplateHierarchyArr($arr, $depthData, $keyArray, $first = 0) {
|
||
$keyArr=array();
|
||
$keyArr = array();
|
||
foreach ($arr as $key => $value) {
|
||
$key=preg_replace('/\.$/','',$key);
|
||
$key = preg_replace('/\.$/', '', $key);
|
||
if (substr($key,-1)!='.') {
|
||
if (substr($key, -1) != '.') {
|
||
$keyArr[$key]=1;
|
||
$keyArr[$key] = 1;
|
||
}
|
||
}
|
||
$a=0;
|
||
$a = 0;
|
||
$c=count($keyArr);
|
||
$c = count($keyArr);
|
||
static $i = 0;
|
||
foreach ($keyArr as $key => $value) {
|
||
$HTML = '';
|
||
... | ... | |
$row = $arr[$key];
|
||
$PM = 'join';
|
||
$LN = ($a==$c) ? 'blank' : 'line';
|
||
$LN = ($a == $c) ? 'blank' : 'line';
|
||
$BTM = ($a==$c) ? 'top' : '';
|
||
$BTM = ($a == $c) ? 'top' : '';
|
||
$PM = 'join';
|
||
$HTML .= $depthData;
|
||
... | ... | |
$alttext = '[' . $row['templateID'] . ']';
|
||
$alttext .= $row['pid'] ? ' - ' . t3lib_BEfunc::getRecordPath($row['pid'], $GLOBALS['SOBE']->perms_clause, 20) : '';
|
||
$icon = (substr($row['templateID'],0,3) == 'sys' ?
|
||
$icon = (substr($row['templateID'], 0, 3) == 'sys' ?
|
||
t3lib_iconWorks::getSpriteIconForRecord('sys_template', $row, array('title' => $alttext))
|
||
: t3lib_iconWorks::getSpriteIcon('mimetypes-x-content-template-static', array('title' => $alttext))
|
||
);
|
||
t3lib_iconWorks::getSpriteIconForRecord('sys_template', $row, array('title' => $alttext))
|
||
: t3lib_iconWorks::getSpriteIcon('mimetypes-x-content-template-static', array('title' => $alttext))
|
||
);
|
||
if (in_array($row['templateID'], $this->clearList_const) || in_array($row['templateID'], $this->clearList_setup)) {
|
||
$A_B = '<a href="index.php?id=' . htmlspecialchars($GLOBALS['SOBE']->id . '&template=' . $row['templateID']) . '">';
|
||
$A_E = '</a>';
|
||
... | ... | |
$A_E = '';
|
||
}
|
||
$HTML .= ($first ? '' : '<img src="' . $GLOBALS['BACK_PATH'] . 'gfx/ol/' . $PM . $BTM . '.gif" width="18" height="16" align="top" border="0" alt="" />') .
|
||
$icon .
|
||
$A_B . htmlspecialchars(t3lib_div::fixed_lgd_cs($row['title'], $GLOBALS['BE_USER']->uc['titleLen'])) . $A_E . ' ';
|
||
$icon .
|
||
$A_B . htmlspecialchars(t3lib_div::fixed_lgd_cs($row['title'], $GLOBALS['BE_USER']->uc['titleLen'])) . $A_E . ' ';
|
||
$RL = $this->ext_getRootlineNumber($row['pid']);
|
||
$keyArray[] = '<tr class="' . ($i++ % 2 == 0 ? 'bgColor4' : 'bgColor6') . '">
|
||
<td nowrap="nowrap">' . $HTML . '</td>
|
||
<td align="center">' . ($row['root'] ? t3lib_iconWorks::getSpriteIcon('status-status-checked') : '') . ' </td>
|
||
<td align="center">' . ($row['clConf'] ? t3lib_iconWorks::getSpriteIcon('status-status-checked') :'') . ' ' . '</td>
|
||
<td align="center">' . ($row['clConf'] ? t3lib_iconWorks::getSpriteIcon('status-status-checked') : '') . ' ' . '</td>
|
||
<td align="center">' . ($row['clConst'] ? t3lib_iconWorks::getSpriteIcon('status-status-checked') : '') . ' ' . '</td>
|
||
<td align="center">' . ($row['pid'] ? $row['pid'] : '') . '</td>
|
||
<td align="center">' . (strcmp($RL, '') ? $RL : '') . '</td>
|
||
<td>' . ($row['next'] ? ' ' . $row['next'] . ' ' : '') . '</td>
|
||
</tr>';
|
||
if ($deeper) {
|
||
if ($deeper) {
|
||
$keyArray = $this->ext_getTemplateHierarchyArr($arr[$key . '.'], $depthData . ($first ? '' : '<img src="' . $GLOBALS['BACK_PATH'] . 'gfx/ol/' . $LN . '.gif" width="18" height="16" align="top" />'), $keyArray);
|
||
$keyArray = $this->ext_getTemplateHierarchyArr(
|
||
$arr[$key . '.'],
|
||
$depthData . ($first ? '' : '<img src="' . $GLOBALS['BACK_PATH'] . 'gfx/ol/' . $LN . '.gif" width="18" height="16" align="top" />'),
|
||
$keyArray
|
||
);
|
||
}
|
||
}
|
||
return $keyArray;
|
||
... | ... | |
* @param [type] $pointer: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_process_hierarchyInfo($depthDataArr,&$pointer) {
|
||
function ext_process_hierarchyInfo($depthDataArr, &$pointer) {
|
||
$parent = $this->hierarchyInfo[$pointer-1]['templateParent'];
|
||
$parent = $this->hierarchyInfo[$pointer - 1]['templateParent'];
|
||
while ($pointer>0 && $this->hierarchyInfo[$pointer-1]['templateParent']==$parent) {
|
||
while ($pointer > 0 && $this->hierarchyInfo[$pointer - 1]['templateParent'] == $parent) {
|
||
$pointer--;
|
||
$row = $this->hierarchyInfo[$pointer];
|
||
$depthDataArr[$row['templateID']]=$row;
|
||
$depthDataArr[$row['templateID']] = $row;
|
||
$depthDataArr[$row['templateID']]['bgcolor_setup'] = isset($this->clearList_setup_temp[$row['templateID']])?' class="bgColor5"':'';
|
||
$depthDataArr[$row['templateID']]['bgcolor_setup'] = isset($this->clearList_setup_temp[$row['templateID']]) ? ' class="bgColor5"' : '';
|
||
$depthDataArr[$row['templateID']]['bgcolor_const'] = isset($this->clearList_const_temp[$row['templateID']])?' class="bgColor5"':'';
|
||
$depthDataArr[$row['templateID']]['bgcolor_const'] = isset($this->clearList_const_temp[$row['templateID']]) ? ' class="bgColor5"' : '';
|
||
unset($this->clearList_setup_temp[$row['templateID']]);
|
||
unset($this->clearList_const_temp[$row['templateID']]);
|
||
$this->templateTitles[$row['templateID']]=$row['title'];
|
||
$this->templateTitles[$row['templateID']] = $row['title'];
|
||
if ($row['templateID']==$this->hierarchyInfo[$pointer-1]['templateParent']) {
|
||
if ($row['templateID'] == $this->hierarchyInfo[$pointer - 1]['templateParent']) {
|
||
$depthDataArr[$row['templateID'].'.'] = $this->ext_process_hierarchyInfo(array(), $pointer);
|
||
$depthDataArr[$row['templateID'] . '.'] = $this->ext_process_hierarchyInfo(array(), $pointer);
|
||
}
|
||
}
|
||
return $depthDataArr;
|
||
... | ... | |
* @param [type] $syntaxHLBlockmode: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_outputTS($config, $lineNumbers=0, $comments=0, $crop=0, $syntaxHL=0, $syntaxHLBlockmode=0) {
|
||
function ext_outputTS($config, $lineNumbers = 0, $comments = 0, $crop = 0, $syntaxHL = 0, $syntaxHLBlockmode = 0) {
|
||
$all='';
|
||
$all = '';
|
||
foreach ($config as $str) {
|
||
$all .= LF .'[GLOBAL]' . LF . $str;
|
||
$all .= LF . '[GLOBAL]' . LF . $str;
|
||
}
|
||
if ($syntaxHL) {
|
||
if ($syntaxHL) {
|
||
$all = preg_replace('/^[^'.LF.']*./','',$all);
|
||
$all = preg_replace('/^[^' . LF . ']*./', '', $all);
|
||
$all = chop($all);
|
||
$tsparser = t3lib_div::makeInstance('t3lib_TSparser');
|
||
$tsparser->lineNumberOffset=$this->ext_lineNumberOffset+1;
|
||
$tsparser->lineNumberOffset = $this->ext_lineNumberOffset + 1;
|
||
$tsparser->parentObject = $this;
|
||
return $tsparser->doSyntaxHighlight($all,$lineNumbers?array($this->ext_lineNumberOffset+1):'',$syntaxHLBlockmode);
|
||
return $tsparser->doSyntaxHighlight($all, $lineNumbers ? array($this->ext_lineNumberOffset + 1) : '', $syntaxHLBlockmode);
|
||
} else {
|
||
return $this->ext_formatTS($all,$lineNumbers,$comments,$crop);
|
||
return $this->ext_formatTS($all, $lineNumbers, $comments, $crop);
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $chars: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_fixed_lgd($string,$chars) {
|
||
function ext_fixed_lgd($string, $chars) {
|
||
if ($chars >= 4) {
|
||
if ($chars >= 4) {
|
||
if(strlen($string)>$chars) {
|
||
if (strlen($string) > $chars) {
|
||
if(strlen($string)>24 && substr($string,0,12) == '##'.$this->Cmarker.'_B##') {
|
||
if (strlen($string) > 24 && substr($string, 0, 12) == '##' . $this->Cmarker . '_B##') {
|
||
return '##'.$this->Cmarker.'_B##'.t3lib_div::fixed_lgd_cs(substr($string,12,-12), $chars-3).'##'.$this->Cmarker.'_E##';
|
||
return '##' . $this->Cmarker . '_B##' . t3lib_div::fixed_lgd_cs(substr($string, 12, -12), $chars - 3) . '##' . $this->Cmarker . '_E##';
|
||
} else {
|
||
return t3lib_div::fixed_lgd_cs($string, $chars-3);
|
||
return t3lib_div::fixed_lgd_cs($string, $chars - 3);
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $str: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_lnBreakPointWrap($ln,$str) {
|
||
function ext_lnBreakPointWrap($ln, $str) {
|
||
return '<a href="#" onClick="return brPoint('.$ln.','.($this->ext_lineNumberOffset_mode=="setup"?1:0).');">'.$str.'</a>';
|
||
return '<a href="#" onClick="return brPoint(' . $ln . ',' . ($this->ext_lineNumberOffset_mode == "setup" ? 1 : 0) . ');">' . $str . '</a>';
|
||
}
|
||
/**
|
||
... | ... | |
* @param [type] $crop: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_formatTS($input, $ln, $comments=1, $crop=0) {
|
||
function ext_formatTS($input, $ln, $comments = 1, $crop = 0) {
|
||
$input = preg_replace('/^[^'.LF.']*./','',$input);
|
||
$input = preg_replace('/^[^' . LF . ']*./', '', $input);
|
||
$input = chop($input);
|
||
$cArr = explode(LF,$input);
|
||
$cArr = explode(LF, $input);
|
||
$n = ceil(log10(count($cArr)+$this->ext_lineNumberOffset));
|
||
$n = ceil(log10(count($cArr) + $this->ext_lineNumberOffset));
|
||
$lineNum='';
|
||
$lineNum = '';
|
||
foreach ($cArr as $k => $v) {
|
||
$lln=$k+$this->ext_lineNumberOffset+1;
|
||
$lln = $k + $this->ext_lineNumberOffset + 1;
|
||
if ($ln) $lineNum = $this->ext_lnBreakPointWrap($lln,str_replace(' ',' ',sprintf('% '.$n.'d',$lln))).': ';
|
||
if ($ln) {
|
||
$lineNum = $this->ext_lnBreakPointWrap($lln, str_replace(' ', ' ', sprintf('% ' . $n . 'd', $lln))) . ': ';
|
||
}
|
||
$v=htmlspecialchars($v);
|
||
$v = htmlspecialchars($v);
|
||
if ($crop) {$v=$this->ext_fixed_lgd($v,($ln?71:77));}
|
||
if ($crop) {
|
||
$v = $this->ext_fixed_lgd($v, ($ln ? 71 : 77));
|
||
}
|
||
$cArr[$k] = $lineNum.str_replace(' ',' ',$v);
|
||
$cArr[$k] = $lineNum . str_replace(' ', ' ', $v);
|
||
$firstChar = substr(trim($v),0,1);
|
||
$firstChar = substr(trim($v), 0, 1);
|
||
if ($firstChar=='[') {
|
||
if ($firstChar == '[') {
|
||
$cArr[$k] = '<font color="green"><strong>'.$cArr[$k].'</strong></font>';
|
||
$cArr[$k] = '<font color="green"><strong>' . $cArr[$k] . '</strong></font>';
|
||
} elseif ($firstChar=='/' || $firstChar=='#') {
|
||
} elseif ($firstChar == '/' || $firstChar == '#') {
|
||
if ($comments) {
|
||
if ($comments) {
|
||
$cArr[$k] = '<span class="typo3-dimmed">'.$cArr[$k].'</span>';
|
||
$cArr[$k] = '<span class="typo3-dimmed">' . $cArr[$k] . '</span>';
|
||
} else {
|
||
unset($cArr[$k]);
|
||
}
|
||
... | ... | |
}
|
||
$output = implode($cArr, '<br />').'<br />';
|
||
$output = implode($cArr, '<br />') . '<br />';
|
||
return $output;
|
||
}
|
||
... | ... | |
* @param [type] $template_uid: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getFirstTemplate($id,$template_uid=0) {
|
||
function ext_getFirstTemplate($id, $template_uid = 0) {
|
||
// Query is taken from the runThroughTemplates($theRootLine) function in the parent class.
|
||
if (intval($id)) {
|
||
if (intval($id)) {
|
||
if ($template_uid) {
|
||
if ($template_uid) {
|
||
$addC = ' AND uid='.$template_uid;
|
||
$addC = ' AND uid=' . $template_uid;
|
||
}
|
||
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_template', 'pid='.intval($id).$addC.' '.$this->whereClause, '', 'sorting', '1');
|
||
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_template', 'pid=' . intval($id) . $addC . ' ' . $this->whereClause, '', 'sorting', '1');
|
||
$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
|
||
t3lib_BEfunc::workspaceOL('sys_template',$row);
|
||
t3lib_BEfunc::workspaceOL('sys_template', $row);
|
||
$GLOBALS['TYPO3_DB']->sql_free_result($res);
|
||
return $row; // Returns the template row if found.
|
||
return $row; // Returns the template row if found.
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $id: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getAllTemplates($id) {
|
||
function ext_getAllTemplates($id) {
|
||
// Query is taken from the runThroughTemplates($theRootLine) function in the parent class.
|
||
if (intval($id)) {
|
||
if (intval($id)) {
|
||
$outRes=array();
|
||
$outRes = array();
|
||
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_template', 'pid='.intval($id).' '.$this->whereClause, '', 'sorting');
|
||
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_template', 'pid=' . intval($id) . ' ' . $this->whereClause, '', 'sorting');
|
||
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
|
||
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
|
||
t3lib_BEfunc::workspaceOL('sys_template',$row);
|
||
t3lib_BEfunc::workspaceOL('sys_template', $row);
|
||
if (is_array($row)) $outRes[] = $row;
|
||
if (is_array($row)) {
|
||
$outRes[] = $row;
|
||
}
|
||
}
|
||
}
|
||
$GLOBALS['TYPO3_DB']->sql_free_result($res);
|
||
return $outRes; // Returns the template rows in an array.
|
||
return $outRes; // Returns the template rows in an array.
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $default: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_compareFlatSetups($default) {
|
||
function ext_compareFlatSetups($default) {
|
||
$editableComments=array();
|
||
$editableComments = array();
|
||
reset($this->flatSetup);
|
||
foreach ($this->flatSetup as $const => $value) {
|
||
if (substr($const,-2)!='..' && isset($this->flatSetup[$const.'..'])) {
|
||
if (substr($const, -2) != '..' && isset($this->flatSetup[$const . '..'])) {
|
||
$comment = trim($this->flatSetup[$const.'..']);
|
||
$comment = trim($this->flatSetup[$const . '..']);
|
||
$c_arr = explode(LF,$comment);
|
||
$c_arr = explode(LF, $comment);
|
||
foreach ($c_arr as $k => $v) {
|
||
$line=trim(preg_replace('/^[#\/]*/','',$v));
|
||
$line = trim(preg_replace('/^[#\/]*/', '', $v));
|
||
if ($line) {
|
||
if ($line) {
|
||
$parts = explode(';', $line);
|
||
foreach ($parts as $par) {
|
||
if (strstr($par,'=')) {
|
||
if (strstr($par, '=')) {
|
||
$keyValPair =explode('=',$par,2);
|
||
$keyValPair = explode('=', $par, 2);
|
||
switch(trim(strtolower($keyValPair[0]))) {
|
||
switch (trim(strtolower($keyValPair[0]))) {
|
||
case 'type':
|
||
// Type:
|
||
/*
|
||
int (range; low-high, list: item,item,item = selector),
|
||
boolean (check),
|
||
string (default),
|
||
wrap,
|
||
html-color ...,
|
||
file
|
||
*/
|
||
$editableComments[$const]['type'] = trim($keyValPair[1]);
|
||
break;
|
||
case 'cat':
|
||
// list of categories.
|
||
$catSplit=explode('/',strtolower($keyValPair[1]));
|
||
$catSplit = explode('/', strtolower($keyValPair[1]));
|
||
$editableComments[$const]['cat'] = trim($catSplit[0]);
|
||
$catSplit[1]=trim($catSplit[1]); // This is the subcategory. Must be a key in $this->subCategories[]. catSplit[2] represents the search-order within the subcat.
|
||
$catSplit[1] = trim($catSplit[1]); // This is the subcategory. Must be a key in $this->subCategories[]. catSplit[2] represents the search-order within the subcat.
|
||
if ($catSplit[1] && isset($this->subCategories[$catSplit[1]])) {
|
||
if ($catSplit[1] && isset($this->subCategories[$catSplit[1]])) {
|
||
$editableComments[$const]['subcat_name']=$catSplit[1];
|
||
$editableComments[$const]['subcat_name'] = $catSplit[1];
|
||
$editableComments[$const]['subcat']=$this->subCategories[$catSplit[1]][1].'/'.$catSplit[1].'/'.trim($catSplit[2]).'z';
|
||
$editableComments[$const]['subcat'] = $this->subCategories[$catSplit[1]][1] . '/' .
|
||
$catSplit[1] . '/' . trim($catSplit[2]) . 'z';
|
||
} else {
|
||
$editableComments[$const]['subcat']='x'.'/'.trim($catSplit[2]).'z';
|
||
$editableComments[$const]['subcat'] = 'x' . '/' . trim($catSplit[2]) . 'z';
|
||
}
|
||
break;
|
||
case 'label':
|
||
... | ... | |
break;
|
||
case 'customsubcategory':
|
||
// custom subCategory label
|
||
$customSubcategory = explode('=',$keyValPair[1],2);
|
||
$customSubcategory = explode('=', $keyValPair[1], 2);
|
||
if (trim($customSubcategory[0])) {
|
||
$subCategoryKey = strtolower($customSubcategory[0]);
|
||
$this->subCategories[$subCategoryKey][0] = $GLOBALS['LANG']->sL($customSubcategory[1]);
|
||
... | ... | |
}
|
||
}
|
||
}
|
||
if (isset($editableComments[$const])) {
|
||
if (isset($editableComments[$const])) {
|
||
$editableComments[$const]['name']=$const;
|
||
$editableComments[$const]['name'] = $const;
|
||
$editableComments[$const]['value']=trim($value);
|
||
$editableComments[$const]['value'] = trim($value);
|
||
if (isset($default[$const])) {
|
||
if (isset($default[$const])) {
|
||
$editableComments[$const]['default_value']=trim($default[$const]);
|
||
$editableComments[$const]['default_value'] = trim($default[$const]);
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $editConstArray: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_categorizeEditableConstants($editConstArray) {
|
||
function ext_categorizeEditableConstants($editConstArray) {
|
||
// Runs through the available constants and fills the $this->categories array with pointers and priority-info
|
||
// Runs through the available constants and fills the $this->categories array with pointers and priority-info
|
||
foreach ($editConstArray as $constName => $constData) {
|
||
if (!$constData['type']) {
|
||
$constData['type']='string';
|
||
$constData['type'] = 'string';
|
||
}
|
||
$cats = explode(',',$constData['cat']);
|
||
$cats = explode(',', $constData['cat']);
|
||
foreach ($cats as $theCat) { // if = only one category, while allows for many. We have agreed on only one category is the most basic way...
|
||
foreach ($cats as $theCat) { // if = only one category, while allows for many. We have agreed on only one category is the most basic way...
|
||
$theCat=trim($theCat);
|
||
$theCat = trim($theCat);
|
||
if ($theCat) {
|
||
if ($theCat) {
|
||
$this->categories[$theCat][$constName]=$constData['subcat'];
|
||
$this->categories[$theCat][$constName] = $constData['subcat'];
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
*
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getCategoryLabelArray() {
|
||
function ext_getCategoryLabelArray() {
|
||
// Returns array used for labels in the menu.
|
||
// Returns array used for labels in the menu.
|
||
$retArr = array();
|
||
foreach ($this->categories as $k => $v) {
|
||
if (count($v)) {
|
||
if (count($v)) {
|
||
$retArr[$k]=strtoupper($k).' ('.count($v).')';
|
||
$retArr[$k] = strtoupper($k) . ' (' . count($v) . ')';
|
||
}
|
||
}
|
||
return $retArr;
|
||
... | ... | |
* @param [type] $type: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getTypeData($type) {
|
||
function ext_getTypeData($type) {
|
||
$retArr = array();
|
||
$type=trim($type);
|
||
$type = trim($type);
|
||
if (!$type) {
|
||
if (!$type) {
|
||
$retArr['type']='string';
|
||
$retArr['type'] = 'string';
|
||
} else {
|
||
$m=strcspn ($type,' [');
|
||
$m = strcspn($type, ' [');
|
||
$retArr['type']=strtolower(substr($type,0,$m));
|
||
$retArr['type'] = strtolower(substr($type, 0, $m));
|
||
if (t3lib_div::inList('int,options,file,boolean,offset,user', $retArr['type'])) {
|
||
if (t3lib_div::inList('int,options,file,boolean,offset,user', $retArr['type'])) {
|
||
$p=trim(substr($type,$m));
|
||
$p = trim(substr($type, $m));
|
||
$reg = array();
|
||
preg_match('/\[(.*)\]/',$p,$reg);
|
||
preg_match('/\[(.*)\]/', $p, $reg);
|
||
$p=trim($reg[1]);
|
||
$p = trim($reg[1]);
|
||
if ($p) {
|
||
if ($p) {
|
||
$retArr['paramstr']=$p;
|
||
$retArr['paramstr'] = $p;
|
||
switch($retArr['type']) {
|
||
switch ($retArr['type']) {
|
||
case 'int':
|
||
if (substr($retArr['paramstr'],0,1)=='-') {
|
||
if (substr($retArr['paramstr'], 0, 1) == '-') {
|
||
$retArr['params']=t3lib_div::intExplode('-',substr($retArr['paramstr'],1));
|
||
$retArr['params'] = t3lib_div::intExplode('-', substr($retArr['paramstr'], 1));
|
||
$retArr['params'][0]=intval('-'.$retArr['params'][0]);
|
||
$retArr['params'][0] = intval('-' . $retArr['params'][0]);
|
||
} else {
|
||
$retArr['params']=t3lib_div::intExplode('-',$retArr['paramstr']);
|
||
$retArr['params'] = t3lib_div::intExplode('-', $retArr['paramstr']);
|
||
}
|
||
$retArr['paramstr']=$retArr['params'][0].' - '.$retArr['params'][1];
|
||
$retArr['paramstr'] = $retArr['params'][0] . ' - ' . $retArr['params'][1];
|
||
break;
|
||
case 'options':
|
||
$retArr['params']=explode(',',$retArr['paramstr']);
|
||
$retArr['params'] = explode(',', $retArr['paramstr']);
|
||
break;
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $category: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getTSCE_config($category) {
|
||
function ext_getTSCE_config($category) {
|
||
$catConf=$this->setup['constants']['TSConstantEditor.'][$category.'.'];
|
||
$catConf = $this->setup['constants']['TSConstantEditor.'][$category . '.'];
|
||
$out=array();
|
||
$out = array();
|
||
if (is_array($catConf)) {
|
||
if (is_array($catConf)) {
|
||
foreach ($catConf as $key => $val) {
|
||
switch($key) {
|
||
switch ($key) {
|
||
case 'image':
|
||
$out['imagetag'] = $this->ext_getTSCE_config_image($catConf['image']);
|
||
break;
|
||
... | ... | |
$out[$key] = $val;
|
||
break;
|
||
default:
|
||
if (t3lib_div::testInt($key)) {
|
||
if (t3lib_div::testInt($key)) {
|
||
$constRefs = explode(',',$val);
|
||
$constRefs = explode(',', $val);
|
||
foreach ($constRefs as $const) {
|
||
$const=trim($const);
|
||
$const = trim($const);
|
||
if ($const && $const<=20) {
|
||
if ($const && $const <= 20) {
|
||
$out['constants'][$const].=$this->ext_getKeyImage($key);
|
||
$out['constants'][$const] .= $this->ext_getKeyImage($key);
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
}
|
||
}
|
||
}
|
||
$this->helpConfig=$out;
|
||
$this->helpConfig = $out;
|
||
}
|
||
/**
|
||
... | ... | |
* @param [type] $key: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getKeyImage($key) {
|
||
function ext_getKeyImage($key) {
|
||
return '<img src="'.$this->ext_localWebGfxPrefix.'gfx/'.$key.'.gif" align="top" hspace=2>';
|
||
return '<img src="' . $this->ext_localWebGfxPrefix . 'gfx/' . $key . '.gif" align="top" hspace=2>';
|
||
}
|
||
/**
|
||
... | ... | |
* @param [type] $imgConf: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_getTSCE_config_image($imgConf) {
|
||
function ext_getTSCE_config_image($imgConf) {
|
||
if (substr($imgConf,0,4)=='gfx/') {
|
||
if (substr($imgConf, 0, 4) == 'gfx/') {
|
||
$iFile=$this->ext_localGfxPrefix.$imgConf;
|
||
$iFile = $this->ext_localGfxPrefix . $imgConf;
|
||
$tFile=$this->ext_localWebGfxPrefix.$imgConf;
|
||
$tFile = $this->ext_localWebGfxPrefix . $imgConf;
|
||
} elseif (substr($imgConf,0,4)=='EXT:') {
|
||
} elseif (substr($imgConf, 0, 4) == 'EXT:') {
|
||
$iFile = t3lib_div::getFileAbsFileName($imgConf);
|
||
if ($iFile) {
|
||
if ($iFile) {
|
||
$f = substr($iFile,strlen(PATH_site));
|
||
$f = substr($iFile, strlen(PATH_site));
|
||
$tFile=$GLOBALS['BACK_PATH'].'../'.$f;
|
||
$tFile = $GLOBALS['BACK_PATH'] . '../' . $f;
|
||
}
|
||
} else {
|
||
$f = 'uploads/tf/'.$this->extractFromResources($this->setup['resources'],$imgConf);
|
||
$f = 'uploads/tf/' . $this->extractFromResources($this->setup['resources'], $imgConf);
|
||
$iFile=PATH_site.$f;
|
||
$iFile = PATH_site . $f;
|
||
$tFile=$GLOBALS['BACK_PATH'].'../'.$f;
|
||
$tFile = $GLOBALS['BACK_PATH'] . '../' . $f;
|
||
}
|
||
$imageInfo=@getImagesize($iFile);
|
||
$imageInfo = @getImagesize($iFile);
|
||
return '<img src="'.$tFile.'" '.$imageInfo[3].'>';
|
||
return '<img src="' . $tFile . '" ' . $imageInfo[3] . '>';
|
||
}
|
||
/**
|
||
... | ... | |
*
|
||
* @return [type] ...
|
||
*/
|
||
function ext_resourceDims() {
|
||
function ext_resourceDims() {
|
||
if ($this->setup['resources']) {
|
||
if ($this->setup['resources']) {
|
||
$rArr=explode(',',$this->setup['resources']);
|
||
$rArr = explode(',', $this->setup['resources']);
|
||
foreach ($rArr as $c => $val) {
|
||
$val=trim($val);
|
||
$val = trim($val);
|
||
$theFile = PATH_site.'uploads/tf/'.$val;
|
||
$theFile = PATH_site . 'uploads/tf/' . $val;
|
||
if ($val && @is_file($theFile)) {
|
||
if ($val && @is_file($theFile)) {
|
||
$imgInfo = @getimagesize($theFile);
|
||
}
|
||
if (is_array($imgInfo)) {
|
||
if (is_array($imgInfo)) {
|
||
$this->resourceDimensions[$val]=' ('.$imgInfo[0].'x'.$imgInfo[1].')';
|
||
$this->resourceDimensions[$val] = ' (' . $imgInfo[0] . 'x' . $imgInfo[1] . ')';
|
||
}
|
||
}
|
||
}
|
||
foreach ($this->dirResources as $c => $val) {
|
||
$val=trim($val);
|
||
$val = trim($val);
|
||
$imgInfo = @getimagesize(PATH_site.$val);
|
||
$imgInfo = @getimagesize(PATH_site . $val);
|
||
if (is_array($imgInfo)) {
|
||
if (is_array($imgInfo)) {
|
||
$this->resourceDimensions[$val]=' ('.$imgInfo[0].'x'.$imgInfo[1].')';
|
||
$this->resourceDimensions[$val] = ' (' . $imgInfo[0] . 'x' . $imgInfo[1] . ')';
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $path: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_readDirResources($path) {
|
||
function ext_readDirResources($path) {
|
||
$path = trim($path);
|
||
if ($path && strstr($path, $GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir'])) {
|
||
if ($path && strstr($path, $GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir'])) {
|
||
$path = rtrim($path, '/');
|
||
$this->readDirectory(PATH_site . $path);
|
||
}
|
||
... | ... | |
* @param [type] $type: ...
|
||
* @return [type] ...
|
||
*/
|
||
function readDirectory($path,$type='file') {
|
||
function readDirectory($path, $type = 'file') {
|
||
if(@is_dir($path)) {
|
||
if (@is_dir($path)) {
|
||
$d = @dir($path);
|
||
$tempArray=Array();
|
||
$tempArray = Array();
|
||
if (is_object($d)) {
|
||
if (is_object($d)) {
|
||
while($entry=$d->read()) {
|
||
while ($entry = $d->read()) {
|
||
if ($entry!='.' && $entry!='..') {
|
||
if ($entry != '.' && $entry != '..') {
|
||
$wholePath = $path.'/'.$entry; // Because of odd PHP-error where <BR>-tag is sometimes placed after a filename!!
|
||
$wholePath = $path . '/' . $entry; // Because of odd PHP-error where <BR>-tag is sometimes placed after a filename!!
|
||
if (file_exists($wholePath) && (!$type || filetype($wholePath)==$type)) {
|
||
if (file_exists($wholePath) && (!$type || filetype($wholePath) == $type)) {
|
||
$fI = t3lib_div::split_fileref($wholePath);
|
||
$this->dirResources[]=substr($wholePath,strlen(PATH_site));
|
||
$this->dirResources[] = substr($wholePath, strlen(PATH_site));
|
||
}
|
||
}
|
||
}
|
||
... | ... | |
* @param [type] $params: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_fNandV($params) {
|
||
function ext_fNandV($params) {
|
||
$fN='data['.$params['name'].']';
|
||
$fN = 'data[' . $params['name'] . ']';
|
||
$fV=$params['value'];
|
||
$fV = $params['value'];
|
||
if (preg_match('/^{[\$][a-zA-Z0-9\.]*}$/',trim($fV),$reg)) { // Values entered from the constantsedit cannot be constants! 230502; removed \{ and set {
|
||
if (preg_match('/^{[\$][a-zA-Z0-9\.]*}$/', trim($fV), $reg)) { // Values entered from the constantsedit cannot be constants! 230502; removed \{ and set {
|
||
$fV='';
|
||
$fV = '';
|
||
}
|
||
$fV=htmlspecialchars($fV);
|
||
$fV = htmlspecialchars($fV);
|
||
return array($fN,$fV,$params);
|
||
return array($fN, $fV, $params);
|
||
}
|
||
/**
|
||
... | ... | |
* @param [type] $category: ...
|
||
* @return [type] ...
|
||
*/
|
||
function ext_printFields($theConstants,$category) {
|
||
function ext_printFields($theConstants, $category) {
|
||
reset($theConstants);
|
||
$output='<script type="text/javascript" src="'.$GLOBALS['BACK_PATH'].'js/constantEditor.js"></script>
|
||
$output = '<script type="text/javascript" src="' . $GLOBALS['BACK_PATH'] . 'js/constantEditor.js"></script>
|
||
';
|
||
$subcat='';
|
||
$subcat = '';
|
||
if (is_array($this->categories[$category])) {
|
||
if (is_array($this->categories[$category])) {
|
||
$help=$this->helpConfig;
|
||
$help = $this->helpConfig;
|
||
$this->rArr=explode(',',$this->setup['resources'].','.implode($this->dirResources,','));
|
||
$this->rArr = explode(',', $this->setup['resources'] . ',' . implode($this->dirResources, ','));
|
||
if (!$this->doNotSortCategoriesBeforeMakingForm) asort($this->categories[$category]);
|
||
if (!$this->doNotSortCategoriesBeforeMakingForm) {
|
||
asort($this->categories[$category]);
|
||
}
|
||
foreach ($this->categories[$category] as $name => $type) {
|
||
$params = $theConstants[$name];
|
||
if (is_array($params)) {
|
||
if (is_array($params)) {
|
||
if ($subcat!=$params['subcat_name']) {
|
||
if ($subcat != $params['subcat_name']) {
|
||
$subcat=$params['subcat_name'];
|
||
$subcat = $params['subcat_name'];
|
||
$subcat_name = $params['subcat_name'] ? $this->subCategories[$params['subcat_name']][0] : 'Others';
|
||
$output.='<h2 class="typo3-tstemplate-ceditor-subcat">'.$subcat_name.'</h2>';
|
||
$output .= '<h2 class="typo3-tstemplate-ceditor-subcat">' . $subcat_name . '</h2>';
|
||
}
|
||
$label=$GLOBALS['LANG']->sL($params['label']);
|
||
$label = $GLOBALS['LANG']->sL($params['label']);
|
||
$label_parts = explode(':',$label,2);
|
||
$label_parts = explode(':', $label, 2);
|
||
if (count($label_parts)==2) {
|
||
if (count($label_parts) == 2) {
|
||
$head=trim($label_parts[0]);
|
||
$head = trim($label_parts[0]);
|
||
$body=trim($label_parts[1]);
|
||
$body = trim($label_parts[1]);
|
||
} else {
|
||
$head=trim($label_parts[0]);
|
||
$head = trim($label_parts[0]);
|
||
$body='';
|
||
$body = '';
|
||
}
|
||
if (strlen($head)>35) {
|
||
if (strlen($head) > 35) {
|
||
if (!$body) {$body=$head;}
|
||
if (!$body) {
|
||
$body = $head;
|
||
}
|
||
$head=t3lib_div::fixed_lgd_cs($head,35);
|
||
$head = t3lib_div::fixed_lgd_cs($head, 35);
|
||
}
|
||
$typeDat=$this->ext_getTypeData($params['type']);
|
||
$typeDat = $this->ext_getTypeData($params['type']);
|
||
$checked='';
|
||
$checked = '';
|
||
$p_field='';
|
||
$p_field = '';
|