function _maxlength_format_element in Maxlength 7
Same name and namespace in other branches
- 5.2 maxlength.module \_maxlength_format_element()
- 6.2 maxlength.module \_maxlength_format_element()
- 7.2 maxlength.module \_maxlength_format_element()
Formats a form element to use maxlength value and use js. It's not moved to maxlength.inc because Form API calls it even when form_alter is not called
@arg array $element The form element which should be maxlengthed.
Return value
Maxlength-enabled form element
1 string reference to '_maxlength_format_element'
- _maxlength_content_form_alter in ./
maxlength.inc - @file Business logic for maxlength
File
- ./
maxlength.module, line 135 - Enables a max length countdown on node body, title and CCK textfields.
Code
function _maxlength_format_element($element) {
static $processed = array();
module_load_include('inc', 'maxlength', 'maxlength');
$value = $element['#max_length_properties'][0];
$field = $element['#max_length_properties'][1];
$id = $element['#max_length_properties'][2];
$type = $element['#max_length_properties'][3];
if (in_array('edit-' . $id, $processed)) {
return $element;
}
$values = _maxlength_get_values($field, $type);
if ($values !== FALSE && isset($values['limit']) && $values['limit'] && $values['use_js']) {
$path = drupal_get_path('module', 'maxlength');
drupal_add_js($path . '/maxlength.js');
$remaining = $values['limit'] - drupal_strlen($value);
if ($remaining < 0) {
drupal_set_message(t('%body_field_label truncated to %limit characters!', array(
'%body_field_label' => $element['#title'],
'%limit' => $values['limit'],
)), 'error');
$element['#default_value'] = drupal_substr($element['#default_value'], 0, $values['limit']);
$remaining = 0;
}
if (in_array($element['#id'], $processed) === FALSE) {
$js_settings = array(
'maxlength' => array(
'edit-' . $id => $values['limit'],
),
);
drupal_add_js($js_settings, 'setting');
}
$element['#suffix'] = '<div id="maxlength-' . $id . '"
class="maxlength-counter">' . t($values['text'], array(
'!limit' => $values['limit'],
'!count' => '<span class="maxlength-count">' . drupal_strlen($value) . '</span>',
'!remaining' => '<span class="maxlength-counter-remaining">' . $remaining . '</span>',
)) . '</div>';
$processed[] = $element['#id'];
}
return $element;
}