Added feature #14247: Add a concatenator for CSS and JS (thanks to Steffen Gebert)
[Packages/TYPO3.CMS.git] / typo3 / file_edit.php
old mode 100755 (executable)
new mode 100644 (file)
index 3f7478d..fe8787a
@@ -2,7 +2,7 @@
 /***************************************************************
 *  Copyright notice
 *
-*  (c) 1999-2005 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
 $BACK_PATH = '';
 require('init.php');
 require('template.php');
-require_once(PATH_t3lib.'class.t3lib_basicfilefunc.php');
-
-
-
-
-
-
-
-
-
-
 
 
 /**
@@ -103,6 +92,7 @@ class SC_file_edit {
         * @return      void
         */
        function init() {
+               //TODO remove global
                global $BACK_PATH,$TYPO3_CONF_VARS;
 
                        // Setting target, which must be a file reference to a file within the mounts.
@@ -114,14 +104,14 @@ class SC_file_edit {
                $this->basicff->init($GLOBALS['FILEMOUNTS'],$TYPO3_CONF_VARS['BE']['fileExtensions']);
 
 
-               if (@file_exists($this->target))        {
+               if (file_exists($this->target)) {
                        $this->target=$this->basicff->cleanDirectoryName($this->target);                // Cleaning and checking target (file or dir)
                } else {
                        $this->target='';
                }
                $key=$this->basicff->checkPathAgainstMounts($this->target.'/');
                if (!$this->target || !$key)    {
-                       t3lib_BEfunc::typo3PrintError ('Parameter Error','Target was not a directory!','');
+                       t3lib_BEfunc::typo3PrintError($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_file_list.xml:paramError', true), $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_file_list.xml:targetNoDir', true), '');
                        exit;
                }
                        // Finding the icon
@@ -130,14 +120,20 @@ class SC_file_edit {
                        case 'group':   $this->icon = 'gfx/i/_icon_ftp_group.gif';      break;
                        default:                $this->icon = 'gfx/i/_icon_ftp.gif';    break;
                }
+
+               $this->icon = '<img'.t3lib_iconWorks::skinImg($this->backPath,$this->icon,'width="18" height="16"').' title="" alt="" />';
+
+                       // Relative path to filemount, $key:
                $this->shortPath = substr($this->target,strlen($GLOBALS['FILEMOUNTS'][$key]['path']));
-               $this->title = $GLOBALS['FILEMOUNTS'][$key]['name'].': '.$this->shortPath;
+
+                       // Setting title:
+               $this->title = $this->icon.$GLOBALS['FILEMOUNTS'][$key]['name'].': '.$this->shortPath;
 
                // ***************************
                // Setting template object
                // ***************************
                $this->doc = t3lib_div::makeInstance('template');
-               $this->doc->docType = 'xhtml_trans';
+               $this->doc->setModuleTemplate('templates/file_edit.html');
                $this->doc->backPath = $BACK_PATH;
                $this->doc->JScode=$this->doc->wrapScriptTags('
                        function backToList()   {       //
@@ -153,14 +149,14 @@ class SC_file_edit {
         * @return      void
         */
        function main() {
+               //TODO remove global, change $LANG into $GLOBALS['LANG'], change locallang*.php to locallang*.xml
                global $BE_USER, $LANG, $TYPO3_CONF_VARS;
+               $docHeaderButtons = $this->getButtons();
 
-               $this->content='';
-               $this->content.=$this->doc->startPage($LANG->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.pagetitle'));
-               $this->content.=$this->doc->header($LANG->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.pagetitle'));
-               $this->content.=$this->doc->spacer(5);
-               $this->content.=$this->doc->section('',$this->doc->getFileheader($this->title,$this->shortPath,$this->icon));
-               $this->content.=$this->doc->divider(5);
+               $this->content = $this->doc->startPage($LANG->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.pagetitle'));
+
+               $pageContent = $this->doc->header($LANG->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.pagetitle'));
+               $pageContent .= $this->doc->spacer(2);
 
                $fI = pathinfo($this->target);
                $extList=$TYPO3_CONF_VARS['SYS']['textfile_ext'];
@@ -171,15 +167,6 @@ class SC_file_edit {
 
                                // making the formfields
                        $hValue = 'file_edit.php?target='.rawurlencode($this->origTarget).'&returnUrl='.rawurlencode($this->returnUrl);
-                       $code = '';
-                       $code.='
-                               <div id="c-submit">
-                                       <input type="hidden" name="redirect" value="'.htmlspecialchars($hValue).'" />
-                                       <input type="submit" value="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.submit',1).'" />
-                                       <input type="submit" value="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.saveAndClose',1).'" onclick="document.editform.redirect.value=\''.htmlspecialchars($this->returnUrl).'\';" />
-                                       <input type="submit" value="'.$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.cancel',1).'" onclick="backToList(); return false;" />
-                               </div>
-                               ';
 
                                // Edit textarea:
                        $code.='
@@ -188,24 +175,36 @@ class SC_file_edit {
                                        t3lib_div::formatForTextarea($fileContent).
                                        '</textarea>
                                        <input type="hidden" name="file[editfile][0][target]" value="'.$this->target.'" />
+                                       <input type="hidden" name="redirect" value="'.htmlspecialchars($hValue).'" />
                                </div>
                                <br />';
 
-                               // CSH:
-                       $code.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'file_edit', $GLOBALS['BACK_PATH'],'|<br/>');
-
                                // Make shortcut:
                        if ($BE_USER->mayMakeShortcut())        {
                                $this->MCONF['name']='xMOD_file_edit.php';
-                               $code.= '<br />'.$this->doc->makeShortcutIcon('target','',$this->MCONF['name'],1);
+                               $docHeaderButtons['shortcut'] = $this->doc->makeShortcutIcon('target','',$this->MCONF['name'],1);
                        }
                } else {
                        $code.=sprintf($LANG->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.coundNot'), $extList);
                }
 
                        // Ending of section and outputting editing form:
-               $this->content.= $this->doc->sectionEnd();
-               $this->content.=$code;
+               $pageContent.= $this->doc->sectionEnd();
+               $pageContent.=$code;
+
+                       // Add the HTML as a section:
+               $markerArray = array(
+                       'CSH' => $docHeaderButtons['csh'],
+                       'FUNC_MENU' => t3lib_BEfunc::getFuncMenu($this->id, 'SET[function]', $this->MOD_SETTINGS['function'], $this->MOD_MENU['function']),
+                       'BUTTONS' => $docHeaderButtons,
+                       'PATH' => $this->title,
+                       'CONTENT' => $pageContent,
+               );
+
+               $this->content.= $this->doc->moduleBody(array(), $docHeaderButtons, $markerArray);
+               $this->content.= $this->doc->endPage();
+               $this->content = $this->doc->insertStylesAndJS($this->content);
+
 
        }
 
@@ -215,25 +214,41 @@ class SC_file_edit {
         * @return      void
         */
        function printContent() {
-               $this->content.= $this->doc->endPage();
-               $this->content = $this->doc->insertStylesAndJS($this->content);
                echo $this->content;
        }
-}
-
-// Include extension?
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_edit.php'])    {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_edit.php']);
-}
 
+       /**
+        * Builds the buttons for the docheader and returns them as an array
+        *
+        * @return array
+        **/
+       function getButtons() {
 
+               $buttons = array();
 
+                       // CSH button
+               $buttons['csh'] = t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'file_edit', $GLOBALS['BACK_PATH'], '', TRUE);
 
+                       // Save button
+               $theIcon = '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/savedok.gif','width="18" height="16"').' title="'.$GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.submit',1)).'" alt="" />';
+               $buttons['SAVE'] = '<a href="#" onclick="document.editform.submit();">'.$theIcon.'</a>';
 
+                       // Save and Close button
+               $theIcon = '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/saveandclosedok.gif','width="18" height="16"').' title="'.$GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:file_edit.php.saveAndClose',1)).'" alt="" />';
+               $buttons['SAVE_CLOSE'] = '<a href="#" onclick="document.editform.redirect.value=\''.htmlspecialchars($this->returnUrl).'\'; document.editform.submit();">'.$theIcon.'</a>';
 
+                       // Cancel button
+               $theIcon = '<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/closedok.gif','width="18" height="16"').' title="'.$GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.cancel',1)).'" alt="" />';
+               $buttons['CANCEL'] = '<a href="#" onclick="backToList(); return false;">'.$theIcon.'</a>';
 
+               return $buttons;
+       }
+}
 
 
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_edit.php'])    {
+       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_edit.php']);
+}
 
 
 
@@ -242,4 +257,5 @@ $SOBE = t3lib_div::makeInstance('SC_file_edit');
 $SOBE->init();
 $SOBE->main();
 $SOBE->printContent();
+
 ?>
\ No newline at end of file