Fixed bug #10735: Wrong returnUrl with clipboard actions
[Packages/TYPO3.CMS.git] / t3lib / class.t3lib_tsparser_ext.php
old mode 100755 (executable)
new mode 100644 (file)
index 4a7d025..9fbdf79
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 1999-2006 Kasper Skaarhoj (kasperYYYY@typo3.com)
+*  (c) 1999-2009 Kasper Skaarhoj (kasperYYYY@typo3.com)
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
  *
  *
  *  105: class t3lib_tsparser_ext extends t3lib_TStemplate
- *  194:     function flattenSetup($setupArray, $prefix, $resourceFlag)
- *  221:     function substituteConstants($all)
- *  234:     function substituteConstantsCallBack($matches)
- *  264:     function substituteCMarkers($all)
- *  286:     function generateConfig_constants()
- *  335:     function ext_getSetup($theSetup,$theKey)
- *  366:     function ext_getObjTree($arr, $depth_in, $depthData, $parentType="",$parentValue="")
+ *  191:     function flattenSetup($setupArray, $prefix, $resourceFlag)
+ *  218:     function substituteConstants($all)
+ *  231:     function substituteConstantsCallBack($matches)
+ *  261:     function substituteCMarkers($all)
+ *  284:     function generateConfig_constants()
+ *  330:     function ext_getSetup($theSetup,$theKey)
+ *  358:     function ext_getObjTree($arr, $depth_in, $depthData, $parentType='',$parentValue='', $alphaSort='0')
  *  463:     function lineNumberToScript($lnArr)
  *  494:     function makeHtmlspecialchars($theValue)
  *  507:     function ext_getSearchKeys($arr, $depth_in, $searchString, $keyArray)
- *  563:     function ext_getRootlineNumber($pid)
- *  581:     function ext_getTemplateHierarchyArr($arr,$depthData, $keyArray,$first=0)
- *  640:     function ext_process_hierarchyInfo($depthDataArr,&$pointer)
- *  671:     function ext_outputTS($config, $lineNumbers=0, $comments=0, $crop=0, $syntaxHL=0, $syntaxHLBlockmode=0)
- *  698:     function ext_fixed_lgd($string,$chars)
- *  714:     function ext_lnBreakPointWrap($ln,$str)
- *  727:     function ext_formatTS($input, $ln, $comments=1, $crop=0)
- *  766:     function ext_getFirstTemplate($id,$template_uid=0)
- *  786:     function ext_getAllTemplates($id)
- *  807:     function ext_compareFlatSetups($default)
- *  873:     function ext_categorizeEditableConstants($editConstArray)
- *  896:     function ext_getCategoryLabelArray()
- *  913:     function ext_getTypeData($type)
- *  955:     function ext_getTSCE_config($category)
- *  994:     function ext_getKeyImage($key)
- * 1004:     function ext_getTSCE_config_image($imgConf)
- * 1028:     function ext_resourceDims()
- * 1058:     function ext_readDirResources($path)
- * 1073:     function readDirectory($path,$type="file")
- * 1098:     function ext_fNandV($params)
- * 1116:     function ext_printFields($theConstants,$category)
+ *  562:     function ext_getRootlineNumber($pid)
+ *  580:     function ext_getTemplateHierarchyArr($arr,$depthData, $keyArray,$first=0)
+ *  639:     function ext_process_hierarchyInfo($depthDataArr,&$pointer)
+ *  670:     function ext_outputTS($config, $lineNumbers=0, $comments=0, $crop=0, $syntaxHL=0, $syntaxHLBlockmode=0)
+ *  697:     function ext_fixed_lgd($string,$chars)
+ *  713:     function ext_lnBreakPointWrap($ln,$str)
+ *  726:     function ext_formatTS($input, $ln, $comments=1, $crop=0)
+ *  765:     function ext_getFirstTemplate($id,$template_uid=0)
+ *  785:     function ext_getAllTemplates($id)
+ *  806:     function ext_compareFlatSetups($default)
+ *  872:     function ext_categorizeEditableConstants($editConstArray)
+ *  895:     function ext_getCategoryLabelArray()
+ *  912:     function ext_getTypeData($type)
+ *  953:     function ext_getTSCE_config($category)
+ *  992:     function ext_getKeyImage($key)
+ * 1002:     function ext_getTSCE_config_image($imgConf)
+ * 1026:     function ext_resourceDims()
+ * 1056:     function ext_readDirResources($path)
+ * 1071:     function readDirectory($path,$type='file')
+ * 1096:     function ext_fNandV($params)
+ * 1114:     function ext_printFields($theConstants,$category)
  *
  *              SECTION: Processing input values
- * 1373:     function ext_regObjectPositions($constants)
- * 1388:     function ext_regObjects($pre)
- * 1433:     function ext_putValueInConf($key, $var)
- * 1456:     function ext_removeValueInConf($key)
- * 1472:     function ext_depthKeys($arr,$settings)
- * 1507:     function ext_procesInput($http_post_vars,$http_post_files,$theConstants,$tplRow)
- * 1634:     function upload_copy_file($typeDat,&$tplRow,$theRealFileName,$tmp_name)
- * 1683:     function ext_prevPageWithTemplate($id,$perms_clause)
- * 1699:     function ext_setStar($val)
- * 1711:     function ext_detectAndFixExtensionPrefix($value)
+ * 1408:     function ext_regObjectPositions($constants)
+ * 1423:     function ext_regObjects($pre)
+ * 1468:     function ext_putValueInConf($key, $var)
+ * 1491:     function ext_removeValueInConf($key)
+ * 1507:     function ext_depthKeys($arr,$settings)
+ * 1542:     function ext_procesInput($http_post_vars,$http_post_files,$theConstants,$tplRow)
+ * 1666:     function upload_copy_file($typeDat,&$tplRow,$theRealFileName,$tmp_name)
+ * 1715:     function ext_prevPageWithTemplate($id,$perms_clause)
+ * 1731:     function ext_setStar($val)
+ * 1743:     function ext_detectAndFixExtensionPrefix($value)
  *
  * TOTAL FUNCTIONS: 41
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
 
-require_once(PATH_t3lib."class.t3lib_tstemplate.php");
+require_once(PATH_t3lib.'class.t3lib_tstemplate.php');
 
 
 
@@ -104,53 +104,50 @@ require_once(PATH_t3lib."class.t3lib_tstemplate.php");
  */
 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 $HTMLcolorList = "aqua,black,blue,fuchsia,gray,green,lime,maroon,navy,olive,purple,red,silver,teal,yellow,white";
+       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.
-               "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
-               "page" => array(),              // General configuration like metatags, link targets
-               "advanced" => array(),  // Advanced functions, which are used very seldomly.
-               "all" => array()                // All constants are put here also!
+               '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.
+               'content' => array(),   // All constants related to the display of pagecontent elements
+               'page' => array(),              // General configuration like metatags, link targets
+               'advanced' => array(),  // Advanced functions, which are used very seldomly.
+               'all' => array()                // All constants are put here also!
        );              // This will be filled with the available categories of the current template.
        var $subCategories = array(
-       // Standard categories:
-               "enable" => Array("Enable features", "a"),
-               "dims" => Array("Dimensions, widths, heights, pixels", "b"),
-               "file" => Array("Files", "c"),
-               "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
-               "cheader" => Array("Content: 'Header'", "ma"),
-               "cheader_g" => Array("Content: 'Header', Graphical", "ma"),
-               "ctext" => Array("Content: 'Text'", "mb"),
-//             "ctextpic" =>
-               "cimage" => Array("Content: 'Image'", "md"),
-               "cbullets" => Array("Content: 'Bullet list'", "me"),
-               "ctable" => Array("Content: 'Table'", "mf"),
-               "cuploads" => Array("Content: 'Filelinks'", "mg"),
-               "cmultimedia" => Array("Content: 'Multimedia'", "mh"),
-               "cmailform" => Array("Content: 'Form'", "mi"),
-               "csearch" => Array("Content: 'Search'", "mj"),
-               "clogin" => Array("Content: 'Login'", "mk"),
-               "csplash" => Array("Content: 'Textbox'", "ml"),
-               "cmenu" => Array("Content: 'Menu/Sitemap'", "mm"),
-               "cshortcut" => Array("Content: 'Insert records'", "mn"),
-               "clist" => Array("Content: 'List of records'", "mo"),
-               "cscript" => Array("Content: 'Script'", "mp"),
-               "chtml" => Array("Content: 'HTML'", "mq")
+               // Standard categories:
+               'enable' => Array('Enable features', 'a'),
+               'dims' => Array('Dimensions, widths, heights, pixels', 'b'),
+               'file' => Array('Files', 'c'),
+               '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
+               'cheader' => Array('Content: \'Header\'', 'ma'),
+               'cheader_g' => Array('Content: \'Header\', Graphical', 'ma'),
+               'ctext' => Array('Content: \'Text\'', 'mb'),
+               'cimage' => Array('Content: \'Image\'', 'md'),
+               'cbullets' => Array('Content: \'Bullet list\'', 'me'),
+               'ctable' => Array('Content: \'Table\'', 'mf'),
+               'cuploads' => Array('Content: \'Filelinks\'', 'mg'),
+               'cmultimedia' => Array('Content: \'Multimedia\'', 'mh'),
+               'cmailform' => Array('Content: \'Form\'', 'mi'),
+               'csearch' => Array('Content: \'Search\'', 'mj'),
+               'clogin' => Array('Content: \'Login\'', 'mk'),
+               'csplash' => Array('Content: \'Textbox\'', 'ml'),
+               'cmenu' => Array('Content: \'Menu/Sitemap\'', 'mm'),
+               'cshortcut' => Array('Content: \'Insert records\'', 'mn'),
+               'clist' => Array('Content: \'List of records\'', 'mo'),
+               'cscript' => Array('Content: \'Script\'', 'mp'),
+               'chtml' => Array('Content: \'HTML\'', 'mq')
        );
        var $resourceDimensions = array();
        var $dirResources = array();
 
-//     var $matchAll = 0;              // If set, all conditions are matched!
-
        var $backend_info=1;
 
                // tsconstanteditor
@@ -159,22 +156,22 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                // tsbrowser
        var $tsbrowser_searchKeys = array();
        var $tsbrowser_depthKeys = array();
-       var $constantMode="";
-       var $regexMode="";
-       var $fixedLgd="";
+       var $constantMode='';
+       var $regexMode='';
+       var $fixedLgd='';
        var $resourceCheck=0;
        var $ext_lineNumberOffset=0;
-       var $ext_localGfxPrefix="";
-       var $ext_localWebGfxPrefix="";
+       var $ext_localGfxPrefix='';
+       var $ext_localWebGfxPrefix='';
        var $ext_expandAllNotes=0;
        var $ext_noPMicons=0;
        var $ext_noSpecialCharsOnLabels=0;
        var $ext_listOfTemplatesArr=array();
-       var $ext_lineNumberOffset_mode="";
+       var $ext_lineNumberOffset_mode='';
        var $ext_dontCheckIssetValues=0;        // Dont change...
        var $ext_noCEUploadAndCopying=0;
        var $ext_printAll=0;
-       var $ext_CEformName="forms[0]";
+       var $ext_CEformName='forms[0]';
        var $ext_defaultOnlineResourceFlag=0;
        var $doNotSortCategoriesBeforeMakingForm = FALSE;
 
@@ -184,7 +181,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
 
        /**
         * This flattens a hierarchical setuparray to $this->flatSetup
-        * The original function fetched the resource-file if any ("file."). This functions doesn't.
+        * The original function fetched the resource-file if any ('file.'). This functions doesn't.
         *
         * @param       [type]          $setupArray: ...
         * @param       [type]          $prefix: ...
@@ -196,9 +193,9 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
                        $this->getFileName_backPath=PATH_site;          // Setting absolute prefixed path for relative resources.
                        reset($setupArray);
                        while(list($key,$val)=each($setupArray))        {
-                               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))     {
-                                               $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);
                                                if ($this->removeFromGetFilePath && substr($this->flatSetup[$prefix.$key],0,strlen($this->removeFromGetFilePath))==$this->removeFromGetFilePath)        {
@@ -219,7 +216,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
         * @return      [type]          ...
         */
        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);
        }
@@ -263,11 +260,11 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
         */
        function substituteCMarkers($all)       {
                switch($this->constantMode)     {
-                       case "const":
+                       case 'const':
                                $all = str_replace('##'.$this->Cmarker.'_B##', '<font color="green"><B>', $all);
                                $all = str_replace('##'.$this->Cmarker.'_E##', '</b></font>', $all);
                        break;
-                       case "subst":
+                       case 'subst':
                                $all = str_replace('##'.$this->Cmarker.'_B##', '<font color="green"><B>', $all);
                                $all = str_replace('##'.$this->Cmarker.'_E##', '</b></font>', $all);
                        break;
@@ -290,13 +287,12 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                $this->setup['sitetitle'] = $this->sitetitle;
 
                        // parse constants
-               $constants = t3lib_div::makeInstance("t3lib_TSparser");
+               $constants = t3lib_div::makeInstance('t3lib_TSparser');
                $constants->regComments=1;              // Register comments!
                $constants->setup = $this->const;
                $constants->setup = $this->mergeConstantsFromPageTSconfig($constants->setup);
 
-               $matchObj = t3lib_div::makeInstance("t3lib_matchCondition");
-//             $matchObj->matchAlternative = array("[globalString =  page | title = *test*]");
+               $matchObj = t3lib_div::makeInstance('t3lib_matchCondition');
                $matchObj->matchAll=1;          // Matches ALL conditions in TypoScript
 
                $c=0;
@@ -311,15 +307,15 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                                        $constants->parse($parts[0],$matchObj);
                                }
                                $this->flatSetup = Array();
-                               $this->flattenSetup($constants->setup,"","");
+                               $this->flattenSetup($constants->setup,'','');
                                $defaultConstants=$this->flatSetup;
                        }
                        $constants->parse($str,$matchObj);
                }
 
                $this->flatSetup = Array();
-               $this->flattenSetup($constants->setup,"","");
-               $this->setup["constants"] = $constants->setup;
+               $this->flattenSetup($constants->setup,'','');
+               $this->setup['constants'] = $constants->setup;
 
                return $this->ext_compareFlatSetups($defaultConstants);
        }
@@ -332,22 +328,18 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
         * @return      [type]          ...
         */
        function ext_getSetup($theSetup,$theKey)        {
-               $parts = explode(".",$theKey,2);
-//             debug("-----------",1);
-//             debug($theKey,1);
-               if (strcmp($parts[0],"") && is_array($theSetup[$parts[0]."."])) {
-//                     debug(trim($parts[1]),1);
-                       if (strcmp(trim($parts[1]),"")) {
-//                     debug(trim($parts[1]),1);
-                               return $this->ext_getSetup($theSetup[$parts[0]."."],trim($parts[1]));
+               $parts = explode('.',$theKey,2);
+               if (strcmp($parts[0],'') && is_array($theSetup[$parts[0].'.'])) {
+                       if (strcmp(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]);
                        } else {
-                               return array($theSetup,"");
+                               return array($theSetup,'');
                        }
                }
        }
@@ -364,7 +356,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
         * @return      [type]          ...
         */
        function ext_getObjTree($arr, $depth_in, $depthData, $parentType='',$parentValue='', $alphaSort='0')    {
-               $HTML="";
+               $HTML='';
                $a=0;
 
                reset($arr);
@@ -374,9 +366,9 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
                $keyArr_num=array();
                $keyArr_alpha=array();
                while (list($key,)=each($arr))  {
-                       if (substr($key,-2)!="..")      {       // Don't do anything with comments / linenumber registrations...
-                               $key=ereg_replace("\.$","",$key);
-                               if (substr($key,-1)!=".")       {
+                       if (substr($key,-2)!='..')      {       // Don't do anything with comments / linenumber registrations...
+                               $key=ereg_replace('\.$','',$key);
+                               if (substr($key,-1)!='.')       {
                                        if (t3lib_div::testInt($key))   {
                                                $keyArr_num[$key]=$arr[$key];
                                        } else {
@@ -389,39 +381,35 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                $keyArr=$keyArr_num+$keyArr_alpha;
                reset($keyArr);
                $c=count($keyArr);
-               if ($depth_in)  {$depth_in = $depth_in.".";}
-
-//             $validate_info= verify_TSobjects($keyArr,$parentType,$parentValue);
-//             debug($validate_info);
+               if ($depth_in)  {$depth_in = $depth_in.'.';}
 
                while (list($key,)=each($keyArr))       {
                        $a++;
                        $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);
-       //                      debug($depth);
-                               $deeper = (is_array($arr[$key."."]) && ($this->tsbrowser_depthKeys[$depth] || $this->ext_expandAllNotes)) ? 1 : 0;
-                               $PM = "join";
-                               $LN = ($a==$c)?"blank":"line";
-                               $BTM = ($a==$c)?"bottom":"";
-                               $PM = is_array($arr[$key."."]) && !$this->ext_noPMicons ? ($deeper ? "minus":"plus") : "join";
+                               $deeper = (is_array($arr[$key.'.']) && ($this->tsbrowser_depthKeys[$depth] || $this->ext_expandAllNotes)) ? 1 : 0;
+                               $PM = 'join';
+                               $LN = ($a==$c)?'blank':'line';
+                               $BTM = ($a==$c)?'bottom':'';
+                               $PM = is_array($arr[$key.'.']) && !$this->ext_noPMicons ? ($deeper ? 'minus':'plus') : 'join';
 
                                $HTML.=$depthData;
-                               $theIcon='<img src="'.$GLOBALS["BACK_PATH"].'gfx/ol/'.$PM.$BTM.'.gif" width="18" height="16" align="top" border="0" alt="" />';
-                               if ($PM=="join")        {
+                               $theIcon='<img src="'.$GLOBALS['BACK_PATH'].'gfx/ol/'.$PM.$BTM.'.gif" width="18" height="16" align="top" border="0" alt="" />';
+                               if ($PM=='join')        {
                                        $HTML.=$theIcon;
                                } else {
-                                       $aHref='index.php?id='.$GLOBALS["SOBE"]->id.'&tsbr['.$depth.']='.($deeper?0:1).'#'.$goto;
+                                       $aHref='index.php?id='.$GLOBALS['SOBE']->id.'&tsbr['.$depth.']='.($deeper?0:1).'#'.$goto;
                                        $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>';
                                } else {
                                        if ($this->linkObjects) {
-                                               $aHref = 'index.php?id='.$GLOBALS["SOBE"]->id.'&sObj='.$depth;
-                                               if ($this->bType!="const")      {
+                                               $aHref = 'index.php?id='.$GLOBALS['SOBE']->id.'&sObj='.$depth;
+                                               if ($this->bType!='const')      {
                                                        $ln = is_array($arr[$key.'.ln..']) ? 'Defined in: '.$this->lineNumberToScript($arr[$key.'.ln..']) : 'N/A';
                                                } else {
                                                        $ln = '';
@@ -432,34 +420,35 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                                        }
                                }
 
-                               $HTML.="[".$label."]";
+                               $HTML.='['.$label.']';
 
                                if (isset($arr[$key]))  {
                                        $theValue = $arr[$key];
                                        if ($this->fixedLgd)    {
                                                $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);
                                        }
                                        if ($this->tsbrowser_searchKeys[$depth] & 2)    {       // The value has matched the search string
                                                $HTML.='&nbsp;=&nbsp;<b><font color="red">'.$this->makeHtmlspecialchars($theValue).'</font></b>';
                                        } else {
-                                               $HTML.="&nbsp;=&nbsp;<b>".$this->makeHtmlspecialchars($theValue)."</b>";
+                                               $HTML.='&nbsp;=&nbsp;<b>'.$this->makeHtmlspecialchars($theValue).'</b>';
                                        }
                                        if ($this->ext_regComments && isset($arr[$key.'..']))   {
                                                $comment = $arr[$key.'..'];
                                                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('/^[#\*\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 &lt; and > with &gt;
                                                        $HTML.= ' <span class="comment">'.trim($comment).'</span>';
                                                }
                                        }
                                }
-                               $HTML.="<br />";
+                               $HTML.='<br />';
 
                                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);
                                }
                        }
                }
@@ -526,12 +515,11 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                        }
                }
                reset($keyArr);
-//             asort($keyArr);
                $c=count($keyArr);
                if ($depth_in)  { $depth_in = $depth_in.'.'; }
                while (list($key,)=each($keyArr))       {
                        $depth=$depth_in.$key;
-                       $deeper = is_array($arr[$key."."]);
+                       $deeper = is_array($arr[$key.'.']);
 
                        if ($this->regexMode)   {
                                if (ereg($searchString,$arr[$key]))     {       // The value has matched
@@ -573,9 +561,9 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
         * @return      [type]          ...
         */
        function ext_getRootlineNumber($pid)    {
-               if ($pid && is_array($GLOBALS["rootLine"]))     {
-                       reset($GLOBALS["rootLine"]);
-                       while(list($key,$val)=each($GLOBALS["rootLine"]))       {
+               if ($pid && is_array($GLOBALS['rootLine']))     {
+                       reset($GLOBALS['rootLine']);
+                       while(list($key,$val)=each($GLOBALS['rootLine']))       {
                                if ($val['uid']==$pid)  return $key;
                        }
                }
@@ -594,49 +582,57 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                reset($arr);
                $keyArr=array();
                while (list($key,)=each($arr))  {
-                       $key=ereg_replace("\.$","",$key);
-                       if (substr($key,-1)!=".")       {
+                       $key=ereg_replace('\.$','',$key);
+                       if (substr($key,-1)!='.')       {
                                $keyArr[$key]=1;
                        }
                }
                reset($keyArr);
                $a=0;
                $c=count($keyArr);
+               static $i;
                while (list($key,)=each($keyArr))       {
-                       $HTML="";
+                       $HTML = '';
                        $a++;
-                       $deeper = is_array($arr[$key."."]);
-                       $row=$arr[$key];
-
-                       $PM = "join";
-                       $LN = ($a==$c)?"blank":"line";
-                       $BTM = ($a==$c)?"top":"";
-                       $PM = "join";
-
-                       $HTML.=$depthData;
-                       $icon = substr($row["templateID"],0,3)=="sys" ? t3lib_iconWorks::getIcon("sys_template",array("root"=>$row["root"])) :
-                                                       (substr($row["templateID"],0,6)=="static" ? t3lib_iconWorks::getIcon("static_template",array()) : 'gfx/i/default.gif');
-                       $alttext= "[".$row['templateID']."]";
-                       $alttext.= $row['pid'] ? " - ".t3lib_BEfunc::getRecordPath($row['pid'],$GLOBALS["SOBE"]->perms_clause,20) : "";
-                       if (in_array($row['templateID'],$this->clearList_const) || in_array($row['templateID'],$this->clearList_setup)) {
-                               $A_B='<a href="index.php?id='.$GLOBALS["SOBE"]->id.'&template='.$row['templateID'].'">';
-                               $A_E="</A>";
+                       $deeper = is_array($arr[$key . '.']);
+                       $row = $arr[$key];
+
+                       $PM = 'join';
+                       $LN = ($a==$c) ? 'blank' : 'line';
+                       $BTM = ($a==$c) ? 'top' : '';
+                       $PM = 'join';
+
+                       $HTML .= $depthData;
+                       $icon = substr($row['templateID'],0,3) == 'sys' ? t3lib_iconWorks::getIcon('sys_template', array('root' => $row['root'])) :
+                                                       (substr($row['templateID'], 0, 6) == 'static' ? t3lib_iconWorks::getIcon('static_template', array()) : 'gfx/i/default.gif');
+                       $alttext = '[' . $row['templateID'] . ']';
+                       $alttext .= $row['pid'] ? ' - ' . t3lib_BEfunc::getRecordPath($row['pid'], $GLOBALS['SOBE']->perms_clause, 20) : '';
+                       if (in_array($row['templateID'], $this->clearList_const) || in_array($row['templateID'], $this->clearList_setup)) {
+                               $A_B = '<a href="index.php?id=' . $GLOBALS['SOBE']->id . '&template=' . $row['templateID'] . '">';
+                               $A_E = '</a>';
+                               if (t3lib_div::_GP('template') == $row['templateID']) {
+                                       $A_B = '<strong>' . $A_B;
+                                       $A_E .= '</strong>';
+                               }
                        } else {
-                               $A_B="";
-                               $A_E="";
+                               $A_B = '';
+                               $A_E = '';
                        }
-                       $HTML.=($first?'':'<IMG src="'.$GLOBALS["BACK_PATH"].'gfx/ol/'.$PM.$BTM.'.gif" width="18" height="16" align="top" border=0>').'<IMG src="'.$GLOBALS["BACK_PATH"].$icon.'" width="18" height="16" align="top" title="'.$alttext.'">'.$A_B.t3lib_div::fixed_lgd_cs($row['title'],$GLOBALS["BE_USER"]->uc["titleLen"]).$A_E."&nbsp;&nbsp;";
+                       $HTML .= ($first ? '' : '<img src="' . $GLOBALS['BACK_PATH'] . 'gfx/ol/' . $PM . $BTM . '.gif" width="18" height="16" align="top" border="0" />') .
+                               '<img ' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], $icon) . ' align="top" title="' . $alttext.'" /> ' .
+                               $A_B . t3lib_div::fixed_lgd_cs($row['title'], $GLOBALS['BE_USER']->uc['titleLen']) . $A_E . '&nbsp;&nbsp;';
                        $RL = $this->ext_getRootlineNumber($row['pid']);
-                       $keyArray[] = '<tr>
-                                                       <td nowrap>'.$HTML.'</td>
-                                                       <td align=center>'.($row["root"]?"<b>X</b>":"").'&nbsp;&nbsp;</td>
-                                                       <td align=center'.$row["bgcolor_setup"].'>'.fw(($row["clConf"]?"<b>X</b>":"")."&nbsp;&nbsp;").'</td>
-                                                       <td align=center'.$row["bgcolor_const"].'>'.fw(($row["clConst"]?"<b>X</b>":"")."&nbsp;&nbsp;").'</td>
-                                                       <td>'.($row["pid"]?"&nbsp;".$row["pid"].(strcmp($RL,"")?" (".$RL.")":"")."&nbsp;&nbsp;":"").'</td>
-                                                       <td>'.($row["next"]?"&nbsp;".$row["next"]."&nbsp;&nbsp;":"").'</td>
+                       $keyArray[] = '<tr class="' . ($i++ % 2 == 0 ? 'bgColor4' : 'bgColor6') . '">
+                                                       <td nowrap>' . $HTML . '</td>
+                                                       <td align="center" class="bgColor5">' . ($row['root'] ? '<img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/perm-allowed.gif', 'width="10" height="9"') . ' align="top" alt="" />' : '') . '&nbsp;&nbsp;</td>
+                                                       <td align="center">' . fw(($row['clConf'] ? '<img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'],'gfx/perm-allowed.gif', 'width="10" height="9"') . ' align="top" alt="" />' :'') . '&nbsp;&nbsp;') . '</td>
+                                                       <td align="center" class="bgColor5">' . fw(($row['clConst'] ? '<img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/perm-allowed.gif', 'width="10" height="9"') . ' align="top" alt="" />' : '') . '&nbsp;&nbsp;') . '</td>
+                                                       <td align="center">' . ($row['pid'] ? $row['pid'] : '') . '</td>
+                                                       <td align="center" class="bgColor5">' . (strcmp($RL, '') ? $RL : '') . '</td>
+                                                       <td>' . ($row['next'] ? '&nbsp;' . $row['next'] . '&nbsp;&nbsp;' : '') . '</td>
                                                </tr>';
                        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;
@@ -656,14 +652,14 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                        $row = $this->hierarchyInfo[$pointer];
 
                        $depthDataArr[$row['templateID']]=$row;
-                       $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_setup'] = isset($this->clearList_setup_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'])     {
-                               $depthDataArr[$row['templateID']."."] = $this->ext_process_hierarchyInfo(array(), $pointer);
+                               $depthDataArr[$row['templateID'].'.'] = $this->ext_process_hierarchyInfo(array(), $pointer);
                        }
                }
                return $depthDataArr;
@@ -681,16 +677,16 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
         * @return      [type]          ...
         */
        function ext_outputTS($config, $lineNumbers=0, $comments=0, $crop=0, $syntaxHL=0, $syntaxHLBlockmode=0) {
-               $all="";
+               $all='';
                reset($config);
                while (list(,$str)=each($config))       {
-                       $all.="\n[GLOBAL]\n".$str;
+                       $all .= chr(10) .'[GLOBAL]' . chr(10) . $str;
                }
 
                if ($syntaxHL)  {
-                       $all = ereg_replace("^[^".chr(10)."]*.","",$all);
+                       $all = ereg_replace('^[^'.chr(10).']*.','',$all);
                        $all = chop($all);
-                       $tsparser = t3lib_div::makeInstance("t3lib_TSparser");
+                       $tsparser = t3lib_div::makeInstance('t3lib_TSparser');
                        $tsparser->lineNumberOffset=$this->ext_lineNumberOffset+1;
                        return $tsparser->doSyntaxHighlight($all,$lineNumbers?array($this->ext_lineNumberOffset+1):'',$syntaxHLBlockmode);
                } else {
@@ -700,7 +696,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
 
        /**
         * Returns a new string of max. $chars lenght
-        * If the string is longer, it will be truncated and prepended with "..."
+        * If the string is longer, it will be truncated and prepended with '...'
         * $chars must be an integer of at least 4
         *
         * @param       [type]          $string: ...
@@ -710,7 +706,11 @@ class t3lib_tsparser_ext extends t3lib_TStemplate  {
        function ext_fixed_lgd($string,$chars)  {
                if ($chars >= 4)        {
                        if(strlen($string)>$chars)  {
-                               return substr($string, 0, $chars-3)."...";
+                               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##';
+                               } else {
+                                       return t3lib_div::fixed_lgd_cs($string, $chars-3);
+                               }
                        }
                }
                return $string;
@@ -724,7 +724,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
         * @return      [type]          ...
         */
        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>';
        }
 
        /**
@@ -737,24 +737,24 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
         * @return      [type]          ...
         */
        function ext_formatTS($input, $ln, $comments=1, $crop=0)        {
-               $input = ereg_replace("^[^".chr(10)."]*.","",$input);
+               $input = ereg_replace('^[^'.chr(10).']*.','',$input);
                $input = chop($input);
                $cArr = explode(chr(10),$input);
 
                reset($cArr);
                $n = ceil(log10(count($cArr)+$this->ext_lineNumberOffset));
-               $lineNum="";
+               $lineNum='';
                while(list($k,$v)=each($cArr))  {
                        $lln=$k+$this->ext_lineNumberOffset+1;
-                       if ($ln)        $lineNum = $this->ext_lnBreakPointWrap($lln,str_replace(" ",'&nbsp;',sprintf("% ".$n."d",$lln))).":   ";
+                       if ($ln)        $lineNum = $this->ext_lnBreakPointWrap($lln,str_replace(' ','&nbsp;',sprintf('% '.$n.'d',$lln))).':   ';
                        $v=htmlspecialchars($v);
                        if ($crop)      {$v=$this->ext_fixed_lgd($v,($ln?71:77));}
-                       $cArr[$k] = $lineNum.str_replace(" ",'&nbsp;',$v);
+                       $cArr[$k] = $lineNum.str_replace(' ','&nbsp;',$v);
 
                        $firstChar = substr(trim($v),0,1);
-                       if ($firstChar=="[")    {
+                       if ($firstChar=='[')    {
                                $cArr[$k] = '<font color="green"><b>'.$cArr[$k].'</b></font>';
-                       } elseif ($firstChar=="/" || $firstChar=="#")   {
+                       } elseif ($firstChar=='/' || $firstChar=='#')   {
                                if ($comments)  {
                                        $cArr[$k] = '<span class="typo3-dimmed">'.$cArr[$k].'</span>';
                                } else {
@@ -764,7 +764,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
 
 
                }
-               $output = implode($cArr, "<BR>")."<BR>";
+               $output = implode($cArr, '<br />').'<br />';
                return $output;
        }
 
@@ -779,7 +779,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
                        // Query is taken from the runThroughTemplates($theRootLine) function in the parent class.
                if (intval($id))        {
                        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');
                        $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
@@ -820,18 +820,18 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                $editableComments=array();
                reset($this->flatSetup);
                while(list($const,$value)=each($this->flatSetup))       {
-                       if (substr($const,-2)!=".." && isset($this->flatSetup[$const.".."]))    {
-                               $comment = trim($this->flatSetup[$const.".."]);
+                       if (substr($const,-2)!='..' && isset($this->flatSetup[$const.'..']))    {
+                               $comment = trim($this->flatSetup[$const.'..']);
                                $c_arr = explode(chr(10),$comment);
                                while(list($k,$v)=each($c_arr)) {
-                                       $line=trim(ereg_replace("^[#\/]*","",$v));
+                                       $line=trim(ereg_replace('^[#\/]*','',$v));
                                        if ($line)      {
-                                               $parts = explode(";", $line);
+                                               $parts = explode(';', $line);
                                                while(list(,$par)=each($parts))         {
-                                                       if (strstr($par,"="))   {
-                                                               $keyValPair =explode("=",$par,2);
+                                                       if (strstr($par,'='))   {
+                                                               $keyValPair =explode('=',$par,2);
                                                                switch(trim(strtolower($keyValPair[0])))        {
-                                                                       case "type":
+                                                                       case 'type':
                                                                                        // Type:
                                                                                        /*
        int (range; low-high, list: item,item,item = selector),
@@ -841,23 +841,31 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
        html-color ...,
        file
                                                                                        */
-                                                                               $editableComments[$const]["type"] = trim($keyValPair[1]);
+                                                                               $editableComments[$const]['type'] = trim($keyValPair[1]);
                                                                        break;
-                                                                       case "cat":
+                                                                       case 'cat':
                                                                                        // list of categories.
-                                                                               $catSplit=explode("/",strtolower($keyValPair[1]));
-                                                                               $editableComments[$const]["cat"] = trim($catSplit[0]);
+                                                                               $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.
                                                                                if ($catSplit[1] && isset($this->subCategories[$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_name']=$catSplit[1];
+                                                                                       $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":
+                                                                       case 'label':
                                                                                        // label
-                                                                               $editableComments[$const]["label"] = trim($keyValPair[1]);
+                                                                               $editableComments[$const]['label'] = trim($keyValPair[1]);
+                                                                       break;
+                                                                       case 'customsubcategory':
+                                                                                       // custom subCategory label
+                                                                               $customSubcategory = explode('=',$keyValPair[1],2);
+                                                                               if (trim($customSubcategory[0])) {
+                                                                                       $subCategoryKey = strtolower($customSubcategory[0]);
+                                                                                       $this->subCategories[$subCategoryKey][0] = $GLOBALS['LANG']->sL($customSubcategory[1]);
+                                                                               }
                                                                        break;
                                                                }
                                                        }
@@ -866,10 +874,10 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                                }
                        }
                        if (isset($editableComments[$const]))   {
-                               $editableComments[$const]["name"]=$const;
-                               $editableComments[$const]["value"]=trim($value);
+                               $editableComments[$const]['name']=$const;
+                               $editableComments[$const]['value']=trim($value);
                                if (isset($default[$const]))    {
-                                       $editableComments[$const]["default_value"]=trim($default[$const]);
+                                       $editableComments[$const]['default_value']=trim($default[$const]);
                                }
                        }
                }
@@ -886,18 +894,18 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                // Runs through the available constants and fills the $this->categories array with pointers and priority-info
                reset($editConstArray);
                while(list($constName,$constData)=each($editConstArray))        {
-                       if (!$constData["type"])        {$constData["type"]="string";}
-                       $cats = explode(",",$constData["cat"]);
+                       if (!$constData['type']) {
+                               $constData['type']='string';
+                       }
+                       $cats = explode(',',$constData['cat']);
                        reset($cats);
                        while (list(,$theCat)=each($cats))      {               // if = only one category, while allows for many. We have agreed on only one category is the most basic way...
                                $theCat=trim($theCat);
                                if ($theCat)    {
-                                       $this->categories[$theCat][$constName]=$constData["subcat"];
-//                                     $this->categories["all"][$constName]=$constData["subcat"];
+                                       $this->categories[$theCat][$constName]=$constData['subcat'];
                                }
                        }
                }
-//             debug($this->categories);
        }
 
        /**
@@ -910,7 +918,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate   {
                $retArr = array();
                while(list($k,$v)=each($this->categories))      {
                        if (count($v))  {
-                               $retArr[$k]=strtoupper($k)." (".count($v).")";
+                               $retArr[$k]=strtoupper($k).' ('.count($v).')';
                        }
                }
                return $retArr;
@@ -926,35 +934,34 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                $retArr = array();
                $type=trim($type);
                if (!$type)     {
-                       $retArr["type"]="string";
+                       $retArr['type']='string';
                } else {
-                       $m=strcspn ($type," [");
-                       $retArr["type"]=strtolower(substr($type,0,$m));
+                       $m=strcspn ($type,' [');
+                       $retArr['type']=strtolower(substr($type,0,$m));
                        if (t3lib_div::inList('int,options,file,boolean,offset,user', $retArr['type'])) {
                                $p=trim(substr($type,$m));
                                $reg = array();
-                               ereg("\[(.*)\]",$p,$reg);
+                               ereg('\[(.*)\]',$p,$reg);
                                $p=trim($reg[1]);
                                if ($p) {
-                                       $retArr["paramstr"]=$p;
-                                       switch($retArr["type"]) {
-                                               case "int":
-                                                       if (substr($retArr["paramstr"],0,1)=="-")       {
-                                                               $retArr["params"]=t3lib_div::intExplode("-",substr($retArr["paramstr"],1));
-                                                               $retArr["params"][0]=intval("-".$retArr["params"][0]);
+                                       $retArr['paramstr']=$p;
+                                       switch($retArr['type']) {
+                                               case 'int':
+                                                       if (substr($retArr['paramstr'],0,1)=='-')       {
+                                                               $retArr['params']=t3lib_div::intExplode('-',substr($retArr['paramstr'],1));
+                                                               $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"]);
+                                               case 'options':
+                                                       $retArr['params']=explode(',',$retArr['paramstr']);
                                                break;
                                        }
                                }
                        }
                }
-//             debug($retArr);
                return $retArr;
        }
 
@@ -965,28 +972,28 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
         * @return      [type]          ...
         */
        function ext_getTSCE_config($category)  {
-               $catConf=$this->setup["constants"]["TSConstantEditor."][$category."."];
+               $catConf=$this->setup['constants']['TSConstantEditor.'][$category.'.'];
                $out=array();
                if (is_array($catConf)) {
                        reset($catConf);
                        while(list($key,$val)=each($catConf))   {
                                switch($key)    {
-                                       case "image":
-                                               $out["imagetag"] = $this->ext_getTSCE_config_image($catConf["image"]);
+                                       case 'image':
+                                               $out['imagetag'] = $this->ext_getTSCE_config_image($catConf['image']);
                                        break;
-                                       case "description":
-                                       case "bulletlist":
-                                       case "header":
+                                       case 'description':
+                                       case 'bulletlist':
+                                       case 'header':
                                                $out[$key] = $val;
                                        break;
                                        default:
                                                if (t3lib_div::testInt($key))   {
-                                                       $constRefs = explode(",",$val);
+                                                       $constRefs = explode(',',$val);
                                                        reset($constRefs);
                                                        while(list(,$const)=each($constRefs))   {
                                                                $const=trim($const);
                                                                if ($const && $const<=20)       {
-                                                                       $out["constants"][$const].=$this->ext_getKeyImage($key);
+                                                                       $out['constants'][$const].=$this->ext_getKeyImage($key);
                                                                }
                                                        }
                                                }
@@ -1014,19 +1021,19 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
         * @return      [type]          ...
         */
        function ext_getTSCE_config_image($imgConf)     {
-               if (substr($imgConf,0,4)=="gfx/")       {
+               if (substr($imgConf,0,4)=='gfx/')       {
                        $iFile=$this->ext_localGfxPrefix.$imgConf;
                        $tFile=$this->ext_localWebGfxPrefix.$imgConf;
                } elseif (substr($imgConf,0,4)=='EXT:') {
                        $iFile = t3lib_div::getFileAbsFileName($imgConf);
                        if ($iFile)     {
                                $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;
-                       $tFile=$GLOBALS["BACK_PATH"]."../".$f;
+                       $tFile=$GLOBALS['BACK_PATH'].'../'.$f;
                }
                $imageInfo=@getImagesize($iFile);
                return '<img src="'.$tFile.'" '.$imageInfo[3].'>';
@@ -1038,16 +1045,16 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
         * @return      [type]          ...
         */
        function ext_resourceDims()     {
-               if ($this->setup["resources"])  {
-                       $rArr=explode(",",$this->setup["resources"]);
+               if ($this->setup['resources'])  {
+                       $rArr=explode(',',$this->setup['resources']);
                        while(list($c,$val)=each($rArr))        {
                                $val=trim($val);
-                               $theFile = PATH_site."uploads/tf/".$val;
+                               $theFile = PATH_site.'uploads/tf/'.$val;
                                if ($val && @is_file($theFile)) {
                                        $imgInfo = @getimagesize($theFile);
                                }
                                if (is_array($imgInfo)) {
-                                       $this->resourceDimensions[$val]=" (".$imgInfo[0]."x".$imgInfo[1].")";
+                                       $this->resourceDimensions[$val]=' ('.$imgInfo[0].'x'.$imgInfo[1].')';
                                }
                        }
                }
@@ -1056,7 +1063,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                        $val=trim($val);
                        $imgInfo = @getimagesize(PATH_site.$val);
                        if (is_array($imgInfo)) {
-                               $this->resourceDimensions[$val]=" (".$imgInfo[0]."x".$imgInfo[1].")";
+                               $this->resourceDimensions[$val]=' ('.$imgInfo[0].'x'.$imgInfo[1].')';
                        }
                }
        }
@@ -1069,8 +1076,8 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
         */
        function ext_readDirResources($path)    {
                $path=trim($path);
-               if ($path && substr($path,0,10)=="fileadmin/")  {
-                       $path = ereg_replace("\/$","",$path);
+               if ($path && substr($path,0,10)=='fileadmin/')  {
+                       $path = ereg_replace('\/$','',$path);
                        $this->readDirectory(PATH_site.$path);
                }
        }
@@ -1082,15 +1089,15 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
         * @param       [type]          $type: ...
         * @return      [type]          ...
         */
-       function readDirectory($path,$type="file")      {
+       function readDirectory($path,$type='file')      {
                if(@is_dir($path))      {
                        $d = @dir($path);
                        $tempArray=Array();
                        if (is_object($d))      {
                                while($entry=$d->read()) {
-                                       if ($entry!="." && $entry!="..")        {
-                                               $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 ($entry!='.' && $entry!='..')        {
+                                               $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)) {
                                                        $fI = t3lib_div::split_fileref($wholePath);
                                                        $this->dirResources[]=substr($wholePath,strlen(PATH_site));
                                                }
@@ -1108,10 +1115,10 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
         * @return      [type]          ...
         */
        function ext_fNandV($params)    {
-               $fN='data['.$params["name"].']';
-               $fV=$params["value"];
-               if (ereg("^{[\$][a-zA-Z0-9\.]*}$",trim($fV),$reg))      {               // Values entered from the constantsedit cannot be constants!   230502; removed \{ and set {
-                       $fV="";
+               $fN='data['.$params['name'].']';
+               $fV=$params['value'];
+               if (ereg('^{[\$][a-zA-Z0-9\.]*}$',trim($fV),$reg))      {               // Values entered from the constantsedit cannot be constants!   230502; removed \{ and set {
+                       $fV='';
                }
                $fV=htmlspecialchars($fV);
 
@@ -1119,249 +1126,280 @@ class t3lib_tsparser_ext extends t3lib_TStemplate     {
        }
 
        /**
-        * [Describe function...]
+        * This functions returns the HTML-code that creates the editor-layout of the module.
         *
         * @param       [type]          $theConstants: ...
         * @param       [type]          $category: ...
         * @return      [type]          ...
         */
        function ext_printFields($theConstants,$category)       {
-                       // This functions returns the HTML-code that creates the editor-layout of the module.
                reset($theConstants);
-               $output="";
-               $subcat="";
+               $output='<script type="text/javascript" src="'.$GLOBALS['BACK_PATH'].'js/constantEditor.js"></script>
+               ';
+               $subcat='';
                if (is_array($this->categories[$category]))     {
 
                        $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]);
                        while(list($name,$type)=each($this->categories[$category]))     {
                                $params = $theConstants[$name];
                                if (is_array($params))  {
-                                       if ($subcat!=$params["subcat_name"])    {
-                                               $subcat=$params["subcat_name"];
-                                               $subcat_name = $params["subcat_name"] ? $this->subCategories[$params["subcat_name"]][0] : "Others";
-                                               $output.='<tr>';
-                                               $output.='<td colspan=2 class="bgColor4"><div align="center"><b>'.$subcat_name.'</b></div></td>';
-                                               $output.='</tr>';
+                                       if ($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>';
                                        }
 
-                       //              if (substr($params["value"],0,2)!='{$') {
-                                               $label=$GLOBALS["LANG"]->sL($params["label"]);
-                                               $label_parts = explode(":",$label,2);
-                                               if (count($label_parts)==2)     {
-                                                       $head=trim($label_parts[0]);
-                                                       $body=trim($label_parts[1]);
-                                               } else {
-                                                       $head=trim($label_parts[0]);
-                                                       $body="";
-                                               }
-                                               if (strlen($head)>35)   {
-                                                       if (!$body) {$body=$head;}
-                                                       $head=t3lib_div::fixed_lgd_cs($head,35);
-                                               }
-                                               $typeDat=$this->ext_getTypeData($params["type"]);
-                                               $checked="";
-                                               $p_field="";
-                                               $raname = substr(md5($params["name"]),0,10);
-                                               $aname="'".$raname."'";
-                                               if ($this->ext_dontCheckIssetValues || isset($this->objReg[$params["name"]]))   {
-                                                       $checked=" checked";
-                                                       list($fN,$fV,$params)=$this->ext_fNandV($params);
-
-                                                       switch($typeDat["type"])        {
-                                                               case "int":
-                                                               case "int+":
-                                                                       $p_field='<input type="text" name="'.$fN.'" value="'.$fV.'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(5).' onChange="uFormUrl('.$aname.')">';
-                                                                       if ($typeDat["paramstr"])       {
-                                                                               $p_field.=' Range: '.$typeDat["paramstr"];
-                                                                       } elseif ($typeDat["type"]=="int+") {
-                                                                               $p_field.=' Range: 0 - ';
-                                                                       } else {
-                                                                               $p_field.=' (Integer)';
+                                       $label=$GLOBALS['LANG']->sL($params['label']);
+                                       $label_parts = explode(':',$label,2);
+                                       if (count($label_parts)==2)     {
+                                               $head=trim($label_parts[0]);
+                                               $body=trim($label_parts[1]);
+                                       } else {
+                                               $head=trim($label_parts[0]);
+                                               $body='';
+                                       }
+                                       if (strlen($head)>35)   {
+                                               if (!$body) {$body=$head;}
+                                               $head=t3lib_div::fixed_lgd_cs($head,35);
+                                       }
+                                       $typeDat=$this->ext_getTypeData($params['type']);
+                                       $checked='';
+                                       $p_field='';
+                                       $raname = substr(md5($params['name']),0,10);
+                                       $aname='\''.$raname.'\'';
+
+                                       list($fN,$fV,$params)=$this->ext_fNandV($params);
+
+                                       switch($typeDat['type'])        {
+                                               case 'int':
+                                               case 'int+':
+                                                       $p_field='<input id="'.$fN.'" type="text" name="'.$fN.'" value="'.$fV.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(5).' onChange="uFormUrl('.$aname.')" />';
+                                                       if ($typeDat['paramstr'])       {
+                                                               $p_field.=' Range: '.$typeDat['paramstr'];
+                                                       } elseif ($typeDat['type']=='int+') {
+                                                               $p_field.=' Range: 0 - ';
+                                                       } else {
+                                                               $p_field.=' (Integer)';
+                                                       }
+                                               break;
+                                               case 'color':
+                                                       $colorNames=explode(',',','.$this->HTMLcolorList);
+                                                       $p_field='';
+                                                       while(list(,$val)=each($colorNames))    {
+                                                               $sel='';
+                                                               if ($val==strtolower($params['value'])) {
+                                                                       $sel = ' selected';
+                                                               }
+                                                               $p_field.='<option value="'.htmlspecialchars($val).'"'.$sel.'>'.$val.'</option>';
+                                                       }
+                                                       $p_field='<select id="select-'.$fN.'" rel="'.$fN.'" name="C'.$fN.'" class="typo3-tstemplate-ceditor-color-select" onChange="uFormUrl('.$aname.');">'.$p_field.'</select>';
+
+                                                       $p_field.='<input type="text" id="input-'.$fN.'" rel="'.$fN.'" name="'.$fN.'" class="typo3-tstemplate-ceditor-color-input" value="'.$fV.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(7).' onChange="uFormUrl('.$aname.')" />';
+                                               break;
+                                               case 'wrap':
+                                                       $wArr = explode('|',$fV);
+                                                       $p_field='<input type="text" id="'.$fN.'" name="'.$fN.'" value="'.$wArr[0].'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(29).' onChange="uFormUrl('.$aname.')" />';
+                                                       $p_field.=' | ';
+                                                       $p_field.='<input type="text" name="W'.$fN.'" value="'.$wArr[1].'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(15).' onChange="uFormUrl('.$aname.')" />';
+                                               break;
+                                               case 'offset':
+                                                       $wArr = explode(',',$fV);
+                                                       $labels = t3lib_div::trimExplode(',',$typeDat['paramstr']);
+                                                       $p_field=($labels[0]?$labels[0]:'x').':<input type="text" name="'.$fN.'" value="'.$wArr[0].'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).' onChange="uFormUrl('.$aname.')" />';
+                                                       $p_field.=' , ';
+                                                       $p_field.=($labels[1]?$labels[1]:'y').':<input type="text" name="W'.$fN.'" value="'.$wArr[1].'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).' onChange="uFormUrl('.$aname.')" />';
+                                                       for ($aa=2;$aa<count($labels);$aa++)    {
+                                                               if ($labels[$aa])       {
+                                                                       $p_field.=' , '.$labels[$aa].':<input type="text" name="W'.$aa.$fN.'" value="'.$wArr[$aa].'"'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).' onChange="uFormUrl('.$aname.')" />';
+                                                               } else {
+                                                                       $p_field.='<input type="hidden" name="W'.$aa.$fN.'" value="'.$wArr[$aa].'" />';
+                                                               }
+                                                       }
+                                               break;
+                                               case 'options':
+                                                       if (is_array($typeDat['params']))       {
+                                                               $p_field='';
+                                                               while(list(,$val)=each($typeDat['params']))     {
+                                                                       $vParts = explode('=',$val,2);
+                                                                       $label = $vParts[0];
+                                                                       $val = isset($vParts[1]) ? $vParts[1] : $vParts[0];
+
+                                                                       // option tag:
+                                                                       $sel='';
+                                                                       if ($val==$params['value'])     {
+                                                                               $sel=' selected';
                                                                        }
-                                                               break;
-                                                               case "color":
-                                                                       $colorNames=explode(",",",".$this->HTMLcolorList);
-                                                                       $p_field="";
-                                                                       while(list(,$val)=each($colorNames))    {
-                                                                               $sel="";
-                                                                               if ($val==strtolower($params["value"])) {$sel=" selected";}
-                                                                               $p_field.='<option value="'.htmlspecialchars($val).'"'.$sel.'>'.$val.'</option>';
+                                                                       $p_field.='<option value="'.htmlspecialchars($val).'"'.$sel.'>'.$GLOBALS['LANG']->sL($label).'</option>';
+                                                               }
+                                                               $p_field='<select id="'.$fN.'" name="'.$fN.'" onChange="uFormUrl('.$aname.')">'.$p_field.'</select>';
+                                                       }
+                                               break;
+                                               case 'boolean':
+                                                       $p_field='<input type="hidden" name="'.$fN.'" value="0" />';
+                                                       $sel='';
+                                                       if ($fV)        {
+                                                               $sel=' checked';
+                                                       }
+                                                       $p_field.='<input id="'.$fN.'" type="checkbox" name="'.$fN.'" value="'.($typeDat['paramstr']?$typeDat['paramstr']:1).'"'.$sel.' onClick="uFormUrl('.$aname.')" />';
+                                               break;
+                                               case 'comment':
+                                                       $p_field='<input type="hidden" name="'.$fN.'" value="#" />';
+                                                       $sel='';
+                                                       if (!$fV)       {
+                                                               $sel=' checked';
+                                                       }
+                                                       $p_field.='<input id="'.$fN.'" type="checkbox" name="'.$fN.'" value=""'.$sel.' onClick="uFormUrl('.$aname.')" />';
+                                               break;
+                                               case 'file':
+                                                       $p_field='<option value=""></option>';
+                                                       $theImage='';
+                                                       $selectThisFile = $this->extractFromResources($this->setup['resources'],$params['value']);
+                                                       if ($params['value'] && !$selectThisFile)       {
+                                                               if (in_array($params['value'],$this->dirResources))     {
+                                                                       $selectThisFile=$params['value'];
+                                                               }
+                                                       }
+                                                       // extensionlist
+                                                       $extList = $typeDat['paramstr'];
+                                                       $p_field='<option value="">('.$extList.')</option>';
+                                                       if ($extList=='IMAGE_EXT')      {
+                                                               $extList = $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'];
+                                                       }
+                                                       reset($this->rArr);
+                                                       $onlineResourceFlag=$this->ext_defaultOnlineResourceFlag;
+
+                                                       while(list($c,$val)=each($this->rArr))  {
+                                                               $val=trim($val);
+                                                               $fI=t3lib_div::split_fileref($val);
+                                                               if ($val && (!$extList || t3lib_div::inList($extList,$fI['fileext'])))  {
+                                                                       if ($onlineResourceFlag<=0 && substr($fI['path'],0,10)=='fileadmin/')   {
+                                                                               if ($onlineResourceFlag<0)      {
+                                                                                       $p_field.='<option value=""></option>';
+                                                                               }
+                                                                               $p_field.='<option value="">__'.$fI['path'].'__:</option>';
+                                                                               $onlineResourceFlag=1;
                                                                        }
-                                                                       $p_field='<select name="C'.$fN.'" onChange="document.'.$this->ext_CEformName.'[\''.$fN.'\'].value=this.options[this.selectedIndex].value; uFormUrl('.$aname.');">'.$p_field.'</select>';
-
-                                                                       $p_field.='<input type="text" name="'.$fN.'" value="'.$fV.'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(7).' onChange="uFormUrl('.$aname.')">';
-                                                               break;
-                                                               case "wrap":
-                                                                       $wArr = explode("|",$fV);
-                                                                       $p_field='<input type="text" name="'.$fN.'" value="'.$wArr[0].'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(29).' onChange="uFormUrl('.$aname.')">';
-                                                                       $p_field.=' | ';
-                                                                       $p_field.='<input type="text" name="W'.$fN.'" value="'.$wArr[1].'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(15).' onChange="uFormUrl('.$aname.')">';
-                                                               break;
-                                                               case "offset":
-                                                                       $wArr = explode(",",$fV);
-                                                                       $labels = t3lib_div::trimExplode(",",$typeDat["paramstr"]);
-                                                                       $p_field=($labels[0]?$labels[0]:"x").':<input type="text" name="'.$fN.'" value="'.$wArr[0].'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(4).' onChange="uFormUrl('.$aname.')">';
-                                                                       $p_field.=' , ';
-                                                                       $p_field.=($labels[1]?$labels[1]:"y").':<input type="text" name="W'.$fN.'" value="'.$wArr[1].'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(4).' onChange="uFormUrl('.$aname.')">';
-                                                                       for ($aa=2;$aa<count($labels);$aa++)    {
-                                                                               if ($labels[$aa])       {
-                                                                                       $p_field.=' , '.$labels[$aa].':<input type="text" name="W'.$aa.$fN.'" value="'.$wArr[$aa].'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(4).' onChange="uFormUrl('.$aname.')">';
+                                                                       $dims=$this->resourceDimensions[$val];
+                                                                       $sel='';
+
+                                                                       // Check if $params['value'] is in the list of resources.
+                                                                       if ($selectThisFile && $selectThisFile==$val)   {
+                                                                               $sel=' selected';
+                                                                               if ($onlineResourceFlag<=0)     {
+                                                                                       $theImage=t3lib_BEfunc::thumbCode(array('resources'=>$selectThisFile),'sys_template','resources',$GLOBALS['BACK_PATH'],'');
                                                                                } else {
-                                                                                       $p_field.='<input type="hidden" name="W'.$aa.$fN.'" value="'.$wArr[$aa].'">';
+                                                                                       $theImage=t3lib_BEfunc::thumbCode(array('resources'=>$fI['file']),'sys_template','resources',$GLOBALS['BACK_PATH'],'',$fI['path']);
                                                                                }
                                                                        }
-                                                               break;
-                                                               case "options":
-                                                                       if (is_array($typeDat["params"]))       {
-                                                                               $p_field="";
-                                                                               while(list(,$val)=each($typeDat["params"]))     {
-                                                                                       $vParts = explode("=",$val,2);
-                                                                                       $label = $vParts[0];
-                                                                                       $val = isset($vParts[1]) ? $vParts[1] : $vParts[0];
-
-                                                                                               // option tag:
-                                                                                       $sel="";
-                                                                                       if ($val==$params["value"])     {$sel=" selected";}
-                                                                                       $p_field.='<option value="'.htmlspecialchars($val).'"'.$sel.'>'.$GLOBALS["LANG"]->sL($label).'</option>';
-                                                                               }
-                                                                               $p_field='<select name="'.$fN.'" onChange="uFormUrl('.$aname.')">'.$p_field.'</select>';
+
+                                                                       if ($onlineResourceFlag<=0)     {
+                                                                               $onlineResourceFlag--;
+                                                                               // Value is set with a *
+                                                                               $val = $this->ext_setStar($val);
+                                                                               $p_field.='<option value="'.htmlspecialchars($val).'"'.$sel.'>'.$val.$dims.'</option>';
+                                                                       } else {
+                                                                               $p_field.='<option value="'.htmlspecialchars($val).'"'.$sel.'>'.$fI['file'].$dims.'</option>';
                                                                        }
-                                                               break;
-                                                               case "boolean":
-                                                                       $p_field='<input type="Hidden" name="'.$fN.'" value="0">';
-                                                                       $sel=""; if ($fV)       {$sel=" checked";}
-                                                                       $p_field.='<input type="Checkbox" name="'.$fN.'" value="'.($typeDat["paramstr"]?$typeDat["paramstr"]:1).'"'.$sel.' onClick="uFormUrl('.$aname.')">';
-                                                               break;
-                                                               case "comment":
-                                                                       $p_field='<input type="Hidden" name="'.$fN.'" value="#">';
-                                                                       $sel=""; if (!$fV)      {$sel=" checked";}
-                                                                       $p_field.='<input type="Checkbox" name="'.$fN.'" value=""'.$sel.' onClick="uFormUrl('.$aname.')">';
-                                                               break;
-                                                               case "file":
-                                                                       $p_field='<option value=""></option>';
-//                                                                     debug($params["value"]);
-                                                                       $theImage="";
-//                                                                     if ($this->)    {
-                                                                               $selectThisFile = $this->extractFromResources($this->setup["resources"],$params["value"]);
-                                                                               if ($params["value"] && !$selectThisFile)       {
-                                                                                       if (in_array($params["value"],$this->dirResources))     {
-                                                                                               $selectThisFile=$params["value"];
-                                                                                       }
-                                                                               }
-//                                                                             debug($selectThisFile);
-                                                                                       // extensionlist
-                                                                               $extList = $typeDat["paramstr"];
-                                                                               $p_field='<option value="">('.$extList.')</option>';
-                                                                               if ($extList=="IMAGE_EXT")      {
-                                                                                       $extList = $GLOBALS["TYPO3_CONF_VARS"]["GFX"]["imagefile_ext"];
-                                                                               }
-                                                                               reset($this->rArr);
-                                                                               $onlineResourceFlag=$this->ext_defaultOnlineResourceFlag;
-
-                                                                               while(list($c,$val)=each($this->rArr))  {
-                                                                                       $val=trim($val);
-                                                                                       $fI=t3lib_div::split_fileref($val);
-//                                                                                     debug($fI);
-                                                                                       if ($val && (!$extList || t3lib_div::inList($extList,$fI["fileext"])))  {
-                                                                                               if ($onlineResourceFlag<=0 && substr($fI["path"],0,10)=="fileadmin/")   {
-                                                                                                       if ($onlineResourceFlag<0)      {
-                                                                                                               $p_field.='<option value=""></option>';
-                                                                                                       }
-                                                                                                       $p_field.='<option value="">__'.$fI["path"].'__:</option>';
-                                                                                                       $onlineResourceFlag=1;
-                                                                                               }
-                                                                                               $dims=$this->resourceDimensions[$val];
-                                                                                               $sel="";
-
-                                                                                                       // Check if $params["value"] is in the list of resources.
-                                                                                               if ($selectThisFile && $selectThisFile==$val)   {
-                                                                                                       $sel=" selected";
-                                                                                                       if ($onlineResourceFlag<=0)     {
-                                                                                                               $theImage=t3lib_BEfunc::thumbCode(array("resources"=>$selectThisFile),"sys_template","resources",$GLOBALS["BACK_PATH"],"");
-                                                                                                       } else {
-                                                                                                               $theImage=t3lib_BEfunc::thumbCode(array("resources"=>$fI["file"]),"sys_template","resources",$GLOBALS["BACK_PATH"],"",$fI["path"]);
-                                                                                                       }
-                                                                                               }
+                                                               }
+                                                       }
 
-                                                                                               if ($onlineResourceFlag<=0)     {
-                                                                                                       $onlineResourceFlag--;
-                                                                                                               // Value is set with a *
-                                                                                                       $val = $this->ext_setStar($val);
-                                                                                                       $p_field.='<option value="'.htmlspecialchars($val).'"'.$sel.'>'.$val.$dims.'</option>';
-                                                                                               } else {
-                                                                                                       $p_field.='<option value="'.htmlspecialchars($val).'"'.$sel.'>'.$fI["file"].$dims.'</option>';
-                                                                                               }
-                                                                                       }
-                                                                               }
-                                                                               if (trim($params["value"]) && !$selectThisFile) {
-                                                                                       $val = $params["value"];
-                                                                                       $p_field.='<option value=""></option>';
-                                                                                       $p_field.='<option value="'.htmlspecialchars($val).'" selected>'.$val.'</option>';
-                                                                               }
-       //                                                              }
-                                                                       $p_field='<select name="'.$fN.'" onChange="uFormUrl('.$aname.')">'.$p_field.'</select>';
-                                                                       $p_field.=$theImage;
-
-                                                                       if (!$this->ext_noCEUploadAndCopying)   {
-                                                                                       // Copy a resource
-                                                                               $copyFile = $this->extractFromResources($this->setup["resources"],$params["value"]);
-                                                                               if (!$copyFile) {
-                                                                                       if ($params["value"])   {
-                                                                                               $copyFile=PATH_site.$this->ext_detectAndFixExtensionPrefix($params["value"]);
-                                                                                       }
-                                                                               } else {
-       //                                                                              $copyFile=PATH_site."uploads/tf/".$copyFile;
-                                                                                       $copyFile="";
-                                                                               }
-#debug($copyFile);
-                                                                               if ($copyFile && @is_file($copyFile))   {
-                                                                                       $p_field.='<img src="clear.gif" width="20" height="1" alt="" /><img'.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'],'gfx/clip_copy.gif','width="12" height="12"').' border="0" alt="" /><input type="Checkbox" name="_copyResource['.$params["name"].']" value="'.htmlspecialchars($copyFile).'" onClick="uFormUrl('.$aname.');if (this.checked) {alert(unescape(\''.rawurlencode(sprintf("This will make a copy of the current file, '%s'. Do you really want that?",$params["value"])).'\'));}">';
-                                                                               }
-                                                                                       // Upload?
-                                                                               $p_field.='<BR>';
-                                                                               $p_field.='<input type="file" name="upload_'.$fN.'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth().' onChange="uFormUrl('.$aname.')" size="50" />';
+                                                       if (trim($params['value']) && !$selectThisFile) {
+                                                               $val = $params['value'];
+                                                               $p_field.='<option value=""></option>';
+                                                               $p_field.='<option value="'.htmlspecialchars($val).'" selected>'.$val.'</option>';
+                                                       }
+
+                                                       $p_field='<select id="'.$fN.'" name="'.$fN.'" onChange="uFormUrl('.$aname.')">'.$p_field.'</select>';
+                                                       $p_field.=$theImage;
+
+                                                       if (!$this->ext_noCEUploadAndCopying)   {
+                                                               // Copy a resource
+                                                               $copyFile = $this->extractFromResources($this->setup['resources'],$params['value']);
+                                                               if (!$copyFile) {
+                                                                       if ($params['value'])   {
+                                                                               $copyFile=PATH_site.$this->ext_detectAndFixExtensionPrefix($params['value']);
                                                                        }
-                                                               break;
-                                                               case 'user':
-                                                                       $userFunction       = $typeDat['paramstr'];
-                                                                       $userFunctionParams = array('fieldName' => $fN, 'fieldValue' => $fV);
-                                                                       $p_field            = t3lib_div::callUserFunction($userFunction, $userFunctionParams, $this, '');
-                                                               break;
-                                                               case 'small':
-                                                               default:
-                                                                       $fwidth= $typeDat["type"]=="small" ? 10 : 46;
-                                                                       $p_field='<input type="text" name="'.$fN.'" value="'.$fV.'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth($fwidth).' onChange="uFormUrl('.$aname.')">';
-                                                               break;
+                                                               } else {
+                                                                       $copyFile='';
+                                                               }
+
+                                                               if ($copyFile && @is_file($copyFile))   {
+                                                                       $p_field .= '<img src="clear.gif" width="20" ' . 'height="1" alt="" /><img' . t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/clip_copy.gif', 'width="12" height="12"') . ' border="0" alt="" /><input type="checkbox" ' . 'name="_copyResource[' . $params['name'] . ']" value="' . htmlspecialchars($copyFile) . '" onclick="uFormUrl(' . $aname . ');if (this.checked && !confirm(\'' . t3lib_div::slashJS(htmlspecialchars(sprintf($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_tsparser.xml:tsparser_ext.make_copy'), $params['value']))) . '\')) this.checked=false;" />';
+                                                               }
+
+                                                               // Upload?
+                                                               $p_field.='<br />';
+                                                               $p_field.='<input id="'.$fN.'" type="file" name="upload_'.$fN.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth().' onChange="uFormUrl('.$aname.')" size="50" />';
                                                        }
-                                               }
-                                               if (!$this->ext_dontCheckIssetValues)   $p_field='<input type="Checkbox" name="check['.$params["name"].']" value="1"'.$checked.' onClick="uFormUrl('.$aname.')">'.$p_field;
-                                               if ($typeDat["type"]=="color" && substr($params["value"],0,2)!='{$')    {
-                                                       $p_field='<table border=0 cellpadding=0 cellspacing=0><tr><td nowrap>'.$p_field.'</td><td>&nbsp;</td><td bgcolor="'.$params["value"].'"><img src="clear.gif" width=50 height=10></td></tr></table>';
+                                               break;
+                                               case 'user':
+                                                       $userFunction       = $typeDat['paramstr'];
+                                                       $userFunctionParams = array('fieldName' => $fN, 'fieldValue' => $fV);
+                                                       $p_field            = t3lib_div::callUserFunction($userFunction, $userFunctionParams, $this, '');
+                                               break;
+                                               case 'small':
+                                               default:
+                                                       $fwidth= $typeDat['type']=='small' ? 10 : 46;
+                                                       $p_field='<input id="'.$fN.'" type="text" name="'.$fN.'" value="'.$fV.'"'.$GLOBALS['TBE_TEMPLATE']->formWidth($fwidth).' onChange="uFormUrl('.$aname.')" />';
+                                               break;
+                                       }
+
+                                       // Define default names and IDs
+                                       $userTyposcriptID = 'userTS-'.$params['name'];
+                                       $defaultTyposcriptID = 'defaultTS-'.$params['name'];
+                                       $checkboxName = 'check['.$params['name'].']';
+                                       $checkboxID = $checkboxName;
+
+                                       // Handle type=color specially
+                                       if ($typeDat['type']=='color' && substr($params['value'],0,2)!='{$')    {
+                                               $color = '<div id="colorbox-'.$fN.'" class="typo3-tstemplate-ceditor-colorblock" style="background-color:'.$params['value'].';">&nbsp;</div>';
+                                       } else {
+                                               $color = '';
+                                       }
+
+                                       if (!$this->ext_dontCheckIssetValues) {
+
+                                               /* Set the default styling options */
+                                               if(isset($this->objReg[$params['name']])) {
+                                                       $checkboxValue = 'checked';
+                                                       $userTyposcriptStyle = '';
+                                                       $defaultTyposcriptStyle = 'style="display:none;"';
                                                } else {
-                                                       $p_field='<span class="nobr">'.$p_field.'</span><br />';
+                                                       $checkboxValue = '';
+                                                       $userTyposcriptStyle = 'style="display:none;"';
+                                                       $defaultTyposcriptStyle = '';
                                                }
 
-                                               $p_name = '<span class="typo3-dimmed">['.$params["name"].']</span><BR>';
-                                               $p_dlabel='<span class="typo3-dimmed"><b>Default:</b> '.htmlspecialchars($params["default_value"]).'</span><BR>';
-                                               $p_label = '<b>'.htmlspecialchars($head).'</b>';
-                                               $p_descrip = $body ? htmlspecialchars($body)."<BR>" : "";
-
-                                               $output.='<tr>';
-                                               $output.='<td valign=top nowrap><a name="'.$raname.'"></a>'.$help["constants"][$params["name"]].$p_label.'</td>';
-                                               $output.='<td valign=top align="right">'.$p_name.'</td>';
-                                               $output.='</tr>';
-                                               $output.='<tr>';
-                                               $output.='<td colspan=2>'.$p_descrip.$p_field.$p_dlabel.'<br></td>';
-                                               $output.='</tr>';
-                       //              }
+
+                                               $deleteIconHTML = '<img class="typo3-tstemplate-ceditor-control undoIcon" '.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/undo.gif').' alt="Revert to default Constant" title="Revert to default Constant" rel="'.$params['name'].'" />';
+                                               $editIconHTML   = '<img class="typo3-tstemplate-ceditor-control editIcon" '.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'], 'gfx/edit2.gif').' alt="Edit this Constant" title="Edit this Constant" rel="'.$params['name'].'" />';
+                                               $constantCheckbox = '<input type="hidden" name="'.$checkboxName.'" id="'.$checkboxID.'" value="'.$checkboxValue.'"/>';
+
+                                               // If there's no default value for the field, use a static label.
+                                               if(!$params['default_value']) {
+                                                       $params['default_value'] = '[Empty]';
+                                               }
+
+                                               $constantDefaultRow='<div class="typo3-tstemplate-ceditor-row" id="'.$defaultTyposcriptID.'" '.$defaultTyposcriptStyle.'>'.$editIconHTML.htmlspecialchars($params['default_value']).$color.'</div>';
+                                       }
+
+                                       $constantEditRow = '<div class="typo3-tstemplate-ceditor-row" id="'.$userTyposcriptID.'" '.$userTyposcriptStyle.'>'.$deleteIconHTML.$p_field.$color.'</div>';
+
+                                       $constantLabel = '<dt class="typo3-tstemplate-ceditor-label">'.htmlspecialchars($head).'</dt>';
+                                       $constantName = '<dt class="typo3-dimmed">['.$params['name'].']</dt>';
+                                       $constantDescription = $body ? '<dd>'.htmlspecialchars($body).'</dd>' : '';
+                                       $constantData = '<dd>'.$constantCheckbox.$constantEditRow.$constantDefaultRow.'</dd>';
+
+                                       $output.='<a name="'.$raname.'"></a>'.$help['constants'][$params['name']];
+                                       $output.='<dl class="typo3-tstemplate-ceditor-constant">'.$constantLabel.$constantName.$constantDescription.$constantData.'</dl>';
                                } else {
-                                       debug("Error. Constant did not exits. Should not happen.");
+                                       debug('Error. Constant did not exist. Should not happen.');
                                }
                        }
-                       $output='<table border=0 cellpadding=0 cellspacing=0>'.$output.'</table>';
                }
                return $output;
        }
@@ -1393,7 +1431,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                $this->rawP=0;
 
                $this->objReg=array();          // resetting the objReg if the divider is found!!
-               $this->ext_regObjects("");
+               $this->ext_regObjects('');
        }
 
        /**
@@ -1411,24 +1449,24 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
                        }
                        $this->rawP++;
                        if ($line)      {
-                               if (substr($line,0,1)=="[")     {
+                               if (substr($line,0,1)=='[')     {
 //                                     return $line;
-                               } elseif (strcspn($line,"}#/")!=0)      {
-                                       $varL = strcspn($line," {=<");
+                               } elseif (strcspn($line,'}#/')!=0)      {
+                                       $varL = strcspn($line,' {=<');
                                        $var=substr($line,0,$varL);
                                        $line = ltrim(substr($line,$varL));
                                        switch(substr($line,0,1))       {
-                                               case "=":
+                                               case '=':
                                                        $this->objReg[$pre.$var]=$this->rawP-1;
                                                break;
-                                               case "{":
+                                               case '{':
                                                        $this->ext_inBrace++;
-                                                       $this->ext_regObjects($pre.$var.".");
+                                                       $this->ext_regObjects($pre.$var.'.');
                                                break;
                                        }
-                                       $this->lastComment="";
-                               } elseif (substr($line,0,1)=="}")       {
-                                       $this->lastComment="";
+                                       $this->lastComment='';
+                               } elseif (substr($line,0,1)=='}')       {
+                                       $this->lastComment='';
                                        $this->ext_inBrace--;
                                        if ($this->ext_inBrace<0)       {
                                                $this->ext_inBrace=0;
@@ -1450,16 +1488,16 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
        function ext_putValueInConf($key, $var) {
                        // Puts the value $var to the TypoScript value $key in the current lines of the templates.
                        // If the $key is not found in the template constants field, a new line is inserted in the bottom.
-               $theValue = " ".trim($var);
+               $theValue = ' '.trim($var);
                if (isset($this->objReg[$key])) {
                        $lineNum = $this->objReg[$key];
-                       $parts = explode("=",$this->raw[$lineNum],2);
+                       $parts = explode('=',$this->raw[$lineNum],2);
                        if (count($parts)==2)   {
                                $parts[1]= $theValue;
                        }
-                       $this->raw[$lineNum]=implode($parts,"=");
+                       $this->raw[$lineNum]=implode($parts,'=');
                } else {
-                       $this->raw[]=$key." =".$theValue;
+                       $this->raw[]=$key.' ='.$theValue;
                }
                $this->changed=1;
        }
@@ -1490,13 +1528,13 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
                reset($arr);
                $tsbrArray=array();
                while(list($theK,$theV)=each($arr))     {
-                       $theKeyParts = explode(".",$theK);
-                       $depth="";
+                       $theKeyParts = explode('.',$theK);
+                       $depth='';
                        $c=count($theKeyParts);
                        $a=0;
                        while(list(,$p)=each($theKeyParts))     {
                                $a++;
-                               $depth.=($depth?".":"").$p;
+                               $depth.=($depth?'.':'').$p;
                                $tsbrArray[$depth]= ($c==$a) ? $theV : 1;
                        }
                }
@@ -1522,14 +1560,14 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
         * @return      [type]          ...
         */
        function ext_procesInput($http_post_vars,$http_post_files,$theConstants,$tplRow)        {
-               $data=$http_post_vars["data"];
-               $check=$http_post_vars["check"];
-               $copyResource=$http_post_vars["_copyResource"];
-               $Wdata=$http_post_vars["Wdata"];
-               $W2data=$http_post_vars["W2data"];
-               $W3data=$http_post_vars["W3data"];
-               $W4data=$http_post_vars["W4data"];
-               $W5data=$http_post_vars["W5data"];
+               $data=$http_post_vars['data'];
+               $check=$http_post_vars['check'];
+               $copyResource=$http_post_vars['_copyResource'];
+               $Wdata=$http_post_vars['Wdata'];
+               $W2data=$http_post_vars['W2data'];
+               $W3data=$http_post_vars['W3data'];
+               $W4data=$http_post_vars['W4data'];
+               $W5data=$http_post_vars['W5data'];
 
                if (is_array($data))    {
                        reset($data);
@@ -1537,70 +1575,84 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
                                if (isset($theConstants[$key])) {
                                        if ($this->ext_dontCheckIssetValues || isset($check[$key]))     {               // If checkbox is set, update the value
                                                list($var) = explode(chr(10),$var);     // exploding with linebreak, just to make sure that no multiline input is given!
-                                               $typeDat=$this->ext_getTypeData($theConstants[$key]["type"]);
-                                               switch($typeDat["type"])        {
-                                                       case "int":
-                                                               if ($typeDat["paramstr"])       {
-                                                                       $var=t3lib_div::intInRange($var,$typeDat["params"][0],$typeDat["params"][1]);
+                                               $typeDat=$this->ext_getTypeData($theConstants[$key]['type']);
+                                               switch($typeDat['type'])        {
+                                                       case 'int':
+                                                               if ($typeDat['paramstr'])       {
+                                                                       $var=t3lib_div::intInRange($var,$typeDat['params'][0],$typeDat['params'][1]);
                                                                } else {
                                                                        $var=intval($var);
                                                                }
                                                        break;
-                                                       case "int+":
-                                                               $var=t3lib_div::intInRange($var,0,10000);
-                                                       break;
-                                                       case "color":
+                                                       case 'int+':
+                                                               $var = max(0, intval($var));
+                                                               break;
+                                                       case 'color':
                                                                $col=array();
                                                                if($var && !t3lib_div::inList($this->HTMLcolorList,strtolower($var)))   {
-                                                                       $var = ereg_replace("[^A-Fa-f0-9]*","",$var);
-                                                                       $col[]=HexDec(substr($var,0,2));
-                                                                       $col[]=HexDec(substr($var,2,2));
-                                                                       $col[]=HexDec(substr($var,4,2));
-                                                                       $var="#".strtoupper(substr("0".DecHex($col[0]),-2).substr("0".DecHex($col[1]),-2).substr("0".DecHex($col[2]),-2));
+                                                                       $var = ereg_replace('[^A-Fa-f0-9]*','',$var);
+                                                                       $useFullHex = strlen($var) > 3;
+
+                                                                       $col[]=HexDec(substr($var,0,1));
+                                                                       $col[]=HexDec(substr($var,1,1));
+                                                                       $col[]=HexDec(substr($var,2,1));
+
+                                                                       if($useFullHex) {
+                                                                               $col[]=HexDec(substr($var,3,1));
+                                                                               $col[]=HexDec(substr($var,4,1));
+                                                                               $col[]=HexDec(substr($var,5,1));
+                                                                       }
+
+                                                                       $var = substr('0'.DecHex($col[0]),-1).substr('0'.DecHex($col[1]),-1).substr('0'.DecHex($col[2]),-1);
+                                                                       if($useFullHex) {
+                                                                               $var .= substr('0'.DecHex($col[3]),-1).substr('0'.DecHex($col[4]),-1).substr('0'.DecHex($col[5]),-1);
+                                                                       }
+
+                                                                       $var = '#'.strtoupper($var);
                                                                }
                                                        break;
-                                                       case "comment":
+                                                       case 'comment':
                                                                if ($var)       {
-                                                                       $var="#";
+                                                                       $var='#';
                                                                } else {
-                                                                       $var="";
+                                                                       $var='';
                                                                }
                                                        break;
-                                                       case "wrap":
+                                                       case 'wrap':
                                                                if (isset($Wdata[$key]))        {
-                                                                       $var.="|".$Wdata[$key];
+                                                                       $var.='|'.$Wdata[$key];
                                                                }
                                                        break;
-                                                       case "offset":
+                                                       case 'offset':
                                                                if (isset($Wdata[$key]))        {
-                                                                       $var=intval($var).",".intval($Wdata[$key]);
+                                                                       $var=intval($var).','.intval($Wdata[$key]);
                                                                        if (isset($W2data[$key]))       {
-                                                                               $var.=",".intval($W2data[$key]);
+                                                                               $var.=','.intval($W2data[$key]);
                                                                                if (isset($W3data[$key]))       {
-                                                                                       $var.=",".intval($W3data[$key]);
+                                                                                       $var.=','.intval($W3data[$key]);
                                                                                        if (isset($W4data[$key]))       {
-                                                                                               $var.=",".intval($W4data[$key]);
+                                                                                               $var.=','.intval($W4data[$key]);
                                                                                                if (isset($W5data[$key]))       {
-                                                                                                       $var.=",".intval($W5data[$key]);
+                                                                                                       $var.=','.intval($W5data[$key]);
                                                                                                }
                                                                                        }
                                                                                }
                                                                        }
                                                                }
                                                        break;
-                                                       case "boolean":
+                                                       case 'boolean':
                                                                if ($var)       {
-                                                                       $var = $typeDat["paramstr"] ? $typeDat["paramstr"] : 1;
+                                                                       $var = $typeDat['paramstr'] ? $typeDat['paramstr'] : 1;
                                                                }
                                                        break;
-                                                       case "file":
+                                                       case 'file':
                                                                if (!$this->ext_noCEUploadAndCopying)   {
-                                                                       if ($http_post_files["upload_data"]["name"][$key] && $http_post_files["upload_data"]["tmp_name"][$key]!="none") {
+                                                                       if ($http_post_files['upload_data']['name'][$key] && $http_post_files['upload_data']['tmp_name'][$key]!='none') {
                                                                                $var = $this->upload_copy_file(
                                                                                        $typeDat,
                                                                                        $tplRow,
-                                                                                       trim($http_post_files["upload_data"]["name"][$key]),
-                                                                                       $http_post_files["upload_data"]["tmp_name"][$key]
+                                                                                       trim($http_post_files['upload_data']['name'][$key]),
+                                                                                       $http_post_files['upload_data']['tmp_name'][$key]
                                                                                );
                                                                        }
                                                                        if ($copyResource[$key])        {
@@ -1614,7 +1666,7 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
                                                                }
                                                        break;
                                                }
-                                               if ($this->ext_printAll || strcmp($theConstants[$key]["value"],$var))   {
+                                               if ($this->ext_printAll || strcmp($theConstants[$key]['value'],$var))   {
                                                        $this->ext_putValueInConf($key, $var);          // Put value in, if changed.
                                                }
                                                unset($check[$key]);            // Remove the entry because it has been "used"
@@ -1629,14 +1681,11 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
                        reset($check);
                        while(list($key,$var)=each($check))     {
                                if (isset($theConstants[$key])) {
-                                       $dValue = $theConstants[$key]["default_value"];
-//                                     debug($dValue);
+                                       $dValue = $theConstants[$key]['default_value'];
                                        $this->ext_putValueInConf($key, $dValue);
-//                                     debug($key,1);
                                }
                        }
                }
-//             debug($this->objReg);
        }
 
        /**
@@ -1651,28 +1700,28 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
        function upload_copy_file($typeDat,&$tplRow,$theRealFileName,$tmp_name) {
 
                        // extensions
-               $extList = $typeDat["paramstr"];
-               if ($extList=="IMAGE_EXT")      {
-                       $extList = $GLOBALS["TYPO3_CONF_VARS"]["GFX"]["imagefile_ext"];
+               $extList = $typeDat['paramstr'];
+               if ($extList=='IMAGE_EXT')      {
+                       $extList = $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'];
                }
                $fI=t3lib_div::split_fileref($theRealFileName);
-               if ($theRealFileName && (!$extList || t3lib_div::inList($extList,$fI["fileext"])))      {
+               if ($theRealFileName && (!$extList || t3lib_div::inList($extList,$fI['fileext'])))      {
                        $tmp_upload_name = t3lib_div::upload_to_tempfile($tmp_name);    // If there is an uploaded file, move it for the sake of safe_mode.
 
                                // Saving resource
                        $alternativeFileName=array();
                        $alternativeFileName[$tmp_upload_name] = $theRealFileName;
                                // Making list of resources
-                       $resList = $tplRow["resources"];
-                       $resList = $tmp_upload_name.",".$resList;
-                       $resList=implode(t3lib_div::trimExplode(",",$resList,1),",");
+                       $resList = $tplRow['resources'];
+                       $resList = $tmp_upload_name.','.$resList;
+                       $resList=implode(t3lib_div::trimExplode(',',$resList,1),',');
                                // Making data-array
                        $saveId = $tplRow['_ORIG_uid'] ? $tplRow['_ORIG_uid'] : $tplRow['uid'];
-// debug($saveId);
+
                        $recData=array();
-                       $recData["sys_template"][$saveId]["resources"] = $resList;
+                       $recData['sys_template'][$saveId]['resources'] = $resList;
                                // Saving
-                       $tce = t3lib_div::makeInstance("t3lib_TCEmain");
+                       $tce = t3lib_div::makeInstance('t3lib_TCEmain');
                        $tce->stripslashes_values=0;
                        $tce->alternativeFileName = $alternativeFileName;
                        $tce->start($recData,Array());
@@ -1680,9 +1729,9 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
 
                        t3lib_div::unlink_tempfile($tmp_upload_name);
 
-                       $tmpRow = t3lib_BEfunc::getRecordWSOL("sys_template",$saveId,"resources");
+                       $tmpRow = t3lib_BEfunc::getRecordWSOL('sys_template',$saveId,'resources');
 
-                       $tplRow["resources"] = $tmpRow["resources"];
+                       $tplRow['resources'] = $tmpRow['resources'];
 
                                // Setting the value
                        $var = $this->ext_setStar($theRealFileName);
@@ -1698,10 +1747,10 @@ class t3lib_tsparser_ext extends t3lib_TStemplate       {
         * @return      [type]          ...
         */
        function ext_prevPageWithTemplate($id,$perms_clause)    {
-               $rootLine = t3lib_BEfunc::BEgetRootLine($id,$perms_clause?" AND ".$perms_clause:"");
+               $rootLine = t3lib_BEfunc::BEgetRootLine($id,$perms_clause?' AND '.$perms_clause:'');
                reset($rootLine);
                while(list(,$p)=each($rootLine))        {
-                       if ($this->ext_getFirstTemplate($p["uid"]))     {
+                       if ($this->ext_getFirstTemplate($p['uid']))     {
                                return $p;
                        }
                }
@@ -1714,8 +1763,8 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
         * @return      [type]          ...
         */
        function ext_setStar($val)      {
-               $fParts = explode(".",strrev($val),2);
-               $val=ereg_replace("_[0-9][0-9]$","",strrev($fParts[1]))."*.".strrev($fParts[0]);
+               $fParts = explode('.',strrev($val),2);
+               $val=ereg_replace('_[0-9][0-9]$','',strrev($fParts[1])).'*.'.strrev($fParts[0]);
                return $val;
        }
 
@@ -1726,9 +1775,9 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
         * @return      [type]          ...
         */
        function ext_detectAndFixExtensionPrefix($value)        {
-               if (substr($value,0,4)=="EXT:") {
-                       $parts = explode("/",substr($value,4),2);
-#debug($parts);
+               if (substr($value,0,4)=='EXT:') {
+                       $parts = explode('/',substr($value,4),2);
+
                        $extPath = t3lib_extMgm::siteRelPath($parts[0]);
                        $value = $extPath.$parts[1];
                        return $value;
@@ -1742,4 +1791,5 @@ class t3lib_tsparser_ext extends t3lib_TStemplate {
 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_tsparser_ext.php'])     {
        include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_tsparser_ext.php']);
 }
-?>
+
+?>
\ No newline at end of file