m7v
3/28/2014 - 1:05 AM

Define your own preprocesses and templates for nodes.

Define your own preprocesses and templates for nodes.

function spaint_preprocess_node(&$variables, $hook) {
  global $theme;
  global $language;

  $variables['node']->field_image[LANGUAGE_NONE][0]['title'] = $variables['title_field'][$language->language][0]['value'];

  // Initialize templates architecture.
  if ($variables['view_mode'] == 'full' && node_is_page($variables['node'])) {
    $variables['classes_array'][] = 'node-full';
  }

  $node = $variables['node'];
  $build_mode_for_preprocess = str_replace('-', '_', $variables['view_mode']);

  $variables['theme_hook_suggestions'][] = 'node__' . $variables['view_mode'];
  $variables['theme_hook_suggestions'][] = 'node__' . $node->type . '_' . $variables['view_mode'];

  // Defines the priority of calling preprocess functions for specific node type & view modes.
  // Note: priority is calculated in reverse mode.
  $preprocess = array(
    $theme . '_preprocess_node__' . $node->type,
    $theme . '_preprocess_node__' . $build_mode_for_preprocess,
    $theme . '_preprocess_node__' . $node->type . '_' . $build_mode_for_preprocess,
  );

  foreach (array_reverse($preprocess) as $function) {
    if (function_exists($function)) {
      $function($variables, $hook);
      break;
    }
  }
}