Index: branches/5.0.x/core/kernel/utility/unit_config_reader.php =================================================================== diff -u -r12399 -r12578 --- branches/5.0.x/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 12399) +++ branches/5.0.x/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 12578) @@ -1,6 +1,6 @@ processDynamicClones(); + $this->retrieveCollections(); } if ($store_cache) { @@ -413,6 +414,7 @@ $this->ParseConfigs(); $this->AfterConfigRead(false); $this->processDynamicClones(); + $this->retrieveCollections(); } /** @@ -442,6 +444,32 @@ } /** + * Process all collectable unit config options here to also catch ones, defined from OnAfterConfigRead events + * + */ + function retrieveCollections() + { + foreach ($this->configData as $prefix => $config) { + // collect replacement templates + if (array_key_exists('ReplacementTemplates', $config) && $config['ReplacementTemplates']) { + $this->Application->ReplacementTemplates = array_merge($this->Application->ReplacementTemplates, $config['ReplacementTemplates']); + } + + // collect rewrite listeners + if (array_key_exists('RewriteListener', $config) && $config['RewriteListener']) { + $rewrite_listener = $config['RewriteListener']; + if (strpos($rewrite_listener, ':') === false) { + $rewrite_listener = $prefix . '_EventHandler:' . $rewrite_listener; + } + + $rewrite_priority = array_key_exists('RewritePriority', $config) ? $config['RewritePriority'] : false; + + $this->Application->RewriteListeners[$prefix] = Array ('listener' => $rewrite_listener, 'priority' => $rewrite_priority); + } + } + } + + /** * Register nessasary classes * This method should only process the data which is cached! * @@ -550,23 +578,6 @@ $this->Application->registerAggregateTag($aggregate_tag); } } - - if (array_key_exists('ReplacementTemplates', $config) && $config['ReplacementTemplates']) { - // replacement templates defined in this config - $this->Application->ReplacementTemplates = array_merge($this->Application->ReplacementTemplates, $config['ReplacementTemplates']); - } - - if (array_key_exists('RewriteListener', $config) && $config['RewriteListener']) { - // replacement templates defined in this config - $rewrite_listener = $config['RewriteListener']; - if (strpos($rewrite_listener, ':') === false) { - $rewrite_listener = $prefix . '_EventHandler:' . $rewrite_listener; - } - - $rewrite_priority = array_key_exists('RewritePriority', $config) ? $config['RewritePriority'] : false; - - $this->Application->RewriteListeners[$prefix] = Array ('listener' => $rewrite_listener, 'priority' => $rewrite_priority); - } } function ValidateConfig($prefix)