Core Override
Categories
Component ID
1546970
Component name
Core Override
Component type
module
Maintenance status
Development status
Component security advisory coverage
not-covered
Component created
Component changed
Component body
This module allows you to override individual functions in core without patching core.
Usage:
mymodule.module
/**
* Take over taxonomy_get_tree() and drupal_get_form().
*/
function mymodule_core_override_info() {
return array(
'taxonomy_get_tree' => array(
'file' => drupal_get_path('module', 'mymodule') . '/mymodule.overrides.inc',
'callback' => 'mymodule_taxonomy_get_tree'
),
'drupal_get_form' => array(
'callback' => 'mymodule_drupal_get_form'
)
);
}
/**
* Hijack drupal_get_form()
*/
function mymodue_drupal_get_form($form_id) {
error_log("TOOK FORM");
return call_user_func_array('drupal_core_drupal_get_form', func_get_args());
}
mymodule.overrides.inc
/**
* Hijack taxonomy_get_tree()
*/
function mymodule_taxonomy_get_tree($vid, $parent = 0, $max_depth = NULL, $load_entities = FALSE) {
// Do custom stuff here ... for now just use the original taxonomy_get_tree().
return drupal_core_taxonomy_get_tree($vid, $parent, $max_depth, $load_entities);
}
This module was partially inspired by the technique used in the Leftandright - Nested Set Taxonomy module and by stream_wrapper override ideas of patrickd.
This module probably shouldn't be used in production, and was made entirely for fun to see if it was somewhat possible to override core functionality in a general way.
NOTE: Seems buggy with XCache but fine with APC?
