"TYPO3 4.0.1: typo3_src-4.0.1/typo3/tce_db.php Source File", "datetime" => "Sat Dec 2 19:22:35 2006", "date" => "2 Dec 2006", "doxygenversion" => "1.4.6", "projectname" => "TYPO3 4.0.1", "projectnumber" => "4.0.1" ); get_header($doxygen_vars); ?>

tce_db.php

00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *
00005 *  (c) 1999-2005 Kasper Skaarhoj (kasperYYYY@typo3.com)
00006 *  All rights reserved
00007 *
00008 *  This script is part of the TYPO3 project. The TYPO3 project is
00009 *  free software; you can redistribute it and/or modify
00010 *  it under the terms of the GNU General Public License as published by
00011 *  the Free Software Foundation; either version 2 of the License, or
00012 *  (at your option) any later version.
00013 *
00014 *  The GNU General Public License can be found at
00015 *  http://www.gnu.org/copyleft/gpl.html.
00016 *  A copy is found in the textfile GPL.txt and important notices to the license
00017 *  from the author is found in LICENSE.txt distributed with these scripts.
00018 *
00019 *
00020 *  This script is distributed in the hope that it will be useful,
00021 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 *  GNU General Public License for more details.
00024 *
00025 *  This copyright notice MUST APPEAR in all copies of the script!
00026 ***************************************************************/
00054 require ('init.php');
00055 require ('template.php');
00056 require_once (PATH_t3lib.'class.t3lib_tcemain.php');
00057 
00058 
00059 
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00078 class SC_tce_db {
00079 
00080                 // Internal, static: GPvar
00081         var $flags;                     // Array. Accepts options to be set in TCE object. Currently it supports "reverseOrder" (boolean).
00082         var $data;                      // Data array on the form [tablename][uid][fieldname] = value
00083         var $cmd;                       // Command array on the form [tablename][uid][command] = value. This array may get additional data set internally based on clipboard commands send in CB var!
00084         var $mirror;            // Array passed to ->setMirror.
00085         var $cacheCmd;          // Cache command sent to ->clear_cacheCmd
00086         var $redirect;          // Redirect URL. Script will redirect to this location after performing operations (unless errors has occured)
00087         var $prErr;                     // Boolean. If set, errors will be printed on screen instead of redirection. Should always be used, otherwise you will see no errors if they happen.
00088 #       var $_disableRTE;
00089         var $CB;                        // Clipboard command array. May trigger changes in "cmd"
00090         var $vC;                        // Verification code
00091         var $uPT;                       // Boolean. Update Page Tree Trigger. If set and the manipulated records are pages then the update page tree signal will be set.
00092         var $generalComment;    // String, general comment (for raising stages of workspace versions)
00093 
00094                 // Internal, dynamic:
00095         var $include_once=array();              // Files to include after init() function is called:
00096         var $tce;                                               // TCEmain object
00097 
00098 
00099 
00100 
00106         function init() {
00107                 global $BE_USER;
00108 
00109                         // GPvars:
00110                 $this->flags = t3lib_div::_GP('flags');
00111                 $this->data = t3lib_div::_GP('data');
00112                 $this->cmd = t3lib_div::_GP('cmd');
00113                 $this->mirror = t3lib_div::_GP('mirror');
00114                 $this->cacheCmd = t3lib_div::_GP('cacheCmd');
00115                 $this->redirect = t3lib_div::_GP('redirect');
00116                 $this->prErr = t3lib_div::_GP('prErr');
00117                 $this->_disableRTE = t3lib_div::_GP('_disableRTE');
00118                 $this->CB = t3lib_div::_GP('CB');
00119                 $this->vC = t3lib_div::_GP('vC');
00120                 $this->uPT = t3lib_div::_GP('uPT');
00121                 $this->generalComment = t3lib_div::_GP('generalComment');
00122 
00123                         // Creating TCEmain object
00124                 $this->tce = t3lib_div::makeInstance('t3lib_TCEmain');
00125                 $this->tce->stripslashes_values=0;
00126                 $this->tce->generalComment = $this->generalComment;
00127 
00128                         // Configuring based on user prefs.
00129                 if ($BE_USER->uc['recursiveDelete'])    {
00130                         $this->tce->deleteTree = 1;     // True if the delete Recursive flag is set.
00131                 }
00132                 if ($BE_USER->uc['copyLevels']) {
00133                         $this->tce->copyTree = t3lib_div::intInRange($BE_USER->uc['copyLevels'],0,100); // Set to number of page-levels to copy.
00134                 }
00135                 if ($BE_USER->uc['neverHideAtCopy'])    {
00136                         $this->tce->neverHideAtCopy = 1;
00137                 }
00138 
00139                 $TCAdefaultOverride = $BE_USER->getTSConfigProp('TCAdefaults');
00140                 if (is_array($TCAdefaultOverride))      {
00141                         $this->tce->setDefaultsFromUserTS($TCAdefaultOverride);
00142                 }
00143 
00144                         // Reverse order.
00145                 if ($this->flags['reverseOrder'])       {
00146                         $this->tce->reverseOrder=1;
00147                 }
00148 
00149 #               $this->tce->disableRTE = $this->_disableRTE;
00150 
00151                         // Clipboard?
00152                 if (is_array($this->CB))        {
00153                         $this->include_once[]=PATH_t3lib.'class.t3lib_clipboard.php';
00154                 }
00155         }
00156 
00162         function initClipboard()        {
00163                 if (is_array($this->CB))        {
00164                         $clipObj = t3lib_div::makeInstance('t3lib_clipboard');
00165                         $clipObj->initializeClipboard();
00166                         if ($this->CB['paste']) {
00167                                 $clipObj->setCurrentPad($this->CB['pad']);
00168                                 $this->cmd = $clipObj->makePasteCmdArray($this->CB['paste'],$this->cmd);
00169                         }
00170                         if ($this->CB['delete'])        {
00171                                 $clipObj->setCurrentPad($this->CB['pad']);
00172                                 $this->cmd = $clipObj->makeDeleteCmdArray($this->cmd);
00173                         }
00174                 }
00175         }
00176 
00182         function main() {
00183                 global $BE_USER,$TYPO3_CONF_VARS;
00184 
00185                         // LOAD TCEmain with data and cmd arrays:
00186                 $this->tce->start($this->data,$this->cmd);
00187                 if (is_array($this->mirror))    {$this->tce->setMirror($this->mirror);}
00188 
00189                         // Checking referer / executing
00190                 $refInfo=parse_url(t3lib_div::getIndpEnv('HTTP_REFERER'));
00191                 $httpHost = t3lib_div::getIndpEnv('TYPO3_HOST_ONLY');
00192                 if ($httpHost!=$refInfo['host'] && $this->vC!=$BE_USER->veriCode() && !$TYPO3_CONF_VARS['SYS']['doNotCheckReferer'])    {
00193                         $this->tce->log('',0,0,0,1,'Referer host "%s" and server host "%s" did not match and veriCode was not valid either!',1,array($refInfo['host'],$httpHost));
00194                 } else {
00195                                 // Register uploaded files
00196                         $this->tce->process_uploads($_FILES);
00197 
00198                                 // Execute actions:
00199                         $this->tce->process_datamap();
00200                         $this->tce->process_cmdmap();
00201 
00202                                 // Clearing cache:
00203                         $this->tce->clear_cacheCmd($this->cacheCmd);
00204 
00205                                 // Update page tree?
00206                         if ($this->uPT && (isset($this->data['pages'])||isset($this->cmd['pages'])))    {
00207                                 t3lib_BEfunc::getSetUpdateSignal('updatePageTree');
00208                         }
00209                 }
00210         }
00211 
00218         function finish()       {
00219                         // Prints errors, if...
00220                 if ($this->prErr)       {
00221                         $this->tce->printLogErrorMessages($this->redirect);
00222                 }
00223 
00224                 if ($this->redirect && !$this->tce->debug) {
00225                         Header('Location: '.t3lib_div::locationHeaderUrl($this->redirect));
00226                 }
00227         }
00228 }
00229 
00230 // Include extension?
00231 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/tce_db.php'])        {
00232         include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/tce_db.php']);
00233 }
00234 
00235 
00236 
00237 
00238 
00239 
00240 
00241 // Make instance:
00242 $SOBE = t3lib_div::makeInstance('SC_tce_db');
00243 $SOBE->init();
00244 
00245 // Include files?
00246 foreach($SOBE->include_once as $INC_FILE)       include_once($INC_FILE);
00247 
00248 $SOBE->initClipboard();
00249 $SOBE->main();
00250 $SOBE->finish();
00251 ?>