You are here

function field_weight_entity_view_alter in Field display weights (per node) 7.2

Same name and namespace in other branches
  1. 7 field_weight.module \field_weight_entity_view_alter()

Implements hook_entity_view_alter().

1 call to field_weight_entity_view_alter()
field_weight_inherit_entity_view_alter in modules/field_weight_inherit.module

File

./field_weight.module, line 379
Field display weight module.

Code

function field_weight_entity_view_alter(&$build, $type) {
  if ($type == 'node') {

    // May be replaced with option variables, if this expands to all entities.
    $enabled_node_types = variable_get('field_weight_node_types', array());

    // Check if the bundle type is enabled.
    if (in_array($build['#bundle'], $enabled_node_types, TRUE)) {

      // See if any field weights have been set.
      $node_weights = field_weight_get_node_weight($build['#node']->vid);
      if ($node_weights) {

        // Amend weights for entity fields,
        // if there is a db entry the weights will be changed for all fields stored.
        foreach ($node_weights as $key => $values) {

          // Only do anything if the field has a value, or at least exists
          if (isset($build[$key])) {
            $build[$key]['#weight'] = $values['weight'];
            if ($values['hidden'] == TRUE) {

              // If field has been hidden set this to FALSE, therefore won't be displayed.
              $build[$key]['#access'] = FALSE;
            }
          }
        }
      }
    }
  }
}