You are here

function template_preprocess_views_jqfx_galleria in Views jQFX Galleria 7

@TODO.

File

theme/views_jqfx_galleria.theme.inc, line 11
Theme & preprocess functions for the Views jQFX: Galleria module.

Code

function template_preprocess_views_jqfx_galleria(&$vars) {
  $options = $vars['options']['views_jqfx_galleria'];
  $view = $vars['view'];

  // Get our image styles
  $main_style = $options['image']['main_style'];
  $thumb_style = $options['image']['thumbnails']['thumb_style'];
  $big_style = $options['image']['fullscreen']['fullscreen_style'];

  // @TODO
  // Get the field map settings
  // Proper namespace prefix needs to be returned
  // if it's field, node, entity, etc...
  if (!empty($options['fields']['image_field'])) {
    if ($options['fields']['image_field'] == 'title' || $options['fields']['image_field'] == 'body') {
      $image_field = "node_" . $options['fields']['image_field'];
      $image_node_field = TRUE;
    }
    else {
      $image_field = "field_" . $options['fields']['image_field'];
    }
  }
  else {
    $image_field = NULL;
  }

  // Title field
  if (!empty($options['fields']['title_field'])) {
    if ($options['fields']['title_field'] == 'title' || $options['fields']['title_field'] == 'body') {
      $title_field = "node_" . $options['fields']['title_field'];
      $title_node_field = TRUE;
    }
    else {
      $title_field = "field_" . $options['fields']['title_field'];
    }
  }

  // Description field
  if (!empty($options['fields']['desc_field'])) {
    if ($options['fields']['desc_field'] == 'title' || $options['fields']['desc_field'] == 'body') {
      $desc_field = "node_" . $options['fields']['desc_field'];
      $desc_node_field = TRUE;
    }
    else {
      $desc_field = "field_" . $options['fields']['desc_field'];
    }
  }

  // Link field
  if (!empty($options['fields']['link_field'])) {
    if ($options['fields']['link_field'] == 'title' || $options['fields']['link_field'] == 'body') {
      $link_field = "node_" . $options['fields']['link_field'];
      $link_node_field = TRUE;
    }
    else {
      $link_field = "field_" . $options['fields']['link_field'];
    }
  }

  // Layer title field
  if (!empty($options['fields']['layer_field_title'])) {
    if ($options['fields']['layer_field_title'] == 'title' || $options['fields']['layer_field_title'] == 'body') {
      $layer_title_field = "node_" . $options['fields']['layer_field_title'];
      $layer_title_node_field = TRUE;
    }
    else {
      $layer_title_field = "field_" . $options['fields']['layer_field_title'];
    }
  }

  // Layer text field
  if (!empty($options['fields']['layer_field_text'])) {
    if ($options['fields']['layer_field_text'] == 'title' || $options['fields']['layer_field_text'] == 'body') {
      $layer_text_field = "node_" . $options['fields']['layer_field_text'];
      $layer_text_node_field = TRUE;
    }
    else {
      $layer_text_field = "field_" . $options['fields']['layer_field_text'];
    }
  }

  // Find out if our link image field module is installed
  // And use its formatter if it is
  //  if (module_exists('linkimagefield')) {
  //    $formatter = 'linkimage_formatter';
  //  }
  //  else {
  $formatter = 'image_formatter';

  //  }
  // @TODO
  // foreach loops need to be nested so that
  // proper field mapping data is returned for the image
  // whether it is coming from a single entity or
  // we are trying to pair fields with data from
  // multiple entities
  $slide = array();
  if (!is_null($image_field) && !isset($image_node_field)) {
    foreach ($view->result as $rid) {
      foreach ($rid->{$image_field} as $iid => $image) {
        $image_uri = $image['raw']['uri'];
        $main_url = views_jqfx_galleria_main_image_url($main_style, $image_uri);
        $big_url = views_jqfx_galleria_big_image_url($big_style, $image_uri);
        if (!empty($big_url)) {
          $attr = array(
            'attributes' => array(
              'rel' => $big_url,
            ),
          );
        }
        else {
          $attr = array();
        }
        $slide = array(
          '#theme' => $formatter,
          '#item' => $image['rendered']['#item'],
          '#image_style' => $thumb_style,
          '#path' => array(
            'path' => $main_url,
            'options' => $attr,
          ),
        );

        // Override default title
        if (!empty($title_field)) {
          if (isset($title_node_field)) {
            $slide['#item']['title'] = $rid->{$title_field};
          }
          elseif (!empty($rid->{$title_field}[$iid]['rendered']['#markup'])) {
            $slide['#item']['title'] = $rid->{$title_field}[$iid]['rendered']['#markup'];
          }
          else {
            $slide['#item']['title'] = NULL;
          }
        }

        // Override default description
        if (!empty($desc_field)) {
          if (isset($desc_node_field)) {
            $slide['#item']['alt'] = $rid->{$desc_field};
          }
          elseif (!empty($rid->{$desc_field}[$iid]['rendered']['#markup'])) {
            $slide['#item']['alt'] = $rid->{$desc_field}[$iid]['rendered']['#markup'];
          }
          else {
            $slide['#item']['alt'] = NULL;
          }
        }

        // Override default longdesc
        if (!empty($link_field)) {
          if (isset($link_node_field)) {
            $slide['#item']['longdesc'] = $rid->{$link_field};
          }
          elseif (!empty($rid->{$link_field}[$iid]['rendered']['#markup'])) {
            $slide['#item']['longdesc'] = $rid->{$link_field}[$iid]['rendered']['#markup'];
          }
          else {
            $slide['#item']['longdesc'] = NULL;
          }
        }

        // Get the info for the layer title
        if (!empty($layer_title_field)) {
          if (isset($layer_title_node_field)) {
            $html_title_layer = $rid->{$layer_title_field};
          }
          elseif (!empty($rid->{$layer_title_field}[$iid]['rendered']['#markup'])) {
            $html_title_layer = $rid->{$layer_title_field}[$iid]['rendered']['#markup'];
          }
        }

        // Get the info for the layer text
        if (!empty($layer_text_field)) {
          if (isset($layer_text_node_field)) {
            $html_text_layer = $rid->{$layer_text_field};
          }
          elseif (!empty($rid->{$layer_text_field}[$iid]['rendered']['#markup'])) {
            $html_text_layer = $rid->{$layer_text_field}[$iid]['rendered']['#markup'];
          }
        }

        // Create the full html layer
        if (!empty($layer_title_field) || !empty($layer_text_field)) {
          if (isset($html_title_layer) || isset($html_text_layer)) {
            if (isset($html_title_layer)) {
              $html_layer = '<h2>' . $html_title_layer . '</h2>';
              if (isset($html_text_layer)) {
                $html_layer .= $html_text_layer;
              }
            }
            else {
              $html_layer = $html_text_layer;
            }
          }
        }

        // Get the slide rendered from the image formatter
        $slide = drupal_render($slide);

        // Add the html layer to the rendered slide
        if (isset($html_layer)) {
          $slide .= "\n<div class='layer'><div>" . $html_layer . "</div></div>";
        }

        // All that to pass this
        $vars['content'][] = $slide;

        // Unset layer vars for next loop
        unset($html_title_layer);
        unset($html_text_layer);
        unset($html_layer);
      }
    }
  }
  else {
    $vars['content'] = NULL;
  }
  _views_jqfx_galleria_add_js($options, 'views-jqfx-galleria-images-' . $vars['id']);
}