Bug #23877 ยป 16177.diff
typo3/sysext/em/mod1/class.em_index.php (working copy) | ||
---|---|---|
$instObj->performUpdateQueries($update_statements['change'],$instObj->INSTALL['database_update']);
|
||
$instObj->performUpdateQueries($update_statements['create_table'],$instObj->INSTALL['database_update']);
|
||
} else {
|
||
$content .= $instObj->generateUpdateDatabaseForm_checkboxes(
|
||
$update_statements['add'], $GLOBALS['LANG']->getLL('checkDBupdates_add_fields'));
|
||
$content .= $instObj->generateUpdateDatabaseForm_checkboxes(
|
||
$update_statements['change'], $GLOBALS['LANG']->getLL('checkDBupdates_changing_fields'), 1, 0, $update_statements['change_currentValue']);
|
||
$content .= $instObj->generateUpdateDatabaseForm_checkboxes(
|
||
$update_statements['create_table'], $GLOBALS['LANG']->getLL('checkDBupdates_add_tables'));
|
||
$preprocessContent = '';
|
||
if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/mod/tools/em/index.php']['checkDBupdates'])) {
|
||
foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/mod/tools/em/index.php']['checkDBupdates'] as $classData) {
|
||
$hookObject = t3lib_div::getUserObj($classData);
|
||
if (!($hookObject instanceof em_index_checkDBupdatesHook)) {
|
||
throw new UnexpectedValueException('$hookObject must implement interface em_index_checkDBupdatesHook', 1288418476);
|
||
}
|
||
/* @var $hookObject em_index_checkDBupdatesHook */
|
||
$preprocessContent = $hookObject->preprocessDBupdates($extKey, $extInfo, $update_statements, $this);
|
||
if ($preprocessContent) {
|
||
$content .= $preprocessContent;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (!$preprocessContent) {
|
||
$content .= $instObj->generateUpdateDatabaseForm_checkboxes(
|
||
$update_statements['add'], $GLOBALS['LANG']->getLL('checkDBupdates_add_fields'));
|
||
$content .= $instObj->generateUpdateDatabaseForm_checkboxes(
|
||
$update_statements['change'], $GLOBALS['LANG']->getLL('checkDBupdates_changing_fields'), 1, 0, $update_statements['change_currentValue']);
|
||
$content .= $instObj->generateUpdateDatabaseForm_checkboxes(
|
||
$update_statements['create_table'], $GLOBALS['LANG']->getLL('checkDBupdates_add_tables'));
|
||
}
|
||
}
|
||
}
|
||
}
|
typo3/sysext/em/interfaces/interface.em_index_checkdbupdateshook.php (revision 0) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 2010 Xavier Perseguers <typo3@perseguers.ch>
|
||
* 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 hook in SC_mod_tools_em_index::checkDBupdates.
|
||
*
|
||
* @author Xavier Perseguers <typo3@perseguers.ch>
|
||
* @package TYPO3
|
||
* @subpackage em
|
||
*/
|
||
interface em_index_checkDBupdatesHook {
|
||
/**
|
||
* Hook that allows pre-processing of database structure modifications.
|
||
* The hook implementation may return a user form that will temporarily
|
||
* replace the standard database update form. This allows additional
|
||
* operations to be performed before the database structure gets updated.
|
||
*
|
||
* @param string $extKey: Extension key
|
||
* @param array $extInfo: Extension information array
|
||
* @param array $updateStatements: Database update statements
|
||
* @param SC_mod_tools_em_index $parent: The calling parent object
|
||
* @return string Either empty string or a pre-processing user form
|
||
*/
|
||
public function preprocessDBupdates($extKey, array $extInfo, array $updateStatements, SC_mod_tools_em_index $parent);
|
||
}
|
||
?>
|
typo3/sysext/em/ext_autoload.php (working copy) | ||
---|---|---|
<?php
|
||
$emClassesPath = PATH_site . 'typo3/sysext/em/classes/';
|
||
$emInterfacesPath = PATH_site . 'typo3/sysext/em/interfaces/';
|
||
return array(
|
||
'sc_mod_tools_em_index' => $emClassesPath . '../mod1/class.em_index.php',
|
||
'em_connection_exception' => $emClassesPath . 'exception/class.em_connection_exception.php',
|
||
'em_tasks_updateextensionlist' => $emClassesPath . 'tasks/class.em_tasks_updateextensionlist.php',
|
||
'em_index_checkdbupdateshook' => $emInterfacesPath . 'interface.em_index_checkdbupdateshook.php',
|
||
);
|
||
?>
|
||
?>
|