summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/common.inc21
1 files changed, 19 insertions, 2 deletions
diff --git a/includes/common.inc b/includes/common.inc
index bef2aaef6..e8080e7f0 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -1328,8 +1328,25 @@ function form_password($title, $name, $value, $size, $maxlength, $description =
*/
function form_textarea($title, $name, $value, $cols, $rows, $description = NULL, $attributes = NULL, $required = FALSE) {
$cols = $cols ? ' cols="'. $cols .'"' : '';
- module_invoke_all('textarea', $name); // eg. optionally plug in a WYSIWYG editor
- return theme('form_element', $title, '<textarea wrap="virtual"'. $cols .' rows="'. $rows .'" name="edit['. $name .']" id="edit-'. $name .'" class="'. _form_get_class('textarea', $required, _form_get_error($name)) .'"'. drupal_attributes($attributes) .'>'. check_form($value) .'</textarea>', $description, 'edit-'. $name, $required, _form_get_error($name));
+ $output = '';
+
+ // e.g. optionally plug in a WYSIWYG editor
+ foreach (module_list() as $module_name) {
+ if (module_hook($module_name, 'textarea')) {
+ $output .= module_invoke($module_name, 'textarea', 'pre', $name);
+ }
+ }
+
+ $output .= theme('form_element', $title, '<textarea wrap="virtual"'. $cols .' rows="'. $rows .'" name="edit['. $name .']" id="edit-'. $name .'" class="'. _form_get_class('textarea', $required, _form_get_error($name)) .'"'. drupal_attributes($attributes) .'>'. check_form($value) .'</textarea>', $description, 'edit-'. $name, $required, _form_get_error($name));
+
+ // e.g. optionally plug in a WYSIWYG editor
+ foreach (module_list() as $module_name) {
+ if (module_hook($module_name, 'textarea')) {
+ $output .= module_invoke($module_name, 'textarea', 'post', $name);
+ }
+ }
+
+ return $output;
}
/**