Есть функционал который удаляет повторный вывод нод в разных вьюхах на одной странице

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 1 апреля 2013 в 11:58

Сейчас функционал применяется ко всем блокам , страницам. Какой код нужно добавить что бы это было опционально.

т.е. поствил галку в настройках вьюшно страницы или блока и только из этого блока удалялись бы повторы...

<?php
/**
 * file
 * Contains core functions for the Views Duplicates module.
 */

/**
 * Implements hook_init().
 */

function views_duplicates_init() {
  global 
$_views_duplicates_remove;
  
// Make sure our variable is always empty on every page.
  
$_views_duplicates_remove = array();
}

/**
 * Implements hook_node_load().
 */
function views_duplicates_node_load($nodes$types) {
  global 
$_views_duplicates_remove;

  

// Add nid of every loaded node to our array.
  
foreach ($nodes as $nid => $node) {
    
$_views_duplicates_remove[] = $nid;
  }

  

// Make our array unique.
  
if (!empty($_views_duplicates_remove)) {
    
$_views_duplicates_remove array_unique($_views_duplicates_remove);
  }
}

/**
 * Implements hook_views_query_alter().
 */
function views_duplicates_views_query_alter(&$view, &$query) {
  global 
$_views_duplicates_remove;

  if (!empty(

$_views_duplicates_remove)) {
    
// Alter each view query to skip loading saved nids.
    
$query->where[1]['conditions'][] = array(
      
'field' => 'node.nid',
      
'operator' => 'not in',
      
'value' => $_views_duplicates_remove,
    );
  }
?>

Комментарии