summaryrefslogtreecommitdiff
path: root/modules/field/field.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/field/field.module')
-rw-r--r--modules/field/field.module73
1 files changed, 19 insertions, 54 deletions
diff --git a/modules/field/field.module b/modules/field/field.module
index 9115c87b4..913c26974 100644
--- a/modules/field/field.module
+++ b/modules/field/field.module
@@ -149,13 +149,6 @@ function field_help($path, $arg) {
}
/**
- * Implement hook_init().
- */
-function field_init() {
- drupal_add_css(drupal_get_path('module', 'field') . '/theme/field.css');
-}
-
-/**
* Implement hook_theme().
*/
function field_theme() {
@@ -634,13 +627,6 @@ function field_access($op, $field, $account = NULL) {
/**
* Theme preprocess function for field.tpl.php.
*
- * The $variables array contains the following arguments:
- * - $object
- * - $field
- * - $items
- * - $teaser
- * - $page
- *
* @see field.tpl.php
*/
function template_preprocess_field(&$variables) {
@@ -649,54 +635,33 @@ function template_preprocess_field(&$variables) {
$instance = field_info_instance($element['#field_name'], $bundle);
$field = field_info_field($element['#field_name']);
- $variables['object'] = $element['#object'];
- $variables['field'] = $field;
- $variables['instance'] = $instance;
- $variables['items'] = array();
+ $field_type_css = strtr($field['type'], '_', '-');
+ $field_name_css = strtr($field['field_name'], '_', '-');
- if ($element['#single']) {
- // Single value formatter.
- foreach (element_children($element['items']) as $delta) {
- $variables['items'][$delta] = $element['items'][$delta]['#item'];
- $variables['items'][$delta]['view'] = drupal_render_children($element['items'], array($delta));
- }
- }
- else {
- // Multiple values formatter.
- // We display the 'all items' output as $items[0], as if it was the
- // output of a single valued field.
- // Raw values are still exposed for all items.
- foreach (element_children($element['items']) as $delta) {
- $variables['items'][$delta] = $element['items'][$delta]['#item'];
- }
- $variables['items'][0]['view'] = drupal_render_children($element, array('items'));
- }
-
- $variables['build_mode'] = $element['#build_mode'];
- $variables['page'] = (bool)menu_get_object();
-
- $field_empty = TRUE;
-
- foreach ($variables['items'] as $delta => $item) {
- if (!isset($item['view']) || (empty($item['view']) && (string)$item['view'] !== '0')) {
- $variables['items'][$delta]['empty'] = TRUE;
- }
- else {
- $field_empty = FALSE;
- $variables['items'][$delta]['empty'] = FALSE;
- }
- }
+ // If the formatter is multiple, the template sees only one 'item', which
+ // will include all values.
+ $items = $element['#formatter_single'] ? $element['items'] : array($element['items']);
$additions = array(
+ 'object' => $element['#object'],
+ 'field' => $field,
+ 'instance' => $instance,
+ 'build_mode' => $element['#build_mode'],
+ 'items' => $items,
'field_type' => $field['type'],
'field_name' => $field['field_name'],
- 'field_type_css' => strtr($field['type'], '_', '-'),
- 'field_name_css' => strtr($field['field_name'], '_', '-'),
- 'label' => check_plain(t($instance['label'])),
+ 'field_type_css' => $field_type_css,
+ 'field_name_css' => $field_name_css,
+ 'label' => $element['#title'],
'label_display' => $element['#label_display'],
- 'field_empty' => $field_empty,
+ 'label_hidden' => $element['#label_display'] == 'hidden',
'field_language' => $element['#language'],
'field_translatable' => $field['translatable'],
+ 'classes_array' => array(
+ 'field-name-' . $field_name_css,
+ 'field-type-' . $field_type_css,
+ 'field-label-' . $element['#label_display'],
+ ),
'template_files' => array(
'field',
'field-' . $element['#field_name'],