You are here

function template_preprocess_semanticviews_row in Semantic Views 8.2

Todo.

File

./semanticviews.module, line 136
Semantic Views module file.

Code

function template_preprocess_semanticviews_row(&$vars) {
  $view = $vars['view'];

  // Loop through the fields for this view.
  $vars['fields'] = [];
  foreach ($view->field as $id => $field) {

    // Render this even if set to exclude so it can be used elsewhere.
    $field_output = $view->style_plugin
      ->getField($vars['row']->index, $id);
    $empty = $field
      ->isValueEmpty($field_output, $field->options['empty_zero']);
    if (empty($field->options['exclude']) && (!$empty || empty($field->options['hide_empty']) && empty($vars['options']['skip_blank']))) {
      $vars['fields'][$id] = [];
      $vars['fields'][$id]['content'] = $field_output;
      if (isset($view->field[$id]->field_alias) && isset($vars['row']->{$view->field[$id]->field_alias})) {
        $vars['fields'][$id]['raw'] = $vars['row']->{$view->field[$id]->field_alias};
      }
      else {

        // Make sure it exists to reduce NOTICE.
        $vars['fields'][$id]['raw'] = NULL;
      }
      $vars['fields'][$id]['handler'] =& $view->field[$id];

      // If Semantic Views: Fields settings havn't been saved with new fields
      // this is not set and then add empty array with no values.
      if (isset($vars['options']['semantic_html'][$id])) {
        $semantic_html = $vars['options']['semantic_html'][$id];
      }
      else {

        // Default empty values.
        $semantic_html = [
          'element_type' => 'div',
          'attributes' => '',
          'label_element_type' => 'label',
          'label_attributes' => '',
        ];
      }

      // Field content.
      $vars['fields'][$id]['element_type'] = $semantic_html['element_type'];
      $vars['fields'][$id]['attributes'] = new Attribute();
      foreach (semanticviews_extract_attributes($semantic_html['attributes']) as $key => $value) {
        $vars['fields'][$id]['attributes']
          ->setAttribute($key, $value);
      }

      // Field label.
      $vars['fields'][$id]['label'] = $view->field[$id]
        ->label();
      $vars['fields'][$id]['label_colon'] = $view->field[$id]->options['element_label_colon'] ? ':' : '';
      if (!empty($vars['fields'][$id]['label'])) {
        $vars['fields'][$id]['label_element_type'] = $semantic_html['label_element_type'];
        $vars['fields'][$id]['label_attributes'] = new Attribute();
        foreach (semanticviews_extract_attributes($semantic_html['label_attributes']) as $key => $value) {
          $vars['fields'][$id]['label_attributes']
            ->setAttribute($key, $value);
        }
      }
    }
  }
}