Bug #20123 » 10596_setuphook.diff
typo3/interfaces/interface.setup_usersettingshook.php (revision 0) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 2009 Steffen Kamper <info@sk-typo3.de>
|
||
* 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!
|
||
***************************************************************/
|
||
/**
|
||
* interface for classes which hook into setup for manipulating user fields and posted data
|
||
*
|
||
* @author Steffen Kamper <info@sk-typo3.de>
|
||
* @package TYPO3
|
||
* @subpackage setup
|
||
*/
|
||
interface setup_userSettingsHook {
|
||
/**
|
||
* modifies posted array [t3lib_div::_POST('data')]
|
||
*
|
||
* @param array array of posted data
|
||
* @param SC_mod_user_setup_index parent object
|
||
* @return void
|
||
*/
|
||
public function processUserSettingPost(&$dataArray, &$parentObject);
|
||
|
||
/**
|
||
* modifies menuItems array
|
||
*
|
||
* @param array array of menu Items
|
||
* @param SC_mod_user_setup_index parent object
|
||
* @return void
|
||
*/
|
||
public function manipulateUserSettingFields(&$menuItems, &$parentObject);
|
||
}
|
||
?>
|
typo3/sysext/setup/mod/index.php (working copy) | ||
---|---|---|
$d = t3lib_div::_POST('data');
|
||
if (is_array($d)) {
|
||
// Hook for manipulating userSettings
|
||
if(is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['setup']['processUserSettingPost'])) {
|
||
foreach($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['setup']['processUserSettingPost'] as $classData) {
|
||
$hookObject = &t3lib_div::getUserObj($classData);
|
||
if(!($hookObject instanceof setup_userSettingsHook)) {
|
||
throw new UnexpectedValueException('$hookObject must implement interface setup_userSettingsHook', 1235863751);
|
||
}
|
||
$hookObject->processUserSettingPost($d, $this);
|
||
}
|
||
}
|
||
|
||
// UC hashed before applying changes
|
||
$save_before = md5(serialize($BE_USER->uc));
|
||
... | ... | |
t3lib_BEfunc::cshItem('_MOD_user_setup', 'reset', $BACK_PATH)
|
||
);
|
||
// Hook for manipulating userSetting fields
|
||
if(is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['setup']['manipulateUserSettingFields'])) {
|
||
foreach($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['setup']['manipulateUserSettingFields'] as $classData) {
|
||
$hookObject = &t3lib_div::getUserObj($classData);
|
||
if(!($hookObject instanceof setup_userSettingsHook)) {
|
||
throw new UnexpectedValueException('$hookObject must implement interface setup_userSettingsHook', 1235863751);
|
||
}
|
||
$hookObject->manipulateUserSettingFields($menuItems, $this);
|
||
}
|
||
}
|
||
|
||
|
||
// Notice
|
||
$this->content .= $this->doc->spacer(30);
|
||
$this->content .= $this->doc->section('', $LANG->getLL('activateChanges'));
|