[ Index ]
 

Code source de Typo3 4.1.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/typo3/ -> file_list.php (source)

   1  <?php
   2  /***************************************************************
   3  *  Copyright notice
   4  *
   5  *  (c) 1999-2005 Kasper Skaarhoj (kasperYYYY@typo3.com)
   6  *  All rights reserved
   7  *
   8  *  This script is part of the TYPO3 project. The TYPO3 project is
   9  *  free software; you can redistribute it and/or modify
  10  *  it under the terms of the GNU General Public License as published by
  11  *  the Free Software Foundation; either version 2 of the License, or
  12  *  (at your option) any later version.
  13  *
  14  *  The GNU General Public License can be found at
  15  *  http://www.gnu.org/copyleft/gpl.html.
  16  *  A copy is found in the textfile GPL.txt and important notices to the license
  17  *  from the author is found in LICENSE.txt distributed with these scripts.
  18  *
  19  *
  20  *  This script is distributed in the hope that it will be useful,
  21  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  22  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  23  *  GNU General Public License for more details.
  24  *
  25  *  This copyright notice MUST APPEAR in all copies of the script!
  26  ***************************************************************/
  27  /**
  28   * Web>File: File listing
  29   *
  30   * $Id: file_list.php 1997 2007-02-05 18:24:44Z ingmars $
  31   * Revised for TYPO3 3.6 2/2003 by Kasper Skaarhoj
  32   *
  33   * @author    Kasper Skaarhoj <kasperYYYY@typo3.com>
  34   */
  35  /**
  36   * [CLASS/FUNCTION INDEX of SCRIPT]
  37   *
  38   *
  39   *
  40   *   77: class SC_file_list
  41   *  103:     function init()
  42   *  130:     function menuConfig()
  43   *  151:     function main()
  44   *  325:     function printContent()
  45   *
  46   * TOTAL FUNCTIONS: 4
  47   * (This index is automatically created/updated by the extension "extdeveval")
  48   *
  49   */
  50  
  51  
  52  unset($MCONF);
  53  require  ('mod/file/list/conf.php');
  54  require  ('init.php');
  55  require  ('template.php');
  56  $LANG->includeLLFile('EXT:lang/locallang_mod_file_list.xml');
  57  require_once (PATH_t3lib.'class.t3lib_basicfilefunc.php');
  58  require_once (PATH_t3lib.'class.t3lib_extfilefunc.php');
  59  require_once (PATH_t3lib.'class.t3lib_recordlist.php');
  60  require_once (PATH_t3lib.'class.t3lib_clipboard.php');
  61  require_once  ('class.file_list.inc');
  62  $BE_USER->modAccess($MCONF,1);
  63  
  64  
  65  
  66  
  67  
  68  
  69  
  70  /**
  71   * Script Class for creating the list of files in the File > Filelist module
  72   *
  73   * @author    Kasper Skaarhoj <kasperYYYY@typo3.com>
  74   * @package TYPO3
  75   * @subpackage core
  76   */
  77  class SC_file_list {
  78      var $MCONF=array();            // Module configuration
  79      var $MOD_MENU=array();
  80      var $MOD_SETTINGS=array();
  81  
  82  
  83          // Internal:
  84      var $content;    // Accumulated HTML output
  85      var $basicFF;    // File operation object (t3lib_basicFileFunctions)
  86      var $doc;        // Template object
  87  
  88          // Internal, static: GPvars:
  89      var $id;        // "id" -> the path to list.
  90      var $pointer;    // Pointer to listing
  91      var $table;        // "Table"
  92      var $imagemode;    // Thumbnail mode.
  93      var $cmd;
  94      var $overwriteExistingFiles;
  95  
  96  
  97      /**
  98       * Initialize variables, file object
  99       * Incoming GET vars include id, pointer, table, imagemode
 100       *
 101       * @return    void
 102       */
 103  	function init()    {
 104          global $TYPO3_CONF_VARS,$FILEMOUNTS;
 105  
 106              // Setting GPvars:
 107          $this->id = t3lib_div::_GP('id');
 108          $this->pointer = t3lib_div::_GP('pointer');
 109          $this->table = t3lib_div::_GP('table');
 110          $this->imagemode = t3lib_div::_GP('imagemode');
 111          $this->cmd = t3lib_div::_GP('cmd');
 112          $this->overwriteExistingFiles = t3lib_div::_GP('overwriteExistingFiles');
 113  
 114              // Setting module name:
 115          $this->MCONF = $GLOBALS['MCONF'];
 116  
 117              // File operation object:
 118          $this->basicFF = t3lib_div::makeInstance('t3lib_basicFileFunctions');
 119          $this->basicFF->init($FILEMOUNTS,$TYPO3_CONF_VARS['BE']['fileExtensions']);
 120  
 121              // Configure the "menu" - which is used internally to save the values of sorting, displayThumbs etc.
 122          $this->menuConfig();
 123      }
 124  
 125      /**
 126       * Setting the menu/session variables
 127       *
 128       * @return    void
 129       */
 130  	function menuConfig()    {
 131              // MENU-ITEMS:
 132              // If array, then it's a selector box menu
 133              // If empty string it's just a variable, that'll be saved.
 134              // Values NOT in this array will not be saved in the settings-array for the module.
 135          $this->MOD_MENU = array(
 136              'sort' => '',
 137              'reverse' => '',
 138              'displayThumbs' => '',
 139              'clipBoard' => ''
 140          );
 141  
 142              // CLEANSE SETTINGS
 143          $this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']);
 144      }
 145  
 146      /**
 147       * Main function, creating the listing
 148       *
 149       * @return    void
 150       */
 151  	function main()    {
 152          global $BE_USER,$LANG,$BACK_PATH,$TYPO3_CONF_VARS,$FILEMOUNTS;
 153  
 154              // Initialize the template object
 155          $this->doc = t3lib_div::makeInstance('template');
 156          $this->doc->backPath = $BACK_PATH;
 157          $this->doc->docType = 'xhtml_trans';
 158  
 159              // Validating the input "id" (the path, directory!) and checking it against the mounts of the user.
 160          $this->id = $this->basicFF->is_directory($this->id);
 161          $access = $this->id && $this->basicFF->checkPathAgainstMounts($this->id.'/');
 162  
 163              // There there was access to this file path, continue, make the list
 164          if ($access)    {
 165  
 166                  // Create filelisting object
 167              $filelist = t3lib_div::makeInstance('fileList');
 168              $filelist->backPath = $BACK_PATH;
 169              $filelist->thumbs = $this->MOD_SETTINGS['displayThumbs']?1:$BE_USER->uc['thumbnailsByDefault'];
 170  
 171                  // Create clipboard object and initialize that
 172              $filelist->clipObj = t3lib_div::makeInstance('t3lib_clipboard');
 173              $filelist->clipObj->fileMode=1;
 174              $filelist->clipObj->initializeClipboard();
 175  
 176              $CB = t3lib_div::_GET('CB');
 177              if ($this->cmd=='setCB') $CB['el'] = $filelist->clipObj->cleanUpCBC(array_merge(t3lib_div::_POST('CBH'),t3lib_div::_POST('CBC')),'_FILE');
 178              if (!$this->MOD_SETTINGS['clipBoard'])    $CB['setP']='normal';
 179              $filelist->clipObj->setCmd($CB);
 180              $filelist->clipObj->cleanCurrent();
 181              $filelist->clipObj->endClipboard();    // Saves
 182  
 183                  // If the "cmd" was to delete files from the list (clipboard thing), do that:
 184              if ($this->cmd=='delete')    {
 185                  $items = $filelist->clipObj->cleanUpCBC(t3lib_div::_POST('CBC'),'_FILE',1);
 186                  if (count($items))    {
 187                          // Make command array:
 188                      $FILE=array();
 189                      reset($items);
 190                      while(list(,$v)=each($items))    {
 191                          $FILE['delete'][]=array('data'=>$v);
 192                      }
 193  
 194                          // Init file processing object for deleting and pass the cmd array.
 195                      $fileProcessor = t3lib_div::makeInstance('t3lib_extFileFunctions');
 196                      $fileProcessor->init($FILEMOUNTS, $TYPO3_CONF_VARS['BE']['fileExtensions']);
 197                      $fileProcessor->init_actionPerms($BE_USER->user['fileoper_perms']);
 198                      $fileProcessor->dontCheckForUnique = $this->overwriteExistingFiles ? 1 : 0;
 199                      $fileProcessor->start($FILE);
 200                      $fileProcessor->processData();
 201  
 202                      $fileProcessor->printLogErrorMessages();
 203                  }
 204              }
 205  
 206              if (!isset($this->MOD_SETTINGS['sort']))    {
 207                      // Set default sorting
 208                  $this->MOD_SETTINGS['sort'] = 'file';
 209                  $this->MOD_SETTINGS['reverse'] = 0;
 210              }
 211  
 212                  // Start up filelisting object, include settings.
 213              $this->pointer = t3lib_div::intInRange($this->pointer,0,100000);
 214              $filelist->start($this->id,$this->pointer,$this->MOD_SETTINGS['sort'],$this->MOD_SETTINGS['reverse'],$this->MOD_SETTINGS['clipBoard']);
 215  
 216                  // Write the header
 217              $filelist->writeTop($this->id);
 218  
 219                  // Generate the list
 220              $filelist->generateList();
 221  
 222                  // Write the footer
 223              $filelist->writeBottom();
 224  
 225                  // Set top JavaScript:
 226              $this->doc->JScode=$this->doc->wrapScriptTags('
 227  
 228              if (top.fsMod) top.fsMod.recentIds["file"] = unescape("'.rawurlencode($this->id).'");
 229  			function jumpToUrl(URL)    {    //
 230                  window.location.href = URL;
 231              }
 232  
 233              '.$filelist->CBfunctions()    // ... and add clipboard JavaScript functions
 234              );
 235  
 236                  // This will return content necessary for the context sensitive clickmenus to work: bodytag events, JavaScript functions and DIV-layers.
 237              $CMparts=$this->doc->getContextMenuCode();
 238              $this->doc->bodyTagAdditions = $CMparts[1];
 239              $this->doc->JScode.=$CMparts[0];
 240              $this->doc->postCode.= $CMparts[2];
 241  
 242  
 243                  // Create output
 244              $this->content='';
 245              $this->content.=$this->doc->startPage($LANG->getLL('files'));
 246              $this->content.= '<form action="'.htmlspecialchars($filelist->listURL()).'" method="post" name="dblistForm">';
 247              $this->content.= $filelist->HTMLcode;
 248              $this->content.= '<input type="hidden" name="cmd" /></form>';
 249  
 250                  // FileList Module CSH:
 251              $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_module', $GLOBALS['BACK_PATH'],'<br/>|');
 252  
 253              $this->content.='
 254                  <!--
 255                      "Upload" and "New" buttons
 256                  -->
 257                  <div id="typo3-filelist-buttons">
 258                      <table border="0" cellpadding="4" cellspacing="0">
 259                          <tr>
 260                              <td>
 261                                  <form name="upload" action="'.$BACK_PATH.'file_upload.php">
 262                                      <input type="hidden" name="target" value="'.htmlspecialchars($this->id).'" />
 263                                      <input type="hidden" name="returnUrl" value="'.htmlspecialchars($filelist->listURL()).'" />
 264                                      <input type="submit" value="'.$GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:cm.upload',1)).'" />
 265                                  </form>
 266                              </td>
 267                              <td>
 268                                  <form name="new" action="'.$BACK_PATH.'file_newfolder.php">
 269                                      <input type="hidden" name="target" value="'.htmlspecialchars($this->id).'" />
 270                                      <input type="hidden" name="returnUrl" value="'.htmlspecialchars($filelist->listURL()).'" />
 271                                      <input type="submit" value="'.$GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:cm.new',1)).'" />
 272                                  </form>
 273                              </td>
 274                          </tr>
 275                      </table>
 276                  </div>
 277              ';
 278  
 279              if ($filelist->HTMLcode)    {    // Making listing options:
 280  
 281                  $this->content.='
 282  
 283                      <!--
 284                          Listing options for clipboard and thumbnails
 285                      -->
 286                      <div id="typo3-listOptions">
 287                  ';
 288  
 289                      // Add "display thumbnails" checkbox:
 290                  $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[displayThumbs]',$this->MOD_SETTINGS['displayThumbs'],'file_list.php','','id="checkDisplayThumbs"').' <label for="checkDisplayThumbs">'.$LANG->getLL('displayThumbs',1).'</label><br />';
 291  
 292                      // Add clipboard button
 293                  $this->content.=t3lib_BEfunc::getFuncCheck($this->id,'SET[clipBoard]',$this->MOD_SETTINGS['clipBoard'],'file_list.php','','id="checkClipBoard"').' <label for="checkClipBoard">'.$LANG->getLL('clipBoard',1).'</label>';
 294  
 295                  $this->content.='
 296                      </div>
 297                  ';
 298                  $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_options', $GLOBALS['BACK_PATH']);
 299  
 300  
 301                      // Set clipboard:
 302                  if ($this->MOD_SETTINGS['clipBoard'])    {
 303                      $this->content.=$filelist->clipObj->printClipboard();
 304                      $this->content.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'filelist_clipboard', $GLOBALS['BACK_PATH']);
 305                  }
 306              }
 307  
 308                  // Add shortcut
 309              if ($BE_USER->mayMakeShortcut())    {
 310                  $this->content.='<br /><br />'.$this->doc->makeShortcutIcon('pointer,id,target,table',implode(',',array_keys($this->MOD_MENU)),$this->MCONF['name']);
 311              }
 312          } else {
 313                  // Create output - no access (no warning though)
 314              $this->content='';
 315              $this->content.=$this->doc->startPage($LANG->getLL('files'));
 316          }
 317  
 318      }
 319  
 320      /**
 321       * Outputting the accumulated content to screen
 322       *
 323       * @return    void
 324       */
 325  	function printContent()    {
 326          $this->content.= $this->doc->endPage();
 327          $this->content = $this->doc->insertStylesAndJS($this->content);
 328          echo $this->content;
 329      }
 330  }
 331  
 332  // Include extension?
 333  if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_list.php'])    {
 334      include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/file_list.php']);
 335  }
 336  
 337  
 338  
 339  
 340  
 341  
 342  
 343  
 344  
 345  
 346  
 347  
 348  // Make instance:
 349  $SOBE = t3lib_div::makeInstance('SC_file_list');
 350  $SOBE->init();
 351  $SOBE->main();
 352  $SOBE->printContent();
 353  
 354  
 355  if ($TYPO3_CONF_VARS['BE']['compressionLevel'])    {
 356      new gzip_encode($TYPO3_CONF_VARS['BE']['compressionLevel']);
 357  }
 358  ?>


Généré le : Sun Nov 25 17:13:16 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics