Project

General

Profile

Bug #22410 » 14050_cleaning_t3lib_scbase.patch

Administrator Admin, 2010-11-24 15:01

View differences:

t3lib/class.t3lib_scbase.php (revision )
<?php
/***************************************************************
* Copyright notice
*
* (c) 1999-2010 Kasper Sk?rh?j (kasperYYYY@typo3.com)
* 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 Sk?rh?j (kasperYYYY@typo3.com)
* 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!
***************************************************************/
/**
* Contains the parent class for 'ScriptClasses' in backend modules.
*
......
*
*
* 133: class t3lib_SCbase
* 249: function init()
* 249: function init()
* 269: function menuConfig()
* 269: function menuConfig()
* 292: function mergeExternalItems($modName,$menuKey,$menuArr)
* 292: function mergeExternalItems($modName,$menuKey,$menuArr)
* 317: function handleExternalFunctionValue($MM_key='function', $MS_value=NULL)
* 317: function handleExternalFunctionValue($MM_key='function', $MS_value=NULL)
* 335: function getExternalItemConfig($modName,$menuKey,$value='')
* 335: function getExternalItemConfig($modName,$menuKey,$value='')
* 349: function checkExtObj()
* 349: function checkExtObj()
* 363: function checkSubExtObj()
* 363: function checkSubExtObj()
* 375: function extObjHeader()
* 375: function extObjHeader()
* 384: function extObjContent()
* 384: function extObjContent()
*
* TOTAL FUNCTIONS: 9
* (This index is automatically created/updated by the extension "extdeveval")
......
*/
/**
* EXAMPLE PROTOTYPE
*
......
* However you can see a prototype example of how a module might use this class in an index.php file typically hosting a backend module.
* NOTICE: This example only outlines the basic structure of how this class is used. You should consult the documentation and other real-world examples for some actual things to do when building modules.
*
* // TYPICAL 'HEADER' OF A BACKEND MODULE:
* // TYPICAL 'HEADER' OF A BACKEND MODULE:
* unset($MCONF);
* unset($MCONF);
* require ('conf.php');
* require ('conf.php');
* require ($BACK_PATH.'init.php');
* require ($BACK_PATH.'init.php');
* require ($BACK_PATH.'template.php');
* require ($BACK_PATH.'template.php');
* $LANG->includeLLFile('EXT:prototype/locallang.php');
* $LANG->includeLLFile('EXT:prototype/locallang.php');
* $BE_USER->modAccess($MCONF,1);
* $BE_USER->modAccess($MCONF,1);
*
* // SC_mod_prototype EXTENDS THE CLASS t3lib_SCbase with a main() and printContent() function:
* // SC_mod_prototype EXTENDS THE CLASS t3lib_SCbase with a main() and printContent() function:
* class SC_mod_prototype extends t3lib_SCbase {
* class SC_mod_prototype extends t3lib_SCbase {
* // MAIN FUNCTION - HERE YOU CREATE THE MODULE CONTENT IN $this->content
* // MAIN FUNCTION - HERE YOU CREATE THE MODULE CONTENT IN $this->content
* function main() {
* function main() {
* // TYPICALLY THE INTERNAL VAR, $this->doc is instantiated like this:
* // TYPICALLY THE INTERNAL VAR, $this->doc is instantiated like this:
* $this->doc = t3lib_div::makeInstance('mediumDoc');
* $this->doc = t3lib_div::makeInstance('mediumDoc');
* // TYPICALLY THE INTERNAL VAR, $this->backPath is set like this:
* // TYPICALLY THE INTERNAL VAR, $this->backPath is set like this:
* $this->backPath = $this->doc->backPath = $GLOBALS['BACK_PATH'];
* $this->backPath = $this->doc->backPath = $GLOBALS['BACK_PATH'];
* // ... AND OF COURSE A LOT OF OTHER THINGS GOES ON - LIKE PUTTING CONTENT INTO $this->content
* // ... AND OF COURSE A LOT OF OTHER THINGS GOES ON - LIKE PUTTING CONTENT INTO $this->content
* $this->content='';
* $this->content='';
* }
* }
* // PRINT CONTENT - DONE AS THE LAST THING
* // PRINT CONTENT - DONE AS THE LAST THING
* function printContent() {
* function printContent() {
* echo $this->content;
* echo $this->content;
* }
* }
* }
* }
*
* // CHECKING IF THERE ARE AN EXTENSION CLASS CONFIGURED FOR THIS CLASS:
* // CHECKING IF THERE ARE AN EXTENSION CLASS CONFIGURED FOR THIS CLASS:
* if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/prototype/index.php']) {
* if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/prototype/index.php']) {
* include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/prototype/index.php']);
* include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/prototype/index.php']);
* }
* }
*
* // MAKE INSTANCE OF THE SCRIPT CLASS AND CALL init()
* // MAKE INSTANCE OF THE SCRIPT CLASS AND CALL init()
* $SOBE = t3lib_div::makeInstance('SC_mod_prototype');
* $SOBE = t3lib_div::makeInstance('SC_mod_prototype');
* $SOBE->init();
* $SOBE->init();
*
* // AFTER INIT THE INTERNAL ARRAY ->include_once MAY HOLD FILENAMES TO INCLUDE
* // AFTER INIT THE INTERNAL ARRAY ->include_once MAY HOLD FILENAMES TO INCLUDE
* foreach($SOBE->include_once as $INC_FILE) include_once($INC_FILE);
* foreach($SOBE->include_once as $INC_FILE) include_once($INC_FILE);
*
* // THEN WE WILL CHECK IF THERE IS A 'SUBMODULE' REGISTERED TO BE INITIALIZED AS WELL:
* // THEN WE WILL CHECK IF THERE IS A 'SUBMODULE' REGISTERED TO BE INITIALIZED AS WELL:
* $SOBE->checkExtObj();
* $SOBE->checkExtObj();
*
* // THEN WE CALL THE main() METHOD AND THIS SHOULD SPARK THE CREATION OF THE MODULE OUTPUT.
* // THEN WE CALL THE main() METHOD AND THIS SHOULD SPARK THE CREATION OF THE MODULE OUTPUT.
* $SOBE->main();
* $SOBE->main();
* // FINALLY THE printContent() FUNCTION WILL OUTPUT THE ACCUMULATED CONTENT
* // FINALLY THE printContent() FUNCTION WILL OUTPUT THE ACCUMULATED CONTENT
* $SOBE->printContent();
* $SOBE->printContent();
*/
/**
......
var $perms_clause;
/**
* The module menu items array. Each key represents a key for which values can range between the items in the array of that key.
* @see init()
*/
var $MOD_MENU = Array (
var $MOD_MENU = array(
'function' => array()
);
'function' => array()
);
/**
* Current settings for the keys of the MOD_MENU array
......
var $extObj;
/**
* Initializes the backend module by setting internal variables, initializing the menu.
*
* @return void
* @see menuConfig()
*/
function init() {
function init() {
// name might be set from outside
if (!$this->MCONF['name']) {
$this->MCONF = $GLOBALS['MCONF'];
......
* @return void
* @see init(), $MOD_MENU, $MOD_SETTINGS, t3lib_BEfunc::getModuleData(), mergeExternalItems()
*/
function menuConfig() {
function menuConfig() {
// page/be_user TSconfig settings and blinding of menu-items
$this->modTSconfig = t3lib_BEfunc::getModTSconfig($this->id,'mod.'.$this->MCONF['name']);
$this->modTSconfig = t3lib_BEfunc::getModTSconfig($this->id, 'mod.' . $this->MCONF['name']);
$this->MOD_MENU['function'] = $this->mergeExternalItems($this->MCONF['name'],'function',$this->MOD_MENU['function']);
$this->MOD_MENU['function'] = $this->mergeExternalItems($this->MCONF['name'], 'function', $this->MOD_MENU['function']);
$this->MOD_MENU['function'] = t3lib_BEfunc::unsetMenuItems($this->modTSconfig['properties'],$this->MOD_MENU['function'],'menu.function');
$this->MOD_MENU['function'] = t3lib_BEfunc::unsetMenuItems($this->modTSconfig['properties'], $this->MOD_MENU['function'], 'menu.function');
#debug($this->MOD_MENU['function'],$this->MCONF['name']);
#debug($this->modTSconfig['properties']);
$this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name'], $this->modMenu_type, $this->modMenu_dontValidateList, $this->modMenu_setDefaultList);
$this->MOD_SETTINGS = t3lib_BEfunc::getModuleData(
$this->MOD_MENU,
t3lib_div::_GP('SET'),
$this->MCONF['name'],
$this->modMenu_type,
$this->modMenu_dontValidateList,
$this->modMenu_setDefaultList
);
}
/**
......
* @access private
* @see t3lib_extMgm::insertModuleFunction(), menuConfig()
*/
function mergeExternalItems($modName,$menuKey,$menuArr) {
function mergeExternalItems($modName, $menuKey, $menuArr) {
$mergeArray = $GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey];
if (is_array($mergeArray)) {
if (is_array($mergeArray)) {
foreach ($mergeArray as $k => $v) {
if ((string)$v['ws']==='' ||
if ((string) $v['ws'] === '' ||
($GLOBALS['BE_USER']->workspace===0 && t3lib_div::inList($v['ws'],'online')) ||
($GLOBALS['BE_USER']->workspace === 0 && t3lib_div::inList($v['ws'], 'online')) ||
($GLOBALS['BE_USER']->workspace===-1 && t3lib_div::inList($v['ws'],'offline')) ||
($GLOBALS['BE_USER']->workspace === -1 && t3lib_div::inList($v['ws'], 'offline')) ||
($GLOBALS['BE_USER']->workspace>0 && t3lib_div::inList($v['ws'],'custom'))) {
($GLOBALS['BE_USER']->workspace > 0 && t3lib_div::inList($v['ws'], 'custom'))) {
$menuArr[$k]=$GLOBALS['LANG']->sL($v['title']);
$menuArr[$k] = $GLOBALS['LANG']->sL($v['title']);
}
}
}
......
* @return void
* @see getExternalItemConfig(), $include_once, init()
*/
function handleExternalFunctionValue($MM_key='function', $MS_value=NULL) {
function handleExternalFunctionValue($MM_key = 'function', $MS_value = NULL) {
$MS_value = is_null($MS_value) ? $this->MOD_SETTINGS[$MM_key] : $MS_value;
$this->extClassConf = $this->getExternalItemConfig($this->MCONF['name'],$MM_key,$MS_value);
$this->extClassConf = $this->getExternalItemConfig($this->MCONF['name'], $MM_key, $MS_value);
if (is_array($this->extClassConf) && $this->extClassConf['path']) {
if (is_array($this->extClassConf) && $this->extClassConf['path']) {
$this->include_once[]=$this->extClassConf['path'];
$this->include_once[] = $this->extClassConf['path'];
}
}
......
* @return mixed The value from the TBE_MODULES_EXT array.
* @see handleExternalFunctionValue()
*/
function getExternalItemConfig($modName,$menuKey,$value='') {
function getExternalItemConfig($modName, $menuKey, $value = '') {
return strcmp($value,'')?$GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey][$value]:$GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey];
return strcmp($value, '') ? $GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey][$value] : $GLOBALS['TBE_MODULES_EXT'][$modName]['MOD_MENU'][$menuKey];
}
/**
......
* @return void
* @see handleExternalFunctionValue(), t3lib_extMgm::insertModuleFunction(), $extObj
*/
function checkExtObj() {
function checkExtObj() {
if (is_array($this->extClassConf) && $this->extClassConf['name']) {
if (is_array($this->extClassConf) && $this->extClassConf['name']) {
$this->extObj = t3lib_div::makeInstance($this->extClassConf['name']);
$this->extObj->init($this,$this->extClassConf);
$this->extObj->init($this, $this->extClassConf);
// Re-write:
$this->MOD_SETTINGS = t3lib_BEfunc::getModuleData($this->MOD_MENU, t3lib_div::_GP('SET'), $this->MCONF['name'], $this->modMenu_type, $this->modMenu_dontValidateList, $this->modMenu_setDefaultList);
$this->MOD_SETTINGS = t3lib_BEfunc::getModuleData(
$this->MOD_MENU,
t3lib_div::_GP('SET'),
$this->MCONF['name'],
$this->modMenu_type,
$this->modMenu_dontValidateList,
$this->modMenu_setDefaultList
);
}
}
......
*
* @return void
*/
function checkSubExtObj() {
function checkSubExtObj() {
if (is_object($this->extObj)) $this->extObj->checkExtObj();
if (is_object($this->extObj)) {
$this->extObj->checkExtObj();
}
}
}
/**
* Calls the 'header' function inside the "Function menu module" if present.
......
*
* @return void
*/
function extObjHeader() {
function extObjHeader() {
if (is_callable(array($this->extObj,'head'))) $this->extObj->head();
if (is_callable(array($this->extObj, 'head'))) {
$this->extObj->head();
}
}
}
/**
* Calls the 'main' function inside the "Function menu module" if present
(51-51/93)