[BUGFIX] adjust configuration handling to #55569
[Packages/TYPO3.CMS.git] / typo3 / move_el.php
old mode 100755 (executable)
new mode 100644 (file)
index 426678c..0b97a12
 <?php
 /***************************************************************
-*  Copyright notice
-*
-*  (c) 1999-2005 Kasper Skaarhoj (kasperYYYY@typo3.com)
-*  All rights reserved
-*
-*  This script is part of the TYPO3 project. The TYPO3 project is
-*  free software; you can redistribute it and/or modify
-*  it under the terms of the GNU General Public License as published by
-*  the Free Software Foundation; either version 2 of the License, or
-*  (at your option) any later version.
-*
-*  The GNU General Public License can be found at
-*  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license
-*  from the author is found in LICENSE.txt distributed with these scripts.
-*
-*
-*  This script is distributed in the hope that it will be useful,
-*  but WITHOUT ANY WARRANTY; without even the implied warranty of
-*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-*  GNU General Public License for more details.
-*
-*  This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
-/**
- * Move element wizard:
- * Moving pages or content elements (tt_content) around in the system via a page tree navigation.
- *
- * $Id$
- * Revised for TYPO3 3.6 November/2003 by Kasper Skaarhoj
- * XHTML compatible.
- *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
- */
-/**
- * [CLASS/FUNCTION INDEX of SCRIPT]
- *
- *
+ *  Copyright notice
  *
- *   96: class localPageTree extends t3lib_pageTree
- *  105:     function wrapIcon($icon,$row)
+ *  (c) 1999-2013 Kasper Skårhøj (kasperYYYY@typo3.com)
+ *  All rights reserved
  *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
  *
- *  127: class ext_posMap_pages extends t3lib_positionMap
- *  137:     function onClickEvent($pid,$newPagePID)
- *  148:     function linkPageTitle($str,$rec)
- *  161:     function boldTitle($t_code,$dat,$id)
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the text file GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
  *
  *
- *  184: class ext_posMap_tt_content extends t3lib_positionMap
- *  194:     function linkPageTitle($str,$rec)
- *  206:     function wrapRecordTitle($str,$row)
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
  *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+
+/**
+ * Move element wizard:
+ * Moving pages or content elements (tt_content) around in the system via a page tree navigation.
  *
- *  227: class SC_move_el
- *  250:     function init()
- *  284:     function main()
- *  416:     function printContent()
- *
- * TOTAL FUNCTIONS: 9
- * (This index is automatically created/updated by the extension "extdeveval")
- *
+ * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-
-
-$BACK_PATH='';
-require('init.php');
-require('template.php');
-
-       // Include local language labels:
-$LANG->includeLLFile('EXT:lang/locallang_misc.xml');
-
-       // Include libraries:
-require_once(PATH_t3lib.'class.t3lib_page.php');
-require_once(PATH_t3lib.'class.t3lib_positionmap.php');
-require_once(PATH_t3lib.'class.t3lib_pagetree.php');
-
-
-
-
-
-
-
-
-
+require __DIR__ . '/init.php';
 
 /**
  * Local extension of the page tree class
  *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
- * @package TYPO3
- * @subpackage core
+ * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-class localPageTree extends t3lib_pageTree {
+class localPageTree extends \TYPO3\CMS\Backend\Tree\View\PageTreeView {
 
        /**
         * Inserting uid-information in title-text for an icon
         *
-        * @param       string          Icon image
-        * @param       array           Item row
-        * @return      string          Wrapping icon image.
+        * @param string $icon Icon image
+        * @param array $row Item row
+        * @return string Wrapping icon image.
+        * @todo Define visibility
         */
-       function wrapIcon($icon,$row)   {
-               return $this->addTagAttributes($icon,' title="id='.htmlspecialchars($row['uid']).'"');
+       public function wrapIcon($icon, $row) {
+               return $this->addTagAttributes($icon, ' title="id=' . htmlspecialchars($row['uid']) . '"');
        }
-}
-
-
-
-
-
-
-
-
-
 
+}
 
 /**
  * Extension of position map for pages
  *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
- * @package TYPO3
- * @subpackage core
+ * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-class ext_posMap_pages extends t3lib_positionMap {
-       var $l_insertNewPageHere = 'movePageToHere';
+class ext_posMap_pages extends \TYPO3\CMS\Backend\Tree\View\PagePositionMap {
+
+       /**
+        * @todo Define visibility
+        */
+       public $l_insertNewPageHere = 'movePageToHere';
 
        /**
         * Creates the onclick event for the insert-icons.
         *
-        * @param       integer         The pid.
-        * @param       integer         New page id.
-        * @return      string          Onclick attribute content
+        * @param integer $pid The pid.
+        * @param integer $newPagePID New page id.
+        * @return string Onclick attribute content
+        * @todo Define visibility
         */
-       function onClickEvent($pid,$newPagePID) {
-               return 'document.location=\'tce_db.php?cmd[pages]['.$GLOBALS['SOBE']->moveUid.']['.$this->moveOrCopy.']='.$pid.'&redirect='.rawurlencode($this->R_URI).'&prErr=1&uPT=1&vC='.$GLOBALS['BE_USER']->veriCode().'\';return false;';
+       public function onClickEvent($pid, $newPagePID) {
+               return 'window.location.href=\'tce_db.php?cmd[pages][' . $GLOBALS['SOBE']->moveUid . '][' . $this->moveOrCopy . ']=' . $pid . '&redirect=' . rawurlencode($this->R_URI) . '&prErr=1&uPT=1&vC=' . $GLOBALS['BE_USER']->veriCode() . \TYPO3\CMS\Backend\Utility\BackendUtility::getUrlToken('tceAction') . '\';return false;';
        }
 
        /**
         * Wrapping page title.
         *
-        * @param       string          Page title.
-        * @param       array           Page record (?)
-        * @return      string          Wrapped title.
+        * @param string $str Page title.
+        * @param array $rec Page record (?)
+        * @return string Wrapped title.
+        * @todo Define visibility
         */
-       function linkPageTitle($str,$rec)       {
-               $url = t3lib_div::linkThisScript(array('uid'=>intval($rec['uid']),'moveUid'=>$GLOBALS['SOBE']->moveUid));
-               return '<a href="'.htmlspecialchars($url).'">'.$str.'</a>';
+       public function linkPageTitle($str, $rec) {
+               $url = \TYPO3\CMS\Core\Utility\GeneralUtility::linkThisScript(array('uid' => (int)$rec['uid'], 'moveUid' => $GLOBALS['SOBE']->moveUid));
+               return '<a href="' . htmlspecialchars($url) . '">' . $str . '</a>';
        }
 
        /**
         * Wrap $t_code in bold IF the $dat uid matches $id
         *
-        * @param       string          Title string
-        * @param       array           Infomation array with record array inside.
-        * @param       integer         The current id.
-        * @return      string          The title string.
+        * @param string $t_code Title string
+        * @param array $dat Infomation array with record array inside.
+        * @param integer $id The current id.
+        * @return string The title string.
+        * @todo Define visibility
         */
-       function boldTitle($t_code,$dat,$id)    {
-               return parent::boldTitle($t_code,$dat,$GLOBALS['SOBE']->moveUid);
+       public function boldTitle($t_code, $dat, $id) {
+               return parent::boldTitle($t_code, $dat, $GLOBALS['SOBE']->moveUid);
        }
-}
-
-
-
-
-
-
-
-
-
-
 
+}
 
 /**
  * Extension of position map for content elements
  *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
- * @package TYPO3
- * @subpackage core
+ * @author Kasper Skårhøj <kasperYYYY@typo3.com>
  */
-class ext_posMap_tt_content extends t3lib_positionMap {
-       var $dontPrintPageInsertIcons = 1;
-
-       /**
-        * Wrapping page title.
-        *
-        * @param       string          Page title.
-        * @param       array           Page record (?)
-        * @return      string          Wrapped title.
-        */
-       function linkPageTitle($str,$rec)       {
-               $url = t3lib_div::linkThisScript(array('uid'=>intval($rec['uid']),'moveUid'=>$GLOBALS['SOBE']->moveUid));
-               return '<a href="'.htmlspecialchars($url).'">'.$str.'</a>';
-       }
+class ext_posMap_tt_content extends \TYPO3\CMS\Backend\Tree\View\PagePositionMap {
 
        /**
-        * Wrapping the title of the record.
-        *
-        * @param       string          The title value.
-        * @param       array           The record row.
-        * @return      string          Wrapped title string.
+        * @todo Define visibility
         */
-       function wrapRecordTitle($str,$row)     {
-               if ($GLOBALS['SOBE']->moveUid==$row['uid'])     $str = '<b>'.$str.'</b>';
-               return parent::wrapRecordTitle($str,$row);
-       }
-}
-
-
-
-
-
-
-
-
-
-/**
- * Script Class for rendering the move-element wizard display
- *
- * @author     Kasper Skaarhoj <kasperYYYY@typo3.com>
- * @package TYPO3
- * @subpackage core
- */
-class SC_move_el {
-
-               // Internal, static (eg. from GPvars):
-       var $sys_language=0;
-       var $page_id;
-       var $table;
-       var $R_URI;
-       var $input_moveUid;
-       var $moveUid;
-       var $makeCopy;
-
-       var $doc;                               // Backend template object.
-       var $perms_clause;              // Pages-select clause
-
-               // Internal, dynamic:
-       var $content;                   // Content for module accumulated here.
-
+       public $dontPrintPageInsertIcons = 1;
 
        /**
-        * Constructor, initializing internal variables.
+        * Wrapping page title.
         *
-        * @return      void
+        * @param string $str Page title.
+        * @param array $rec Page record (?)
+        * @return string Wrapped title.
+        * @todo Define visibility
         */
-       function init() {
-               global $BE_USER,$LANG,$BACK_PATH;
-
-
-                       // Setting internal vars:
-               $this->sys_language = intval(t3lib_div::_GP('sys_language'));
-               $this->page_id=intval(t3lib_div::_GP('uid'));
-               $this->table=t3lib_div::_GP('table');
-               $this->R_URI=t3lib_div::_GP('returnUrl');
-               $this->input_moveUid = t3lib_div::_GP('moveUid');
-               $this->moveUid = $this->input_moveUid ? $this->input_moveUid : $this->page_id;
-               $this->makeCopy = t3lib_div::_GP('makeCopy');
-
-                       // Select-pages where clause for read-access:
-               $this->perms_clause = $BE_USER->getPagePermsClause(1);
-
-                       // Starting the document template object:
-               $this->doc = t3lib_div::makeInstance('mediumDoc');
-               $this->doc->docType= 'xhtml_trans';
-               $this->doc->backPath = $BACK_PATH;
-               $this->doc->JScode='';
-
-                       // Starting document content (header):
-               $this->content='';
-               $this->content.=$this->doc->startPage($LANG->getLL('movingElement'));
-               $this->content.=$this->doc->header($LANG->getLL('movingElement'));
-               $this->content.=$this->doc->spacer(5);
+       public function linkPageTitle($str, $rec) {
+               $url = \TYPO3\CMS\Core\Utility\GeneralUtility::linkThisScript(array('uid' => (int)$rec['uid'], 'moveUid' => $GLOBALS['SOBE']->moveUid));
+               return '<a href="' . htmlspecialchars($url) . '">' . $str . '</a>';
        }
 
        /**
-        * Creating the module output.
+        * Wrapping the title of the record.
         *
-        * @return      void
+        * @param string $str The title value.
+        * @param array $row The record row.
+        * @return string Wrapped title string.
+        * @todo Define visibility
         */
-       function main() {
-               global $LANG,$BACK_PATH,$BE_USER;
-
-               if ($this->page_id)     {
-
-                               // Get record for element:
-                       $elRow = t3lib_BEfunc::getRecordWSOL($this->table,$this->moveUid);
-
-                               // Headerline: Icon, record title:
-                       $hline = t3lib_iconWorks::getIconImage($this->table,$elRow,$BACK_PATH,' id="c-recIcon" title="'.htmlspecialchars(t3lib_BEfunc::getRecordIconAltText($elRow,$this->table)).'"');
-                       $hline.= t3lib_BEfunc::getRecordTitle($this->table,$elRow,1);
-
-                               // Make-copy checkbox (clicking this will reload the page with the GET var makeCopy set differently):
-                       $onClick = 'document.location=\''.t3lib_div::linkThisScript(array('makeCopy'=>!$this->makeCopy)).'\';';
-                       $hline.= '<br /><input type="hidden" name="makeCopy" value="0" /><input type="checkbox" name="makeCopy" value="1"'.($this->makeCopy?' checked="checked"':'').' onclick="'.htmlspecialchars($onClick).'" />'.
-                               $LANG->getLL('makeCopy',1);
-
-                               // Add the header-content to the module content:
-                       $this->content.=$this->doc->section($LANG->getLL('moveElement').':',$hline,0,1);
-                       $this->content.=$this->doc->spacer(20);
-
-                               // Reset variable to pick up the module content in:
-                       $code='';
-
-                               // IF the table is "pages":
-                       if ((string)$this->table=='pages')      {
-                                       // Get page record (if accessible):
-                               $pageinfo = t3lib_BEfunc::readPageAccess($this->page_id,$this->perms_clause);
-                               if (is_array($pageinfo) && $BE_USER->isInWebMount($pageinfo['pid'],$this->perms_clause))        {
-
-                                               // Initialize the position map:
-                                       $posMap = t3lib_div::makeInstance('ext_posMap_pages');
-                                       $posMap->moveOrCopy = $this->makeCopy?'copy':'move';
-
-                                               // Print a "go-up" link IF there is a real parent page (and if the user has read-access to that page).
-                                       if ($pageinfo['pid'])   {
-                                               $pidPageInfo = t3lib_BEfunc::readPageAccess($pageinfo['pid'],$this->perms_clause);
-                                               if (is_array($pidPageInfo))     {
-                                                       if ($BE_USER->isInWebMount($pidPageInfo['pid'],$this->perms_clause))    {
-                                                               $code.= '<a href="'.htmlspecialchars(t3lib_div::linkThisScript(array('uid'=>intval($pageinfo['pid']),'moveUid'=>$this->moveUid))).'">'.
-                                                                       '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/i/pages_up.gif','width="18" height="16"').' alt="" />'.
-                                                                       t3lib_BEfunc::getRecordTitle('pages',$pidPageInfo,1).
-                                                                       '</a><br />';
-                                                       } else {
-                                                               $code.= t3lib_iconWorks::getIconImage('pages',$pidPageInfo,$BACK_PATH,'').
-                                                                       t3lib_BEfunc::getRecordTitle('pages',$pidPageInfo,1).
-                                                                       '<br />';
-                                                       }
-                                               }
-                                       }
-
-                                               // Create the position tree:
-                                       $code.= $posMap->positionTree($this->page_id,$pageinfo,$this->perms_clause,$this->R_URI);
-
-                                               // CSH for move-pages:
-                                       $code.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'move_el_pages', $GLOBALS['BACK_PATH'],'<br/>|');
-                               }
-                       }
-
-                               // IF the table is "tt_content":
-                       if ((string)$this->table=='tt_content') {
-
-                                       // First, get the record:
-                               $tt_content_rec = t3lib_BEfunc::getRecord('tt_content',$this->moveUid);
-
-                                       // ?
-                               if (!$this->input_moveUid)      $this->page_id = $tt_content_rec['pid'];
-
-                                       // Checking if the parent page is readable:
-                               $pageinfo = t3lib_BEfunc::readPageAccess($this->page_id,$this->perms_clause);
-                               if (is_array($pageinfo) && $BE_USER->isInWebMount($pageinfo['pid'],$this->perms_clause))        {
-
-                                               // Initialize the position map:
-                                       $posMap = t3lib_div::makeInstance('ext_posMap_tt_content');
-                                       $posMap->moveOrCopy = $this->makeCopy?'copy':'move';
-                                       $posMap->cur_sys_language = $this->sys_language;
-
-                                               // Headerline for the parent page: Icon, record title:
-                                       $hline = t3lib_iconWorks::getIconImage('pages',$pageinfo,$BACK_PATH,' title="'.htmlspecialchars(t3lib_BEfunc::getRecordIconAltText($pageinfo,'pages')).'"');
-                                       $hline.= t3lib_BEfunc::getRecordTitle('pages',$pageinfo,1);
-
-                                               // Load SHARED page-TSconfig settings and retrieve column list from there, if applicable:
-                                       $modTSconfig_SHARED = t3lib_BEfunc::getModTSconfig($this->page_id,'mod.SHARED');                // SHARED page-TSconfig settings.
-                                       $colPosList = strcmp(trim($modTSconfig_SHARED['properties']['colPos_list']),'') ? trim($modTSconfig_SHARED['properties']['colPos_list']) : '1,0,2,3';
-                                       $colPosList = implode(',',array_unique(t3lib_div::intExplode(',',$colPosList)));                // Removing duplicates, if any
-
-                                               // Adding parent page-header and the content element columns from position-map:
-                                       $code=$hline.'<br />';
-                                       $code.=$posMap->printContentElementColumns($this->page_id,$this->moveUid,$colPosList,1,$this->R_URI);
-
-                                               // Print a "go-up" link IF there is a real parent page (and if the user has read-access to that page).
-                                       $code.= '<br />';
-                                       $code.= '<br />';
-                                       if ($pageinfo['pid'])   {
-                                               $pidPageInfo = t3lib_BEfunc::readPageAccess($pageinfo['pid'],$this->perms_clause);
-                                               if (is_array($pidPageInfo))     {
-                                                       if ($BE_USER->isInWebMount($pidPageInfo['pid'],$this->perms_clause))    {
-                                                               $code.= '<a href="'.htmlspecialchars(t3lib_div::linkThisScript(array('uid'=>intval($pageinfo['pid']),'moveUid'=>$this->moveUid))).'">'.
-                                                                       '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/i/pages_up.gif','width="18" height="16"').' alt="" />'.
-                                                                       t3lib_BEfunc::getRecordTitle('pages',$pidPageInfo,1).
-                                                                       '</a><br />';
-                                                       } else {
-                                                               $code.= t3lib_iconWorks::getIconImage('pages',$pidPageInfo,$BACK_PATH,'').
-                                                                       t3lib_BEfunc::getRecordTitle('pages',$pidPageInfo,1).
-                                                                       '<br />';
-                                                       }
-                                               }
-                                       }
-
-                                               // Create the position tree (for pages):
-                                       $code.= $posMap->positionTree($this->page_id,$pageinfo,$this->perms_clause,$this->R_URI);
-
-                                               // CSH for move-content-elements:
-                                       $code.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'move_el_cs', $GLOBALS['BACK_PATH'],'<br/>|');
-                               }
-                       }
-
-                               // IF a return-url is given, print the go-back link:
-                       if ($this->R_URI)       {
-                               $code.='<br /><br /><a href="'.htmlspecialchars($this->R_URI).'" class="typo3-goBack"><img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/goback.gif','width="14" height="14"').' alt="" />'.$LANG->getLL('goBack',1).'</a>';
-                       }
-
-                               // Add the $code content as a new section to the module:
-                       $this->content.=$this->doc->section($LANG->getLL('selectPositionOfElement').':',$code,0,1);
+       public function wrapRecordTitle($str, $row) {
+               if ($GLOBALS['SOBE']->moveUid == $row['uid']) {
+                       $str = '<strong>' . $str . '</strong>';
                }
+               return parent::wrapRecordTitle($str, $row);
        }
-
-       /**
-        * Print out the accumulated content:
-        *
-        * @return      void
-        */
-       function printContent() {
-               global $SOBE;
-
-               $this->content.= $this->doc->endPage();
-               echo $this->content;
-       }
-}
-
-// Include extension?
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/move_el.php'])      {
-       include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/move_el.php']);
 }
 
-
-
-
-
-
-
-
-
-
-
-
-// Make instance:
-$SOBE = t3lib_div::makeInstance('SC_move_el');
-$SOBE->init();
-$SOBE->main();
-$SOBE->printContent();
-?>
\ No newline at end of file
+$moveElementController = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Controller\\ContentElement\\MoveElementController');
+$moveElementController->main();
+$moveElementController->printContent();