Documentation TYPO3 par Ameos |
00001 <?php 00002 /*************************************************************** 00003 * Copyright notice 00004 * 00005 * (c) 1999-2005 Kasper Skaarhoj (kasperYYYY@typo3.com) 00006 * All rights reserved 00007 * 00008 * This script is part of the TYPO3 project. The TYPO3 project is 00009 * free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * The GNU General Public License can be found at 00015 * http://www.gnu.org/copyleft/gpl.html. 00016 * A copy is found in the textfile GPL.txt and important notices to the license 00017 * from the author is found in LICENSE.txt distributed with these scripts. 00018 * 00019 * 00020 * This script is distributed in the hope that it will be useful, 00021 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00023 * GNU General Public License for more details. 00024 * 00025 * This copyright notice MUST APPEAR in all copies of the script! 00026 ***************************************************************/ 00073 class alt_menu_functions { 00074 00075 // Internal 00076 var $fsMod = array(); 00077 00094 function topMenu($theModules,$dontLink=0,$backPath='',$descr=0) { 00095 global $LANG, $TBE_TEMPLATE, $BE_USER; 00096 00097 // By default module sections are collapsable, only if they are explicitly turned off via TSconfig, they are not: 00098 $tmpArr = $BE_USER->getTSConfig('options.moduleMenuCollapsable'); 00099 $collapsable = ($tmpArr['value'] ? 0 : 1); 00100 unset($tmpArr); 00101 00102 // Initialize vars: 00103 $final=''; 00104 $menuCode=''; 00105 $descrCode=''; 00106 $collection=array(); 00107 $menuCode_sub=''; 00108 $selectItems=array(); 00109 $mIcons=array(); 00110 $mJScmds=array(); 00111 $onBlur=$GLOBALS['CLIENT']['FORMSTYLE'] ? 'this.blur();' : ''; 00112 00113 $selectItems[] = '<option value="">[ '.$LANG->sL('LLL:EXT:lang/locallang_core.php:buttons.selMenu_modules',1).' ]</option>'; 00114 $mC=0; 00115 00116 // Remove the 'doc' module? 00117 if ($BE_USER->getTSConfigVal('options.disableDocModuleInAB')) { 00118 unset($theModules['doc']); 00119 } 00120 00121 // Get collapsed configuration 00122 if ($collapsable == 1) { 00123 $config = is_array ($BE_USER->uc['moduleData']['alt_menu.php']) ? $BE_USER->uc['moduleData']['alt_menu.php'] : array(); 00124 $collapsedOverride = t3lib_div::_GP('collapsedOverride'); 00125 if (is_array ($collapsedOverride)) { 00126 $config = array_merge ($config, $collapsedOverride); 00127 } 00128 00129 if (t3lib_div::_GP('collapsableExpandAll') == 1) { 00130 $config['expandAll'] = t3lib_div::_GP('expandAll'); 00131 } 00132 00133 if ($config['expandAll'] && is_array($collapsedOverride)) { 00134 $config = $collapsedOverride; 00135 } 00136 00137 $BE_USER->uc['moduleData']['alt_menu.php'] = $config; 00138 $BE_USER->writeUC($BE_USER->uc); 00139 00140 // all items have to be expanded when expandAll is set 00141 if($config['expandAll'] == 1) { 00142 foreach($config as $key => $value) { 00143 if($key != 'expandAll') 00144 $config[$key] = 0; 00145 } 00146 } 00147 } 00148 00149 // Traverse array with modules 00150 reset($theModules); 00151 while(list($moduleName,$moduleInfo)=each($theModules)) { 00152 $mC++; 00153 00154 $prefix = $this->getNavFramePrefix($moduleInfo); 00155 if ($prefix) { 00156 $this->fsMod[]='fsMod.recentIds["'.$moduleName.'"]="";'; 00157 } 00158 00159 // If there are submodules: 00160 if (is_array($moduleInfo['sub'])) { 00161 // Finding the default module to display 00162 if ($moduleInfo['defaultMod']) { 00163 $link = $moduleInfo['sub'][$moduleInfo['defaultMod']]['script']; 00164 } else { 00165 reset($moduleInfo['sub']); 00166 $subTemp = current($moduleInfo['sub']); 00167 $link = $subTemp['script']; 00168 } 00169 $link_sub = 1; // Tells that the main modules links to a submodule 00170 $link = ''; // Does not link to submodules... 00171 } else { 00172 $link = $moduleInfo['script']; 00173 $link_sub = 0; 00174 } 00175 00176 $link = t3lib_div::resolveBackPath($link); 00177 00178 $moduleKey = $moduleName.'_tab'; 00179 $moduleCSSId = 'ID_'.t3lib_div::md5int($moduleName); 00180 00181 $collection[$moduleKey] = array( 00182 'moduleName' => $moduleName, 00183 'title' => $LANG->moduleLabels['tabs'][$moduleKey], 00184 'onclick' => 'top.goToModule(\''.$moduleName.'\');', 00185 ); 00186 00187 // Creating image icon 00188 $image = @getimagesize($this->mIconFile($LANG->moduleLabels['tabs_images'][$moduleKey],$backPath)); 00189 $imageCode=''; 00190 $descr3_title = $LANG->moduleLabels['tabs'][$moduleKey].' '; 00191 if ($image) { 00192 $Ifilename = $this->mIconFilename($LANG->moduleLabels['tabs_images'][$moduleKey],$backPath); 00193 $collection[$moduleKey]['icon'] = array($Ifilename, $image[3]); 00194 $imageCode = '<img src="'.$Ifilename.'" '.$image[3].' alt="" />'; 00195 $descr3_imageCode = '<img src="'.$Ifilename.'" '.$image[3].' title="'.htmlspecialchars($descr3_title).'" alt="" />'; 00196 } else { 00197 $descr3_imageCode = '<img'.t3lib_iconWorks::skinImg($backPath,'gfx/dummy_module.gif','width="14" height="12"').' title="'.htmlspecialchars($descr3_title).'" alt="" />'; 00198 } 00199 00200 // Creating the various links: 00201 $label = $LANG->moduleLabels['tabs'][$moduleKey]; 00202 if ($link && $prefix) $link=$prefix.rawurlencode($link); 00203 if ($link && !$dontLink) { 00204 $label = '<a href="#" onclick="top.goToModule(\''.$moduleName.'\');'.$onBlur.'return false;">'.$label.'</a>'; // && !$link_sub 00205 00206 $mIcons[] = '<a href="#" onclick="top.goToModule(\''.$moduleName.'\');'.$onBlur.'return false;" class="c-mainitem" id="'.$moduleCSSId.'">'.$descr3_imageCode.'</a>'; 00207 00208 $JScmd = ' 00209 top.content.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$this->wrapLinkWithAB($link).'"+additionalGetVariables); 00210 top.highlightModuleMenuItem("'.$moduleCSSId.'",1);'; 00211 $mJScmds[] = "case '".$moduleName."': \n ".$JScmd." \n break;"; 00212 } 00213 00214 $selectItems[] = '<option value="top.goToModule(\''.$moduleName.'\');">'.htmlspecialchars($LANG->moduleLabels['tabs'][$moduleKey]).'</option>'; 00215 $label=' <b>'.$label.'</b> '; 00216 00217 00218 // make menu collapsable 00219 if($collapsable == 1 && is_array($moduleInfo['sub'])) { 00220 $collapseJS = 'onclick="window.location.href=\'alt_menu.php?collapsedOverride['.$moduleName.']='.($config[$moduleName] ? '0' : '1').'\'"'; 00221 $collapseIcon = '<span class="c-iconCollapse"><img'.t3lib_iconWorks::skinImg($backPath,'gfx/ol/'.($config[$moduleName] ? 'plusbullet.gif':'minusbullet.gif'),'width="18" height="16"').' title="" alt="" /></span>'; 00222 } else { 00223 $collapseJS = $collapseIcon = ''; 00224 } 00225 00226 // Creating a main item for the vertical menu (descr=0) 00227 $menuCode.=' 00228 <tr class="c-mainitem" id="'.$moduleCSSId.'"> 00229 <td colspan="3" '.$collapseJS.' >'.$imageCode.'<span class="c-label">'.$label.'</span>'.$collapseIcon.'</td> 00230 </tr>'; 00231 00232 // Code for "About modules" 00233 $descrCode.=' 00234 <tr class="c-mainitem bgColor4"> 00235 <td colspan="3">'.$imageCode.$label.'</td> 00236 </tr>'; 00237 00238 00239 // Hide submodules when collapsed: 00240 if($collapsable == 1 && $config[$moduleName] == 1 && $descr == 0 && $config['expandAll'] != 1) { 00241 unset($moduleInfo['sub']); 00242 } 00243 00244 // Traversing submodules 00245 $subCode=''; 00246 if (is_array($moduleInfo['sub'])) { 00247 reset($moduleInfo['sub']); 00248 $collection[$moduleKey]['subitems'] = array(); 00249 $c=0; 00250 while(list($subName,$subInfo)=each($moduleInfo['sub'])) { 00251 if ($c==0) { 00252 $subCode.=' 00253 <tr class="c-first"> 00254 <td colspan="3"></td> 00255 </tr>'; 00256 $descrCode.=' 00257 <tr class="c-first"> 00258 <td colspan="3"></td> 00259 </tr>'; 00260 } 00261 00262 $link = t3lib_div::resolveBackPath($subInfo['script']); 00263 $prefix = $this->getNavFramePrefix($moduleInfo, $subInfo); 00264 00265 $subKey = $moduleName.'_'.$subName.'_tab'; 00266 $moduleCSSId = 'ID_'.t3lib_div::md5int($moduleName.'_'.$subName); 00267 00268 $collection[$moduleKey]['subitems'][$subKey] = array( 00269 'moduleName' => $moduleName.'_'.$subName, 00270 'title' => $LANG->moduleLabels['tabs'][$subKey], 00271 'onclick' => 'top.goToModule(\''.$moduleName.'_'.$subName.'\');', 00272 ); 00273 00274 // Creating image icon 00275 $image = @getimagesize($this->mIconFile($LANG->moduleLabels['tabs_images'][$subKey],$backPath)); 00276 $imageCode=''; 00277 $descr3_title = $LANG->moduleLabels['tabs'][$subKey].': '.$LANG->moduleLabels['labels'][$subKey.'label']; 00278 if ($image) { 00279 $Ifilename = $this->mIconFilename($LANG->moduleLabels['tabs_images'][$subKey],$backPath); 00280 $collection[$moduleKey]['subitems'][$subKey]['icon'] = array($Ifilename, $image[3]); 00281 $imageCode = '<img src="'.$Ifilename.'" '.$image[3].' title="'.htmlspecialchars($LANG->moduleLabels['labels'][$subKey.'label']).'" alt="" />'; 00282 $descr3_imageCode = '<img src="'.$Ifilename.'" '.$image[3].' title="'.htmlspecialchars($descr3_title).'" alt="" />'; 00283 } else { 00284 $descr3_imageCode = '<img'.t3lib_iconWorks::skinImg($backPath,'gfx/dummy_module.gif','width="14" height="12"').' title="'.htmlspecialchars($descr3_title).'" alt="" />'; 00285 } 00286 00287 // Label for submodule: 00288 $label = $LANG->moduleLabels['tabs'][$subKey]; 00289 $label_descr = ' title="'.htmlspecialchars($LANG->moduleLabels['labels'][$subKey.'label']).'"'; 00290 $flabel = htmlspecialchars($label); 00291 $origLink = $link; 00292 if ($link && $prefix) $link=$prefix.rawurlencode($link); 00293 00294 // Setting additional JavaScript if frameset script: 00295 $addJS = ''; 00296 if ($moduleInfo['navFrameScript']) {$addJS="+'&id='+top.rawurlencode(top.fsMod.recentIds['".$moduleName."'])";} 00297 00298 // If there is a script to link to (and linking is not disabled. 00299 if ($link && !$dontLink) { 00300 // For condensed mode, send &cMR parameter to frameset script. 00301 if ($addJS && $BE_USER->uc['condensedMode']) {$addJS.= "+(cMR?'&cMR=1':'')";} 00302 00303 // Command for the selector box: 00304 $JScmd = ' 00305 top.content.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$this->wrapLinkWithAB($link).'"'.$addJS.'+additionalGetVariables); 00306 top.fsMod.currentMainLoaded="'.$moduleName.'"; 00307 '; 00308 00309 if ($subInfo['navFrameScript']) { 00310 $JScmd.=' 00311 top.currentSubScript="'.$origLink.'";'; 00312 } 00313 00314 // If there is a frameset script in place: 00315 if (!$BE_USER->uc['condensedMode'] && $moduleInfo['navFrameScript']) { 00316 00317 // use special nav script from sub module, otherwise from the main module 00318 $subNavFrameScript = $subInfo['navFrameScript'] ? $subInfo['navFrameScript'] : $moduleInfo['navFrameScript']; 00319 $subNavFrameScript = t3lib_div::resolveBackPath($subNavFrameScript); 00320 00321 // add GET params for sub module to the nav script 00322 $subNavFrameScript = $this->wrapLinkWithAB($subNavFrameScript).$subInfo['navFrameScriptParam']; 00323 00324 $JScmd = ' 00325 if (top.content.list_frame && top.fsMod.currentMainLoaded=="'.$moduleName.'") { 00326 top.currentSubScript="'.$origLink.'"; 00327 top.content.list_frame.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$this->wrapLinkWithAB($origLink).'"'.$addJS.'+additionalGetVariables); 00328 if(top.currentSubNavScript!="'.$subNavFrameScript.'") { 00329 top.currentSubNavScript="'.$subNavFrameScript.'"; 00330 top.content.nav_frame.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$subNavFrameScript.'"); 00331 } 00332 } else { 00333 top.content.location=top.TS.PATH_typo3+( 00334 top.nextLoadModuleUrl? 00335 "'.($prefix?$this->wrapLinkWithAB($link).'&exScript=':'').'listframe_loader.php": 00336 "'.$this->wrapLinkWithAB($link).'"'.$addJS.'+additionalGetVariables 00337 ); 00338 top.fsMod.currentMainLoaded="'.$moduleName.'"; 00339 top.currentSubScript="'.$origLink.'"; 00340 } 00341 '; 00342 } 00343 $selectItems[] = '<option value="top.goToModule(\''.$moduleName.'_'.$subName.'\');">'.htmlspecialchars('- '.$label).'</option>'; 00344 $onClickString = htmlspecialchars('top.goToModule(\''.$moduleName.'_'.$subName.'\');'.$onBlur.'return false;'); 00345 00346 $flabel = '<a href="#" onclick="'.$onClickString.'"'.$label_descr.'>'.htmlspecialchars($label).'</a>'; 00347 00348 $mIcons[] = '<a href="#" onclick="'.$onClickString.'"'.$label_descr.' class="c-subitem" id="'.$moduleCSSId.'">'.$descr3_imageCode.'</a>'; 00349 00350 $JScmd.= ' 00351 top.highlightModuleMenuItem("'.$moduleCSSId.'");'; 00352 $mJScmds[] = "case '".$moduleName.'_'.$subName."': \n ".$JScmd." \n break;"; 00353 } 00354 00355 $subCode.=' 00356 <tr class="c-subitem-row" id="'.$moduleCSSId.'"> 00357 <td></td> 00358 <td align="center">'.(!$BE_USER->uc['hideSubmoduleIcons']?$imageCode:'').'</td> 00359 <td class="c-subitem-label">'.$flabel.'</td> 00360 </tr>'; 00361 00362 // For "About modules": 00363 $descrCode.=' 00364 <tr class="c-subitem-row"> 00365 <td align="center">'.$imageCode.'</td> 00366 <td>'.$flabel.' </td> 00367 <td><strong>'.htmlspecialchars($LANG->moduleLabels['labels'][$subKey.'label']).'</strong><br />'.$LANG->moduleLabels['labels'][$subKey.'descr'].'</td> 00368 </tr>'; 00369 00370 // Possibly adding a divider line 00371 $c++; 00372 if ($c<count($moduleInfo['sub'])) { 00373 // Divider 00374 $subCode.=' 00375 <tr class="c-divrow"> 00376 <td colspan="3"><img'.t3lib_iconWorks::skinImg($backPath,'gfx/altmenuline.gif','width="105" height="3"').' alt="" /></td> 00377 </tr>'; 00378 } 00379 } 00380 // Spacer gif for top menu: 00381 if (count($theModules)>$mC) { 00382 $mIcons[]='<img src="'.$backPath.'gfx/acm_spacer2.gif" width="8" height="12" hspace="3" alt="" />'; 00383 } 00384 } 00385 00386 // Add spacers after each main section: 00387 $subCode.=' 00388 <tr class="c-endrow"> 00389 <td colspan="3"></td> 00390 </tr>'; 00391 $descrCode.=' 00392 <tr class="c-endrow"> 00393 <td colspan="3"></td> 00394 </tr>'; 00395 00396 // Add sub-code: 00397 $menuCode.=$subCode; 00398 } 00399 00400 // $descr==0: Ordinary vertical menu 00401 if ($menuCode) { 00402 if($collapsable == 1 || $config['expandAll'] == 1) { 00403 $collapseAllHTML = '<tr class="c-endrow"> 00404 <td></td> 00405 <td align="center"> 00406 <form action="alt_menu.php" method="get"> 00407 <input type="hidden" name="collapsableExpandAll" value="1" /> 00408 <input type="checkbox" name="expandAll" id="expandall" value="1" onclick="this.form.submit();" '.($config['expandAll']?'checked="checked"':'').' /> 00409 </form> 00410 </td> 00411 <td class="c-subitem-label"><label for="expandall">'.$LANG->sL('LLL:EXT:lang/locallang_core.php:labels.expandAll',1).'</label></td> 00412 </tr>'; 00413 } else { 00414 $collapseAllHTML = ''; 00415 } 00416 00417 $final = ' 00418 00419 00420 <!-- 00421 Vertical module menu, shown in left frame of backend. 00422 --> 00423 <table border="0" cellpadding="0" cellspacing="0" id="typo3-vmenu"> 00424 '.$menuCode.' 00425 <tr class="c-endrow"> 00426 <td colspan="3">'.t3lib_BEfunc::cshItem('xMOD_csh_corebe', 'menu_modules', $GLOBALS['BACK_PATH']).'</td></tr> 00427 '.$collapseAllHTML.' 00428 </table>'; 00429 } 00430 00431 // Output for the "About modules" module 00432 if ($descr==1) { 00433 $descrCode = ' 00434 00435 00436 <!-- 00437 Listing of modules, for Help > About modules 00438 --> 00439 <table border="0" cellpadding="0" cellspacing="0" id="typo3-about-modules"> 00440 '.$descrCode.' 00441 </table>'; 00442 $final = $descrCode; 00443 } 00444 00445 // selector-box menu 00446 if ($descr==2) { 00447 00448 // Add admin-functions for clearing caches: 00449 if ($BE_USER->isAdmin()) { 00450 $functionArray = $this->adminFunctions($backPath); 00451 if (count($functionArray)) { 00452 $selectItems[] = '<option value=""></option>'; 00453 foreach($functionArray as $fAoptions) { 00454 $selectItems[] = '<option value="'.htmlspecialchars("window.location.href='".$fAoptions['href']."';").'">[ '.htmlspecialchars($fAoptions['title']).' ]</option>'; 00455 } 00456 } 00457 } 00458 00459 // Logout item: 00460 $selectItems[] = '<option value=""></option>'; 00461 $selectItems[] = '<option value="'.htmlspecialchars("top.location='logout.php';").'">[ '.$LANG->sL('LLL:EXT:lang/locallang_core.php:buttons.logout',1).' ]</option>'; 00462 $final = ' 00463 <select name="menuselector" onchange="eval(this.options[this.selectedIndex].value);"> 00464 '.implode(' 00465 ',$selectItems).' 00466 </select>'; 00467 } 00468 // topmenu - horizontal line of icons! 00469 if ($descr==3) { 00470 $final = ''.implode('',$mIcons).''; 00471 } 00472 00473 // Output for the goToModules() function in main frameset. 00474 if ($descr==4) { 00475 $final = chr(10).implode(chr(10),$mJScmds).chr(10); 00476 } 00477 00478 // Output for TOPMENU BAR drop downs (but basically this is an array with which you can do many interesting things...) 00479 if ($descr==5) { 00480 $final = $collection; 00481 } 00482 00483 // Return result: 00484 return $final; 00485 } 00486 00494 function getNavFramePrefix($moduleInfo, $subModuleInfo=array()) { 00495 global $BE_USER; 00496 00497 $prefix = ''; 00498 $navFrameScript = $subModuleInfo['navFrameScript'] ? $subModuleInfo['navFrameScript'] : $moduleInfo['navFrameScript']; 00499 $navFrameScriptParam = isset($subModuleInfo['navFrameScriptParam']) ? $subModuleInfo['navFrameScriptParam'] : $moduleInfo['navFrameScriptParam']; 00500 if ($navFrameScript) { 00501 $navFrameScript = t3lib_div::resolveBackPath($navFrameScript); 00502 $navFrameScript = $this->wrapLinkWithAB($navFrameScript); 00503 00504 if ($BE_USER->uc['condensedMode']) { 00505 $prefix=$navFrameScript.$navFrameScriptParam.'¤tSubScript='; 00506 } else { 00507 $prefix='alt_mod_frameset.php?'. 00508 'fW="+top.TS.navFrameWidth+"'. 00509 '&nav="+top.TS.PATH_typo3+"'.rawurlencode($navFrameScript.$navFrameScriptParam). 00510 '&script='; 00511 } 00512 } 00513 return $prefix; 00514 } 00515 00525 function mIconFile($Ifilename,$backPath) { 00526 if (t3lib_div::isAbsPath($Ifilename)) { 00527 return $Ifilename; 00528 } 00529 return $backPath.$Ifilename; 00530 } 00531 00540 function mIconFilename($Ifilename,$backPath) { 00541 if (t3lib_div::isAbsPath($Ifilename)) { 00542 $Ifilename = '../'.substr($Ifilename,strlen(PATH_site)); 00543 } 00544 return $backPath.$Ifilename; 00545 } 00546 00552 function topButtons() { 00553 global $LANG; 00554 00555 $label = $GLOBALS['BE_USER']->user['ses_backuserid'] ? 'LLL:EXT:lang/locallang_core.php:buttons.exit' : 'LLL:EXT:lang/locallang_core.php:buttons.logout'; 00556 $out.= '<form action="logout.php" target="_top"><input type="submit" value="'.$LANG->sL($label,1).'" /></form>'; 00557 return $out; 00558 } 00559 00565 function adminButtons() { 00566 global $LANG; 00567 00568 $functionArray = $this->adminFunctions(''); 00569 00570 $icons=array(); 00571 foreach($functionArray as $fAoptions) { 00572 $icons[]= '<a href="'.htmlspecialchars($fAoptions['href']).'">'.$fAoptions['icon'].'</a>'; 00573 } 00574 00575 return implode('',$icons); 00576 } 00577 00584 function adminFunctions($backPath) { 00585 global $LANG,$BE_USER,$TYPO3_CONF_VARS; 00586 00587 $functions=array(); 00588 00589 // Clearing of cache-files in typo3conf/ + menu 00590 if ($TYPO3_CONF_VARS['EXT']['extCache']) { 00591 $title = $LANG->sL('LLL:EXT:lang/locallang_core.php:rm.clearCache_allTypo3Conf'); 00592 $functions[]=array( 00593 'id' => 'temp_CACHED', 00594 'title' => $title, 00595 'href' => $backPath.'tce_db.php?vC='.$BE_USER->veriCode().'&redirect='.rawurlencode(t3lib_div::getIndpEnv('TYPO3_REQUEST_SCRIPT')).'&cacheCmd=temp_CACHED', 00596 'icon' => '<img'.t3lib_iconWorks::skinImg($backPath,'gfx/clear_cache_files_in_typo3c.gif','width="21" height="18"').' title="'.htmlspecialchars($title).'" alt="" />' 00597 ); 00598 } 00599 00600 // Clear all page cache 00601 $title = $LANG->sL('LLL:EXT:lang/locallang_core.php:rm.clearCache_all'); 00602 $functions[]=array( 00603 'id' => 'all', 00604 'title' => $title, 00605 'href' => $backPath.'tce_db.php?vC='.$BE_USER->veriCode().'&redirect='.rawurlencode(t3lib_div::getIndpEnv('TYPO3_REQUEST_SCRIPT')).'&cacheCmd=all', 00606 'icon' => '<img'.t3lib_iconWorks::skinImg($backPath,'gfx/clear_all_cache.gif','width="21" height="18"').' title="'.htmlspecialchars($title).'" alt="" />' 00607 ); 00608 00609 // Return functions 00610 return $functions; 00611 } 00612 00619 function wrapLinkWithAB($link) { 00620 if (!strstr($link,'?')) { 00621 return $link.'?'; 00622 } else return $link; 00623 } 00624 } 00625 00626 00627 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/class.alt_menu_functions.inc']) { 00628 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/class.alt_menu_functions.inc']); 00629 } 00630 ?>