00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00056 error_reporting (E_ALL ^ E_NOTICE);
00057 unset($MCONF);
00058 require ('conf.php');
00059 require ($BACK_PATH.'init.php');
00060 require ($BACK_PATH.'template.php');
00061 $LANG->includeLLFile('EXT:rtehtmlarea/mod5/locallang.xml');
00062
00070 class tx_rtehtmlarea_user {
00071 var $content;
00072 var $modData;
00073 var $siteUrl;
00074 var $doc;
00075
00079 function init() {
00080 global $BE_USER, $LANG, $BACK_PATH;
00081
00082 $this->siteUrl = t3lib_div::getIndpEnv("TYPO3_SITE_URL");
00083 $this->doc = t3lib_div::makeInstance("template");
00084 $this->doc->backPath = $BACK_PATH;
00085 $this->doc->form = '<form action="" name="process" method="POST">
00086 <input type="hidden" name="processContent" value="">
00087 <input type="hidden" name="returnUrl" value="'.htmlspecialchars(t3lib_div::getIndpEnv("REQUEST_URI")).'">
00088 ';
00089 $this->doc->JScode='
00090 <script language="javascript" type="text/javascript">
00091
00092 var editor = parent.editor;
00093 var HTMLArea = parent.HTMLArea;
00094 function insertHTML(content,noHide) {
00095 editor.insertHTML(content);
00096 if(!noHide) HTMLArea.edHidePopup();
00097 }
00098 function wrapHTML(wrap1,wrap2,noHide) {
00099 if(editor.hasSelectedText()) {
00100 editor.surroundHTML(wrap1,wrap2);
00101 } else {
00102 alert('.$LANG->JScharCode($LANG->getLL("noTextSelection")).');
00103 }
00104 if(!noHide) HTMLArea.edHidePopup();
00105 }
00106 function processSelection(script) {
00107 document.process.action = script;
00108 document.process.processContent.value = editor.getSelectedHTML();
00109 document.process.submit();
00110 }
00111
00112 </script>
00113 ';
00114
00115 $this->modData = $BE_USER->getModuleData("user.php","ses");
00116 if (t3lib_div::_GP("OC_key")) {
00117 $parts = explode("|",t3lib_div::_GP("OC_key"));
00118 $this->modData["openKeys"][$parts[1]] = $parts[0]=="O" ? 1 : 0;
00119 $BE_USER->pushModuleData("user.php",$this->modData);
00120 }
00121 }
00122
00128 function main() {
00129
00130 $this->content="";
00131 $this->content.=$this->main_user($this->modData["openKeys"]);
00132 }
00133
00139 function printContent() {
00140 echo $this->content;
00141 }
00142
00143
00144
00145
00146
00147
00148
00149
00150
00157 function calcWH($imgInfo,$maxW=380,$maxH=500) {
00158 $IW = $imgInfo[0];
00159 $IH = $imgInfo[1];
00160 if ($IW>$maxW) {
00161 $IH=ceil($IH/$IW*$maxW);
00162 $IW=$maxW;
00163 }
00164 if ($IH>$maxH) {
00165 $IW=ceil($IW/$IH*$maxH);
00166 $IH=$maxH;
00167 }
00168
00169 $imgInfo[3]='width="'.$IW.'" height="'.$IH.'"';
00170 return $imgInfo;
00171 }
00172
00179 function main_user($openKeys) {
00180 global $LANG, $BACK_PATH, $BE_USER;
00181
00182 $content.=$this->doc->startPage("RTE user");
00183
00184 $RTEtsConfigParts = explode(":",t3lib_div::_GP("RTEtsConfigParams"));
00185 $RTEsetup = $BE_USER->getTSConfig("RTE",t3lib_BEfunc::getPagesTSconfig($RTEtsConfigParts[5]));
00186 $thisConfig = t3lib_BEfunc::RTEsetup($RTEsetup["properties"],$RTEtsConfigParts[0],$RTEtsConfigParts[2],$RTEtsConfigParts[4]);
00187
00188 if (is_array($thisConfig["userElements."])) {
00189
00190 $categories=array();
00191 reset($thisConfig["userElements."]);
00192 while(list($k)=each($thisConfig["userElements."])) {
00193 $ki=intval($k);
00194 $v = $thisConfig["userElements."][$ki."."];
00195 if (substr($k,-1)=="." && is_array($v)) {
00196 $subcats=array();
00197 $openK = $ki;
00198 if ($openKeys[$openK]) {
00199
00200 $mArray = "";
00201 switch ((string)$v["load"]) {
00202 case "images_from_folder":
00203 $mArray=array();
00204 if ($v["path"] && @is_dir(PATH_site.$v["path"])) {
00205 $files = t3lib_div::getFilesInDir(PATH_site.$v["path"],"gif,jpg,jpeg,png",0,"");
00206 if (is_array($files)) {
00207 reset($files);
00208 $c=0;
00209 while(list(,$filename)=each($files)) {
00210 $iInfo = @getimagesize(PATH_site.$v["path"].$filename);
00211 $iInfo = $this->calcWH($iInfo,50,100);
00212
00213 $ks=(string)(100+$c);
00214 $mArray[$ks]=$filename;
00215 $mArray[$ks."."]=array(
00216 "content" => '<img src="'.$this->siteUrl.$v["path"].$filename.'">',
00217 "_icon" => '<img src="'.$this->siteUrl.$v["path"].$filename.'" '.$iInfo[3].' border=0>',
00218 "description" => $LANG->getLL("filesize").': '.str_replace(" "," ",t3lib_div::formatSize(@filesize(PATH_site.$v["path"].$filename))).', '.$LANG->getLL("pixels").': '.$iInfo[0].'x'.$iInfo[1]
00219 );
00220 $c++;
00221 }
00222 }
00223 }
00224 break;
00225 }
00226 if (is_array($mArray)) {
00227 if ($v["merge"]) {
00228 $v=t3lib_div::array_merge_recursive_overrule($mArray,$v);
00229 } else {
00230 $v=$mArray;
00231 }
00232 }
00233 reset($v);
00234 while(list($k2)=each($v)) {
00235 $k2i = intval($k2);
00236 if (substr($k2,-1)=="." && is_array($v[$k2i."."])) {
00237 $title = trim($v[$k2i]);
00238 if (!$title) {
00239 $title="[".$LANG->getLL("noTitle")."]";
00240 } else {
00241 $title=$LANG->sL($title,1);
00242 }
00243 $description=$LANG->sL($v[$k2i."."]["description"],1)."<BR>";
00244 if (!$v[$k2i."."]["dontInsertSiteUrl"]) $v[$k2i."."]["content"] = str_replace("###_URL###",$this->siteUrl,$v[$k2i."."]["content"]);
00245
00246 $logo = $v[$k2i."."]["_icon"] ? $v[$k2i."."]["_icon"] : '';
00247
00248 $onClickEvent='';
00249 switch((string)$v[$k2i."."]["mode"]) {
00250 case "wrap":
00251 $wrap = explode("|",$v[$k2i."."]["content"]);
00252
00253
00254 $onClickEvent='wrapHTML(' . $LANG->JScharCode($wrap[0]) . ',' . $LANG->JScharCode($wrap[1]) . ',false);';
00255 break;
00256 case "processor":
00257 $script = trim($v[$k2i."."]["submitToScript"]);
00258 if (substr($script,0,4)!="http") $script = $this->siteUrl.$script;
00259 if ($script) {
00260 $onClickEvent="processSelection(unescape('".rawurlencode($script)."'));";
00261 }
00262 break;
00263 case "insert":
00264 default:
00265
00266 $onClickEvent='insertHTML(' . $LANG->JScharCode($v[$k2i . '.']['content']) . ');';
00267 break;
00268 }
00269 $A=array('<a href="#" onClick="'.$onClickEvent.'return false;">','</a>');
00270 $subcats[$k2i]='<tr>
00271 <td><img src="clear.gif" width="18" height="1"></td>
00272 <td class="bgColor4" valign=top>'.$A[0].$logo.$A[1].'</td>
00273 <td class="bgColor4" valign=top>'.$A[0].'<strong>'.$title.'</strong><BR>'.$description.$A[1].'</td>
00274 </tr>';
00275 }
00276 }
00277 ksort($subcats);
00278 }
00279 $categories[$ki]=implode("",$subcats);
00280 }
00281 }
00282 ksort($categories);
00283
00284 # Render menu of the items:
00285 $lines=array();
00286 reset($categories);
00287 while(list($k,$v)=each($categories)) {
00288 $title = trim($thisConfig["userElements."][$k]);
00289 $openK = $k;
00290 if (!$title) {
00291 $title="[".$LANG->getLL("noTitle")."]";
00292 } else {
00293 $title=$LANG->sL($title,1);
00294 }
00295 $lines[]='<tr><td colspan=3 class="bgColor5"><a href="'.t3lib_div::linkThisScript(array("OC_key"=>($openKeys[$openK]?"C|":"O|").$openK)).'" title="'.$LANG->getLL("expand",1).'"><img src="'.$BACK_PATH.'gfx/ol/'.($openKeys[$openK]?"minus":"plus").'bullet.gif" width="18" height="16" border="0" align=top title="'.$LANG->getLL("expand",1).'"><strong>'.$title.'</strong></a></td></tr>';
00296 $lines[]=$v;
00297 }
00298
00299 $content.='<table border=0 cellpadding=1 cellspacing=1>'.implode("",$lines).'</table>';
00300 }
00301
00302 $content.= $this->doc->endPage();
00303 return $content;
00304 }
00305 }
00306
00307 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod5/user.php']) {
00308 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod5/user.php']);
00309 }
00310
00311
00312
00313
00314 $SOBE = t3lib_div::makeInstance('tx_rtehtmlarea_user');
00315 $SOBE->init();
00316 $SOBE->main();
00317 $SOBE->printContent();
00318 ?>