Feature #23259 » bug-15219.diff
typo3/sysext/lang/locallang_mod_tools_em.xml (working copy) | ||
---|---|---|
<label index="security_header">Found a security problem? Please get in touch with us!</label>
|
||
<label index="security_warning_extensions">Please be aware that extensions are third-party software. Installing an extension is a security risk, as the high level of quality and security in the TYPO3 Core can not be assured in these extensions.</label>
|
||
<label index="security_descr">If you think you have found a security issue in TYPO3 or an extension, please contact the %sTYPO3 security team%s! Thank you!</label>
|
||
<label index="menu_loaded_extensions">Loaded extensions</label>
|
||
<label index="menu_install_extensions">Install extensions</label>
|
||
<label index="menu_manage_extensions">Manage extensions</label>
|
||
<label index="menu_import_extensions">Import extensions</label>
|
||
<label index="menu_translation_handling">Translation handling</label>
|
||
<label index="menu_settings">Settings</label>
|
||
... | ... | |
<label index="display_shy">Display shy extensions:</label>
|
||
<label index="only_my_ext">Only my extensions:</label>
|
||
<label index="show_obsolete">Show obsolete:</label>
|
||
<label index="filter_installed">Only installed:</label>
|
||
<label index="go_back">Go back</label>
|
||
<label index="look_up">Look up:</label>
|
||
<label index="loaded_exts">Loaded Extensions</label>
|
typo3/sysext/em/mod1/class.em_index.php (working copy) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 1999-2010 Kasper Skaarhoj (kasperYYYY@typo3.com)
|
||
* (c) 2005-2010 Karsten Dambekalns <karsten@typo3.org>
|
||
* All rights reserved
|
||
*
|
||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||
* free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* The GNU General Public License can be found at
|
||
* http://www.gnu.org/copyleft/gpl.html.
|
||
* A copy is found in the textfile GPL.txt and important notices to the license
|
||
* from the author is found in LICENSE.txt distributed with these scripts.
|
||
*
|
||
*
|
||
* This script is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
* Copyright notice
|
||
*
|
||
* (c) 1999-2010 Kasper Skaarhoj (kasperYYYY@typo3.com)
|
||
* (c) 2005-2010 Karsten Dambekalns <karsten@typo3.org>
|
||
* All rights reserved
|
||
*
|
||
* This script is part of the TYPO3 project. The TYPO3 project is
|
||
* free software; you can redistribute it and/or modify
|
||
* it under the terms of the GNU General Public License as published by
|
||
* the Free Software Foundation; either version 2 of the License, or
|
||
* (at your option) any later version.
|
||
*
|
||
* The GNU General Public License can be found at
|
||
* http://www.gnu.org/copyleft/gpl.html.
|
||
* A copy is found in the textfile GPL.txt and important notices to the license
|
||
* from the author is found in LICENSE.txt distributed with these scripts.
|
||
*
|
||
*
|
||
* This script is distributed in the hope that it will be useful,
|
||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
* GNU General Public License for more details.
|
||
*
|
||
* This copyright notice MUST APPEAR in all copies of the script!
|
||
***************************************************************/
|
||
/**
|
||
* Module: Extension manager
|
||
*
|
||
... | ... | |
* 584: function printContent()
|
||
*
|
||
* SECTION: Function Menu Applications
|
||
* 609: function extensionList_loaded()
|
||
* 664: function extensionList_installed()
|
||
* 736: function extensionList_import()
|
||
* 903: function alterSettings()
|
||
* 735: function extensionList()
|
||
* 814: function extensionList_import()
|
||
* 1061: function alterSettings()
|
||
*
|
||
* SECTION: Command Applications (triggered by GET var)
|
||
* 1005: function importExtInfo($extKey, $version='')
|
||
... | ... | |
*
|
||
*/
|
||
// Include classes needed:
|
||
// Include classes needed:
|
||
require_once('class.em_xmlhandler.php');
|
||
require_once('class.em_terconnection.php');
|
||
require_once('class.em_unzip.php');
|
||
$GLOBALS['LANG']->includeLLFile('EXT:lang/locallang_mod_tools_em.xml');
|
||
// from tx_ter by Robert Lemke
|
||
// from tx_ter by Robert Lemke
|
||
define('TX_TER_RESULT_EXTENSIONSUCCESSFULLYUPLOADED', '10504');
|
||
define('EM_INSTALL_VERSION_MIN', 1);
|
||
... | ... | |
*/
|
||
class SC_mod_tools_em_index extends t3lib_SCbase {
|
||
// Internal, static:
|
||
// Internal, static:
|
||
var $versionDiffFactor = 1; // This means that version difference testing for import is detected for sub-versions only, not dev-versions. Default: 1000
|
||
var $systemInstall = 0; // If "1" then installs in the sysext directory is allowed. Default: 0
|
||
var $requiredExt = ''; // List of required extension (from TYPO3_CONF_VARS)
|
||
... | ... | |
'templates' => array(),
|
||
'example' => array(),
|
||
'doc' => array()
|
||
)
|
||
)
|
||
);
|
||
var $categories = array(); // Extension Categories (static var); see init()
|
||
... | ... | |
'test' => '#979797',
|
||
'obsolete' => '#000000',
|
||
'excludeFromUpdates' => '#cf7307'
|
||
);
|
||
);
|
||
/**
|
||
* "TYPE" information; labels, paths, description etc. See init()
|
||
*/
|
||
var $typeLabels = array();
|
||
var $typeDescr = array();
|
||
var $typePaths = Array(); // Also static, set in init()
|
||
var $typeBackPaths = Array(); // Also static, set in init()
|
||
/**
|
||
* "TYPE" information; labels, paths, description etc. See init()
|
||
*/
|
||
var $typeLabels = array();
|
||
var $typeDescr = array();
|
||
var $typePaths = Array(); // Also static, set in init()
|
||
var $typeBackPaths = Array(); // Also static, set in init()
|
||
var $typeRelPaths = Array (
|
||
var $typeRelPaths = Array (
|
||
'S' => 'sysext/',
|
||
'G' => 'ext/',
|
||
'L' => '../typo3conf/ext/',
|
||
);
|
||
);
|
||
var $detailCols = Array (
|
||
var $detailCols = Array (
|
||
0 => 2,
|
||
1 => 5,
|
||
2 => 6,
|
||
3 => 6,
|
||
4 => 4,
|
||
5 => 1
|
||
);
|
||
);
|
||
var $fe_user = array(
|
||
var $fe_user = array(
|
||
'username' => '',
|
||
'password' => '',
|
||
);
|
||
);
|
||
var $privacyNotice; // Set in init()
|
||
var $securityHint; // Set in init()
|
||
var $editTextExtensions = 'html,htm,txt,css,tmpl,inc,php,sql,conf,cnf,pl,pm,sh,xml,ChangeLog';
|
||
var $nameSpaceExceptions = 'beuser_tracking,design_components,impexp,static_file_edit,cms,freesite,quickhelp,classic_welcome,indexed_search,sys_action,sys_workflows,sys_todos,sys_messages,direct_mail,sys_stat,tt_address,tt_board,tt_calender,tt_guest,tt_links,tt_news,tt_poll,tt_rating,tt_products,setup,taskcenter,tsconfig_help,context_help,sys_note,tstemplate,lowlevel,install,belog,beuser,phpmyadmin,aboutmodules,imagelist,setup,taskcenter,sys_notepad,viewpage,adodb';
|
||
var $privacyNotice; // Set in init()
|
||
var $securityHint; // Set in init()
|
||
var $editTextExtensions = 'html,htm,txt,css,tmpl,inc,php,sql,conf,cnf,pl,pm,sh,xml,ChangeLog';
|
||
var $nameSpaceExceptions = 'beuser_tracking,design_components,impexp,static_file_edit,cms,freesite,quickhelp,classic_welcome,indexed_search,sys_action,sys_workflows,sys_todos,sys_messages,direct_mail,sys_stat,tt_address,tt_board,tt_calender,tt_guest,tt_links,tt_news,tt_poll,tt_rating,tt_products,setup,taskcenter,tsconfig_help,context_help,sys_note,tstemplate,lowlevel,install,belog,beuser,phpmyadmin,aboutmodules,imagelist,setup,taskcenter,sys_notepad,viewpage,adodb';
|
||
// Default variables for backend modules
|
||
var $MCONF = array(); // Module configuration
|
||
var $MOD_MENU = array(); // Module menu items
|
||
var $MOD_SETTINGS = array(); // Module session settings
|
||
/**
|
||
var $MCONF = array(); // Module configuration
|
||
var $MOD_MENU = array(); // Module menu items
|
||
var $MOD_SETTINGS = array(); // Module session settings
|
||
/**
|
||
* Document Template Object
|
||
*
|
||
* @var noDoc
|
||
*/
|
||
var $doc;
|
||
var $content; // Accumulated content
|
||
var $doc;
|
||
var $content; // Accumulated content
|
||
var $inst_keys = array(); // Storage of installed extensions
|
||
var $gzcompress = 0; // Is set true, if system support compression.
|
||
var $inst_keys = array(); // Storage of installed extensions
|
||
var $gzcompress = 0; // Is set true, if system support compression.
|
||
/**
|
||
* instance of TER connection handler
|
||
*
|
||
* @var SC_mod_tools_em_terconnection
|
||
*/
|
||
var $terConnection;
|
||
/**
|
||
* instance of TER connection handler
|
||
*
|
||
* @var SC_mod_tools_em_terconnection
|
||
*/
|
||
var $terConnection;
|
||
/**
|
||
* XML handling class for the TYPO3 Extension Manager
|
||
*
|
||
* @var SC_mod_tools_em_xmlhandler
|
||
*/
|
||
var $xmlhandler;
|
||
var $JScode; // JavaScript code to be forwared to $this->doc->JScode
|
||
/**
|
||
* XML handling class for the TYPO3 Extension Manager
|
||
*
|
||
* @var SC_mod_tools_em_xmlhandler
|
||
*/
|
||
var $xmlhandler;
|
||
var $JScode; // JavaScript code to be forwared to $this->doc->JScode
|
||
// GPvars:
|
||
var $CMD = array(); // CMD array
|
||
var $listRemote; // If set, connects to remote repository
|
||
var $lookUpStr; // Search string when listing local extensions
|
||
var $CMD = array(); // CMD array
|
||
var $listRemote; // If set, connects to remote repository
|
||
var $lookUpStr; // Search string when listing local extensions
|
||
/*********************************
|
||
*
|
||
* Standard module initialization
|
||
*
|
||
*********************************/
|
||
/**
|
||
* Standard init function of a module.
|
||
*
|
||
* @return void
|
||
*/
|
||
function init() {
|
||
global $BE_USER,$LANG,$BACK_PATH,$TYPO3_CONF_VARS;
|
||
/*********************************
|
||
*
|
||
* Standard module initialization
|
||
*
|
||
*********************************/
|
||
/**
|
||
* Standard init function of a module.
|
||
*
|
||
* @return void
|
||
*/
|
||
function init() {
|
||
global $BE_USER,$LANG,$BACK_PATH,$TYPO3_CONF_VARS;
|
||
/**
|
||
* Extension Categories (static var)
|
||
* Content must be redundant with the same internal variable as in class.tx_extrep.php!
|
||
*/
|
||
$this->categories = array(
|
||
$this->categories = array(
|
||
'be' => $GLOBALS['LANG']->getLL('category_BE'),
|
||
'module' => $GLOBALS['LANG']->getLL('category_BE_modules'),
|
||
'fe' => $GLOBALS['LANG']->getLL('category_FE'),
|
||
... | ... | |
'templates' => $GLOBALS['LANG']->getLL('category_templates'),
|
||
'example' => $GLOBALS['LANG']->getLL('category_examples'),
|
||
'doc' => $GLOBALS['LANG']->getLL('category_documentation')
|
||
);
|
||
);
|
||
/**
|
||
/**
|
||
* Extension States
|
||
* Content must be redundant with the same internal variable as in class.tx_extrep.php!
|
||
*/
|
||
$this->states = array(
|
||
$this->states = array(
|
||
'alpha' => $GLOBALS['LANG']->getLL('state_alpha'),
|
||
'beta' => $GLOBALS['LANG']->getLL('state_beta'),
|
||
'stable' => $GLOBALS['LANG']->getLL('state_stable'),
|
||
... | ... | |
'test' => $GLOBALS['LANG']->getLL('state_test'),
|
||
'obsolete' => $GLOBALS['LANG']->getLL('state_obsolete'),
|
||
'excludeFromUpdates' => $GLOBALS['LANG']->getLL('state_exclude_from_updates')
|
||
);
|
||
);
|
||
/**
|
||
* "TYPE" information; labels, paths, description etc.
|
||
*/
|
||
$this->typeLabels = array(
|
||
/**
|
||
* "TYPE" information; labels, paths, description etc.
|
||
*/
|
||
$this->typeLabels = array(
|
||
'S' => $GLOBALS['LANG']->getLL('type_system'),
|
||
'G' => $GLOBALS['LANG']->getLL('type_global'),
|
||
'L' => $GLOBALS['LANG']->getLL('type_local'),
|
||
);
|
||
$this->typeDescr = array(
|
||
);
|
||
$this->typeDescr = array(
|
||
'S' => $GLOBALS['LANG']->getLL('descr_system'),
|
||
'G' => $GLOBALS['LANG']->getLL('descr_global'),
|
||
'L' => $GLOBALS['LANG']->getLL('descr_local'),
|
||
);
|
||
);
|
||
// Setting paths of install scopes:
|
||
$this->typePaths = Array (
|
||
$this->typePaths = Array (
|
||
'S' => TYPO3_mainDir.'sysext/',
|
||
'G' => TYPO3_mainDir.'ext/',
|
||
'L' => 'typo3conf/ext/'
|
||
);
|
||
$this->typeBackPaths = Array (
|
||
);
|
||
$this->typeBackPaths = Array (
|
||
'S' => '../../../',
|
||
'G' => '../../../',
|
||
'L' => '../../../../'.TYPO3_mainDir
|
||
);
|
||
);
|
||
$this->privacyNotice = $GLOBALS['LANG']->getLL('privacy_notice');
|
||
$securityMessage = $GLOBALS['LANG']->getLL('security_warning_extensions') .
|
||
$this->privacyNotice = $GLOBALS['LANG']->getLL('privacy_notice');
|
||
$securityMessage = $GLOBALS['LANG']->getLL('security_warning_extensions') .
|
||
'<br /><br />' . sprintf($GLOBALS['LANG']->getLL('security_descr'),
|
||
'<a href="http://typo3.org/teams/security/" target="_blank">', '</a>'
|
||
);
|
||
$flashMessage = t3lib_div::makeInstance(
|
||
);
|
||
$flashMessage = t3lib_div::makeInstance(
|
||
't3lib_FlashMessage',
|
||
$securityMessage,
|
||
$GLOBALS['LANG']->getLL('security_header'),
|
||
t3lib_FlashMessage::INFO
|
||
);
|
||
$this->securityHint = $flashMessage->render();
|
||
$securityMessage,
|
||
$GLOBALS['LANG']->getLL('security_header'),
|
||
t3lib_FlashMessage::INFO
|
||
);
|
||
$this->securityHint = $flashMessage->render();
|
||
$this->excludeForPackaging = $GLOBALS['TYPO3_CONF_VARS']['EXT']['excludeForPackaging'];
|
||
$this->excludeForPackaging = $GLOBALS['TYPO3_CONF_VARS']['EXT']['excludeForPackaging'];
|
||
// Setting module configuration:
|
||
$this->MCONF = $GLOBALS['MCONF'];
|
||
// Setting module configuration:
|
||
$this->MCONF = $GLOBALS['MCONF'];
|
||
// Setting GPvars:
|
||
$this->CMD = is_array(t3lib_div::_GP('CMD')) ? t3lib_div::_GP('CMD') : array();
|
||
$this->lookUpStr = trim(t3lib_div::_GP('lookUp'));
|
||
$this->listRemote = t3lib_div::_GP('ter_connect');
|
||
$this->listRemote_search = trim(t3lib_div::_GP('ter_search'));
|
||
// Configure menu
|
||
$this->menuConfig();
|
||
// Setting internal static:
|
||
if ($TYPO3_CONF_VARS['EXT']['allowSystemInstall']) $this->systemInstall = 1;
|
||
$this->requiredExt = t3lib_div::trimExplode(',',$TYPO3_CONF_VARS['EXT']['requiredExt'],1);
|
||
// Initialize helper object
|
||
$this->terConnection = t3lib_div::makeInstance('SC_mod_tools_em_terconnection');
|
||
$this->terConnection->emObj = $this;
|
||
$this->terConnection->wsdlURL = $TYPO3_CONF_VARS['EXT']['em_wsdlURL'];
|
||
$this->xmlhandler = t3lib_div::makeInstance('SC_mod_tools_em_xmlhandler');
|
||
$this->xmlhandler->emObj = $this;
|
||
$this->xmlhandler->useObsolete = $this->MOD_SETTINGS['display_obsolete'];
|
||
// Initialize Document Template object:
|
||
$this->doc = t3lib_div::makeInstance('template');
|
||
$this->doc->backPath = $BACK_PATH;
|
||
$this->doc->setModuleTemplate('templates/em_index.html');
|
||
// the id is needed for getting same styles TODO: general table styles
|
||
$this->doc->bodyTagId = 'typo3-mod-tools-em-index-php';
|
||
// JavaScript
|
||
$this->doc->JScode = $this->doc->wrapScriptTags('
|
||
// Setting GPvars:
|
||
$this->CMD = is_array(t3lib_div::_GP('CMD')) ? t3lib_div::_GP('CMD') : array();
|
||
$this->lookUpStr = trim(t3lib_div::_GP('lookUp'));
|
||
$this->listRemote = t3lib_div::_GP('ter_connect');
|
||
$this->listRemote_search = trim(t3lib_div::_GP('ter_search'));
|
||
// Configure menu
|
||
$this->menuConfig();
|
||
// Setting internal static:
|
||
if ($TYPO3_CONF_VARS['EXT']['allowSystemInstall']) $this->systemInstall = 1;
|
||
$this->requiredExt = t3lib_div::trimExplode(',',$TYPO3_CONF_VARS['EXT']['requiredExt'],1);
|
||
// Initialize helper object
|
||
$this->terConnection = t3lib_div::makeInstance('SC_mod_tools_em_terconnection');
|
||
$this->terConnection->emObj = $this;
|
||
$this->terConnection->wsdlURL = $TYPO3_CONF_VARS['EXT']['em_wsdlURL'];
|
||
$this->xmlhandler = t3lib_div::makeInstance('SC_mod_tools_em_xmlhandler');
|
||
$this->xmlhandler->emObj = $this;
|
||
$this->xmlhandler->useObsolete = $this->MOD_SETTINGS['display_obsolete'];
|
||
// Initialize Document Template object:
|
||
$this->doc = t3lib_div::makeInstance('template');
|
||
$this->doc->backPath = $BACK_PATH;
|
||
$this->doc->setModuleTemplate('templates/em_index.html');
|
||
// the id is needed for getting same styles TODO: general table styles
|
||
$this->doc->bodyTagId = 'typo3-mod-tools-em-index-php';
|
||
// JavaScript
|
||
$this->doc->JScode = $this->doc->wrapScriptTags('
|
||
script_ended = 0;
|
||
function jumpToUrl(URL) { //
|
||
window.location.href = URL;
|
||
}
|
||
');
|
||
// Reload left frame menu
|
||
if ($this->CMD['refreshMenu']) {
|
||
$this->doc->JScode .= $this->doc->wrapScriptTags('
|
||
// Reload left frame menu
|
||
if ($this->CMD['refreshMenu']) {
|
||
$this->doc->JScode .= $this->doc->wrapScriptTags('
|
||
if(top.refreshMenu) {
|
||
top.refreshMenu();
|
||
} else {
|
||
top.TYPO3ModuleMenu.refreshMenu();
|
||
}
|
||
');
|
||
}
|
||
}
|
||
// Descriptions:
|
||
$this->descrTable = '_MOD_'.$this->MCONF['name'];
|
||
if ($BE_USER->uc['edit_showFieldHelp']) {
|
||
$LANG->loadSingleTableDescription($this->descrTable);
|
||
}
|
||
// Descriptions:
|
||
$this->descrTable = '_MOD_'.$this->MCONF['name'];
|
||
if ($BE_USER->uc['edit_showFieldHelp']) {
|
||
$LANG->loadSingleTableDescription($this->descrTable);
|
||
}
|
||
// Setting username/password etc. for upload-user:
|
||
$this->fe_user['username'] = $this->MOD_SETTINGS['fe_u'];
|
||
$this->fe_user['password'] = $this->MOD_SETTINGS['fe_p'];
|
||
parent::init();
|
||
$this->handleExternalFunctionValue('singleDetails');
|
||
}
|
||
// Setting username/password etc. for upload-user:
|
||
$this->fe_user['username'] = $this->MOD_SETTINGS['fe_u'];
|
||
$this->fe_user['password'] = $this->MOD_SETTINGS['fe_p'];
|
||
parent::init();
|
||
$this->handleExternalFunctionValue('singleDetails');
|
||
}
|
||
/**
|
||
* This function is a copy of the same function in t3lib_SCbase with one modification:
|
||
* In contrast to t3lib_SCbase::handleExternalFunctionValue() this function merges the $this->extClassConf array
|
||
* instead of overwriting it. That was necessary for including the Kickstarter as a submodule into the 'singleDetails'
|
||
* selectorbox as well as in the main 'function' selectorbox.
|
||
*
|
||
* @param string Mod-setting array key
|
||
* @param string Mod setting value, overriding the one in the key
|
||
* @return void
|
||
* @see t3lib_SCbase::handleExternalFunctionValue()
|
||
*/
|
||
function handleExternalFunctionValue($MM_key='function', $MS_value=NULL) {
|
||
$MS_value = is_null($MS_value) ? $this->MOD_SETTINGS[$MM_key] : $MS_value;
|
||
$externalItems = $this->getExternalItemConfig($this->MCONF['name'],$MM_key,$MS_value);
|
||
if (is_array($externalItems)) $this->extClassConf = array_merge($externalItems,is_array($this->extClassConf)?$this->extClassConf:array());
|
||
if (is_array($this->extClassConf) && $this->extClassConf['path']) {
|
||
$this->include_once[]=$this->extClassConf['path'];
|
||
/**
|
||
* This function is a copy of the same function in t3lib_SCbase with one modification:
|
||
* In contrast to t3lib_SCbase::handleExternalFunctionValue() this function merges the $this->extClassConf array
|
||
* instead of overwriting it. That was necessary for including the Kickstarter as a submodule into the 'singleDetails'
|
||
* selectorbox as well as in the main 'function' selectorbox.
|
||
*
|
||
* @param string Mod-setting array key
|
||
* @param string Mod setting value, overriding the one in the key
|
||
* @return void
|
||
* @see t3lib_SCbase::handleExternalFunctionValue()
|
||
*/
|
||
function handleExternalFunctionValue($MM_key='function', $MS_value=NULL) {
|
||
$MS_value = is_null($MS_value) ? $this->MOD_SETTINGS[$MM_key] : $MS_value;
|
||
$externalItems = $this->getExternalItemConfig($this->MCONF['name'],$MM_key,$MS_value);
|
||
if (is_array($externalItems)) $this->extClassConf = array_merge($externalItems,is_array($this->extClassConf)?$this->extClassConf:array());
|
||
if (is_array($this->extClassConf) && $this->extClassConf['path']) {
|
||
$this->include_once[]=$this->extClassConf['path'];
|
||
}
|
||
}
|
||
}
|
||
/**
|
||
* Configuration of which mod-menu items can be used
|
||
*
|
||
* @return void
|
||
*/
|
||
function menuConfig() {
|
||
global $BE_USER, $TYPO3_CONF_VARS;
|
||
/**
|
||
* Configuration of which mod-menu items can be used
|
||
*
|
||
* @return void
|
||
*/
|
||
function menuConfig() {
|
||
global $BE_USER, $TYPO3_CONF_VARS;
|
||
// MENU-ITEMS:
|
||
$this->MOD_MENU = array(
|
||
'function' => array(
|
||
0 => $GLOBALS['LANG']->getLL('menu_loaded_extensions'),
|
||
1 => $GLOBALS['LANG']->getLL('menu_install_extensions'),
|
||
2 => $GLOBALS['LANG']->getLL('menu_import_extensions'),
|
||
4 => $GLOBALS['LANG']->getLL('menu_translation_handling'),
|
||
3 => $GLOBALS['LANG']->getLL('menu_settings'),
|
||
5 => $GLOBALS['LANG']->getLL('menu_extension_updates'),
|
||
),
|
||
'listOrder' => array(
|
||
'cat' => $GLOBALS['LANG']->getLL('list_order_category'),
|
||
'author_company' => $GLOBALS['LANG']->getLL('list_order_author'),
|
||
'state' => $GLOBALS['LANG']->getLL('list_order_state'),
|
||
'type' => $GLOBALS['LANG']->getLL('list_order_type'),
|
||
),
|
||
'display_details' => array(
|
||
1 => $GLOBALS['LANG']->getLL('show_details'),
|
||
0 => $GLOBALS['LANG']->getLL('show_description'),
|
||
2 => $GLOBALS['LANG']->getLL('show_more_details'),
|
||
3 => $GLOBALS['LANG']->getLL('show_technical'),
|
||
4 => $GLOBALS['LANG']->getLL('show_validating'),
|
||
5 => $GLOBALS['LANG']->getLL('show_changed'),
|
||
),
|
||
'display_shy' => '',
|
||
'display_own' => '',
|
||
'display_obsolete' => '',
|
||
'display_installed' => '',
|
||
'display_files' => '',
|
||
'singleDetails' => array(
|
||
'info' => $GLOBALS['LANG']->getLL('details_info'),
|
||
'edit' => $GLOBALS['LANG']->getLL('details_edit'),
|
||
'backup' => $GLOBALS['LANG']->getLL('details_backup_delete'),
|
||
'dump' => $GLOBALS['LANG']->getLL('details_dump_db'),
|
||
'upload' => $GLOBALS['LANG']->getLL('details_upload'),
|
||
'updateModule' => $GLOBALS['LANG']->getLL('details_update'),
|
||
),
|
||
'fe_u' => '',
|
||
'fe_p' => '',
|
||
'mirrorListURL' => '',
|
||
'rep_url' => '',
|
||
'extMirrors' => '',
|
||
'selectedMirror' => '',
|
||
// MENU-ITEMS:
|
||
$this->MOD_MENU = array(
|
||
'function' => array(
|
||
0 => $GLOBALS['LANG']->getLL('menu_manage_extensions'),
|
||
1 => $GLOBALS['LANG']->getLL('menu_import_extensions'),
|
||
2 => $GLOBALS['LANG']->getLL('menu_translation_handling'),
|
||
3 => $GLOBALS['LANG']->getLL('menu_settings'),
|
||
4 => $GLOBALS['LANG']->getLL('menu_extension_updates'),
|
||
),
|
||
'listOrder' => array(
|
||
'cat' => $GLOBALS['LANG']->getLL('list_order_category'),
|
||
'author_company' => $GLOBALS['LANG']->getLL('list_order_author'),
|
||
'state' => $GLOBALS['LANG']->getLL('list_order_state'),
|
||
'type' => $GLOBALS['LANG']->getLL('list_order_type'),
|
||
),
|
||
'display_details' => array(
|
||
1 => $GLOBALS['LANG']->getLL('show_details'),
|
||
0 => $GLOBALS['LANG']->getLL('show_description'),
|
||
2 => $GLOBALS['LANG']->getLL('show_more_details'),
|
||
|
||
3 => $GLOBALS['LANG']->getLL('show_technical'),
|
||
4 => $GLOBALS['LANG']->getLL('show_validating'),
|
||
5 => $GLOBALS['LANG']->getLL('show_changed'),
|
||
),
|
||
'display_shy' => '',
|
||
'display_own' => '',
|
||
'display_obsolete' => '',
|
||
'filter_installed' => '',
|
||
'display_installed' => '',
|
||
'display_files' => '',
|
||
|
||
|
||
'singleDetails' => array(
|
||
'info' => $GLOBALS['LANG']->getLL('details_info'),
|
||
'edit' => $GLOBALS['LANG']->getLL('details_edit'),
|
||
'backup' => $GLOBALS['LANG']->getLL('details_backup_delete'),
|
||
'dump' => $GLOBALS['LANG']->getLL('details_dump_db'),
|
||
'upload' => $GLOBALS['LANG']->getLL('details_upload'),
|
||
'updateModule' => $GLOBALS['LANG']->getLL('details_update'),
|
||
),
|
||
'fe_u' => '',
|
||
'fe_p' => '',
|
||
|
||
'mirrorListURL' => '',
|
||
'rep_url' => '',
|
||
'extMirrors' => '',
|
||
'selectedMirror' => '',
|
||
|
||
'selectedLanguages' => ''
|
||
);
|
||
'selectedLanguages' => ''
|
||
);
|
||
$this->MOD_MENU['singleDetails'] = $this->mergeExternalItems($this->MCONF['name'],'singleDetails',$this->MOD_MENU['singleDetails']);
|
||
$this->MOD_MENU['singleDetails'] = $this->mergeExternalItems($this->MCONF['name'],'singleDetails',$this->MOD_MENU['singleDetails']);
|
||
// page/be_user TSconfig settings and blinding of menu-items
|
||
if (!$BE_USER->getTSConfigVal('mod.'.$this->MCONF['name'].'.allowTVlisting')) {
|
||
unset($this->MOD_MENU['display_details'][3]);
|
||
unset($this->MOD_MENU['display_details'][4]);
|
||
unset($this->MOD_MENU['display_details'][5]);
|
||
}
|
||
// page/be_user TSconfig settings and blinding of menu-items
|
||
if (!$BE_USER->getTSConfigVal('mod.'.$this->MCONF['name'].'.allowTVlisting')) {
|
||
unset($this->MOD_MENU['display_details'][3]);
|
||
unset($this->MOD_MENU['display_details'][4]);
|
||
unset($this->MOD_MENU['display_details'][5]);
|
||
}
|
||
// CLEANSE SETTINGS
|
||
$this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']);
|
||
if ($this->MOD_SETTINGS['function']==2) {
|
||
// If listing from online repository, certain items are removed though:
|
||
unset($this->MOD_MENU['listOrder']['type']);
|
||
unset($this->MOD_MENU['display_details'][2]);
|
||
unset($this->MOD_MENU['display_details'][3]);
|
||
unset($this->MOD_MENU['display_details'][4]);
|
||
unset($this->MOD_MENU['display_details'][5]);
|
||
// CLEANSE SETTINGS
|
||
$this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']);
|
||
if ($this->MOD_SETTINGS['function']==2) {
|
||
// If listing from online repository, certain items are removed though:
|
||
unset($this->MOD_MENU['listOrder']['type']);
|
||
unset($this->MOD_MENU['display_details'][1]);
|
||
unset($this->MOD_MENU['display_details'][2]);
|
||
unset($this->MOD_MENU['display_details'][3]);
|
||
unset($this->MOD_MENU['display_details'][4]);
|
||
$this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name']);
|
||
}
|
||
parent::menuConfig();
|
||
}
|
||
parent::menuConfig();
|
||
}
|
||
/**
|
||
* Main function for Extension Manager module.
|
||
*
|
||
* @return void
|
||
*/
|
||
function main() {
|
||
global $BE_USER,$LANG,$TYPO3_CONF_VARS;
|
||
/**
|
||
* Main function for Extension Manager module.
|
||
*
|
||
* @return void
|
||
*/
|
||
function main() {
|
||
global $BE_USER,$LANG,$TYPO3_CONF_VARS;
|
||
if (empty($this->MOD_SETTINGS['mirrorListURL'])) $this->MOD_SETTINGS['mirrorListURL'] = $TYPO3_CONF_VARS['EXT']['em_mirrorListURL'];
|
||
if (empty($this->MOD_SETTINGS['mirrorListURL'])) $this->MOD_SETTINGS['mirrorListURL'] = $TYPO3_CONF_VARS['EXT']['em_mirrorListURL'];
|
||
// Starting page:
|
||
$this->content.=$this->doc->header($GLOBALS['LANG']->getLL('header'));
|
||
$this->content.=$this->doc->spacer(5);
|
||
// Command given which is executed regardless of main menu setting:
|
||
if ($this->CMD['showExt']) { // Show details for a single extension
|
||
$this->showExtDetails($this->CMD['showExt']);
|
||
} elseif ($this->CMD['requestInstallExtensions']) { // Show details for a single extension
|
||
// Starting page:
|
||
$this->content.=$this->doc->header($GLOBALS['LANG']->getLL('header'));
|
||
$this->content.=$this->doc->spacer(5);
|
||
// Command given which is executed regardless of main menu setting:
|
||
if ($this->CMD['showExt']) { // Show details for a single extension
|
||
$this->showExtDetails($this->CMD['showExt']);
|
||
} elseif ($this->CMD['requestInstallExtensions']) { // Show details for a single extension
|
||
$this->requestInstallExtensions($this->CMD['requestInstallExtensions']);
|
||
} elseif ($this->CMD['importExt'] || $this->CMD['uploadExt']) { // Imports an extension from online rep.
|
||
$err = $this->importExtFromRep($this->CMD['importExt'],$this->CMD['extVersion'],$this->CMD['loc'],$this->CMD['uploadExt']);
|
||
if ($err) {
|
||
$this->content.=$this->doc->section('',$GLOBALS['TBE_TEMPLATE']->rfw($err));
|
||
}
|
||
if(!$err && $this->CMD['importExt']) {
|
||
$this->installTranslationsForExtension($this->CMD['importExt'], $this->getMirrorURL());
|
||
}
|
||
} elseif ($this->CMD['importExtInfo']) { // Gets detailed information of an extension from online rep.
|
||
$this->importExtInfo($this->CMD['importExtInfo'],$this->CMD['extVersion']);
|
||
} else { // No command - we show what the menu setting tells us:
|
||
if (t3lib_div::inList('0,1,2',$this->MOD_SETTINGS['function'])) {
|
||
$menu .= ' ' . $GLOBALS['LANG']->getLL('group_by') . ' ' . t3lib_BEfunc::getFuncMenu(0, 'SET[listOrder]', $this->MOD_SETTINGS['listOrder'], $this->MOD_MENU['listOrder']) .
|
||
} elseif ($this->CMD['importExt'] || $this->CMD['uploadExt']) { // Imports an extension from online rep.
|
||
$err = $this->importExtFromRep($this->CMD['importExt'],$this->CMD['extVersion'],$this->CMD['loc'],$this->CMD['uploadExt']);
|
||
if ($err) {
|
||
$this->content.=$this->doc->section('',$GLOBALS['TBE_TEMPLATE']->rfw($err));
|
||
}
|
||
if(!$err && $this->CMD['importExt']) {
|
||
$this->installTranslationsForExtension($this->CMD['importExt'], $this->getMirrorURL());
|
||
}
|
||
} elseif ($this->CMD['importExtInfo']) { // Gets detailed information of an extension from online rep.
|
||
$this->importExtInfo($this->CMD['importExtInfo'],$this->CMD['extVersion']);
|
||
} else { // No command - we show what the menu setting tells us:
|
||
if (t3lib_div::inList('0,1',$this->MOD_SETTINGS['function'])) {
|
||
$menu .= $GLOBALS['LANG']->getLL('group_by') . ' ' . t3lib_BEfunc::getFuncMenu(0, 'SET[listOrder]', $this->MOD_SETTINGS['listOrder'], $this->MOD_MENU['listOrder']) .
|
||
' ' . $GLOBALS['LANG']->getLL('show') . ' ' . t3lib_BEfunc::getFuncMenu(0, 'SET[display_details]', $this->MOD_SETTINGS['display_details'], $this->MOD_MENU['display_details']) . '<br />';
|
||
}
|
||
if (t3lib_div::inList('0,1,5',$this->MOD_SETTINGS['function'])) {
|
||
$menu.='<label for="checkDisplayShy">' . $GLOBALS['LANG']->getLL('display_shy') . '</label> ' . t3lib_BEfunc::getFuncCheck(0, 'SET[display_shy]', $this->MOD_SETTINGS['display_shy'], '', '', 'id="checkDisplayShy"');
|
||
}
|
||
if (t3lib_div::inList('2',$this->MOD_SETTINGS['function']) && strlen($this->fe_user['username'])) {
|
||
$menu.='<label for="checkDisplayOwn">' . $GLOBALS['LANG']->getLL('only_my_ext') . '</label> ' . t3lib_BEfunc::getFuncCheck(0, 'SET[display_own]', $this->MOD_SETTINGS['display_own'], '', '', 'id="checkDisplayOwn"');
|
||
}
|
||
if (t3lib_div::inList('0,1,2',$this->MOD_SETTINGS['function'])) {
|
||
$menu.=' <label for="checkDisplayObsolete">' . $GLOBALS['LANG']->getLL('show_obsolete') . '</label> ' . t3lib_BEfunc::getFuncCheck(0, 'SET[display_obsolete]', $this->MOD_SETTINGS['display_obsolete'], '', '', 'id="checkDisplayObsolete"');
|
||
}
|
||
$this->content.=$this->doc->section('','<form action="index.php" method="post" name="pageform"><span class="nobr">' . ($menu ? $menu : ' ') . '</span></form>');
|
||
$this->content.=$this->doc->spacer(10);
|
||
}
|
||
if (t3lib_div::inList('0,4',$this->MOD_SETTINGS['function'])) {
|
||
$menu.='<label for="checkDisplayShy">' . $GLOBALS['LANG']->getLL('display_shy') . '</label> ' . t3lib_BEfunc::getFuncCheck(0, 'SET[display_shy]', $this->MOD_SETTINGS['display_shy'], '', '', 'id="checkDisplayShy"');
|
||
}
|
||
if (t3lib_div::inList('2',$this->MOD_SETTINGS['function']) && strlen($this->fe_user['username'])) {
|
||
$menu.='<label for="checkDisplayOwn">' . $GLOBALS['LANG']->getLL('only_my_ext') . '</label> ' . t3lib_BEfunc::getFuncCheck(0, 'SET[display_own]', $this->MOD_SETTINGS['display_own'], '', '', 'id="checkDisplayOwn"');
|
||
}
|
||
if (t3lib_div::inList('0,1',$this->MOD_SETTINGS['function'])) {
|
||
$menu .= ' <label for="checkDisplayObsolete">' . $GLOBALS['LANG']->getLL('show_obsolete') . '</label> ' . t3lib_BEfunc::getFuncCheck(0, 'SET[display_obsolete]', $this->MOD_SETTINGS['display_obsolete'], '', '', 'id="checkDisplayObsolete"');
|
||
}
|
||
if (t3lib_div::inList('0', $this->MOD_SETTINGS['function'])) {
|
||
$menu .= ' <label for="checkFilterInstalled">' . $GLOBALS['LANG']->getLL('filter_installed') . '</label> ' . t3lib_BEfunc::getFuncCheck(0, 'SET[filter_installed]', $this->MOD_SETTINGS['filter_installed'], '', '', 'id="checkFilterInstalled"');
|
||
}
|
||
|
||
$this->content.=$this->doc->section('','<form action="index.php" method="post" name="pageform"><span class="nobr">' . ($menu ? $menu : ' ') . '</span></form>');
|
||
$this->content.=$this->doc->spacer(10);
|
||
switch((string)$this->MOD_SETTINGS['function']) {
|
||
case '0':
|
||
// Lists loaded (installed) extensions
|
||
$this->extensionList_loaded();
|
||
break;
|
||
case '1':
|
||
// Lists the installed (available) extensions
|
||
$this->extensionList_installed();
|
||
break;
|
||
case '2':
|
||
// Lists the extensions available from online rep.
|
||
$this->extensionList_import();
|
||
break;
|
||
case '3':
|
||
// Shows the settings screen
|
||
$this->alterSettings();
|
||
break;
|
||
case '4':
|
||
// Allows to set the translation preferences and check the status
|
||
$this->translationHandling();
|
||
break;
|
||
case '5':
|
||
// Shows a list of extensions with updates in TER
|
||
$this->checkForUpdates();
|
||
break;
|
||
default:
|
||
$this->extObjContent();
|
||
break;
|
||
switch((string)$this->MOD_SETTINGS['function']) {
|
||
case '0':
|
||
// Lists the filtered extensions
|
||
$this->extensionList();
|
||
break;
|
||
case '1':
|
||
// Lists the extensions available from online rep.
|
||
$this->extensionList_import();
|
||
break;
|
||
case '2':
|
||
// Shows the settings screen
|
||
$this->alterSettings();
|
||
break;
|
||
case '3':
|
||
// Allows to set the translation preferences and check the status
|
||
$this->translationHandling();
|
||
break;
|
||
case '4':
|
||
// Shows a list of extensions with updates in TER
|
||
$this->checkForUpdates();
|
||
break;
|
||
default:
|
||
$this->extObjContent();
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
// closing any form?
|
||
$formTags = substr_count($this->content, '<form') + substr_count($this->content, '</form');
|
||
if ($formTags % 2 > 0) {
|
||
$this->content .= '</form>';
|
||
}
|
||
// closing any form?
|
||
$formTags = substr_count($this->content, '<form') + substr_count($this->content, '</form');
|
||
if ($formTags % 2 > 0) {
|
||
$this->content .= '</form>';
|
||
}
|
||
// Setting up the buttons and markers for docheader
|
||
$docHeaderButtons = $this->getButtons();
|
||
$markers = array(
|
||
$docHeaderButtons = $this->getButtons();
|
||
$markers = array(
|
||
'CSH' => $docHeaderButtons['csh'],
|
||
'FUNC_MENU' => $this->getFuncMenu(),
|
||
'CONTENT' => $this->content
|
||
);
|
||
);
|
||
// Build the <body> for the module
|
||
$this->content = $this->doc->startPage('Extension Manager');
|
||
$this->content.= $this->doc->moduleBody($this->pageinfo, $docHeaderButtons, $markers);
|
||
$this->content.= $this->doc->endPage();
|
||
$this->content = $this->doc->insertStylesAndJS($this->content);
|
||
}
|
||
$this->content = $this->doc->startPage('Extension Manager');
|
||
$this->content.= $this->doc->moduleBody($this->pageinfo, $docHeaderButtons, $markers);
|
||
$this->content.= $this->doc->endPage();
|
||
$this->content = $this->doc->insertStylesAndJS($this->content);
|
||
}
|
||
/**
|
||
* Print module content. Called as last thing in the global scope.
|
||
*
|
||
* @return void
|
||
*/
|
||
function printContent() {
|
||
if ($this->doPrintContent) {
|
||
echo $this->content;
|
||
/**
|
||
* Print module content. Called as last thing in the global scope.
|
||
*
|
||
* @return void
|
||
*/
|
||
function printContent() {
|
||
if ($this->doPrintContent) {
|
||
echo $this->content;
|
||
}
|
||
}
|
||
}
|
||
/**
|
||
* Create the function menu
|
||
*
|
||
* @return string HTML of the function menu
|
||
*/
|
||
protected function getFuncMenu() {
|
||
$funcMenu = '';
|
||
if(!$this->CMD['showExt'] && !$this->CMD['requestInstallExtensions'] && !$this->CMD['importExt'] && !$this->CMD['uploadExt'] && !$this->CMD['importExtInfo']) {
|
||
$funcMenu = t3lib_BEfunc::getFuncMenu(0, 'SET[function]', $this->MOD_SETTINGS['function'], $this->MOD_MENU['function']);
|
||
} elseif($this->CMD['showExt'] && (!$this->CMD['standAlone'] && !t3lib_div::_GP('standAlone'))) {
|
||
$funcMenu = t3lib_BEfunc::getFuncMenu(0, 'SET[singleDetails]', $this->MOD_SETTINGS['singleDetails'], $this->MOD_MENU['singleDetails'], '', '&CMD[showExt]=' . $this->CMD['showExt']);
|
||
/**
|
||
* Create the function menu
|
||
*
|
||
* @return string HTML of the function menu
|
||
*/
|
||
protected function getFuncMenu() {
|
||
$funcMenu = '';
|
||
if(!$this->CMD['showExt'] && !$this->CMD['requestInstallExtensions'] && !$this->CMD['importExt'] && !$this->CMD['uploadExt'] && !$this->CMD['importExtInfo']) {
|
||
$funcMenu = t3lib_BEfunc::getFuncMenu(0, 'SET[function]', $this->MOD_SETTINGS['function'], $this->MOD_MENU['function']);
|
||
} elseif($this->CMD['showExt'] && (!$this->CMD['standAlone'] && !t3lib_div::_GP('standAlone'))) {
|
||
$funcMenu = t3lib_BEfunc::getFuncMenu(0, 'SET[singleDetails]', $this->MOD_SETTINGS['singleDetails'], $this->MOD_MENU['singleDetails'], '', '&CMD[showExt]=' . $this->CMD['showExt']);
|
||
}
|
||
return $funcMenu;
|
||
}
|
||
return $funcMenu;
|
||
}
|
||
/**
|
||
* Create the panel of buttons for submitting the form or otherwise perform operations.
|
||
*
|
||
* @return array all available buttons as an assoc. array
|
||
*/
|
||
protected function getButtons() {
|
||
/**
|
||
* Create the panel of buttons for submitting the form or otherwise perform operations.
|
||
*
|
||
* @return array all available buttons as an assoc. array
|
||
*/
|
||
protected function getButtons() {
|
||
$buttons = array(
|
||
$buttons = array(
|
||
'csh' => '',
|
||
'back' => '',
|
||
'shortcut' => ''
|
||
);
|
||
);
|
||
// CSH
|
||
//$buttons['csh'] = t3lib_BEfunc::cshItem('_MOD_web_func', '', $GLOBALS['BACK_PATH']);
|
||
//$buttons['csh'] = t3lib_BEfunc::cshItem('_MOD_web_func', '', $GLOBALS['BACK_PATH']);
|
||
// Shortcut
|
||
if ($GLOBALS['BE_USER']->mayMakeShortcut()) {
|
||
$buttons['shortcut'] = $this->doc->makeShortcutIcon('CMD','function',$this->MCONF['name']);
|
||
}
|
||
if ($GLOBALS['BE_USER']->mayMakeShortcut()) {
|
||
$buttons['shortcut'] = $this->doc->makeShortcutIcon('CMD','function',$this->MCONF['name']);
|
||
}
|
||
// Back
|
||
if(($this->CMD['showExt'] && (!$this->CMD['standAlone'] && !t3lib_div::_GP('standAlone'))) || ($this->CMD['importExt'] || $this->CMD['uploadExt'] && (!$this->CMD['standAlone'])) || $this->CMD['importExtInfo']) {
|
||
$buttons['back'] = '<a href="index.php" class="typo3-goBack" title="' . $GLOBALS['LANG']->getLL('go_back') . '">' .
|
||
if(($this->CMD['showExt'] && (!$this->CMD['standAlone'] && !t3lib_div::_GP('standAlone'))) || ($this->CMD['importExt'] || $this->CMD['uploadExt'] && (!$this->CMD['standAlone'])) || $this->CMD['importExtInfo']) {
|
||
$buttons['back'] = '<a href="index.php" class="typo3-goBack" title="' . $GLOBALS['LANG']->getLL('go_back') . '">' .
|
||
t3lib_iconWorks::getSpriteIcon('actions-view-go-back') .
|
||
'</a>';
|
||
}
|
||
return $buttons;
|
||
}
|
||
/*********************************
|
||
*
|
||
* 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="t3-row-header"',array('<td><img src="clear.gif" width="1" height="1" alt="" /></td>'));
|
||
foreach($cat[$this->MOD_SETTINGS['listOrder']] as $catName => $extEkeys) {
|
||
natcasesort($extEkeys);
|
||
$extensions = array();
|
||
foreach ($extEkeys as $extKey => $value) {
|
||
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($GLOBALS['LANG']->getLL('extension_required_short')) . '</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']]).'">' . t3lib_iconWorks::getSpriteIcon('apps-filetree-folder-default') . '<strong>'.htmlspecialchars($this->listOrderTitle($this->MOD_SETTINGS['listOrder'],$catName)).'</strong></td></tr>';
|
||
$lines[] = implode(LF,$extensions);
|
||
}
|
||
}
|
||
return $buttons;
|
||
}
|
||
$content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'loaded', $GLOBALS['BACK_PATH'],'');
|
||
$content.= '<form action="index.php" method="post" name="lookupform">';
|
||
$content.= '<label for="lookUp">' . $GLOBALS['LANG']->getLL('look_up') . '</label> <input type="text" id="lookUp" name="lookUp" value="' . htmlspecialchars($this->lookUpStr) . '" /><input type="submit" value="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:search') . '" /><br /><br />';
|
||
$content.= '</form>
|
||
<!-- Loaded Extensions List -->
|
||
<table border="0" cellpadding="2" cellspacing="1">'.implode('',$lines).'</table>';
|
||
$this->content.=$this->doc->section($GLOBALS['LANG']->getLL('loaded_exts'),$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="t3-row-header"',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;
|
||
/*********************************
|
||
*
|
||
* Function Menu Applications
|
||
*
|
||
*********************************/
|
||
/**
|
||
* Listing of filtered extensions
|
||
*
|
||
* @return void
|
||
*/
|
||
function extensionList() {
|
||
global $TYPO3_LOADED_EXT;
|
||
$allKeys[]='';
|
||
$allKeys[]='TYPE: '.$catName;
|
||
list($list,$cat) = $this->getInstalledExtensions();
|
||
natcasesort($extEkeys);
|
||
$extensions = array();
|
||
foreach ($extEkeys as $extKey => $value) {
|
||
$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($GLOBALS['LANG']->getLL('extension_required_short')) . '</strong>';
|
||
}
|
||
$theRowClass = t3lib_extMgm::isLoaded($extKey)? 'em-listbg1' : 'em-listbg2';
|
||
$extensions[]=$this->extensionListRow($extKey,$list[$extKey],array('<td class="bgColor">'.$loadUnloadLink.'</td>'),$theRowClass);
|
||
// Available extensions
|
||
if (is_array($cat[$this->MOD_SETTINGS['listOrder']])) {
|
||
$content = '';
|
||
$lines = array();
|
||
$lines[] = $this->extensionListRowHeader(' class="t3-row-header"',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);
|
||
$extensions = array();
|
||
foreach ($extEkeys as $extKey => $value) {
|
||
if ($this->MOD_SETTINGS['filter_installed'] && !array_key_exists($extKey, $TYPO3_LOADED_EXT)) continue;
|
||
|
||
$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($GLOBALS['LANG']->getLL('extension_required_short')) . '</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']]) . '">' . t3lib_iconWorks::getSpriteIcon('apps-filetree-folder-default') . '<strong>' . htmlspecialchars($this->listOrderTitle($this->MOD_SETTINGS['listOrder'], $catName)) . '</strong></td></tr>';
|
||
$lines[] = implode(LF, $extensions);
|
||
}
|
||
}
|
||
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']]) . '">' . t3lib_iconWorks::getSpriteIcon('apps-filetree-folder-default') . '<strong>'. htmlspecialchars($this->listOrderTitle($this->MOD_SETTINGS['listOrder'],$catName)).'</strong></td></tr>';
|
||
$lines[] = implode(LF,$extensions);
|
||
}
|
||
}
|
||
$content.='
|
||
$content .= '
|
||
<!--
|
||
EXTENSION KEYS:
|
||
'.trim(implode(LF,$allKeys)).'
|
||
' . trim(implode(LF, $allKeys)) . '
|
||
-->
|
||
';
|
||
$content.= t3lib_BEfunc::cshItem('_MOD_tools_em', 'avail', $GLOBALS['BACK_PATH'], '|<br />');
|
||
$content.= sprintf($GLOBALS['LANG']->getLL('how_to_install'), $this->installButton()) . ' <br />' .
|
||
sprintf($GLOBALS['LANG']->getLL('how_to_uninstall'), $this->removeButton()). ' <br /><br />';
|
||
$content .= '<form action="index.php" method="post" name="lookupform">';
|
||
$content .= '<label for="lookUp">' . $GLOBALS['LANG']->getLL('look_up') . '</label> <input type="text" id="lookUp" name="lookUp" value="' . htmlspecialchars($this->lookUpStr) . '" /><input type="submit" value="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:search') . '" /></form><br /><br />';
|
||
$content.= $this->securityHint.'<br /><br />';
|
||
$content .= t3lib_BEfunc::cshItem('_MOD_tools_em', 'avail', $GLOBALS['BACK_PATH'], '|<br />');
|
||
$content .= sprintf($GLOBALS['LANG']->getLL('how_to_install'), $this->installButton()) . ' <br />' .
|
||
sprintf($GLOBALS['LANG']->getLL('how_to_uninstall'), $this->removeButton()). ' <br /><br />';
|
||
$content .= '<form action="index.php" method="post" name="lookupform">';
|
||
$content .= '<label for="lookUp">' . $GLOBALS['LANG']->getLL('look_up') . '</label> <input type="text" id="lookUp" name="lookUp" value="' . htmlspecialchars($this->lookUpStr) . '" /><input type="submit" value="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xml:search') . '" /></form><br /><br />';
|
||
$content .= $this->securityHint.'<br /><br />';
|
||
$content.= '<table border="0" cellpadding="2" cellspacing="1">'.implode('',$lines).'</table>';
|
||
$content .= '<table border="0" cellpadding="2" cellspacing="1">' . implode('', $lines) . '</table>';
|
||
$this->content.=$this->doc->section(sprintf($GLOBALS['LANG']->getLL('available_extensions'), $this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']]),$content,0,1);
|
||
$this->content .= $this->doc->section(sprintf($GLOBALS['LANG']->getLL('available_extensions'), $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 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));
|
||
if ($this->listRemote) {
|
||
list($inst_list,) = $this->getInstalledExtensions();
|
||
$this->inst_keys = array_flip(array_keys($inst_list));
|
||
$this->detailCols[1]+=6;
|
||
$this->detailCols[1]+=6;
|
||
// see if we have an extensionlist at all
|
||
$this->extensionCount = $this->xmlhandler->countExtensions();
|
||
if (!$this->extensionCount) {
|
||
$content .= $this->fetchMetaData('extensions');
|
||
}
|
||
$this->extensionCount = $this->xmlhandler->countExtensions();
|
||
if (!$this->extensionCount) {
|
||
$content .= $this->fetchMetaData('extensions');
|
||
}
|
||
if($this->MOD_SETTINGS['listOrder']=='author_company') {
|
||
$this->listingLimit = $this->listingLimitAuthor;
|
||
}
|
||
if($this->MOD_SETTINGS['listOrder']=='author_company') {
|
||
$this->listingLimit = $this->listingLimitAuthor;
|
||
}
|
||
$this->pointer = intval(t3lib_div::_GP('pointer'));
|
||
$offset = $this->listingLimit*$this->pointer;
|
||
$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'], TRUE);
|
||
} else {
|
||
$this->xmlhandler->searchExtensionsXML($this->listRemote_search, '', $this->MOD_SETTINGS['listOrder'], TRUE, FALSE, $offset, $this->listingLimit);
|
||
}
|
||
if (count($this->xmlhandler->extensionsXML)) {
|
||
list($list,$cat) = $this->prepareImportExtList(true);
|
||
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'], TRUE);
|
||
} else {
|
||
$this->xmlhandler->searchExtensionsXML($this->listRemote_search, '', $this->MOD_SETTINGS['listOrder'], TRUE, 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="t3-row-header"',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']]).'">' . t3lib_iconWorks::getSpriteIcon('apps-filetree-folder-default') . '<strong>'.htmlspecialchars($this->listOrderTitle($this->MOD_SETTINGS['listOrder'],$catName)).'</strong></td></tr>';
|
||
natcasesort($extEkeys);
|
||
foreach ($extEkeys as $extKey => $value) {
|
||
$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])) {
|
||
if (is_array($cat[$this->MOD_SETTINGS['listOrder']])) {
|
||
$lines=array();
|
||
$lines[]=$this->extensionListRowHeader(' class="t3-row-header"',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']]).'">' . t3lib_iconWorks::getSpriteIcon('apps-filetree-folder-default') . '<strong>'.htmlspecialchars($this->listOrderTitle($this->MOD_SETTINGS['listOrder'],$catName)).'</strong></td></tr>';
|
||
natcasesort($extEkeys);
|
||
foreach ($extEkeys as $extKey => $value) {
|
||
$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
|
||
if ($inst_list[$extKey]['EM_CONF']['state'] != 'excludeFromUpdates') {
|
||
$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) . '" title="' . sprintf($GLOBALS['LANG']->getLL('do_update'), ($loc == 'G' ? $GLOBALS['LANG']->getLL('global') : $GLOBALS['LANG']->getLL('local'))) . '">' .
|
||
if ($inst_list[$extKey]['EM_CONF']['state'] != 'excludeFromUpdates') {
|
||
$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) . '" title="' . sprintf($GLOBALS['LANG']->getLL('do_update'), ($loc == 'G' ? $GLOBALS['LANG']->getLL('global') : $GLOBALS['LANG']->getLL('local'))) . '">' .
|
||
t3lib_iconWorks::getSpriteIcon('actions-system-extension-update') .
|
||
'</a>';
|
||
} else {
|
||
} else {
|
||
// extension is marked as "excludeFromUpdates"
|
||
$loadUnloadLink .= t3lib_iconWorks::getSpriteIcon('status-dialog-warning', $GLOBALS['LANG']->getLL('excluded_from_updates') );
|
||
$loadUnloadLink .= t3lib_iconWorks::getSpriteIcon('status-dialog-warning', $GLOBALS['LANG']->getLL('excluded_from_updates') );
|
||
}
|
||
} else {
|
||
// import
|
||
$aUrl = 'index.php?CMD[importExt]='.$extKey.'&CMD[extVersion]='.$version.'&CMD[loc]=L';
|
||
$loadUnloadLink .= '<a href="' . htmlspecialchars($aUrl) . '" title="' . $GLOBALS['LANG']->getLL('import_to_local_dir') . '">' . t3lib_iconWorks::getSpriteIcon('actions-system-extension-import') . '</a>';
|
||
}
|
||
} else {
|
||
// import
|
||
$aUrl = 'index.php?CMD[importExt]='.$extKey.'&CMD[extVersion]='.$version.'&CMD[loc]=L';
|
||
$loadUnloadLink .= '<a href="' . htmlspecialchars($aUrl) . '" title="' . $GLOBALS['LANG']->getLL('import_to_local_dir') . '">' . t3lib_iconWorks::getSpriteIcon('actions-system-extension-import') . '</a>';
|
||
$loadUnloadLink = ' ';
|
||
}
|
||
} else {
|
||
$loadUnloadLink = ' ';
|
||
}
|
||
if (isset($inst_list[$extKey])) {
|
||
$theRowClass = t3lib_extMgm::isLoaded($extKey) ? 'em-listbg1' : 'em-listbg2';
|
||
} else {
|
||
$theRowClass = 'em-listbg3';
|
||
}
|
||
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]);
|
||
$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);
|
||
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 action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
|
||
$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 action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
|
||
'"><label for="lookUp">' . $GLOBALS['LANG']->getLL('list_or_look_up_extensions') . '</label><br />
|
||
<input type="text" id="lookUp" name="lookUp" value="' . htmlspecialchars($this->listRemote_search) .
|
||
'" /> <input type="submit" value="' . $GLOBALS['LANG']->getLL('look_up_button') . '" /></form><br /><br />';
|
||
$content .= $this->browseLinks();
|
||
$content .= $this->browseLinks();
|
||
$content.= '
|
||
$content.= '
|
||
<!-- TER Extensions list -->
|
||
<table border="0" cellpadding="2" cellspacing="1">'.implode(LF,$lines).'</table>';
|
||
$content .= '<br />'.$this->browseLinks();
|
||
$content.= '<br /><br />'.$this->securityHint;
|
||
$content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
|
||
$content .= '<br />'.$this->browseLinks();
|
||
$content.= '<br /><br />'.$this->securityHint;
|
||
$content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
|
||
'</strong><br /> ' . $this->privacyNotice;
|
||
$this->content .= $this->doc->section($GLOBALS['LANG']->getLL('extensions_repository_group_by') . ' ' .
|
||
$this->content .= $this->doc->section($GLOBALS['LANG']->getLL('extensions_repository_group_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)) {
|
||
foreach ($this->inst_keys as $extKey => $value) {
|
||
$this->xmlhandler->searchExtensionsXMLExact($extKey, '', '', true);
|
||
if((strlen($this->listRemote_search) && !stristr($extKey,$this->listRemote_search)) || isset($this->xmlhandler->extensionsXML[$extKey])) continue;
|
||
$content='';
|
||
$lines=array();
|
||
if (count($this->inst_keys)) {
|
||
foreach ($this->inst_keys as $extKey => $value) {
|
||
$this->xmlhandler->searchExtensionsXMLExact($extKey, '', '', true);
|
||
if((strlen($this->listRemote_search) && !stristr($extKey,$this->listRemote_search)) || isset($this->xmlhandler->extensionsXML[$extKey])) continue;
|
||
$loadUnloadLink = t3lib_extMgm::isLoaded($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($GLOBALS['LANG']->getLL('extension_required_short')) . '</strong>';
|
||
if (in_array($extKey,$this->requiredExt)) {
|
||
$loadUnloadLink = '<strong>' .$GLOBALS['TBE_TEMPLATE']->rfw($GLOBALS['LANG']->getLL('extension_required_short')) . '</strong>';
|
||
}
|
||
$lines[]=$this->extensionListRow($extKey,$inst_list[$extKey],array('<td class="bgColor">'.$loadUnloadLink.'</td>'),t3lib_extMgm::isLoaded($extKey)?'em-listbg1':'em-listbg2');
|
||
}
|
||
$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 .= $GLOBALS['LANG']->getLL('list_of_local_extensions') .
|
||
if(count($lines)) {
|
||
$content .= $GLOBALS['LANG']->getLL('list_of_local_extensions') .
|
||
'<br />' . $GLOBALS['LANG']->getLL('might_be_user_defined') . '<br /><br />';
|
||
$content.= '<table border="0" cellpadding="2" cellspacing="1">'.
|
||
$content.= '<table border="0" cellpadding="2" cellspacing="1">'.
|
||
$this->extensionListRowHeader(' class="t3-row-header"',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($GLOBALS['LANG']->getLL('only_on_this_server'), $content, 0, 1);
|
||
$this->content.=$this->doc->spacer(20);
|
||
$this->content.=$this->doc->section($GLOBALS['LANG']->getLL('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 action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
|
||
} 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 action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
|
||
'"><label for="lookUp">' .
|
||
$GLOBALS['LANG']->getLL('list_or_look_up_extensions') . '</label><br />
|
||
<input type="text" id="lookUp" name="lookUp" value="' . htmlspecialchars($this->listRemote_search) .
|
||
'" /> <input type="submit" value="' . $GLOBALS['LANG']->getLL('look_up_button') . '" /></form><br /><br />';
|
||
$content .= '<p><strong>' . $GLOBALS['LANG']->getLL('no_matching_extensions') . '</strong></p>';
|
||
$content .= '<p><strong>' . $GLOBALS['LANG']->getLL('no_matching_extensions') . '</strong></p>';
|
||
$content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
|
||
$content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
|
||
'</strong><br /> ' . $this->privacyNotice;
|
||
$this->content.=$this->doc->section($GLOBALS['LANG']->getLL('extensions_repository_group_by') . ' ' .
|
||
$this->content.=$this->doc->section($GLOBALS['LANG']->getLL('extensions_repository_group_by') . ' ' .
|
||
$this->MOD_MENU['listOrder'][$this->MOD_SETTINGS['listOrder']], $content, 0, 1);
|
||
}
|
||
} else {
|
||
}
|
||
} else {
|
||
// CSH
|
||
$content .= t3lib_BEfunc::cshItem('_MOD_tools_em', 'import', $GLOBALS['BACK_PATH'], '|<br />');
|
||
$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 action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
|
||
$onsubmit = "window.location.href='index.php?ter_connect=1&ter_search='+escape(this.elements['lookUp'].value);return false;";
|
||
$content .= '<form action="index.php" method="post" onsubmit="' . htmlspecialchars($onsubmit) .
|
||
'"><label for="lookUp">' .
|
||
$GLOBALS['LANG']->getLL('list_or_look_up_extensions') . '</label><br />
|
||
<input type="text" id="lookUp" name="lookUp" value="" /> <input type="submit" value="' .
|
||
$GLOBALS['LANG']->getLL('look_up_button') . '" /><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 .= $GLOBALS['LANG']->getLL('connect_to_ter') . '<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 .= $GLOBALS['LANG']->getLL('connect_to_ter') . '<br />
|
||
<input type="submit" value="' . $GLOBALS['LANG']->getLL('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 .= ' ' . sprintf($GLOBALS['LANG']->getLL('ext_list_last_updated') . ' ',
|
||
if (is_file(PATH_site.'typo3temp/extensions.xml.gz')) {
|
||
$dateFormat = $GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'];
|
||
$timeFormat = $GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'];
|
||
$content .= ' ' . sprintf($GLOBALS['LANG']->getLL('ext_list_last_updated') . ' ',
|
||
date(
|
||
$dateFormat . ', ' . $timeFormat,
|
||
filemtime(PATH_site . 'typo3temp/extensions.xml.gz')
|
||
$dateFormat . ', ' . $timeFormat,
|
||
filemtime(PATH_site . 'typo3temp/extensions.xml.gz')
|
||
)
|
||
);
|
||
);
|
||
}
|
||
}
|
||
}
|
||
$content.= '</form><br /><br />'.$this->securityHint;
|
||
$content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
|
||
$content.= '</form><br /><br />'.$this->securityHint;
|
||
$content .= '<br /><br /><strong>' . $GLOBALS['LANG']->getLL('privacy_notice_header') .
|
||
'</strong><br />' . $this->privacyNotice;
|
||
$this->content.=$this->doc->section($GLOBALS['LANG']->getLL('in_repository'), $content, 0, 1);
|
||
}
|
||
$this->content.=$this->doc->section($GLOBALS['LANG']->getLL('in_repository'), $content, 0, 1);
|
||
}
|
||
// Upload:
|
||
if ($this->importAtAll()) {
|
||
$content= '<form action="index.php" enctype="'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'].'" method="post">
|
||
if ($this->importAtAll()) {
|
||
$content= '<form action="index.php" enctype="'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['form_enctype'].'" method="post">
|
||
<label for="upload_ext_file">' . $GLOBALS['LANG']->getLL('upload_t3x') . '</label><br />
|
||
<input type="file" size="60" id="upload_ext_file" name="upload_ext_file" /><br />' .
|
||
$GLOBALS['LANG']->getLL('upload_to_location') . '<br />
|
||
<select name="CMD[loc]">';
|
||
if ($this->importAsType('L')) $content .= '<option value="L">' . $GLOBALS['LANG']->getLL('local_folder') . '</option>';
|
||
if ($this->importAsType('G')) $content .= '<option value="G">' . $GLOBALS['LANG']->getLL('global_folder') . '</option>';
|
||
if ($this->importAsType('S')) $content .= '<option value="S">' . $GLOBALS['LANG']->getLL('system_folder') . '</option>';
|
||
$content.='</select><br />
|
||
if ($this->importAsType('L')) $content .= '<option value="L">' . $GLOBALS['LANG']->getLL('local_folder') . '</option>';
|
||
if ($this->importAsType('G')) $content .= '<option value="G">' . $GLOBALS['LANG']->getLL('global_folder') . '</option>';
|
||
if ($this->importAsType('S')) $content .= '<option value="S">' . $GLOBALS['LANG']->getLL('system_folder') . '</option>';
|
||
$content.='</select><br />
|
||
<input type="checkbox" value="1" name="CMD[uploadOverwrite]" id="checkUploadOverwrite" /> <label for="checkUploadOverwrite">' .
|
||
$GLOBALS['LANG']->getLL('overwrite_ext') . '</label><br />
|
||
$GLOBALS['LANG']->getLL('overwrite_ext') . '</label><br />
|
||
<input type="submit" name="CMD[uploadExt]" value="' . $GLOBALS['LANG']->getLL('upload_ext_file') . '" /></form><br />
|
||
';
|
||
} else $content=$this->noImportMsg();
|