⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class.em_index.php

📁 Typo3, 开源里边最强大的
💻 PHP
📖 第 1 页 / 共 5 页
字号:
			// Upload:		if ($this->importAtAll())	{			$content= '</form><form action="index.php" enctype="'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'].'" method="post">			<label for="upload_ext_file">Upload extension file (.t3x):</label><br />				<input type="file" size="60" id="upload_ext_file" name="upload_ext_file" /><br />				... to location:<br />				<select name="CMD[loc]">';			if ($this->importAsType('L'))	$content.='<option value="L">Local (../typo3conf/ext/)</option>';			if ($this->importAsType('G'))	$content.='<option value="G">Global (typo3/ext/)</option>';			if ($this->importAsType('S'))	$content.='<option value="S">System (typo3/sysext/)</option>';			$content.='</select><br />	<input type="checkbox" value="1" name="CMD[uploadOverwrite]" id="checkUploadOverwrite" /> <label for="checkUploadOverwrite">Overwrite any existing extension!</label><br />	<input type="submit" name="CMD[uploadExt]" value="Upload extension file" /><br />			';		} else $content=$this->noImportMsg();		$this->content.=$this->doc->spacer(20);		$this->content.=$this->doc->section('Upload extension file directly (.t3x):',$content,0,1);	}	/**	 * Generates a link to the next page of extensions	 *	 * @return	void	 */	function browseLinks()	{		$content = '';		if ($this->pointer)	{			$content .= '<a href="'.t3lib_div::linkThisScript(array('pointer' => $this->pointer-1)).'" class="typo3-prevPage"><img'.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'],'gfx/pilleft_n.gif','width="14" height="14"').' alt="Prev page" /> Prev page</a>';		}		if ($content) $content .= '&nbsp;&nbsp;&nbsp;';		if (intval($this->xmlhandler->matchingCount/$this->listingLimit)>$this->pointer)	{			$content .= '<a href="'.t3lib_div::linkThisScript(array('pointer' => $this->pointer+1)).'" class="typo3-nextPage"><img'.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'],'gfx/pilright_n.gif','width="14" height="14"').' alt="Next page" /> Next page</a>';		}		$upper = (($this->pointer+1)*$this->listingLimit);		if ($upper>$this->xmlhandler->matchingCount)	{			$upper = $this->xmlhandler->matchingCount;		}		if ($content) $content .= '<br /><br />Showing extensions <strong>'.($this->pointer*$this->listingLimit+1).'</strong> to <strong>'.$upper.'</strong>';		if ($content) $content .= '<br /><br />';		return $content;	}	/**	 * Allows changing of settings	 *	 * @return	void	 */	function alterSettings()	{			// Prepare the HTML output:		$content.= '			'.t3lib_BEfunc::cshItem('_MOD_tools_em', 'settings', $GLOBALS['BACK_PATH'],'|<br/>').'			<fieldset><legend>Security Settings</legend>			<table border="0" cellpadding="2" cellspacing="2">				<tr class="bgColor4">					<td><label for="display_unchecked">Enable extensions without review (basic security check):</label></td>					<td>'.t3lib_BEfunc::getFuncCheck(0,'SET[display_unchecked]',$this->MOD_SETTINGS['display_unchecked'],'','','id="display_unchecked"').'</td>				</tr>			</table>			<strong>Notice:</strong> Make sure you know what consequences enabling this checkbox might have. Check the <a href="http://typo3.org/extensions/what-are-reviews/" target="_blank">information on typo3.org about security reviewing</a>!			</fieldset>			<br />			<br />			<fieldset><legend>User Settings</legend>			<table border="0" cellpadding="2" cellspacing="2">				<tr class="bgColor4">					<td><label for="set_fe_u">Enter repository username:</label></td>					<td><input type="text" id="set_fe_u" name="SET[fe_u]" value="'.htmlspecialchars($this->MOD_SETTINGS['fe_u']).'" /></td>				</tr>				<tr class="bgColor4">					<td><label for="set_fe_p">Enter repository password:</label></td>					<td><input type="password" id="set_fe_p" name="SET[fe_p]" value="'.htmlspecialchars($this->MOD_SETTINGS['fe_p']).'" /></td>				</tr>			</table>			<strong>Notice:</strong> This is <em>not</em> your password to the TYPO3 backend! This user information is what is needed to log in at typo3.org with your account there!			</fieldset>			<br />			<br />			<fieldset><legend>Mirror selection</legend>			<table border="0" cellpadding="2" cellspacing="2">				<tr class="bgColor4">					<td><label for="set_mirror_list_url">Enter mirror list URL:</label></a></td>					<td><input type="text" size="50" id="set_mirror_list_url" name="SET[mirrorListURL]" value="'.htmlspecialchars($this->MOD_SETTINGS['mirrorListURL']).'" /></td>				</tr>			</table>			<br />			<p>Select a mirror from below. This list is built from the online mirror list retrieved from the URL above.<br /><br /></p>			<fieldset><legend>Mirror list</legend>';		if(!empty($this->MOD_SETTINGS['mirrorListURL'])) {			if ($this->CMD['fetchMetaData'])	{	// fetches mirror/extension data from online rep.				$content .= $this->fetchMetaData($this->CMD['fetchMetaData']);			} else {				$content.= '<a href="index.php?CMD[fetchMetaData]=mirrors">Click here to reload the list.</a>';			}		}		$content .= '<br />			<table cellspacing="4" style="text-align:left; vertical-alignment:top;">			<tr><td>Use</td><td>Name</td><td>URL</td><td>Country</td><td>Sponsored by</td></tr>		';		if (!strlen($this->MOD_SETTINGS['extMirrors'])) $this->fetchMetaData('mirrors');		$extMirrors = unserialize($this->MOD_SETTINGS['extMirrors']);		$extMirrors[''] = array('title'=>'Random (recommended!)');		ksort($extMirrors);		if(is_array($extMirrors)) {			foreach($extMirrors as $k => $v) {				if(isset($v['sponsor'])) {					$sponsor = '<a href="'.htmlspecialchars($v['sponsor']['link']).'" target="_new"><img src="'.$v['sponsor']['logo'].'" title="'.htmlspecialchars($v['sponsor']['name']).'" alt="'.htmlspecialchars($v['sponsor']['name']).'" /></a>';				}				$selected = ($this->MOD_SETTINGS['selectedMirror']==$k) ? 'checked="checked"' : '';				$content.='<tr class="bgColor4">			<td><input type="radio" name="SET[selectedMirror]" id="selectedMirror'.$k.'" value="'.$k.'" '.$selected.'/></td><td><label for="selectedMirror'.$k.'">'.htmlspecialchars($v['title']).'</label></td><td>'.htmlspecialchars($v['host'].$v['path']).'</td><td>'.$v['country'].'</td><td>'.$sponsor.'</td></tr>';			}		}		$content.= '			</table>			</fieldset>			<br />			<table border="0" cellpadding="2" cellspacing="2">				<tr class="bgColor4">					<td><label for="set_rep_url">Enter repository URL:</label></td>					<td><input type="text" size="50" id="set_rep_url" name="SET[rep_url]" value="'.htmlspecialchars($this->MOD_SETTINGS['rep_url']).'" /></td>				</tr>			</table>			If you set a repository URL, this overrides the use of a mirror. Use this to select a specific (private) repository.<br />			</fieldset>			<br />			<input type="submit" value="Update" />		';		$this->content.=$this->doc->section('Repository settings',$content,0,1);	}	/**	 * Allows to set the translation preferences and check the status	 *	 * @return	void	 */	function translationHandling()	{		global $LANG, $TYPO3_LOADED_EXT;		$LANG->includeLLFile('EXT:setup/mod/locallang.xml');		$incoming = t3lib_div::_POST('SET');		if(isset($incoming['selectedLanguages']) && is_array($incoming['selectedLanguages'])) {			t3lib_BEfunc::getModuleData($this->MOD_MENU, array('selectedLanguages' => serialize($incoming['selectedLanguages'])), $this->MCONF['name'], '', 'selectedLanguages');			$this->MOD_SETTINGS['selectedLanguages'] = serialize($incoming['selectedLanguages']);		}		$selectedLanguages = unserialize($this->MOD_SETTINGS['selectedLanguages']);		if(count($selectedLanguages)==1 && empty($selectedLanguages[0])) $selectedLanguages = array();		$theLanguages = t3lib_div::trimExplode('|',TYPO3_languages);		foreach($theLanguages as $val)  {			if ($val!='default')    {				$localLabel = '  -  ['.htmlspecialchars($GLOBALS['LOCAL_LANG']['default']['lang_'.$val]).']';				$selected = (is_array($selectedLanguages) && in_array($val, $selectedLanguages)) ? ' selected="selected"' : '';				$opt[$GLOBALS['LOCAL_LANG']['default']['lang_'.$val].'--'.$val]='             <option value="'.$val.'"'.$selected.'>'.$LANG->getLL('lang_'.$val,1).$localLabel.'</option>';			}		}		ksort($opt);			// Prepare the HTML output:		$content.= '			'.t3lib_BEfunc::cshItem('_MOD_tools_em', 'translation', $GLOBALS['BACK_PATH'],'|<br/>').'			<fieldset><legend>Translation Settings</legend>			<table border="0" cellpadding="2" cellspacing="2">				<tr class="bgColor4">					<td>Languages to fetch:</td>					<td>					  <select name="SET[selectedLanguages][]" multiple="multiple" size="10">					  <option></option>'.            implode('',$opt).'            </select>          </td>				</tr>			</table>			<br />			<p>For the selected languages the EM tries to download and install translation files if available, whenever an extension is installed. (This replaces the <code>csh_*</code> extensions that were used to install core translations before TYPO3 version 4!)<br />			<br />To request an update/install for already loaded extensions, see below.</p>			</fieldset>			<br />			<input type="submit" value="Save selection" />			<br />			</fieldset>';		$this->content.=$this->doc->section('Translation settings',$content,0,1);		if(count($selectedLanguages)>0) {			$mirrorURL = $this->getMirrorURL();			$content = '<input type="button" value="Check status against repository" onclick="document.location.href=\''.t3lib_div::linkThisScript(array('l10n'=>'check')).'\'" />&nbsp;<input type="button" value="Update from repository" onclick="document.location.href=\''.t3lib_div::linkThisScript(array('l10n'=>'update')).'\'" />';			if(t3lib_div::_GET('l10n') == 'check') {				$loadedExtensions = array_keys($TYPO3_LOADED_EXT);				$loadedExtensions = array_diff($loadedExtensions,array('_CACHEFILE'));					// Override content output - we now do that ourself:				echo ($this->content . $this->doc->section('Translation status',$content,0,1));				$this->doPrintContent = FALSE;				flush();				echo '				<br />				<br />				<p id="progress-message">					Checking translation status, please wait ...				</p>				<br />				<div style="width:100%; height:20px; border: 1px solid black;">					<div id="progress-bar" style="float: left; width: 0%; height: 20px; background-color:green;">&nbsp;</div>					<div id="transparent-bar" style="float: left; width: 100%; height: 20px; background-color:'.$this->doc->bgColor2.';">&nbsp;</div>				</div>				<br />				<br /><p>This table shows the status of the loaded extension\'s translations.</p><br />				<table border="0" cellpadding="2" cellspacing="2">					<tr class="bgColor2"><td>Extension key</td>				';				foreach($selectedLanguages as $lang) {					echo ('<td>'.$LANG->getLL('lang_'.$lang,1).'</td>');				}				echo ('</tr>');				$counter = 1;				foreach($loadedExtensions as $extKey) {					$percentDone = intval (($counter / count($loadedExtensions)) * 100);					echo ('					<script>						document.getElementById("progress-bar").style.width = "'.$percentDone.'%";						document.getElementById("transparent-bar").style.width = "'.(100-$percentDone).'%";						document.getElementById("progress-message").firstChild.data="Checking translation status for extension \"'.$extKey.'\" ...";					</script>					');					flush();					$translationStatusArr = $this->terConnection->fetchTranslationStatus($extKey,$mirrorURL);					echo ('<tr class="bgColor4"><td>'.$extKey.'</td>');					foreach($selectedLanguages as $lang) {						// remote unknown -> keine l10n						if(!isset($translationStatusArr[$lang])) {							echo ('<td title="No translation available">N/A</td>');							continue;						}							// determine local md5 from zip						if(is_file(PATH_site.'typo3temp/'.$extKey.'-l10n-'.$lang.'.zip')) {							$localmd5 = md5_file(PATH_site.'typo3temp/'.$extKey.'-l10n-'.$lang.'.zip');						} else {							echo ('<td title="Not installed / Unknown" style="background-color:#ff0">???</td>');							continue;						}							// local!=remote -> needs update						if($localmd5 != $translationStatusArr[$lang]['md5']) {							echo ('<td title="Needs update" style="background-color:#ff0">UPD</td>');							continue;						}						echo ('<td title="Is up to date" style="background-color:#69a550">OK</td>');					}					echo ('</tr>');					$counter ++;				}				echo '</table>					<script>						document.getElementById("progress-message").firstChild.data="Check done.";					</script>				';				echo $this->doc->endPage();				return '';			} elseif(t3lib_div::_GET('l10n') == 'update') {				$loadedExtensions = array_keys($TYPO3_LOADED_EXT);				$loadedExtensions = array_diff($loadedExtensions,array('_CACHEFILE'));					// Override content output - we now do that ourself:				echo ($this->content . $this->doc->section('Translation status',$content,0,1));				$this->doPrintContent = FALSE;				flush();				echo ('				<br />				<br />				<p id="progress-message">					Updating translations, please wait ...				</p>				<br />				<div style="width:100%; height:20px; border: 1px solid black;">					<div id="progress-bar" style="float: left; width: 0%; height: 20px; background-color:green;">&nbsp;</div>					<div id="transparent-bar" style="float: left; width: 100%; height: 20px; background-color:'.$this->doc->bgColor2.';">&nbsp;</div>				</div>				<br />				<br /><p>This table shows the update results of the loaded extension\'s translations.<br />				<em>If you want to force a full check/update, delete the l10n zip-files from the typo3temp folder.</em></p><br />				<table border="0" cellpadding="2" cellspacing="2">					<tr class="bgColor2"><td>Extension key</td>				');				foreach($selectedLanguages as $lang) {					echo '<td>'.$LANG->getLL('lang_'.$lang,1).'</td>';				}				echo '</tr>';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -