Added feature #9109: Enable altMountPoints feature in RTE element browser (Thanks...
[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 <stanislas.rolland(arobas)fructifor.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 <stanislas.rolland(arobas)fructifor.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 var $mode;
56 var $button = 'image';
57
58 /**
59 * Main function, detecting the current mode of the element browser and branching out to internal methods.
60 *
61 * @return void
62 */
63 function main() {
64 global $BE_USER, $SOBE;
65
66
67 $this->mode = t3lib_div::_GP('mode');
68 if (!$this->mode) {
69 $this->mode = 'rte';
70 }
71
72 $this->content = '';
73
74 // Setting alternative browsing mounts (ONLY local to browse_links.php this script so they stay "read-only")
75 $altMountPoints = trim($GLOBALS['BE_USER']->getTSConfigVal('options.folderTree.altElementBrowserMountPoints'));
76 if ($altMountPoints) {
77 $altMountPoints = t3lib_div::trimExplode(',', $altMountPoints);
78 foreach($altMountPoints as $filePathRelativeToFileadmindir) {
79 $GLOBALS['BE_USER']->addFileMount('', $filePathRelativeToFileadmindir, $filePathRelativeToFileadmindir, 1, 0);
80 }
81 $GLOBALS['FILEMOUNTS'] = $GLOBALS['BE_USER']->returnFilemounts();
82 $browser_readOnly = true;
83 }
84
85 // render type by user func
86 $browserRendered = false;
87 if (is_array ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'])) {
88 foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'] as $classRef) {
89 $browserRenderObj = t3lib_div::getUserObj($classRef);
90 if(is_object($browserRenderObj) && method_exists($browserRenderObj, 'isValid') && method_exists($browserRenderObj, 'render')) {
91 if ($browserRenderObj->isValid($this->mode, $this)) {
92 $this->content .= $browserRenderObj->render($this->mode, $this);
93 $browserRendered = true;
94 break;
95 }
96 }
97 }
98 }
99
100 // if type was not rendered use default rendering functions
101 if(!$browserRendered) {
102
103 $SOBE->browser = t3lib_div::makeInstance('tx_rtehtmlarea_select_image');
104 $SOBE->browser->init();
105 if ($browser_readOnly) {
106 $SOBE->browser->readOnly = true;
107 }
108 $modData = $BE_USER->getModuleData('select_image.php','ses');
109 list($modData, $store) = $SOBE->browser->processSessionData($modData);
110 $BE_USER->pushModuleData('select_image.php',$modData);
111
112 $this->content = $SOBE->browser->main_rte();
113 }
114 }
115
116 /**
117 * Print module content
118 *
119 * @return void
120 */
121 function printContent() {
122 echo $this->content;
123 }
124
125 }
126
127 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod4/select_image.php']) {
128 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod4/select_image.php']);
129 }
130
131 // Make instance:
132 $SOBE = t3lib_div::makeInstance('tx_rtehtmlarea_SC_select_image');
133 $SOBE->main();
134 $SOBE->printContent();
135
136 ?>