📄 wsol_preview.php
字号:
<?php/**************************************************************** Copyright notice** (c) 2004-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.** 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!***************************************************************//** * Workspace preview module * * @author Kasper Skaarhoj <kasperYYYY@typo3.com> *//** * [CLASS/FUNCTION INDEX of SCRIPT] * * * * 62: class wsol_preview * 71: function main() * 133: function generateUrls() * 164: function printFrameset() * 206: function isBeLogin() * * TOTAL FUNCTIONS: 4 * (This index is automatically created/updated by the extension "extdeveval") * */define('TYPO3_PROCEED_IF_NO_USER', '1');unset($MCONF);require('conf.php');require($BACK_PATH.'init.php');require_once('class.wslib.php');/** * Workspace dual preview * NOTICE: In this module you HAVE to check if a backend user is actually logged in if you perform operations that require a login! See function ->isBeLogin() * * @author Kasper Skaarhoj <kasperYYYY@typo3.com> * @package TYPO3 * @subpackage core */class wsol_preview { var $workspace = 0; // Which workspace to preview! /** * Main function of class * * @return void */ function main() { if ($this->isBeLogin()) { $this->workspace = $GLOBALS['BE_USER']->workspace; } if ($header = t3lib_div::_GP('header')) { if ($header!=='live') { $headerText = 'Workspace Version ('.$this->workspace.'):'; $color = 'green'; } else { $headerText = 'Live Version:'; $color = 'red'; } $output = ' <html> <head> <title>Header</title> </head> <body bgcolor="'.$color.'"> <font face="verdana,arial" size="2" color="white"><b>'.$headerText.'</b></font> </body> </html>'; } elseif ($msg = t3lib_div::_GP('msg')) { switch($msg) { case 'branchpoint': $message = '<b>No live page available!</b><br/><br/> The previewed page was inside a "Branch" type version and has no traceable counterpart in the live workspace.'; break; case 'newpage': $message = '<b>New page!</b><br/><br/> The previewed page is created in the workspace and has no counterpart in the live workspace.'; break; default: $message = 'Unknown message code "'.$msg.'"'; break; } $output = ' <html> <head> <title>Message</title> </head> <body bgcolor="#eeeeee"> <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> </body> </html>'; } else { $this->generateUrls(); $output = $this->printFrameset(); } echo $output; } /** * URLs generated in $this->URL array * * @return void */ function generateUrls() { // Live URL: $pageId = intval(t3lib_div::_GP('id')); $language = intval(t3lib_div::_GP('L')); $this->URL = array( 'liveHeader' => 'wsol_preview.php?header=live', 'draftHeader' => 'wsol_preview.php?header=draft', 'live' => t3lib_div::getIndpEnv('TYPO3_SITE_URL').'index.php?id='.$pageId.'&L='.$language.'&ADMCMD_noBeUser=1', 'draft' => t3lib_div::getIndpEnv('TYPO3_SITE_URL').'index.php?id='.$pageId.'&L='.$language.'&ADMCMD_view=1&ADMCMD_editIcons=1&ADMCMD_previewWS='.$this->workspace, 'versionMod' => '../../../sysext/version/cm1/index.php?id='.intval(t3lib_div::_GP('id')).'&diffOnly=1' ); if ($this->isBeLogin()) { // Branchpoint; display error message then: if (t3lib_BEfunc::isPidInVersionizedBranch($pageId)=='branchpoint') { $this->URL['live'] = 'wsol_preview.php?msg=branchpoint'; } $rec = t3lib_BEfunc::getRecord('pages',$pageId,'t3ver_state'); if ((int)$rec['t3ver_state']===1) { $this->URL['live'] = 'wsol_preview.php?msg=newpage'; } } } /** * Outputting frameset HTML code * * @return void */ function printFrameset() { if ($this->isBeLogin()) { return ' <html> <head> <title>Preview and compare workspace version with live version</title> </head> <frameset cols="60%,40%" framespacing="3" frameborder="3" border="3"> <frameset rows="20,*,20,*" framespacing="3" frameborder="3" border="3"> <frame name="frame_liveh" src="'.htmlspecialchars($this->URL['liveHeader']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> <frame name="frame_live" src="'.htmlspecialchars($this->URL['live']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> <frame name="frame_drafth" src="'.htmlspecialchars($this->URL['draftHeader']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> <frame name="frame_draft" src="'.htmlspecialchars($this->URL['draft']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> </frameset> <frame name="be" src="'.htmlspecialchars($this->URL['versionMod']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> </frameset> </html>'; } else { return ' <html> <head> <title>Preview and compare workspace version with live version</title> </head> <frameset cols="*,*" framespacing="3" frameborder="3" border="3"> <frameset rows="20,*" framespacing="3" frameborder="3" border="3"> <frame name="frame_liveh" src="'.htmlspecialchars($this->URL['liveHeader']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> <frame name="frame_live" src="'.htmlspecialchars($this->URL['live']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> </frameset> <frameset rows="20,*" framespacing="3" frameborder="3" border="3"> <frame name="frame_drafth" src="'.htmlspecialchars($this->URL['draftHeader']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> <frame name="frame_draft" src="'.htmlspecialchars($this->URL['draft']).'" marginwidth="0" marginheight="0" frameborder="1" scrolling="auto"> </frameset> </frameset> </html>'; } } /** * Checks if a backend user is logged in. Due to the line "define('TYPO3_PROCEED_IF_NO_USER', '1');" the backend is initialized even if no backend user was authenticated. This is in order to allow previews through this module of yet not-logged in users. * * @return boolean True, if there is a logged in backend user. */ function isBeLogin() { return is_array($GLOBALS['BE_USER']->user); }}if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/mod/user/ws/wsol_preview.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/mod/user/ws/wsol_preview.php']);}$previewObject = t3lib_div::makeInstance('wsol_preview');$previewObject->main();?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -