From dbb5457cfe2fc016b1ab2e3ee0c8585478bb7360 Mon Sep 17 00:00:00 2001 From: Angie Byron <webchick@24967.no-reply.drupal.org> Date: Thu, 23 Jul 2009 21:20:16 +0000 Subject: [PATCH] #527804 by sun: Add an alter hook for element_info() to change default values of form elements. --- includes/common.inc | 2 ++ modules/system/system.api.php | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/includes/common.inc b/includes/common.inc index 2de18d1fe356..2a84bffd14ec 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -3987,6 +3987,8 @@ function element_info($type) { $cache[$element_type]['#type'] = $element_type; } } + // Allow modules to alter the element type defaults. + drupal_alter('element_info', $cache); } return $cache[$type]; diff --git a/modules/system/system.api.php b/modules/system/system.api.php index 7aead6c9b9b6..8986270b2942 100644 --- a/modules/system/system.api.php +++ b/modules/system/system.api.php @@ -115,6 +115,24 @@ function hook_elements() { return $type; } +/** + * Alter the element type information returned from modules. + * + * A module may implement this hook in order to alter the element type defaults + * defined by a module. + * + * @param &$type + * All element type defaults as collected by hook_elements(). + * + * @see hook_elements() + */ +function hook_element_info_alter(&$type) { + // Decrease the default size of textfields. + if (isset($type['textfield']['#size'])) { + $type['textfield']['#size'] = 40; + } +} + /** * Perform cleanup tasks. * -- GitLab