Documentation TYPO3 par Ameos |
00001 <?php 00002 /*************************************************************** 00003 * Copyright notice 00004 * 00005 * (c) 1999-2004 Kasper Skaarhoj (kasperYYYY@typo3.com) 00006 * (c) 2005-2006 Stanislas Rolland <stanislas.rolland(arobas)fructifor.ca> 00007 * All rights reserved 00008 * 00009 * This script is part of the TYPO3 project. The TYPO3 project is 00010 * free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * The GNU General Public License can be found at 00016 * http://www.gnu.org/copyleft/gpl.html. 00017 * A copy is found in the textfile GPL.txt and important notices to the license 00018 * from the author is found in LICENSE.txt distributed with these scripts. 00019 * 00020 * 00021 * This script is distributed in the hope that it will be useful, 00022 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00024 * GNU General Public License for more details. 00025 * 00026 * This copyright notice MUST APPEAR in all copies of the script! 00027 ***************************************************************/ 00041 require_once (PATH_typo3.'class.browse_links.php'); 00042 require_once (PATH_t3lib.'class.t3lib_basicfilefunc.php'); 00043 00044 00052 class tx_rtehtmlarea_pageTree extends rtePageTree { 00053 00060 function printTree($treeArr='') { 00061 global $BACK_PATH; 00062 $titleLen=intval($GLOBALS['BE_USER']->uc['titleLen']); 00063 if (!is_array($treeArr)) $treeArr=$this->tree; 00064 00065 $out=''; 00066 $c=0; 00067 00068 foreach($treeArr as $k => $v) { 00069 $c++; 00070 $bgColorClass = ($c+1)%2 ? 'bgColor' : 'bgColor-10'; 00071 if ($GLOBALS['SOBE']->browser->curUrlInfo['act']=='page' && $GLOBALS['SOBE']->browser->curUrlInfo['pageid']==$v['row']['uid'] && $GLOBALS['SOBE']->browser->curUrlInfo['pageid']) { 00072 $arrCol='<td><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/blinkarrow_right.gif','width="5" height="9"').' class="c-blinkArrowR" alt="" /></td>'; 00073 $bgColorClass='bgColor4'; 00074 } else { 00075 $arrCol='<td></td>'; 00076 } 00077 00078 $aOnClick = 'return jumpToUrl(\''.$this->thisScript.'?act='.$GLOBALS['SOBE']->browser->act.'&editorNo='.$GLOBALS['SOBE']->browser->editorNo.'&contentTypo3Language='.$GLOBALS['SOBE']->browser->contentTypo3Language.'&contentTypo3Charset='.$GLOBALS['SOBE']->browser->contentTypo3Charset.'&mode='.$GLOBALS['SOBE']->browser->mode.'&expandPage='.$v['row']['uid'].'\');'; 00079 $cEbullet = $this->ext_isLinkable($v['row']['doktype'],$v['row']['uid']) ? 00080 '<a href="#" onclick="'.htmlspecialchars($aOnClick).'"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/ol/arrowbullet.gif','width="18" height="16"').' alt="" /></a>' : 00081 ''; 00082 $out.=' 00083 <tr class="'.$bgColorClass.'"> 00084 <td nowrap="nowrap"'.($v['row']['_CSSCLASS'] ? ' class="'.$v['row']['_CSSCLASS'].'"' : '').'>'. 00085 $v['HTML']. 00086 $this->wrapTitle($this->getTitleStr($v['row'],$titleLen),$v['row'],$this->ext_pArrPages). 00087 '</td>'. 00088 $arrCol. 00089 '<td>'.$cEbullet.'</td> 00090 </tr>'; 00091 } 00092 $out=' 00093 00094 00095 <!-- 00096 Navigation Page Tree: 00097 --> 00098 <table border="0" cellpadding="0" cellspacing="0" id="typo3-tree"> 00099 '.$out.' 00100 </table>'; 00101 return $out; 00102 } 00103 } 00104 00113 class tx_rtehtmlarea_folderTree extends rteFolderTree { 00114 00122 function wrapTitle($title,$v) { 00123 if ($this->ext_isLinkable($v)) { 00124 $aOnClick = 'return jumpToUrl(\''.$this->thisScript.'?act='.$GLOBALS['SOBE']->browser->act.'&editorNo='.$GLOBALS['SOBE']->browser->editorNo.'&contentTypo3Language='.$GLOBALS['SOBE']->browser->contentTypo3Language.'&contentTypo3Charset='.$GLOBALS['SOBE']->browser->contentTypo3Charset.'&mode='.$GLOBALS['SOBE']->browser->mode.'&expandFolder='.rawurlencode($v['path']).'\');'; 00125 return '<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.$title.'</a>'; 00126 } else { 00127 return '<span class="typo3-dimmed">'.$title.'</span>'; 00128 } 00129 } 00130 00137 function printTree($treeArr='') { 00138 global $BACK_PATH; 00139 $titleLen=intval($GLOBALS['BE_USER']->uc['titleLen']); 00140 00141 if (!is_array($treeArr)) $treeArr=$this->tree; 00142 00143 $out=''; 00144 $c=0; 00145 00146 // Preparing the current-path string (if found in the listing we will see a red blinking arrow). 00147 if (!$GLOBALS['SOBE']->browser->curUrlInfo['value']) { 00148 $cmpPath=''; 00149 } else if (substr(trim($GLOBALS['SOBE']->browser->curUrlInfo['info']),-1)!='/') { 00150 $cmpPath=PATH_site.dirname($GLOBALS['SOBE']->browser->curUrlInfo['info']).'/'; 00151 } else { 00152 $cmpPath=PATH_site.$GLOBALS['SOBE']->browser->curUrlInfo['info']; 00153 } 00154 00155 // Traverse rows for the tree and print them into table rows: 00156 foreach($treeArr as $k => $v) { 00157 $c++; 00158 $bgColorClass=($c+1)%2 ? 'bgColor' : 'bgColor-10'; 00159 00160 // Creating blinking arrow, if applicable: 00161 if ($GLOBALS['SOBE']->browser->curUrlInfo['act']=='file' && $cmpPath==$v['row']['path']) { 00162 $arrCol='<td><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/blinkarrow_right.gif','width="5" height="9"').' class="c-blinkArrowR" alt="" /></td>'; 00163 $bgColorClass='bgColor4'; 00164 } else { 00165 $arrCol='<td></td>'; 00166 } 00167 // Create arrow-bullet for file listing (if folder path is linkable): 00168 $aOnClick = 'return jumpToUrl(\''.$this->thisScript.'?act='.$GLOBALS['SOBE']->browser->act.'&editorNo='.$GLOBALS['SOBE']->browser->editorNo.'&contentTypo3Language='.$GLOBALS['SOBE']->browser->contentTypo3Language.'&contentTypo3Charset='.$GLOBALS['SOBE']->browser->contentTypo3Charset.'&mode='.$GLOBALS['SOBE']->browser->mode.'&expandFolder='.rawurlencode($v['row']['path']).'\');'; 00169 $cEbullet = $this->ext_isLinkable($v['row']) ? '<a href="#" onclick="'.htmlspecialchars($aOnClick).'"><img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/ol/arrowbullet.gif','width="18" height="16"').' alt="" /></a>' : ''; 00170 00171 // Put table row with folder together: 00172 $out.=' 00173 <tr class="'.$bgColorClass.'"> 00174 <td nowrap="nowrap">'.$v['HTML'].$this->wrapTitle(t3lib_div::fixed_lgd_cs($v['row']['title'],$titleLen),$v['row']).'</td> 00175 '.$arrCol.' 00176 <td>'.$cEbullet.'</td> 00177 </tr>'; 00178 } 00179 00180 $out=' 00181 00182 <!-- 00183 Folder tree: 00184 --> 00185 <table border="0" cellpadding="0" cellspacing="0" id="typo3-tree"> 00186 '.$out.' 00187 </table>'; 00188 return $out; 00189 } 00190 00191 } 00192 00200 class tx_rtehtmlarea_browse_links extends browse_links { 00201 00202 // Internal, static: 00203 var $setTarget; // Target (RTE specific) 00204 var $setClass; // Class (RTE specific) 00205 var $setTitle; // Title (RTE specific) 00206 00207 var $contentTypo3Language; 00208 var $contentTypo3Charset; 00209 00210 var $editorNo; 00211 var $buttonConfig = array(); 00212 00219 function init() { 00220 global $BE_USER,$BACK_PATH,$LANG; 00221 00222 // Main GPvars: 00223 $this->pointer = t3lib_div::_GP('pointer'); 00224 $this->bparams = t3lib_div::_GP('bparams'); 00225 $this->P = t3lib_div::_GP('P'); 00226 $this->RTEtsConfigParams = t3lib_div::_GP('RTEtsConfigParams'); 00227 $this->expandPage = t3lib_div::_GP('expandPage'); 00228 $this->expandFolder = t3lib_div::_GP('expandFolder'); 00229 $this->PM = t3lib_div::_GP('PM'); 00230 $this->contentTypo3Language = t3lib_div::_GP('typo3ContentLanguage'); 00231 $this->contentTypo3Charset = t3lib_div::_GP('typo3ContentCharset'); 00232 $this->editorNo = t3lib_div::_GP('editorNo'); 00233 00234 // Find "mode" 00235 $this->mode=t3lib_div::_GP('mode'); 00236 if (!$this->mode) { 00237 $this->mode='rte'; 00238 } 00239 00240 // Site URL 00241 $this->siteURL = t3lib_div::getIndpEnv('TYPO3_SITE_URL'); // Current site url 00242 00243 // the script to link to 00244 $this->thisScript = t3lib_div::getIndpEnv('SCRIPT_NAME'); 00245 00246 // CurrentUrl - the current link url must be passed around if it exists 00247 if ($this->mode=='wizard') { 00248 $currentLinkParts = t3lib_div::trimExplode(' ',$this->P['currentValue']); 00249 $this->curUrlArray = array( 00250 'target' => $currentLinkParts[1] 00251 ); 00252 $this->curUrlInfo=$this->parseCurUrl($this->siteURL.'?id='.$currentLinkParts[0],$this->siteURL); 00253 } else { 00254 $this->curUrlArray = t3lib_div::_GP('curUrl'); 00255 if ($this->curUrlArray['all']) { 00256 $this->curUrlArray=t3lib_div::get_tag_attributes($this->curUrlArray['all']); 00257 } 00258 $this->curUrlInfo=$this->parseCurUrl($this->curUrlArray['href'],$this->siteURL); 00259 } 00260 00261 // Determine nature of current url: 00262 $this->act=t3lib_div::_GP('act'); 00263 if (!$this->act) { 00264 $this->act=$this->curUrlInfo['act']; 00265 } 00266 00267 // Initializing the titlevalue 00268 $this->setTitle = $LANG->csConvObj->conv($this->curUrlArray['title'], 'utf-8', $LANG->charSet); 00269 00270 // Rich Text Editor specific configuration: 00271 $addPassOnParams=''; 00272 if ((string)$this->mode=='rte') { 00273 $RTEtsConfigParts = explode(':',$this->RTEtsConfigParams); 00274 $addPassOnParams .= '&RTEtsConfigParams='.rawurlencode($this->RTEtsConfigParams); 00275 $addPassOnParams .= ($this->contentTypo3Language ? '&typo3ContentLanguage=' . rawurlencode($this->contentTypo3Language) : ''); 00276 $addPassOnParams .= ($this->contentTypo3Charset ? '&typo3ContentCharset=' . rawurlencode($this->contentTypo3Charset) : ''); 00277 $RTEsetup = $BE_USER->getTSConfig('RTE',t3lib_BEfunc::getPagesTSconfig($RTEtsConfigParts[5])); 00278 $this->thisConfig = t3lib_BEfunc::RTEsetup($RTEsetup['properties'],$RTEtsConfigParts[0],$RTEtsConfigParts[2],$RTEtsConfigParts[4]); 00279 if (is_array($this->thisConfig['buttons.']) && is_array($this->thisConfig['buttons.']['link.'])) { 00280 $this->buttonConfig = $this->thisConfig['buttons.']['link.']; 00281 } 00282 if($this->thisConfig['classesAnchor']) { 00283 $this->setClass = $this->curUrlArray['class']; 00284 $classesAnchorArray = t3lib_div::trimExplode(',',$this->thisConfig['classesAnchor'],1); 00285 $anchorTypes = array( 'page', 'url', 'file', 'mail', 'spec'); 00286 $classesAnchor = array(); 00287 $classesAnchorDefault = array(); 00288 $this->classesAnchorDefaultTitle = array(); 00289 $classesAnchor['all'] = array(); 00290 if (is_array($RTEsetup['properties']['classesAnchor.'])) { 00291 reset($RTEsetup['properties']['classesAnchor.']); 00292 while(list($label,$conf)=each($RTEsetup['properties']['classesAnchor.'])) { 00293 $classesAnchor['all'][] = $conf['class']; 00294 if (in_array($conf['type'], $anchorTypes)) { 00295 $classesAnchor[$conf['type']][] = $conf['class']; 00296 if (is_array($this->thisConfig['classesAnchor.']) && is_array($this->thisConfig['classesAnchor.']['default.']) && $this->thisConfig['classesAnchor.']['default.'][$conf['type']] == $conf['class']) { 00297 $classesAnchorDefault[$conf['type']] = $conf['class']; 00298 if ($conf['titleText']) { 00299 $string = trim($conf['titleText']); 00300 if (substr($string,0,4)=='LLL:') { // language file 00301 $arr = explode(':',$string); 00302 if($arr[0] == 'LLL' && $arr[1] == 'EXT') { 00303 $BE_lang = $LANG->lang; 00304 $BE_origCharset = $LANG->origCharSet; 00305 $LANG->lang = $this->contentTypo3Language; 00306 $LANG->origCharSet = $LANG->csConvObj->charSetArray[$this->contentTypo3Language]; 00307 $LANG->origCharSet = $LANG->origCharSet ? $LANG->origCharSet : 'iso-8859-1'; 00308 $string = $LANG->getLLL($arr[3], $LANG->readLLfile($arr[1].':'.$arr[2]), true); 00309 $LANG->lang = $BE_lang; 00310 $LANG->origCharSet = $BE_origCharset; 00311 } 00312 } 00313 $this->classesAnchorDefaultTitle[$conf['type']] = $string; 00314 } 00315 } 00316 } 00317 } 00318 } 00319 $this->classesAnchorJSOptions = array(); 00320 reset($anchorTypes); 00321 while (list(, $anchorType) = each($anchorTypes) ) { 00322 reset($classesAnchorArray); 00323 while(list(,$class)=each($classesAnchorArray)) { 00324 if (!in_array($class, $classesAnchor['all']) || (in_array($class, $classesAnchor['all']) && is_array($classesAnchor[$anchorType]) && in_array($class, $classesAnchor[$anchorType]))) { 00325 $selected = ''; 00326 if ($this->setClass == $class) $selected = 'selected="selected"'; 00327 if (!$this->setClass && $classesAnchorDefault[$anchorType] == $class) { 00328 $selected = 'selected="selected"'; 00329 } 00330 $this->classesAnchorJSOptions[$anchorType] .= '<option ' . $selected . ' value="' .$class . '">' . $class . '</option>'; 00331 } 00332 } 00333 if ($this->classesAnchorJSOptions[$anchorType]) { 00334 $selected = ''; 00335 if (!$this->setClass && !$classesAnchorDefault[$anchorType]) $selected = 'selected="selected"'; 00336 $this->classesAnchorJSOptions[$anchorType] = '<option ' . $selected . ' value=""></option>' . $this->classesAnchorJSOptions[$anchorType]; 00337 } 00338 } 00339 } 00340 } 00341 00342 // Initializing the target value (RTE) 00343 $this->setTarget = $this->curUrlArray['target']; 00344 if ($this->thisConfig['defaultLinkTarget'] && !isset($this->curUrlArray['target'])) { 00345 $this->setTarget=$this->thisConfig['defaultLinkTarget']; 00346 } 00347 00348 // Creating backend template object: 00349 $this->doc = t3lib_div::makeInstance('template'); 00350 $this->doc->docType= 'xhtml_trans'; 00351 $this->doc->backPath = $BACK_PATH; 00352 00353 // BEGIN accumulation of header JavaScript: 00354 $JScode = ''; 00355 $JScode.= ' 00356 if (window.opener) { 00357 var editor = window.opener.RTEarea[' . $this->editorNo . ']["editor"]; 00358 var HTMLArea = window.opener.HTMLArea; 00359 } 00360 // This JavaScript is primarily for RTE/Link. jumpToUrl is used in the other cases as well... 00361 var add_href="'.($this->curUrlArray['href']?'&curUrl[href]='.rawurlencode($this->curUrlArray['href']):'').'"; 00362 var add_target="'.($this->setTarget?'&curUrl[target]='.rawurlencode($this->setTarget):'').'"; 00363 var add_class="'.($this->setClass?'&curUrl[class]='.rawurlencode($this->setClass):'').'"; 00364 var add_title="'.($this->setTitle?'&curUrl[title]='.rawurlencode($this->setTitle):'').'"; 00365 var add_params="'.($this->bparams?'&bparams='.rawurlencode($this->bparams):'').'"; 00366 00367 var cur_href="'.($this->curUrlArray['href']?$this->curUrlArray['href']:'').'"; 00368 var cur_target="'.($this->setTarget?$this->setTarget:'').'"; 00369 var cur_class="'.($this->setClass?$this->setClass:'').'"; 00370 var cur_title="'.($this->setTitle?$this->setTitle:'').'"; 00371 00372 function setTarget(value) { 00373 cur_target=value; 00374 add_target="&curUrl[target]="+encodeURIComponent(value); 00375 } 00376 function setClass(value) { 00377 cur_class=value; 00378 add_class="&curUrl[class]="+encodeURIComponent(value); 00379 } 00380 function setTitle(value) { 00381 cur_title=value; 00382 add_title="&curUrl[title]="+encodeURIComponent(value); 00383 } 00384 function setValue(value) { 00385 cur_href=value; 00386 add_href="&curUrl[href]="+value; 00387 } 00388 '; 00389 00390 if ($this->mode=='wizard') { // Functions used, if the link selector is in wizard mode (= TCEforms fields) 00391 unset($this->P['fieldChangeFunc']['alert']); 00392 reset($this->P['fieldChangeFunc']); 00393 $update=''; 00394 while(list($k,$v)=each($this->P['fieldChangeFunc'])) { 00395 00396 $update.= ' 00397 window.opener.'.$v; 00398 } 00399 00400 $P2=array(); 00401 $P2['itemName']=$this->P['itemName']; 00402 $P2['formName']=$this->P['formName']; 00403 $P2['fieldChangeFunc']=$this->P['fieldChangeFunc']; 00404 $addPassOnParams.=t3lib_div::implodeArrayForUrl('P',$P2); 00405 00406 $JScode.=' 00407 function link_typo3Page(id,anchor) { // 00408 updateValueInMainForm(id+(anchor?anchor:"")+" "+cur_target); 00409 close(); 00410 return false; 00411 } 00412 function link_folder(folder) { // 00413 updateValueInMainForm(folder+" "+cur_target); 00414 close(); 00415 return false; 00416 } 00417 function link_current() { // 00418 if (cur_href!="http://" && cur_href!="mailto:") { 00419 var setValue = cur_href+" "+cur_target+" "+cur_class+" "+cur_title; 00420 if (setValue.substr(0,7)=="http://") setValue = setValue.substr(7); 00421 if (setValue.substr(0,7)=="mailto:") setValue = setValue.substr(7); 00422 updateValueInMainForm(setValue); 00423 close(); 00424 } 00425 return false; 00426 } 00427 function checkReference() { // 00428 if (window.opener && window.opener.document && window.opener.document.'.$this->P['formName'].' && window.opener.document.'.$this->P['formName'].'["'.$this->P['itemName'].'"] ) { 00429 return window.opener.document.'.$this->P['formName'].'["'.$this->P['itemName'].'"]; 00430 } else { 00431 close(); 00432 } 00433 } 00434 function updateValueInMainForm(input) { // 00435 var field = checkReference(); 00436 if (field) { 00437 field.value = input; 00438 '.$update.' 00439 } 00440 } 00441 '; 00442 } else { // Functions used, if the link selector is in RTE mode: 00443 $JScode.=' 00444 function link_typo3Page(id,anchor) { 00445 var theLink = \''.$this->siteURL.'?id=\'+id+(anchor?anchor:""); 00446 if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value); 00447 if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value); 00448 editor.renderPopup_addLink(theLink,cur_target,cur_class,cur_title); 00449 return false; 00450 } 00451 function link_folder(folder) { // 00452 var theLink = \''.$this->siteURL.'\'+folder; 00453 if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value); 00454 if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value); 00455 editor.renderPopup_addLink(theLink,cur_target,cur_class,cur_title); 00456 return false; 00457 } 00458 function link_spec(theLink) { // 00459 if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value); 00460 if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value); 00461 editor.renderPopup_addLink(theLink,cur_target,cur_class,cur_title); 00462 return false; 00463 } 00464 function link_current() { // 00465 if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value); 00466 if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value); 00467 if (cur_href!="http://" && cur_href!="mailto:") { 00468 editor.renderPopup_addLink(cur_href,cur_target,cur_class,cur_title); 00469 } 00470 return false; 00471 } 00472 '; 00473 } 00474 00475 // General "jumpToUrl" function: 00476 $JScode.=' 00477 function jumpToUrl(URL,anchor) { // 00478 var add_editorNo = URL.indexOf("editorNo=")==-1 ? "&editorNo='.$this->editorNo.'" : ""; 00479 var add_contentTypo3Language = URL.indexOf("contentTypo3Language=")==-1 ? "&contentTypo3Language='.$this->contentTypo3Language.'" : ""; 00480 var add_contentTypo3Charset = URL.indexOf("contentTypo3Charset=")==-1 ? "&contentTypo3Charset='.$this->contentTypo3Charset.'" : ""; 00481 var add_act = URL.indexOf("act=")==-1 ? "&act='.$this->act.'" : ""; 00482 var add_mode = URL.indexOf("mode=")==-1 ? "&mode='.$this->mode.'" : ""; 00483 var theLocation = URL+add_act+add_editorNo+add_contentTypo3Language+add_contentTypo3Charset+add_mode+add_href+add_target+add_class+add_title+add_params'.($addPassOnParams?'+"'.$addPassOnParams.'"':'').'+(anchor?anchor:""); 00484 window.location.href = theLocation; 00485 return false; 00486 } 00487 '; 00488 00489 // This is JavaScript especially for the TBE Element Browser! 00490 $pArr = explode('|',$this->bparams); 00491 $formFieldName = 'data['.$pArr[0].']['.$pArr[1].']['.$pArr[2].']'; 00492 $JScode.=' 00493 var elRef=""; 00494 var targetDoc=""; 00495 00496 function launchView(url) { // 00497 var thePreviewWindow=""; 00498 thePreviewWindow = window.open("' . $BACK_PATH . 'show_item.php?table="+url,"ShowItem","height=300,width=410,status=0,menubar=0,resizable=0,location=0,directories=0,scrollbars=1,toolbar=0"); 00499 if (thePreviewWindow && thePreviewWindow.focus) { 00500 thePreviewWindow.focus(); 00501 } 00502 } 00503 function setReferences() { // 00504 if (parent.window.opener 00505 && parent.window.opener.content 00506 && parent.window.opener.content.document.editform 00507 && parent.window.opener.content.document.editform["'.$formFieldName.'"] 00508 ) { 00509 targetDoc = parent.window.opener.content.document; 00510 elRef = targetDoc.editform["'.$formFieldName.'"]; 00511 return true; 00512 } else { 00513 return false; 00514 } 00515 } 00516 function insertElement(table, uid, type, filename,fp,filetype,imagefile,action, close) { // 00517 if (1=='.($pArr[0]&&!$pArr[1]&&!$pArr[2] ? 1 : 0).') { 00518 addElement(filename,table+"_"+uid,fp,close); 00519 } else { 00520 if (setReferences()) { 00521 parent.window.opener.group_change("add","'.$pArr[0].'","'.$pArr[1].'","'.$pArr[2].'",elRef,targetDoc); 00522 } else { 00523 alert("Error - reference to main window is not set properly!"); 00524 } 00525 if (close) { 00526 parent.window.opener.focus(); 00527 parent.close(); 00528 } 00529 } 00530 return false; 00531 } 00532 function addElement(elName,elValue,altElValue,close) { // 00533 if (parent.window.opener && parent.window.opener.setFormValueFromBrowseWin) { 00534 parent.window.opener.setFormValueFromBrowseWin("'.$pArr[0].'",altElValue?altElValue:elValue,elName); 00535 if (close) { 00536 parent.window.opener.focus(); 00537 parent.close(); 00538 } 00539 } else { 00540 alert("Error - reference to main window is not set properly!"); 00541 parent.close(); 00542 } 00543 } 00544 '; 00545 00546 // Finally, add the accumulated JavaScript to the template object: 00547 $this->doc->JScode = $this->doc->wrapScriptTags($JScode); 00548 00549 // Debugging: 00550 if (FALSE) debug(array( 00551 'pointer' => $this->pointer, 00552 'act' => $this->act, 00553 'mode' => $this->mode, 00554 'curUrlInfo' => $this->curUrlInfo, 00555 'curUrlArray' => $this->curUrlArray, 00556 'P' => $this->P, 00557 'bparams' => $this->bparams, 00558 'RTEtsConfigParams' => $this->RTEtsConfigParams, 00559 'expandPage' => $this->expandPage, 00560 'expandFolder' => $this->expandFolder, 00561 'PM' => $this->PM, 00562 ),'Internal variables of Script Class:'); 00563 } 00564 00565 /****************************************************************** 00566 * 00567 * Main functions 00568 * 00569 ******************************************************************/ 00578 function main_rte($wiz=0) { 00579 global $LANG, $BE_USER, $BACK_PATH; 00580 00581 // Starting content: 00582 $content=$this->doc->startPage($LANG->getLL('Insert/Modify Link',1)); 00583 00584 // Initializing the action value, possibly removing blinded values etc: 00585 $allowedItems = explode(',','page,file,url,mail,spec'); 00586 if (is_array($this->buttonConfig['options.']) && $this->buttonConfig['options.']['removeItems']) { 00587 $allowedItems = array_diff($allowedItems,t3lib_div::trimExplode(',',$this->buttonConfig['options.']['removeItems'],1)); 00588 } else { 00589 $allowedItems = array_diff($allowedItems,t3lib_div::trimExplode(',',$this->thisConfig['blindLinkOptions'],1)); 00590 } 00591 reset($allowedItems); 00592 if (!in_array($this->act,$allowedItems)) { 00593 $this->act = current($allowedItems); 00594 } 00595 00596 // Making menu in top: 00597 $menuDef = array(); 00598 if (!$wiz) { 00599 $menuDef['removeLink']['isActive'] = $this->act=='removeLink'; 00600 $menuDef['removeLink']['label'] = $LANG->getLL('removeLink',1); 00601 $menuDef['removeLink']['url'] = '#'; 00602 $menuDef['removeLink']['addParams'] = 'onclick="editor.renderPopup_unLink();return false;"'; 00603 } 00604 if (in_array('page',$allowedItems)) { 00605 $menuDef['page']['isActive'] = $this->act=='page'; 00606 $menuDef['page']['label'] = $LANG->getLL('page',1); 00607 $menuDef['page']['url'] = '#'; 00608 $menuDef['page']['addParams'] = 'onclick="jumpToUrl(\'?act=page&editorNo='.$this->editorNo.'&contentTypo3Language='.$this->contentTypo3Language.'&contentTypo3Charset='.$this->contentTypo3Charset.'\');return false;"'; 00609 } 00610 if (in_array('file',$allowedItems)){ 00611 $menuDef['file']['isActive'] = $this->act=='file'; 00612 $menuDef['file']['label'] = $LANG->getLL('file',1); 00613 $menuDef['file']['url'] = '#'; 00614 $menuDef['file']['addParams'] = 'onclick="jumpToUrl(\'?act=file&editorNo='.$this->editorNo.'&contentTypo3Language='.$this->contentTypo3Language.'&contentTypo3Charset='.$this->contentTypo3Charset.'\');return false;"'; 00615 } 00616 if (in_array('url',$allowedItems)) { 00617 $menuDef['url']['isActive'] = $this->act=='url'; 00618 $menuDef['url']['label'] = $LANG->getLL('extUrl',1); 00619 $menuDef['url']['url'] = '#'; 00620 $menuDef['url']['addParams'] = 'onclick="jumpToUrl(\'?act=url&editorNo='.$this->editorNo.'&contentTypo3Language='.$this->contentTypo3Language.'&contentTypo3Charset='.$this->contentTypo3Charset.'\');return false;"'; 00621 } 00622 if (in_array('mail',$allowedItems)) { 00623 $menuDef['mail']['isActive'] = $this->act=='mail'; 00624 $menuDef['mail']['label'] = $LANG->getLL('email',1); 00625 $menuDef['mail']['url'] = '#'; 00626 $menuDef['mail']['addParams'] = 'onclick="jumpToUrl(\'?act=mail&editorNo='.$this->editorNo.'&contentTypo3Language='.$this->contentTypo3Language.'&contentTypo3Charset='.$this->contentTypo3Charset.'\');return false;"'; 00627 } 00628 if (is_array($this->thisConfig['userLinks.']) && in_array('spec',$allowedItems)) { 00629 $menuDef['spec']['isActive'] = $this->act=='spec'; 00630 $menuDef['spec']['label'] = $LANG->getLL('special',1); 00631 $menuDef['spec']['url'] = '#'; 00632 $menuDef['spec']['addParams'] = 'onclick="jumpToUrl(\'?act=spec&editorNo='.$this->editorNo.'&contentTypo3Language='.$this->contentTypo3Language.'&contentTypo3Charset='.$this->contentTypo3Charset.'\');return false;"'; 00633 } 00634 $content .= $this->doc->getTabMenuRaw($menuDef); 00635 00636 // Adding the menu and header to the top of page: 00637 $content.=$this->printCurrentUrl($this->curUrlInfo['info']).'<br />'; 00638 00639 // Depending on the current action we will create the actual module content for selecting a link: 00640 switch($this->act) { 00641 case 'mail': 00642 $extUrl=' 00643 <!-- 00644 Enter mail address: 00645 --> 00646 <form action="" name="lurlform" id="lurlform"> 00647 <table border="0" cellpadding="2" cellspacing="1" id="typo3-linkMail"> 00648 <tr> 00649 <td>'.$LANG->getLL('emailAddress',1).':</td> 00650 <td><input type="text" name="lemail"'.$this->doc->formWidth(20).' value="'.htmlspecialchars($this->curUrlInfo['act']=='mail'?$this->curUrlInfo['info']:'').'" /> '. 00651 '<input type="submit" value="'.$LANG->getLL('setLink',1).'" onclick="setTarget(\'\');setValue(\'mailto:\'+document.lurlform.lemail.value); return link_current();" /></td> 00652 </tr> 00653 </table> 00654 </form>'; 00655 $content.=$extUrl; 00656 $content.=$this->addAttributesForm(); 00657 break; 00658 case 'url': 00659 $extUrl=' 00660 <!-- 00661 Enter External URL: 00662 --> 00663 <form action="" name="lurlform" id="lurlform"> 00664 <table border="0" cellpadding="2" cellspacing="1" id="typo3-linkURL"> 00665 <tr> 00666 <td>URL:</td> 00667 <td><input type="text" name="lurl"'.$this->doc->formWidth(20).' value="'.htmlspecialchars($this->curUrlInfo['act']=='url'?$this->curUrlInfo['info']:'http://').'" /> '. 00668 '<input type="submit" value="'.$LANG->getLL('setLink',1).'" onclick="setValue(document.lurlform.lurl.value); return link_current();" /></td> 00669 </tr> 00670 </table> 00671 </form>'; 00672 $content.=$extUrl; 00673 $content.=$this->addAttributesForm(); 00674 break; 00675 case 'file': 00676 $content.=$this->addAttributesForm(); 00677 00678 $foldertree = t3lib_div::makeInstance('tx_rtehtmlarea_folderTree'); 00679 $tree=$foldertree->getBrowsableTree(); 00680 00681 if (!$this->curUrlInfo['value'] || $this->curUrlInfo['act']!='file') { 00682 $cmpPath=''; 00683 } elseif (substr(trim($this->curUrlInfo['info']),-1)!='/') { 00684 $cmpPath=PATH_site.dirname($this->curUrlInfo['info']).'/'; 00685 if (!isset($this->expandFolder)) $this->expandFolder = $cmpPath; 00686 } else { 00687 $cmpPath=PATH_site.$this->curUrlInfo['info']; 00688 } 00689 00690 list(,,$specUid) = explode('_',$this->PM); 00691 $files = $this->expandFolder($foldertree->specUIDmap[$specUid]); 00692 00693 // Create upload/create folder forms, if a path is given: 00694 if ($BE_USER->getTSConfigVal('options.uploadFieldsInTopOfEB')) { 00695 $fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions'); 00696 $fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']); 00697 $path=$this->expandFolder; 00698 if (!$path || !@is_dir($path)) { 00699 $path = $fileProcessor->findTempFolder().'/'; // The closest TEMP-path is found 00700 } 00701 if ($path!='/' && @is_dir($path)) { 00702 $uploadForm=$this->uploadForm($path); 00703 $createFolder=$this->createFolder($path); 00704 } else { 00705 $createFolder=''; 00706 $uploadForm=''; 00707 } 00708 $content.=$uploadForm; 00709 if ($BE_USER->isAdmin() || $BE_USER->getTSConfigVal('options.createFoldersInEB')) { 00710 $content.=$createFolder; 00711 } 00712 } 00713 00714 $content.= ' 00715 <!-- 00716 Wrapper table for folder tree / file list: 00717 --> 00718 <table border="0" cellpadding="0" cellspacing="0" id="typo3-linkFiles"> 00719 <tr> 00720 <td class="c-wCell" valign="top">'.$this->barheader($LANG->getLL('folderTree').':').$tree.'</td> 00721 <td class="c-wCell" valign="top">'.$files.'</td> 00722 </tr> 00723 </table> 00724 '; 00725 break; 00726 case 'spec': 00727 if (is_array($this->thisConfig['userLinks.'])) { 00728 $subcats=array(); 00729 $v=$this->thisConfig['userLinks.']; 00730 reset($v); 00731 while(list($k2)=each($v)) { 00732 $k2i = intval($k2); 00733 if (substr($k2,-1)=='.' && is_array($v[$k2i.'.'])) { 00734 00735 // Title: 00736 $title = trim($v[$k2i]); 00737 if (!$title) { 00738 $title=$v[$k2i.'.']['url']; 00739 } else { 00740 $title=$LANG->sL($title); 00741 } 00742 // Description: 00743 $description=$v[$k2i.'.']['description'] ? $LANG->sL($v[$k2i.'.']['description'],1).'<br />' : ''; 00744 00745 // URL + onclick event: 00746 $onClickEvent=''; 00747 if (isset($v[$k2i.'.']['target'])) $onClickEvent.="setTarget('".$v[$k2i.'.']['target']."');"; 00748 $v[$k2i.'.']['url'] = str_replace('###_URL###',$this->siteURL,$v[$k2i.'.']['url']); 00749 if (substr($v[$k2i.'.']['url'],0,7)=="http://" || substr($v[$k2i.'.']['url'],0,7)=='mailto:') { 00750 $onClickEvent.="cur_href=unescape('".rawurlencode($v[$k2i.'.']['url'])."');link_current();"; 00751 } else { 00752 $onClickEvent.="link_spec(unescape('".$this->siteURL.rawurlencode($v[$k2i.'.']['url'])."'));"; 00753 } 00754 00755 // Link: 00756 $A=array('<a href="#" onclick="'.htmlspecialchars($onClickEvent).'return false;">','</a>'); 00757 00758 // Adding link to menu of user defined links: 00759 $subcats[$k2i]=' 00760 <tr> 00761 <td class="bgColor4">'.$A[0].'<strong>'.htmlspecialchars($title).($this->curUrlInfo['info']==$v[$k2i.'.']['url']?'<img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/blinkarrow_right.gif','width="5" height="9"').' class="c-blinkArrowR" alt="" />':'').'</strong><br />'.$description.$A[1].'</td> 00762 </tr>'; 00763 } 00764 } 00765 00766 // Sort by keys: 00767 ksort($subcats); 00768 00769 // Add menu to content: 00770 $content.= ' 00771 <!-- 00772 Special userdefined menu: 00773 --> 00774 <table border="0" cellpadding="1" cellspacing="1" id="typo3-linkSpecial"> 00775 <tr> 00776 <td class="bgColor5" class="c-wCell" valign="top"><strong>'.$LANG->getLL('special',1).'</strong></td> 00777 </tr> 00778 '.implode('',$subcats).' 00779 </table> 00780 '; 00781 } 00782 break; 00783 case 'page': 00784 default: 00785 $content.=$this->addAttributesForm(); 00786 00787 $pagetree = t3lib_div::makeInstance('tx_rtehtmlarea_pageTree'); 00788 $tree=$pagetree->getBrowsableTree(); 00789 $cElements = $this->expandPage(); 00790 $content.= ' 00791 <!-- 00792 Wrapper table for page tree / record list: 00793 --> 00794 <table border="0" cellpadding="0" cellspacing="0" id="typo3-linkPages"> 00795 <tr> 00796 <td class="c-wCell" valign="top">'.$this->barheader($LANG->getLL('pageTree').':').$tree.'</td> 00797 <td class="c-wCell" valign="top">'.$cElements.'</td> 00798 </tr> 00799 </table> 00800 '; 00801 break; 00802 } 00803 00804 // End page, return content: 00805 $content.= $this->doc->endPage(); 00806 return $content; 00807 } 00808 00809 function addAttributesForm() { 00810 $ltargetForm = ''; 00811 // Add target and class selector box and title field: 00812 $ltarget = $this->addTargetSelector(); 00813 $lclass = $this->addClassSelector(); 00814 $ltitle = $this->addTitleSelector(); 00815 if ($ltarget || $lclass || $ltitle) { 00816 $ltargetForm = $this->wrapInForm($ltarget.$lclass.$ltitle); 00817 } 00818 return $ltargetForm; 00819 } 00820 00821 function wrapInForm($string) { 00822 global $LANG; 00823 00824 $form = ' 00825 <!-- 00826 Selecting target for link: 00827 --> 00828 <form action="" name="ltargetform" id="ltargetform"> 00829 <table border="0" cellpadding="2" cellspacing="1" id="typo3-linkTarget">'. $string; 00830 if ((($this->act == 'page' && $this->curUrlInfo['act']=='page') || ($this->act == 'file' && $this->curUrlInfo['act']=='file') || ($this->act == 'url' && $this->curUrlInfo['act']!='page')) && $this->curUrlArray['href']) { 00831 $form .=' 00832 <tr> 00833 <td> 00834 </td> 00835 <td colspan="3"> 00836 <input type="submit" value="'.$LANG->getLL('update',1).'" onclick="return link_current();" /> 00837 </td> 00838 </tr>'; 00839 } 00840 $form .= ' 00841 </table> 00842 </form>'; 00843 return $form; 00844 } 00845 00846 function addTargetSelector() { 00847 global $LANG; 00848 00849 $targetSelectorConfig = array(); 00850 $popupSelectorConfig = array(); 00851 if (is_array($this->buttonConfig['targetSelector.'])) { 00852 $targetSelectorConfig = $this->buttonConfig['targetSelector.']; 00853 } 00854 if (is_array($this->buttonConfig['popupSelector.'])) { 00855 $popupSelectorConfig = $this->buttonConfig['popupSelector.']; 00856 } 00857 00858 $ltarget = ''; 00859 if ($this->act != 'mail') { 00860 if (!($targetSelectorConfig['disabled'] && $popupSelectorConfig['disabled'])) { 00861 $ltarget .= ' 00862 <tr> 00863 <td>'.$LANG->getLL('target',1).':</td> 00864 <td><input type="text" name="ltarget" onchange="setTarget(this.value);" value="'.htmlspecialchars($this->setTarget).'"'.$this->doc->formWidth(10).' /></td>'; 00865 $ltarget .= ' 00866 <td colspan="2">'; 00867 if (!$targetSelectorConfig['disabled']) { 00868 $ltarget .= ' 00869 <select name="ltarget_type" onchange="setTarget(this.options[this.selectedIndex].value);document.ltargetform.ltarget.value=this.options[this.selectedIndex].value;this.selectedIndex=0;"> 00870 <option></option> 00871 <option value="_top">'.$LANG->getLL('top',1).'</option> 00872 <option value="_blank">'.$LANG->getLL('newWindow',1).'</option> 00873 </select>'; 00874 } 00875 $ltarget .= ' 00876 </td>'; 00877 } 00878 00879 $ltarget .= ' 00880 </tr>'; 00881 if (!$popupSelectorConfig['disabled']) { 00882 00883 $selectJS = 'if (document.ltargetform.popup_width.options[document.ltargetform.popup_width.selectedIndex].value>0 && document.ltargetform.popup_height.options[document.ltargetform.popup_height.selectedIndex].value>0) { 00884 document.ltargetform.ltarget.value = document.ltargetform.popup_width.options[document.ltargetform.popup_width.selectedIndex].value+\'x\'+document.ltargetform.popup_height.options[document.ltargetform.popup_height.selectedIndex].value; 00885 setTarget(document.ltargetform.ltarget.value); 00886 document.ltargetform.popup_width.selectedIndex=0; 00887 document.ltargetform.popup_height.selectedIndex=0; 00888 }'; 00889 00890 $ltarget.=' 00891 <tr> 00892 <td>'.$LANG->getLL('target_popUpWindow',1).':</td> 00893 <td colspan="3"> 00894 <select name="popup_width" onchange="'.$selectJS.'"> 00895 <option value="0">'.$LANG->getLL('target_popUpWindow_width',1).'</option> 00896 <option value="300">300</option> 00897 <option value="400">400</option> 00898 <option value="500">500</option> 00899 <option value="600">600</option> 00900 <option value="700">700</option> 00901 <option value="800">800</option> 00902 </select> 00903 x 00904 <select name="popup_height" onchange="'.$selectJS.'"> 00905 <option value="0">'.$LANG->getLL('target_popUpWindow_height',1).'</option> 00906 <option value="200">200</option> 00907 <option value="300">300</option> 00908 <option value="400">400</option> 00909 <option value="500">500</option> 00910 <option value="600">600</option> 00911 </select> 00912 </td> 00913 </tr>'; 00914 } 00915 } 00916 return $ltarget; 00917 } 00918 00919 function addClassSelector() { 00920 global $LANG; 00921 00922 $selectClass = ''; 00923 if ($this->classesAnchorJSOptions[$this->act]) { 00924 $selectClassJS = ' 00925 document.ltargetform.anchor_class.value = document.ltargetform.anchor_class.options[document.ltargetform.anchor_class.selectedIndex].value; 00926 if(document.ltargetform.anchor_class.value && editor.classesAnchorSetup) { 00927 for (var i = editor.classesAnchorSetup.length; --i >= 0;) { 00928 var anchorClass = editor.classesAnchorSetup[i]; 00929 if (anchorClass[\'name\'] == document.ltargetform.anchor_class.value) { 00930 if(anchorClass[\'titleText\'] && document.ltargetform.anchor_title) document.ltargetform.anchor_title.value = anchorClass[\'titleText\']; 00931 break; 00932 } 00933 } 00934 } 00935 setClass(document.ltargetform.anchor_class.value); 00936 '; 00937 $selectClass =' 00938 <tr> 00939 <td>'.$LANG->getLL('anchor_class',1).':</td> 00940 <td colspan="3"> 00941 <select name="anchor_class" onchange="'.$selectClassJS.'"> 00942 ' . $this->classesAnchorJSOptions[$this->act] . ' 00943 </select> 00944 </td> 00945 </tr>'; 00946 } 00947 return $selectClass; 00948 } 00949 00950 function addTitleSelector() { 00951 global $LANG; 00952 00953 return ' 00954 <tr> 00955 <td>'.$LANG->getLL('anchor_title',1).':</td> 00956 <td colspan="3"> 00957 <input type="text" name="anchor_title" value="' . ($this->setTitle?$this->setTitle:($this->thisConfig['classesAnchor']?$this->classesAnchorDefaultTitle[$this->act]:'')) . '" ' . $this->doc->formWidth(30) . ' /> 00958 </td> 00959 </tr>'; 00960 } 00961 00969 function uploadForm($path) { 00970 global $BACK_PATH; 00971 $count=3; 00972 00973 // Create header, showing upload path: 00974 $header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path; 00975 $code=$this->barheader($GLOBALS['LANG']->getLL('uploadImage').':'); 00976 $code.=' 00977 00978 <!-- 00979 Form, for uploading files: 00980 --> 00981 <form action="'.$BACK_PATH.'tce_file.php" method="post" name="editform" enctype="'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'].'"> 00982 <table border="0" cellpadding="0" cellspacing="3" id="typo3-uplFiles"> 00983 <tr> 00984 <td><strong>'.$GLOBALS['LANG']->getLL('path',1).':</strong> '.htmlspecialchars($header).'</td> 00985 </tr> 00986 <tr> 00987 <td>'; 00988 00989 // Traverse the number of upload fields (default is 3): 00990 for ($a=1;$a<=$count;$a++) { 00991 $code.='<input type="file" name="upload_'.$a.'"'.$this->doc->formWidth(35).' size="50" /> 00992 <input type="hidden" name="file[upload]['.$a.'][target]" value="'.htmlspecialchars($path).'" /> 00993 <input type="hidden" name="file[upload]['.$a.'][data]" value="'.$a.'" /><br />'; 00994 } 00995 00996 // Make footer of upload form, including the submit button: 00997 $redirectValue = $this->thisScript.'?act='.$this->act.'&editorNo='.$this->editorNo.'&mode='.$this->mode.'&expandFolder='.rawurlencode($path).'&bparams='.rawurlencode($this->bparams); 00998 $code.='<input type="hidden" name="redirect" value="'.htmlspecialchars($redirectValue).'" />'. 00999 '<input type="submit" name="submit" value="'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:file_upload.php.submit',1).'" />'; 01000 01001 $code.=' 01002 <div id="c-override"> 01003 <input type="checkbox" name="overwriteExistingFiles" value="1" /> '.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_misc.xml:overwriteExistingFiles',1).' 01004 </div> 01005 '; 01006 01007 01008 $code.='</td> 01009 </tr> 01010 </table> 01011 </form>'; 01012 01013 return $code; 01014 } 01015 01023 function createFolder($path) { 01024 global $BACK_PATH; 01025 // Create header, showing upload path: 01026 $header = t3lib_div::isFirstPartOfStr($path,PATH_site)?substr($path,strlen(PATH_site)):$path; 01027 $code=$this->barheader($GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:file_newfolder.php.pagetitle').':'); 01028 $code.=' 01029 01030 <!-- 01031 Form, for creating new folders: 01032 --> 01033 <form action="'.$BACK_PATH.'tce_file.php" method="post" name="editform2"> 01034 <table border="0" cellpadding="0" cellspacing="3" id="typo3-crFolder"> 01035 <tr> 01036 <td><strong>'.$GLOBALS['LANG']->getLL('path',1).':</strong> '.htmlspecialchars($header).'</td> 01037 </tr> 01038 <tr> 01039 <td>'; 01040 01041 // Create the new-folder name field: 01042 $a=1; 01043 $code.='<input'.$this->doc->formWidth(20).' type="text" name="file[newfolder]['.$a.'][data]" />'. 01044 '<input type="hidden" name="file[newfolder]['.$a.'][target]" value="'.htmlspecialchars($path).'" />'; 01045 01046 // Make footer of upload form, including the submit button: 01047 $redirectValue = $this->thisScript.'?act='.$this->act.'&editorNo='.$this->editorNo.'&mode='.$this->mode.'&expandFolder='.rawurlencode($path).'&bparams='.rawurlencode($this->bparams); 01048 $code.='<input type="hidden" name="redirect" value="'.htmlspecialchars($redirectValue).'" />'. 01049 '<input type="submit" name="submit" value="'.$GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:file_newfolder.php.submit',1).'" />'; 01050 01051 $code.='</td> 01052 </tr> 01053 </table> 01054 </form>'; 01055 01056 return $code; 01057 } 01058 01059 } 01060 01061 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php']) { 01062 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod3/class.tx_rtehtmlarea_browse_links.php']); 01063 } 01064 01065 ?>