Есть масив с нодами в каждой ноды есть поле типа ссилка на материал(называетса Магазин) нужно вывести материалы с масива по 12 на странице так чтобы на одной странице не повторялись ноды с одинаковым полем Магазин.
Пример: Масив nid1 nid2 nid3... в ноды "nid1" есть поле "shop" его значение "nid10", в "nid2" есть поле "shop" его значение "nid11", а в "nid3" есть поле "shop" его значение тоже "nid10" мне надо чтобы на странице не повторялись значения полей магазин тоесть должны вевестись только ноды nid1 и nid2.
Вот наработка
<?php
function new_promo_get_nodes($added) {
//dsm($added);
$query = db_select('node', 'n');
$query->fields('n',array('nid'));
$query->leftJoin('field_data_field_finished_action', 'ffa', 'ffa.entity_id = n.nid');
$query->leftJoin('field_data_field_promo_count_reviews', 'pcr', 'pcr.entity_id = n.nid');
$query->leftJoin('field_data_field_promo_shop', 'ps', 'ps.entity_id = n.nid');
$query->condition('type', 'promo');
$query->isNotNULL('field_promo_shop_nid');
$query->condition('n.nid', $added, 'NOT IN');
$query->orderBy('ffa.field_finished_action_value', 'ASC');
$query->orderBy('pcr.field_promo_count_reviews_value', 'DESC');
$query->range(0, 12);
$select = $query->execute()->fetchAll();
return
$select;
}
function
new_promo_sql_view() {
$counts = range(0, 500);
$chunk = array_chunk($counts, 12);
static $result = array();
static $added = array('');
foreach (
$chunk as $nodes) {
$i = 1;
$nodes = new_promo_get_nodes($added);
foreach (
$nodes as $node) {
$node = node_load($node->nid);
$nid_to_add = $node->field_promo_shop[LANGUAGE_NONE][0]['nid'];
if (!array_key_exists($node->nid, $res)) {
$added[] = $node->nid;
$res[$node->nid] = $node->field_promo_shop[LANGUAGE_NONE][0]['nid'];
}
}
//$i++;
// if ($i >= 12) {
// $pages[] = $res;
// $i = 1;
// }
//
//$result[] = $added;
}
dsm($pages);
//dsm($added);
//dsm($res);
}?>