Main Page | Directories | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages | Examples

move_el.php

Go to the documentation of this file.
00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *
00005 *  (c) 1999-2004 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 ***************************************************************/
00068 $BACK_PATH='';
00069 require('init.php');
00070 require('template.php');
00071 
00072    // Include local language labels:
00073 $LANG->includeLLFile('EXT:lang/locallang_misc.xml');
00074 
00075    // Include libraries:
00076 require_once(PATH_t3lib.'class.t3lib_page.php');
00077 require_once(PATH_t3lib.'class.t3lib_positionmap.php');
00078 require_once(PATH_t3lib.'class.t3lib_pagetree.php');
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
00088 
00096 class localPageTree extends t3lib_pageTree {
00097 
00105    function wrapIcon($icon,$row) {
00106       return $this->addTagAttributes($icon,' title="id='.htmlspecialchars($row['uid']).'"');
00107    }
00108 }
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119 
00127 class ext_posMap_pages extends t3lib_positionMap {
00128    var $l_insertNewPageHere = 'movePageToHere';
00129 
00137    function onClickEvent($pid,$newPagePID)   {
00138       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;';
00139    }
00140 
00148    function linkPageTitle($str,$rec)   {
00149       $url = t3lib_div::linkThisScript(array('uid'=>intval($rec['uid']),'moveUid'=>$GLOBALS['SOBE']->moveUid));
00150       return '<a href="'.htmlspecialchars($url).'">'.$str.'</a>';
00151    }
00152 
00161    function boldTitle($t_code,$dat,$id)   {
00162       return parent::boldTitle($t_code,$dat,$GLOBALS['SOBE']->moveUid);
00163    }
00164 }
00165 
00166 
00167 
00168 
00169 
00170 
00171 
00172 
00173 
00174 
00175 
00176 
00184 class ext_posMap_tt_content extends t3lib_positionMap {
00185    var $dontPrintPageInsertIcons = 1;
00186 
00194    function linkPageTitle($str,$rec)   {
00195       $url = t3lib_div::linkThisScript(array('uid'=>intval($rec['uid']),'moveUid'=>$GLOBALS['SOBE']->moveUid));
00196       return '<a href="'.htmlspecialchars($url).'">'.$str.'</a>';
00197    }
00198 
00206    function wrapRecordTitle($str,$row) {
00207       if ($GLOBALS['SOBE']->moveUid==$row['uid'])  $str = '<b>'.$str.'</b>';
00208       return parent::wrapRecordTitle($str,$row);
00209    }
00210 }
00211 
00212 
00213 
00214 
00215 
00216 
00217 
00218 
00219 
00227 class SC_move_el {
00228 
00229       // Internal, static (eg. from GPvars):
00230    var $sys_language=0;
00231    var $page_id;
00232    var $table;
00233    var $R_URI;
00234    var $input_moveUid;
00235    var $moveUid;
00236    var $makeCopy;
00237 
00238    var $doc;            // Backend template object.
00239    var $perms_clause;      // Pages-select clause
00240 
00241       // Internal, dynamic:
00242    var $content;        // Content for module accumulated here.
00243 
00244 
00250    function init()   {
00251       global $BE_USER,$LANG,$BACK_PATH;
00252 
00253 
00254          // Setting internal vars:
00255       $this->sys_language = intval(t3lib_div::_GP('sys_language'));
00256       $this->page_id=intval(t3lib_div::_GP('uid'));
00257       $this->table=t3lib_div::_GP('table');
00258       $this->R_URI=t3lib_div::_GP('returnUrl');
00259       $this->input_moveUid = t3lib_div::_GP('moveUid');
00260       $this->moveUid = $this->input_moveUid ? $this->input_moveUid : $this->page_id;
00261       $this->makeCopy = t3lib_div::_GP('makeCopy');
00262 
00263          // Select-pages where clause for read-access:
00264       $this->perms_clause = $BE_USER->getPagePermsClause(1);
00265 
00266          // Starting the document template object:
00267       $this->doc = t3lib_div::makeInstance('mediumDoc');
00268       $this->doc->docType= 'xhtml_trans';
00269       $this->doc->backPath = $BACK_PATH;
00270       $this->doc->JScode='';
00271 
00272          // Starting document content (header):
00273       $this->content='';
00274       $this->content.=$this->doc->startPage($LANG->getLL('movingElement'));
00275       $this->content.=$this->doc->header($LANG->getLL('movingElement'));
00276       $this->content.=$this->doc->spacer(5);
00277    }
00278 
00284    function main()   {
00285       global $LANG,$BACK_PATH,$BE_USER;
00286 
00287       if ($this->page_id)  {
00288 
00289             // Get record for element:
00290          $elRow = t3lib_BEfunc::getRecord($this->table,$this->moveUid);
00291 
00292             // Headerline: Icon, record title:
00293          $hline = t3lib_iconWorks::getIconImage($this->table,$elRow,$BACK_PATH,' id="c-recIcon" title="'.htmlspecialchars(t3lib_BEfunc::getRecordIconAltText($elRow,$this->table)).'"');
00294          $hline.= t3lib_BEfunc::getRecordTitle($this->table,$elRow,1);
00295 
00296             // Make-copy checkbox (clicking this will reload the page with the GET var makeCopy set differently):
00297          $onClick = 'document.location=\''.t3lib_div::linkThisScript(array('makeCopy'=>!$this->makeCopy)).'\';';
00298          $hline.= '<br /><input type="hidden" name="makeCopy" value="0" /><input type="checkbox" name="makeCopy" value="1"'.($this->makeCopy?' checked="checked"':'').' onclick="'.htmlspecialchars($onClick).'" />'.
00299             $LANG->getLL('makeCopy',1);
00300 
00301             // Add the header-content to the module content:
00302          $this->content.=$this->doc->section($LANG->getLL('moveElement').':',$hline,0,1);
00303          $this->content.=$this->doc->spacer(20);
00304 
00305             // Reset variable to pick up the module content in:
00306          $code='';
00307 
00308             // IF the table is "pages":
00309          if ((string)$this->table=='pages')  {
00310                // Get page record (if accessible):
00311             $pageinfo = t3lib_BEfunc::readPageAccess($this->page_id,$this->perms_clause);
00312             if (is_array($pageinfo) && $BE_USER->isInWebMount($pageinfo['pid'],$this->perms_clause))  {
00313 
00314                   // Initialize the position map:
00315                $posMap = t3lib_div::makeInstance('ext_posMap_pages');
00316                $posMap->moveOrCopy = $this->makeCopy?'copy':'move';
00317 
00318                   // Print a "go-up" link IF there is a real parent page (and if the user has read-access to that page).
00319                if ($pageinfo['pid'])   {
00320                   $pidPageInfo = t3lib_BEfunc::readPageAccess($pageinfo['pid'],$this->perms_clause);
00321                   if (is_array($pidPageInfo))   {
00322                      if ($BE_USER->isInWebMount($pidPageInfo['pid'],$this->perms_clause)) {
00323                         $code.= '<a href="'.htmlspecialchars(t3lib_div::linkThisScript(array('uid'=>intval($pageinfo['pid']),'moveUid'=>$this->moveUid))).'">'.
00324                            '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/i/pages_up.gif','width="18" height="16"').' alt="" />'.
00325                            t3lib_BEfunc::getRecordTitle('pages',$pidPageInfo,1).
00326                            '</a><br />';
00327                      } else {
00328                         $code.= t3lib_iconWorks::getIconImage('pages',$pidPageInfo,$BACK_PATH,'').
00329                            t3lib_BEfunc::getRecordTitle('pages',$pidPageInfo,1).
00330                            '<br />';
00331                      }
00332                   }
00333                }
00334 
00335                   // Create the position tree:
00336                $code.= $posMap->positionTree($this->page_id,$pageinfo,$this->perms_clause,$this->R_URI);
00337 
00338                   // CSH for move-pages:
00339                $code.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'move_el_pages', $GLOBALS['BACK_PATH'],'<br/>|');
00340             }
00341          }
00342 
00343             // IF the table is "tt_content":
00344          if ((string)$this->table=='tt_content')   {
00345 
00346                // First, get the record:
00347             $tt_content_rec = t3lib_BEfunc::getRecord('tt_content',$this->moveUid);
00348 
00349                // ?
00350             if (!$this->input_moveUid) $this->page_id = $tt_content_rec['pid'];
00351 
00352                // Checking if the parent page is readable:
00353             $pageinfo = t3lib_BEfunc::readPageAccess($this->page_id,$this->perms_clause);
00354             if (is_array($pageinfo) && $BE_USER->isInWebMount($pageinfo['pid'],$this->perms_clause))  {
00355 
00356                   // Initialize the position map:
00357                $posMap = t3lib_div::makeInstance('ext_posMap_tt_content');
00358                $posMap->moveOrCopy = $this->makeCopy?'copy':'move';
00359                $posMap->cur_sys_language = $this->sys_language;
00360 
00361                   // Headerline for the parent page: Icon, record title:
00362                $hline = t3lib_iconWorks::getIconImage('pages',$pageinfo,$BACK_PATH,' title="'.htmlspecialchars(t3lib_BEfunc::getRecordIconAltText($pageinfo,'pages')).'"');
00363                $hline.= t3lib_BEfunc::getRecordTitle('pages',$pageinfo,1);
00364 
00365                   // Load SHARED page-TSconfig settings and retrieve column list from there, if applicable:
00366                $modTSconfig_SHARED = t3lib_BEfunc::getModTSconfig($this->page_id,'mod.SHARED');    // SHARED page-TSconfig settings.
00367                $colPosList = strcmp(trim($modTSconfig_SHARED['properties']['colPos_list']),'') ? trim($modTSconfig_SHARED['properties']['colPos_list']) : '1,0,2,3';
00368                $colPosList = implode(',',array_unique(t3lib_div::intExplode(',',$colPosList)));    // Removing duplicates, if any
00369 
00370                   // Adding parent page-header and the content element columns from position-map:
00371                $code=$hline.'<br />';
00372                $code.=$posMap->printContentElementColumns($this->page_id,$this->moveUid,$colPosList,1,$this->R_URI);
00373 
00374                   // Print a "go-up" link IF there is a real parent page (and if the user has read-access to that page).
00375                $code.= '<br />';
00376                $code.= '<br />';
00377                if ($pageinfo['pid'])   {
00378                   $pidPageInfo = t3lib_BEfunc::readPageAccess($pageinfo['pid'],$this->perms_clause);
00379                   if (is_array($pidPageInfo))   {
00380                      if ($BE_USER->isInWebMount($pidPageInfo['pid'],$this->perms_clause)) {
00381                         $code.= '<a href="'.htmlspecialchars(t3lib_div::linkThisScript(array('uid'=>intval($pageinfo['pid']),'moveUid'=>$this->moveUid))).'">'.
00382                            '<img'.t3lib_iconWorks::skinImg($this->doc->backPath,'gfx/i/pages_up.gif','width="18" height="16"').' alt="" />'.
00383                            t3lib_BEfunc::getRecordTitle('pages',$pidPageInfo,1).
00384                            '</a><br />';
00385                      } else {
00386                         $code.= t3lib_iconWorks::getIconImage('pages',$pidPageInfo,$BACK_PATH,'').
00387                            t3lib_BEfunc::getRecordTitle('pages',$pidPageInfo,1).
00388                            '<br />';
00389                      }
00390                   }
00391                }
00392 
00393                   // Create the position tree (for pages):
00394                $code.= $posMap->positionTree($this->page_id,$pageinfo,$this->perms_clause,$this->R_URI);
00395 
00396                   // CSH for move-content-elements:
00397                $code.= t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'move_el_cs', $GLOBALS['BACK_PATH'],'<br/>|');
00398             }
00399          }
00400 
00401             // IF a return-url is given, print the go-back link:
00402          if ($this->R_URI) {
00403             $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>';
00404          }
00405 
00406             // Add the $code content as a new section to the module:
00407          $this->content.=$this->doc->section($LANG->getLL('selectPositionOfElement').':',$code,0,1);
00408       }
00409    }
00410 
00416    function printContent() {
00417       global $SOBE;
00418 
00419       $this->content.= $this->doc->endPage();
00420       echo $this->content;
00421    }
00422 }
00423 
00424 // Include extension?
00425 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/move_el.php']) {
00426    include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/move_el.php']);
00427 }
00428 
00429 
00430 
00431 
00432 
00433 
00434 
00435 
00436 
00437 
00438 
00439 
00440 // Make instance:
00441 $SOBE = t3lib_div::makeInstance('SC_move_el');
00442 $SOBE->init();
00443 $SOBE->main();
00444 $SOBE->printContent();
00445 ?>

Generated on Sun Oct 3 01:05:55 2004 for TYPO3core 3.7.0 dev by  doxygen 1.3.8-20040913