Fixed bug #9296: htmlArea RTE: remove upload form when element browser is in readOnly...
[Packages/TYPO3.CMS.git] / typo3 / sysext / rtehtmlarea / mod4 / select_image.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 1999-2008 Kasper Skaarhoj (kasper@typo3.com)
6 * (c) 2004-2008 Stanislas Rolland <typo3(arobas)jbr.ca>
7 * All rights reserved
8 *
9 * This script is part of the TYPO3 project. The TYPO3 project is
10 * free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * The GNU General Public License can be found at
16 * http://www.gnu.org/copyleft/gpl.html.
17 * A copy is found in the textfile GPL.txt and important notices to the license
18 * from the author is found in LICENSE.txt distributed with these scripts.
19 *
20 *
21 * This script is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * This copyright notice MUST APPEAR in all copies of the script!
27 ***************************************************************/
28 /**
29 * Displays image selector for the RTE
30 *
31 * @author Kasper Skaarhoj <kasper@typo3.com>
32 * @author Stanislas Rolland <typo3(arobas)jbr.ca>
33 *
34 * $Id$ *
35 */
36
37 error_reporting (E_ALL ^ E_NOTICE);
38 unset($MCONF);
39 require('conf.php');
40 require($BACK_PATH.'init.php');
41 require($BACK_PATH.'template.php');
42 require_once('class.tx_rtehtmlarea_select_image.php');
43 $LANG->includeLLFile('EXT:lang/locallang_browse_links.xml');
44 $LANG->includeLLFile('EXT:rtehtmlarea/mod4/locallang.xml');
45 $LANG->includeLLFile('EXT:rtehtmlarea/htmlarea/locallang_dialogs.xml');
46
47 /**
48 * Script class for the Element Browser window.
49 *
50 * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
51 * @package TYPO3
52 * @subpackage core
53 */
54 class tx_rtehtmlarea_SC_select_image {
55 public $mode = 'rte';
56 public $button = 'image';
57 public $readOnly = false;
58 protected $content = '';
59
60 /**
61 * Main function, rendering the element browser in RTE mode.
62 *
63 * @return void
64 */
65 function main() {
66 // Setting alternative browsing mounts (ONLY local to browse_links.php this script so they stay "read-only")
67 $altMountPoints = trim($GLOBALS['BE_USER']->getTSConfigVal('options.folderTree.altElementBrowserMountPoints'));
68 if ($altMountPoints) {
69 $altMountPoints = t3lib_div::trimExplode(',', $altMountPoints);
70 foreach ($altMountPoints as $filePathRelativeToFileadmindir) {
71 $GLOBALS['BE_USER']->addFileMount('', $filePathRelativeToFileadmindir, $filePathRelativeToFileadmindir, 1, 0);
72 }
73 $GLOBALS['FILEMOUNTS'] = $GLOBALS['BE_USER']->returnFilemounts();
74 $this->readOnly = true;
75 }
76 // Rendering type by user function
77 $browserRendered = false;
78 if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'])) {
79 foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'] as $classRef) {
80 $browserRenderObj = t3lib_div::getUserObj($classRef);
81 if (is_object($browserRenderObj) && method_exists($browserRenderObj, 'isValid') && method_exists($browserRenderObj, 'render')) {
82 if ($browserRenderObj->isValid($this->mode, $this)) {
83 $browserRenderObj->readOnly = $this->readOnly;
84 $this->content .= $browserRenderObj->render($this->mode, $this);
85 $browserRendered = true;
86 break;
87 }
88 }
89 }
90 }
91 // If type was not rendered, use default rendering functions
92 if (!$browserRendered) {
93 $GLOBALS['SOBE']->browser = t3lib_div::makeInstance('tx_rtehtmlarea_select_image');
94 $GLOBALS['SOBE']->browser->readOnly = $this->readOnly;
95 $GLOBALS['SOBE']->browser->init();
96 $modData = $GLOBALS['BE_USER']->getModuleData('select_image.php','ses');
97 list($modData, $store) = $GLOBALS['SOBE']->browser->processSessionData($modData);
98 $GLOBALS['BE_USER']->pushModuleData('select_image.php',$modData);
99 $this->content = $GLOBALS['SOBE']->browser->main_rte();
100 }
101 }
102
103 /**
104 * Print module content
105 *
106 * @return void
107 */
108 function printContent() {
109 echo $this->content;
110 }
111 }
112
113 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod4/select_image.php']) {
114 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod4/select_image.php']);
115 }
116
117 // Make instance:
118 $SOBE = t3lib_div::makeInstance('tx_rtehtmlarea_SC_select_image');
119 $SOBE->main();
120 $SOBE->printContent();
121 ?>