Project

General

Profile

Bug #20123 » 10596_setuphook.diff

Administrator Admin, 2009-03-03 12:06

View differences:

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'));
(1-1/3)