Reihenfolge der Extensionen-Liste beeinflussen
Armin Bartsch, Mittwoch, 30. Juni 2010
Beeinflussen in welcher Reihenfolge Extensionen geladen werden sollen
Es kann vorkommen das eine Extension zwingend am Ende der Extensions-Liste geladen werden muss. Mit dem Paramter priority in der Datei ext_emconf.php kann die Lade-Postion angegeben werden.
$EM_CONF[$_EXTKEY] = array(
'title' => 'Erweiterung für iw_product',
'description' => 'Anpassungen TCA usw',
'category' => 'plugin',
'author' => 'Armin Bartsch',
'author_email' => '',
'shy' => '',
'dependencies' => '',
'conflicts' => '',
'priority' => 'bottom',
'module' => '',
'state' => 'stable',
'internal' => '',
'uploadfolder' => 0,
'createDirs' => '',
'modify_tables' => '',
'clearCacheOnLoad' => 0,
'lockType' => '',
'author_company' => '',
'version' => '0.0.4',
'constraints' => array(
'depends' => array(
),
'conflicts' => array(
),
'suggests' => array(
),
),
'suggests' => array(
),
);
$EM_CONF[$_EXTKEY] =
array(
'title' => 'Erweiterung für iw_product',
'description' => 'Anpassungen TCA usw',
'category' => 'plugin',
'author' => 'Armin Bartsch',
'author_email' => '',
'shy' => '',
'dependencies' => '',
'conflicts' => '',
'priority' => 'bottom',
'module' => '',
'state' => 'stable',
'internal' => '',
'uploadfolder' => 0,
'createDirs' => '',
'modify_tables' => '',
'clearCacheOnLoad' => 0,
'lockType' => '',
'author_company' => '',
'version' => '0.0.4',
),
),
),
),
),
);
Als Paramter stehen zur Verfügung:
- bottom, mit als letztes laden
- top, mit als erstes laden
- middle, irgendwo in der Mitte laden
Es kann nicht die genau Ladereihenfolge bestimmt werden, sondern nur ob eine Extension am Anfang, in der Mitte oder am Ende geladen werden soll!
Zuständiger PHP-Code
Zu finden in der typo3/mod/em/class.em_index.php
/**
* Traverse the array of installed extensions keys and arranges extensions in the priority order they should be in
*
* @param array Array of extension keys as values
* @param array Extension information array
* @return array Modified array of extention keys as values
* @see addExtToList()
*/
function managesPriorities($listArr,$instExtInfo) {
// Initialize:
$levels = array(
'top' => array(),
'middle' => array(),
'bottom' => array(),
);
// Traverse list of extensions:
foreach($listArr as $ext) {
$prio = trim($instExtInfo[$ext]['EM_CONF']['priority']);
switch((string)$prio) {
case 'top':
case 'bottom':
$levels[$prio][] = $ext;
break;
default:
$levels['middle'][] = $ext;
break;
}
}
return array_merge(
$levels['top'],
$levels['middle'],
$levels['bottom']
);
}
/**
* Traverse the array of installed extensions keys and arranges extensions in the priority order they should be in
*
* @param array Array of extension keys as values
* @param array Extension information array
* @return array Modified array of extention keys as values
* @see addExtToList()
*/
function managesPriorities($listArr,$instExtInfo) {
// Initialize:
);
// Traverse list of extensions:
foreach($listArr as $ext) {
$prio =
trim($instExtInfo[$ext]['EM_CONF']['priority']);
switch((string)$prio) {
case 'top':
case 'bottom':
$levels[$prio][] = $ext;
break;
default:
$levels['middle'][] = $ext;
break;
}
}
$levels['top'],
$levels['middle'],
$levels['bottom']
);
}
Entwicklungsumgebung
- TYPO Version:
- 4.3.1