<?php
/**
 * @file
 * Code for the DIY News feature.
 */

include_once 'diy_news.features.inc';

/**
 * Implements HOOK_views_pre_execute().
 */
function diy_news_views_pre_execute(&$view) {
  if($view->name == "news" && $view->current_display == 'page') {
    // remove offset
    if(isset($view->exposed_raw_input['fulltext']) && !empty($view->exposed_raw_input['fulltext'])) {
      $view->query->set_offset(0);
    }
  }
}

/**
 * Implements HOOK_preprocess_views_view().
 */
function diy_news_preprocess_views_view(&$vars) {
  if($vars['name'] == "news" && $vars['display_id'] == 'page') {
    if($vars['view']->total_rows > 5) {
      $vars['attachment_before'] .= '<h2>'. t('More newsitems') .'</h2>';
    }
    if(isset($vars['view']->exposed_raw_input['fulltext']) && !empty($vars['view']->exposed_raw_input['fulltext'])) {
      $vars['attachment_before'] = '';
    }
  }
}

/**
 * Implements HOOK_preprocess_node().
 */
function diy_news_preprocess_node(&$vars) {
  if($vars['type'] == 'news' && $vars['view_mode'] == 'teaser') {

    // change image style for top two news
    $views_page = views_get_page_view();
    if(is_object($views_page)) {
      if($views_page->name == 'news') {
        if(!isset($views_page->exposed_raw_input['fulltext']) || empty($views_page->exposed_raw_input['fulltext'])) {
          if($res = views_get_view_result('news', 'attachment_1')) {
            $nids = array();

            if(is_array($res)) {
              foreach($res as $object) {
                $nids[] = $object->entity;
              }
            }

            if(in_array($vars['node']->nid, $nids)) {
              if(isset($vars['content']['field_header_image'][0]['#image_style'])) {
                $vars['content']['field_header_image'][0]['#image_style'] = 'news_image_thumb_big';
              }
            }
          }
        }
      }
    }

    // change image style on frontpage
    if(drupal_is_front_page()) {
      if(isset($vars['content']['field_header_image'][0]['#image_style'])) {
        $vars['content']['field_header_image'][0]['#image_style'] = 'header_image_first';
      }
    }
  }
}

/**
 * Helper function, called from views argument
 */
function diy_news_get_currents_news_term() {
  $node = menu_get_object();
  if(isset($node->type) && $node->type == 'news') {
    if($field_news_tags = field_get_items('node', $node, 'field_news_tags')) {
      return $field_news_tags[0]['tid'];
    }
  }

  return false;
}