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

wsol_preview.php

00001 <?php
00002 /***************************************************************
00003 *  Copyright notice
00004 *
00005 *  (c) 2004-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 *
00017 *  This script is distributed in the hope that it will be useful,
00018 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00019 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020 *  GNU General Public License for more details.
00021 *
00022 *  This copyright notice MUST APPEAR in all copies of the script!
00023 ***************************************************************/
00045 define('TYPO3_PROCEED_IF_NO_USER', '1');
00046 
00047 unset($MCONF);
00048 require('conf.php');
00049 require($BACK_PATH.'init.php');
00050 require_once('class.wslib.php');
00051 
00052 
00053 
00062 class wsol_preview {
00063 
00064         var $workspace = 0;             // Which workspace to preview!
00065 
00071         function main() {
00072 
00073                 if ($this->isBeLogin()) {
00074                         $this->workspace = $GLOBALS['BE_USER']->workspace;
00075                 }
00076 
00077                 if ($header = t3lib_div::_GP('header')) {
00078                         if ($header!=='live')   {
00079                                 $headerText = 'Workspace Version ('.$this->workspace.'):';
00080                                 $color = 'green';
00081                         } else {
00082                                 $headerText = 'Live Version:';
00083                                 $color = 'red';
00084                         }
00085 
00086                         $output =  '
00087                                 <html>
00088                                         <head>
00089                                                 <title>Header</title>
00090                                         </head>
00091                                         <body bgcolor="'.$color.'">
00092                                                 <font face="verdana,arial" size="2" color="white"><b>'.$headerText.'</b></font>
00093                                         </body>
00094                                 </html>';
00095                 } elseif ($msg = t3lib_div::_GP('msg')) {
00096                         switch($msg)    {
00097                                 case 'branchpoint':
00098                                         $message = '<b>No live page available!</b><br/><br/>
00099                                         The previewed page was inside a "Branch" type version and has no traceable counterpart in the live workspace.';
00100                                 break;
00101                                 case 'newpage':
00102                                         $message = '<b>New page!</b><br/><br/>
00103                                         The previewed page is created in the workspace and has no counterpart in the live workspace.';
00104                                 break;
00105                                 default:
00106                                         $message = 'Unknown message code "'.$msg.'"';
00107                                 break;
00108                         }
00109 
00110                         $output =  '
00111                                 <html>
00112                                         <head>
00113                                                 <title>Message</title>
00114                                         </head>
00115                                         <body bgcolor="#eeeeee">
00116                                                 <div width="100%" height="100%" style="text-align: center; align: center;"><br/><br/><br/><br/><font face="verdana,arial" size="2" color="#666666">'.$message.'</font></div>
00117                                         </body>
00118                                 </html>';
00119 
00120                 } else {
00121                         $this->generateUrls();
00122                         $output = $this->printFrameset();
00123                 }
00124 
00125                 echo $output;
00126         }
00127 
00133         function generateUrls() {
00134                         // Live URL:
00135                 $pageId = intval(t3lib_div::_GP('id'));
00136                 $language = intval(t3lib_div::_GP('L'));
00137 
00138                 $this->URL = array(
00139                         'liveHeader' => 'wsol_preview.php?header=live',
00140                         'draftHeader' => 'wsol_preview.php?header=draft',
00141                         'live' => t3lib_div::getIndpEnv('TYPO3_SITE_URL').'index.php?id='.$pageId.'&L='.$language.'&ADMCMD_noBeUser=1',
00142                         'draft' => t3lib_div::getIndpEnv('TYPO3_SITE_URL').'index.php?id='.$pageId.'&L='.$language.'&ADMCMD_view=1&ADMCMD_editIcons=1&ADMCMD_previewWS='.$this->workspace,
00143                         'versionMod' => '../../../sysext/version/cm1/index.php?id='.intval(t3lib_div::_GP('id')).'&diffOnly=1'
00144                 );
00145 
00146                 if ($this->isBeLogin()) {
00147                                 // Branchpoint; display error message then:
00148                         if (t3lib_BEfunc::isPidInVersionizedBranch($pageId)=='branchpoint')     {
00149                                 $this->URL['live'] = 'wsol_preview.php?msg=branchpoint';
00150                         }
00151 
00152                         $rec = t3lib_BEfunc::getRecord('pages',$pageId,'t3ver_state');
00153                         if ((int)$rec['t3ver_state']===1)       {
00154                                 $this->URL['live'] = 'wsol_preview.php?msg=newpage';
00155                         }
00156                 }
00157         }
00158 
00164         function printFrameset()        {
00165                 if ($this->isBeLogin()) {
00166                         return '
00167                         <html>
00168                                 <head>
00169                                         <title>Preview and compare workspace version with live version</title>
00170                                 </head>
00171                                 <frameset cols="60%,40%" framespacing="3" frameborder="3" border="3">
00172                                         <frameset rows="20,*,20,*" framespacing="3" frameborder="3" border="3">
00173                                                 <frame name="frame_liveh" src="'.htmlspecialchars($this->URL['liveHeader']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00174                                                 <frame name="frame_live" src="'.htmlspecialchars($this->URL['live']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00175                                                 <frame name="frame_drafth" src="'.htmlspecialchars($this->URL['draftHeader']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00176                                                 <frame name="frame_draft" src="'.htmlspecialchars($this->URL['draft']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00177                                         </frameset>
00178                                         <frame name="be" src="'.htmlspecialchars($this->URL['versionMod']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00179                                 </frameset>
00180                         </html>';
00181                 } else {
00182                         return '
00183                         <html>
00184                                 <head>
00185                                         <title>Preview and compare workspace version with live version</title>
00186                                 </head>
00187                                 <frameset cols="*,*" framespacing="3" frameborder="3" border="3">
00188                                         <frameset rows="20,*" framespacing="3" frameborder="3" border="3">
00189                                                 <frame name="frame_liveh" src="'.htmlspecialchars($this->URL['liveHeader']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00190                                                 <frame name="frame_live" src="'.htmlspecialchars($this->URL['live']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00191                                         </frameset>
00192                                         <frameset rows="20,*" framespacing="3" frameborder="3" border="3">
00193                                                 <frame name="frame_drafth" src="'.htmlspecialchars($this->URL['draftHeader']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00194                                                 <frame name="frame_draft" src="'.htmlspecialchars($this->URL['draft']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto">
00195                                         </frameset>
00196                                 </frameset>
00197                         </html>';
00198                 }
00199         }
00200 
00206         function isBeLogin()    {
00207                 return is_array($GLOBALS['BE_USER']->user);
00208         }
00209 }
00210 
00211 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/mod/user/ws/wsol_preview.php']) {
00212     include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/mod/user/ws/wsol_preview.php']);
00213 }
00214 
00215 $previewObject = t3lib_div::makeInstance('wsol_preview');
00216 $previewObject->main();
00217 ?>