📄 class.em_index.php
字号:
/********************************* * * Function Menu Applications * *********************************/ /** * Listing of loaded (installed) extensions * * @return void */ function extensionList_loaded() { global $TYPO3_LOADED_EXT; list($list,$cat) = $this->getInstalledExtensions(); // Loaded extensions $content = ''; $lines = array(); // Available extensions if (is_array($cat[$this->MOD_SETTINGS['listOrder']])) { $content=''; $lines=array(); $lines[] = $this->extensionListRowHeader(' class="bgColor5"',array('<td><img src="clear.gif" width="1" height="1" alt="" /></td>')); foreach($cat[$this->MOD_SETTINGS['listOrder']] as $catName => $extEkeys) { natcasesort($extEkeys); reset($extEkeys); $extensions = array(); while(list($extKey)=each($extEkeys)) { if (array_key_exists($extKey,$TYPO3_LOADED_EXT) && ($this->MOD_SETTINGS['display_shy'] || !$list[$extKey]['EM_CONF']['shy']) && $this->searchExtension($extKey,$list[$extKey])) { if (in_array($extKey, $this->requiredExt)) { $loadUnloadLink = '<strong>'.$GLOBALS['TBE_TEMPLATE']->rfw('Rq').'</strong>'; } else { $loadUnloadLink = '<a href="'.htmlspecialchars('index.php?CMD[showExt]='.$extKey.'&CMD[remove]=1').'">'.$this->removeButton().'</a>'; } $extensions[] = $this->extensionListRow($extKey,$list[$extKey],array('<td class="bgColor">'.$loadUnloadLink.'</td>')); } } if(count($extensions)) { $lines[]='<tr><td colspan="'.(3+$this->detailCols[$this->MOD_SETTINGS['display_details']]).'"><br /></td></tr>'; $lines[]='<tr><td colspan="'.(3+$this->detailCols[$this->MOD_SETTINGS['display_details']]).'"><img src="'.$GLOBALS['BACK_PATH'].'gfx/i/sysf.gif" width="18" height="16" align="top" alt="" /><strong>'.$this->listOrderTitle($this->MOD_SETTINGS['listOrder'],$catName).'</strong></td></tr>'; $lines[] = implode(chr(10),$extensions); } } } $content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'loaded', $GLOBALS['BACK_PATH'],''); $content.= '<label for="_lookUp">Look up:</label> <input type="text" id="_lookUp" name="_lookUp" value="'.htmlspecialchars($this->lookUpStr).'" /><input type="submit" value="Search"/><br/><br/>'; $content.= ' <!-- Loaded Extensions List --> <table border="0" cellpadding="2" cellspacing="1">'.implode('',$lines).'</table>'; $this->content.=$this->doc->section('Loaded Extensions',$content,0,1); } /** * Listing of available (installed) extensions * * @return void */ function extensionList_installed() { global $TYPO3_LOADED_EXT; list($list,$cat)=$this->getInstalledExtensions(); // Available extensions if (is_array($cat[$this->MOD_SETTINGS['listOrder']])) { $content=''; $lines=array(); $lines[]=$this->extensionListRowHeader(' class="bgColor5"',array('<td><img src="clear.gif" width="18" height="1" alt="" /></td>')); $allKeys=array(); foreach($cat[$this->MOD_SETTINGS['listOrder']] as $catName => $extEkeys) { if(!$this->MOD_SETTINGS['display_obsolete'] && $catName=='obsolete') continue; $allKeys[]=''; $allKeys[]='TYPE: '.$catName; natcasesort($extEkeys); reset($extEkeys); $extensions = array(); while(list($extKey)=each($extEkeys)) { $allKeys[]=$extKey; if ((!$list[$extKey]['EM_CONF']['shy'] || $this->MOD_SETTINGS['display_shy']) && ($list[$extKey]['EM_CONF']['state']!='obsolete' || $this->MOD_SETTINGS['display_obsolete']) && $this->searchExtension($extKey,$list[$extKey])) { $loadUnloadLink = t3lib_extMgm::isLoaded($extKey)? '<a href="'.htmlspecialchars('index.php?CMD[showExt]='.$extKey.'&CMD[remove]=1&CMD[clrCmd]=1&SET[singleDetails]=info').'">'.$this->removeButton().'</a>': '<a href="'.htmlspecialchars('index.php?CMD[showExt]='.$extKey.'&CMD[load]=1&CMD[clrCmd]=1&SET[singleDetails]=info').'">'.$this->installButton().'</a>'; if (in_array($extKey,$this->requiredExt)) { $loadUnloadLink='<strong>'.$GLOBALS['TBE_TEMPLATE']->rfw('Rq').'</strong>'; } $theRowClass = t3lib_extMgm::isLoaded($extKey)? 'em-listbg1' : 'em-listbg2'; $extensions[]=$this->extensionListRow($extKey,$list[$extKey],array('<td class="bgColor">'.$loadUnloadLink.'</td>'),$theRowClass); } } if(count($extensions)) { $lines[]='<tr><td colspan="'.(3+$this->detailCols[$this->MOD_SETTINGS['display_details']]).'"><br /></td></tr>'; $lines[]='<tr><td colspan="'.(3+$this->detailCols[$this->MOD_SETTINGS['display_details']]).'"><img src="'.$GLOBALS['BACK_PATH'].'gfx/i/sysf.gif" width="18" height="16" align="top" alt="" /><strong>'.$this->listOrderTitle($this->MOD_SETTINGS['listOrder'],$catName).'</strong></td></tr>'; $lines[] = implode(chr(10),$extensions); } } $content.='<!--EXTENSION KEYS:'.trim(implode(chr(10),$allKeys)).'-->'; $content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'avail', $GLOBALS['BACK_PATH'],'|<br/>'); $content.= 'If you want to use an extension in TYPO3, you should simply click the "plus" button '.$this->installButton().' . <br /> Installed extensions can also be removed again - just click the remove button '.$this->removeButton().' .<br /><br />'; $content.= '<label for="_lookUp">Look up:</label> <input type="text" id="_lookUp" name="_lookUp" value="'.htmlspecialchars($this->lookUpStr).'" /><input type="submit" value="Search"/><br/><br/>'; $content.= $this->securityHint.'<br /><br />'; $content.= '<table border="0" cellpadding="2" cellspacing="1">'.implode('',$lines).'</table>'; $this->content.=$this->doc->section('Available Extensions - Grouped by: '.$this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']],$content,0,1); } } /** * Listing remote extensions from online repository * * @return void */ function extensionList_import() { global $TYPO3_LOADED_EXT; $content=''; // Listing from online repository: if ($this->listRemote) { list($inst_list,) = $this->getInstalledExtensions(); $this->inst_keys = array_flip(array_keys($inst_list)); $this->detailCols[1]+=6; // see if we have an extensionlist at all $this->extensionCount = $this->xmlhandler->countExtensions(); if (!$this->extensionCount) { $content .= $this->fetchMetaData('extensions'); } if($this->MOD_SETTINGS['listOrder']=='author_company') { $this->listingLimit = $this->listingLimitAuthor; } $this->pointer = intval(t3lib_div::_GP('pointer')); $offset = $this->listingLimit*$this->pointer; if($this->MOD_SETTINGS['display_own'] && strlen($this->fe_user['username'])) { $this->xmlhandler->searchExtensionsXML($this->listRemote_search, $this->fe_user['username'], $this->MOD_SETTINGS['listOrder']); } else { $this->xmlhandler->searchExtensionsXML($this->listRemote_search, '', $this->MOD_SETTINGS['listOrder'], false, false, $offset, $this->listingLimit); } if (count($this->xmlhandler->extensionsXML)) { list($list,$cat) = $this->prepareImportExtList(true); // Available extensions if (is_array($cat[$this->MOD_SETTINGS['listOrder']])) { $lines=array(); $lines[]=$this->extensionListRowHeader(' class="bgColor5"',array('<td><img src="clear.gif" width="18" height="1" alt="" /></td>'),1); foreach($cat[$this->MOD_SETTINGS['listOrder']] as $catName => $extEkeys) { if (count($extEkeys)) { $lines[]='<tr><td colspan="'.(3+$this->detailCols[$this->MOD_SETTINGS['display_details']]).'"><br /></td></tr>'; $lines[]='<tr><td colspan="'.(3+$this->detailCols[$this->MOD_SETTINGS['display_details']]).'"><img src="'.$GLOBALS['BACK_PATH'].'gfx/i/sysf.gif" width="18" height="16" align="top" alt="" /><strong>'.$this->listOrderTitle($this->MOD_SETTINGS['listOrder'],$catName).'</strong></td></tr>'; natcasesort($extEkeys); reset($extEkeys); while(list($extKey)=each($extEkeys)) { $version = array_keys($list[$extKey]['versions']); $version = end($version); $ext = $list[$extKey]['versions'][$version]; $ext['downloadcounter_all'] = $list[$extKey]['downloadcounter']; $ext['_ICON'] = $list[$extKey]['_ICON']; $loadUnloadLink=''; if ($inst_list[$extKey]['type']!='S' && (!isset($inst_list[$extKey]) || $this->versionDifference($version,$inst_list[$extKey]['EM_CONF']['version'],$this->versionDiffFactor))) { if (isset($inst_list[$extKey])) { // update $loc= ($inst_list[$extKey]['type']=='G'?'G':'L'); $aUrl = 'index.php?CMD[importExt]='.$extKey.'&CMD[extVersion]='.$version.'&CMD[loc]='.$loc; $loadUnloadLink.= '<a href="'.htmlspecialchars($aUrl).'"><img src="'.$GLOBALS['BACK_PATH'].'gfx/import_update.gif" width="12" height="12" title="Update the extension in \''.($loc=='G'?'global':'local').'\' from online repository to server" alt="" /></a>'; } else { // import $aUrl = 'index.php?CMD[importExt]='.$extKey.'&CMD[extVersion]='.$version.'&CMD[loc]=L'; $loadUnloadLink.= '<a href="'.htmlspecialchars($aUrl).'"><img src="'.$GLOBALS['BACK_PATH'].'gfx/import.gif" width="12" height="12" title="Import this extension to \'local\' dir typo3conf/ext/ from online repository." alt="" /></a>'; } } else { $loadUnloadLink = ' '; } if (isset($inst_list[$extKey])) { $theRowClass = t3lib_extMgm::isLoaded($extKey) ? 'em-listbg1' : 'em-listbg2'; } else { $theRowClass = 'em-listbg3'; } $lines[]=$this->extensionListRow($extKey,$ext,array('<td class="bgColor">'.$loadUnloadLink.'</td>'),$theRowClass,$inst_list,1,'index.php?CMD[importExtInfo]='.rawurlencode($extKey)); unset($list[$extKey]); } } } unset($list); // CSH: $content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'import_ter', $GLOBALS['BACK_PATH'],'|<br/>'); $onsubmit = "window.location.href='index.php?ter_connect=1&ter_search='+escape(this.elements['_lookUp'].value);return false;"; $content.= '</form><form action="index.php" method="post" onsubmit="'.htmlspecialchars($onsubmit).'"><label for="_lookUp">List or look up <strong'.($this->MOD_SETTINGS['display_unchecked']?' style="color:#900;">all':' style="color:#090;">reviewed').'</strong> extensions</label><br /> <input type="text" id="_lookUp" name="_lookUp" value="'.htmlspecialchars($this->listRemote_search).'" /> <input type="submit" value="Look up" /><br /><br />'; $content .= $this->browseLinks(); $content.= ' <!-- TER Extensions list --> <table border="0" cellpadding="2" cellspacing="1">'.implode(chr(10),$lines).'</table>'; $content .= '<br />'.$this->browseLinks(); $content.= '<br /><br />'.$this->securityHint; $content.= '<br /><br /><strong>PRIVACY NOTICE:</strong><br /> '.$this->privacyNotice; $this->content.=$this->doc->section('Extensions in TYPO3 Extension Repository (online) - Grouped by: '.$this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']],$content,0,1); // Plugins which are NOT uploaded to repository but present on this server. $content=''; $lines=array(); if (count($this->inst_keys)) { reset($this->inst_keys); while(list($extKey)=each($this->inst_keys)) { $this->xmlhandler->searchExtensionsXML($extKey, '', '', true); if((strlen($this->listRemote_search) && !stristr($extKey,$this->listRemote_search)) || isset($this->xmlhandler->extensionsXML[$extKey])) continue; $loadUnloadLink = t3lib_extMgm::isLoaded($extKey)? '<a href="'.htmlspecialchars('index.php?CMD[showExt]='.$extKey.'&CMD[remove]=1&CMD[clrCmd]=1&SET[singleDetails]=info').'">'.$this->removeButton().'</a>': '<a href="'.htmlspecialchars('index.php?CMD[showExt]='.$extKey.'&CMD[load]=1&CMD[clrCmd]=1&SET[singleDetails]=info').'">'.$this->installButton().'</a>'; if (in_array($extKey,$this->requiredExt)) $loadUnloadLink='<strong>'.$GLOBALS['TBE_TEMPLATE']->rfw('Rq').'</strong>'; $lines[]=$this->extensionListRow($extKey,$inst_list[$extKey],array('<td class="bgColor">'.$loadUnloadLink.'</td>'),t3lib_extMgm::isLoaded($extKey)?'em-listbg1':'em-listbg2'); } } if(count($lines)) { $content.= 'This is the list of extensions which are available locally, but not in the repository.<br />They might be user-defined and should be prepended user_ then.<br /><br />'; $content.= '<table border="0" cellpadding="2" cellspacing="1">'. $this->extensionListRowHeader(' class="bgColor5"',array('<td><img src="clear.gif" width="18" height="1" alt="" /></td>')). implode('',$lines).'</table>'; $this->content.=$this->doc->spacer(20); $this->content.=$this->doc->section('Extensions found only on this server',$content,0,1); } } } else { $content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'import_ter', $GLOBALS['BACK_PATH'],'|<br/>'); $onsubmit = "window.location.href='index.php?ter_connect=1&ter_search='+escape(this.elements['_lookUp'].value);return false;"; $content.= '</form><form action="index.php" method="post" onsubmit="'.htmlspecialchars($onsubmit).'"><label for="_lookUp">List or look up <strong'.($this->MOD_SETTINGS['display_unchecked']?' style="color:#900;">all':' style="color:#090;">reviewed').'</strong> extensions</label><br /> <input type="text" id="_lookUp" name="_lookUp" value="'.htmlspecialchars($this->listRemote_search).'" /> <input type="submit" value="Look up" /><br /><br />'; $content.= '<p><strong>No matching extensions found.</strong></p>'; $content.= '<br /><br /><strong>PRIVACY NOTICE:</strong><br /> '.$this->privacyNotice; $this->content.=$this->doc->section('Extensions in TYPO3 Extension Repository (online) - Grouped by: '.$this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']],$content,0,1); } } else { // CSH $content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'import', $GLOBALS['BACK_PATH'],'|<br/>'); $onsubmit = "window.location.href='index.php?ter_connect=1&ter_search='+escape(this.elements['_lookUp'].value);return false;"; $content.= '</form><form action="index.php" method="post" onsubmit="'.htmlspecialchars($onsubmit).'"><label for="_lookUp">List or look up <strong'.($this->MOD_SETTINGS['display_unchecked']?' style="color:#900;">all':' style="color:#090;">reviewed').'</strong> extensions</label><br /> <input type="text" id="_lookUp" name="_lookUp" value="" /> <input type="submit" value="Look up" /><br /><br />'; if ($this->CMD['fetchMetaData']) { // fetches mirror/extension data from online rep. $content .= $this->fetchMetaData($this->CMD['fetchMetaData']); } else { $onCLick = "window.location.href='index.php?CMD[fetchMetaData]=extensions';return false;"; $content.= 'Connect to the current mirror and retrieve the current list of available plugins from the TYPO3 Extension Repository.<br /> <input type="submit" value="Retrieve/Update" onclick="'.htmlspecialchars($onCLick).'" />'; if (is_file(PATH_site.'typo3temp/extensions.xml.gz')) { $dateFormat = $GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy']; $timeFormat = $GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm']; $content.= ' (last update: '.date($dateFormat.' '.$timeFormat,filemtime(PATH_site.'typo3temp/extensions.xml.gz')).')'; } } $content.= '<br /><br />'.$this->securityHint; $content.= '<br /><br /><strong>PRIVACY NOTICE:</strong><br />'.$this->privacyNotice; $this->content.=$this->doc->section('Extensions in TYPO3 Extension Repository',$content,0,1); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -