This commit was manufactured by cvs2svn to create tag
[Packages/TYPO3.CMS.git] / typo3 / move_el.php
index ea0d81e..c8f1476 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
-*  (c) 1999-2003 Kasper Skårhøj (kasper@typo3.com)
+*
+*  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  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 
+*  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
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
- * Move element wizard
+/**
+ * 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 <kasper@typo3.com>
+ */
+/**
+ * [CLASS/FUNCTION INDEX of SCRIPT]
+ *
+ *
+ *
+ *   96: class localPageTree extends t3lib_pageTree
+ *  105:     function wrapIcon($icon,$row)
+ *
+ *
+ *  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)
+ *
+ *
+ *  184: class ext_posMap_tt_content extends t3lib_positionMap
+ *  194:     function linkPageTitle($str,$rec)
+ *  206:     function wrapRecordTitle($str,$row)
  *
- * @author     Kasper Skårhøj <kasper@typo3.com>
- * @package TYPO3
- * @subpackage core
+ *
+ *  227: class SC_move_el
+ *  250:     function init()
+ *  284:     function main()
+ *  410:     function printContent()
+ *
+ * TOTAL FUNCTIONS: 9
+ * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
 
-$BACK_PATH="";
-require ("init.php");
-require ("template.php");
-include ("sysext/lang/locallang_misc.php");
-require_once (PATH_t3lib."class.t3lib_page.php");
-require_once (PATH_t3lib."class.t3lib_positionmap.php");
-require_once (PATH_t3lib."class.t3lib_pagetree.php");
+
+$BACK_PATH='';
+require ('init.php');
+require ('template.php');
+
+       // Include local language labels:
+include ('sysext/lang/locallang_misc.php');
+
+       // 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');
+
+
+
 
 
 
 
-// ***************************
-// Script Classes
-// ***************************
+
+
+
+/**
+ * Local extension of the page tree class
+ *
+ * @author     Kasper Skaarhoj <kasper@typo3.com>
+ * @package TYPO3
+ * @subpackage core
+ */
 class localPageTree extends t3lib_pageTree {
+
+       /**
+        * Inserting uid-information in title-text for an icon
+        *
+        * @param       string          Icon image
+        * @param       array           Item row
+        * @return      string          Wrapping icon image.
+        */
        function wrapIcon($icon,$row)   {
-               return substr($icon,0,-1).' title="id='.htmlspecialchars($row["uid"]).'">';
+               return $this->addTagAttributes($icon,' title="id='.htmlspecialchars($row['uid']).'"');
        }
 }
+
+
+
+
+
+
+
+
+
+
+
+/**
+ * Extension of position map for pages
+ *
+ * @author     Kasper Skaarhoj <kasper@typo3.com>
+ * @package TYPO3
+ * @subpackage core
+ */
 class ext_posMap_pages extends t3lib_positionMap {
-       var $l_insertNewPageHere = "movePageToHere";
-       
-       function onClickEvent($pid)     {
-               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;';
+       var $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
+        */
+       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;';
        }
+
+       /**
+        * Wrapping page title.
+        *
+        * @param       string          Page title.
+        * @param       array           Page record (?)
+        * @return      string          Wrapped title.
+        */
        function linkPageTitle($str,$rec)       {
-               return '<a href="'.t3lib_div::linkThisScript(array("uid"=>intval($rec["uid"]),"moveUid"=>$GLOBALS["SOBE"]->moveUid)).'">'.$str.'</a>';
+               $url = t3lib_div::linkThisScript(array('uid'=>intval($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.
+        */
        function boldTitle($t_code,$dat,$id)    {
-               return parent::boldTitle($t_code,$dat,$GLOBALS["SOBE"]->moveUid);
+               return parent::boldTitle($t_code,$dat,$GLOBALS['SOBE']->moveUid);
        }
 }
+
+
+
+
+
+
+
+
+
+
+
+
+/**
+ * Extension of position map for content elements
+ *
+ * @author     Kasper Skaarhoj <kasper@typo3.com>
+ * @package TYPO3
+ * @subpackage core
+ */
 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)       {
-               $str = '<a href="'.t3lib_div::linkThisScript(array("uid"=>intval($rec["uid"]),"moveUid"=>$GLOBALS["SOBE"]->moveUid)).'">'.$str.'</a>';
-               return $str;
+               $url = t3lib_div::linkThisScript(array('uid'=>intval($rec['uid']),'moveUid'=>$GLOBALS['SOBE']->moveUid));
+               return '<a href="'.htmlspecialchars($url).'">'.$str.'</a>';
        }
 
+       /**
+        * Wrapping the title of the record.
+        *
+        * @param       string          The title value.
+        * @param       array           The record row.
+        * @return      string          Wrapped title string.
+        */
        function wrapRecordTitle($str,$row)     {
-               if ($GLOBALS["SOBE"]->moveUid==$row["uid"])     $str = '<b>'.$str.'</b>';
+               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 <kasper@typo3.com>
+ * @package TYPO3
+ * @subpackage core
+ */
 class SC_move_el {
-       var $content;
-       var $moveUid;
-       var $content;
-       var $perms_clause;
+
+               // Internal, static (eg. from GPvars):
+       var $sys_language=0;
        var $page_id;
        var $table;
        var $R_URI;
-       var $doc;       
-       var $sys_language=0;
-       
+       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.
+
+
+       /**
+        * Constructor, initializing internal variables.
+        *
+        * @return      void
+        */
        function init() {
-               global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$HTTP_GET_VARS,$HTTP_POST_VARS,$CLIENT,$TYPO3_CONF_VARS;
-//debug($HTTP_GET_VARS);
-               $this->sys_language = intval(t3lib_div::GPvar("sys_language"));
+               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);
-               
-               
-               $this->doc = t3lib_div::makeInstance("mediumDoc");
+
+                       // Starting the document template object:
+               $this->doc = t3lib_div::makeInstance('mediumDoc');
+               $this->doc->docType= 'xhtml_trans';
                $this->doc->backPath = $BACK_PATH;
                $this->doc->JScode='';
-               
-               
-               // ***************************
-               // Creating content
-               // ***************************
-               $this->content="";
-               $this->content.=$this->doc->startPage($LANG->getLL("movingElement"));
-               $this->content.=$this->doc->header($LANG->getLL("movingElement"));
+
+                       // 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);
-               
-               
-               $this->page_id=intval(t3lib_div::GPvar("uid"));
-               $this->table=t3lib_div::GPvar("table");
-               $this->R_URI=t3lib_div::GPvar("returnUrl");
-               $this->moveUid = t3lib_div::GPvar("moveUid") ? t3lib_div::GPvar("moveUid") : $this->page_id;
        }
+
+       /**
+        * Creating the module output.
+        *
+        * @return      void
+        */
        function main() {
-               global $BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$HTTP_GET_VARS,$HTTP_POST_VARS,$CLIENT,$TYPO3_CONF_VARS;
+               global $LANG,$BACK_PATH,$BE_USER;
 
                if ($this->page_id)     {
-                       
+
+                               // Get record for element:
                        $elRow = t3lib_BEfunc::getRecord($this->table,$this->moveUid);
-                       $hline = t3lib_iconWorks::getIconImage($this->table,$elRow,$BACK_PATH,t3lib_BEfunc::titleAttrib(t3lib_BEfunc::getRecordIconAltText($elRow,$this->table),1).' align=top');
+
+                               // 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);
-                       $hline.= '<BR><input type="hidden" name="makeCopy" value="0"><input type="checkbox" name="makeCopy" value="1"'.(t3lib_div::GPvar("makeCopy")?" CHECKED":"").' onClick="document.location=\''.t3lib_div::linkThisScript(array("makeCopy"=>!t3lib_div::GPvar("makeCopy"))).'\'">'.$LANG->getLL("makeCopy");
-                       
-                       $this->content.=$this->doc->section($LANG->getLL("moveElement").":",$hline,0,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);
-               
-               
-                       $code="";
-                       if ((string)$this->table=="pages")      {
+
+                               // 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))        {
-                               
-                                       
-                                       $posMap = t3lib_div::makeInstance("ext_posMap_pages");
-                                       $posMap->moveOrCopy = t3lib_div::GPvar("makeCopy")?"copy":"move";
-               
-                                       $code="";
-               //                      $code.="<BR><strong>".$LANG->getLL("selectPositionOfElement").":</strong><BR><BR>";
-                                       if ($pageinfo["pid"])   {
-                                               $pidPageInfo = t3lib_BEfunc::readPageAccess($pageinfo["pid"],$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))     {
-                                                       $code.='<a href="'.t3lib_div::linkThisScript(array("uid"=>intval($pageinfo["pid"]),"moveUid"=>$this->moveUid)).'"><img src="gfx/i/pages_up.gif" width="18" height="16" border="0" align=top>'.t3lib_BEfunc::getRecordTitle("pages",$pidPageInfo).'</a><BR>';
+                                                       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);
                                }
                        }
-               
-                       if ((string)$this->table=="tt_content") {
-                               $tt_content_rec = t3lib_BEfunc::getRecord("tt_content",$this->moveUid);
-                               if (!t3lib_div::GPvar("moveUid"))       $this->page_id = $tt_content_rec["pid"];
-               
-               //              debug($tt_content_rec["uid"]);
-                               
-               
+
+                               // 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))        {
-                                       $posMap = t3lib_div::makeInstance("ext_posMap_tt_content");
-                                       $posMap->moveOrCopy = t3lib_div::GPvar("makeCopy")?"copy":"move";
+                               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;
-               
-                                       $code="";
-               
-                                       $hline = t3lib_iconWorks::getIconImage("pages",$pageinfo,$BACK_PATH,t3lib_BEfunc::titleAttrib(t3lib_BEfunc::getRecordIconAltText($pageinfo,"pages"),1).' align=top');
-                                       $hline.= t3lib_BEfunc::getRecordTitle("pages",$pageinfo,1);
-               
-                                               // Find columns
-                                       $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";
-               
-                                       $code=$hline."<BR>";
+
+                                               // 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);
-               
-                                       $code.= '<BR>';
-                                       $code.= '<BR>';
-                                       if ($pageinfo["pid"])   {
-                                               $pidPageInfo = t3lib_BEfunc::readPageAccess($pageinfo["pid"],$this->perms_clause);
+
+                                               // 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))     {
-                                                       $code.='<a href="'.t3lib_div::linkThisScript(array("uid"=>intval($pageinfo["pid"]),"moveUid"=>$this->moveUid)).'"><img src="gfx/i/pages_up.gif" width="18" height="16" border="0" align=top>'.t3lib_BEfunc::getRecordTitle("pages",$pidPageInfo).'</a><BR>';
+                                                       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);
                                }
                        }
-               
+
+                               // IF a return-url is given, print the go-back link:
                        if ($this->R_URI)       {
-                               $code.='<BR><BR><a href="'.$this->R_URI.'" class="typo3-goBack"><img src="gfx/goback.gif" width="14" height="14" hspace="2" border="0" align="top"><strong>'.$LANG->getLL("goBack").'</strong></a>';
+                               $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>';
                        }
-                       $this->content.=$this->doc->section($LANG->getLL("selectPositionOfElement").":",$code,0,1);
+
+                               // Add the $code content as a new section to the module:
+                       $this->content.=$this->doc->section($LANG->getLL('selectPositionOfElement').':',$code,0,1);
                }
        }
+
+       /**
+        * Print out the accumulated content:
+        *
+        * @return      void
+        */
        function printContent() {
                global $SOBE;
-               $this->content.= $this->doc->middle();
+
                $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"]);
+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']);
 }
 
 
@@ -219,7 +432,7 @@ if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["typo3/move_
 
 
 // Make instance:
-$SOBE = t3lib_div::makeInstance("SC_move_el");
+$SOBE = t3lib_div::makeInstance('SC_move_el');
 $SOBE->init();
 $SOBE->main();
 $SOBE->printContent();