Вывод нескольких нодов, созданных до определённой даты

Тема в разделе "Drupal", создана пользователем bulbasaur, 23 сен 2010.

Информация :
Прежде чем создать новую тему внимательно ознакомьтесь с правилами раздела
Статус темы:
Закрыта.
Модераторы: DMS
  1. bulbasaur

    bulbasaur Создатель

    Регистр.:
    23 ноя 2009
    Сообщения:
    21
    Симпатии:
    0
    Можно ли как-то с помощью views-ов достать из базы ноды, дата создания которых (отдельное поле CCK) зависит от даты создания нода, для которого происходит отбор?
    Например, мне хочется выводить вместе с телом нода несколько ссылок на ноды, созданные как раньше, так и позже данного нода. Т. е. если у меня есть ноды, созданные 4, 5 и 6 января, и мне хочется выводить ссылки на ноды, созданные за предыдущий и за следующий день, то для нода, созданного 5 января, должны быть выведены ссылки на ноды, созданные 4 и 6 января. Как-нибудь можно такого добиться?
     
  2. master_zt

    master_zt Создатель

    Регистр.:
    19 мар 2009
    Сообщения:
    12
    Симпатии:
    1
    А зачем отдельное поле ССК, стандартная дата создания ноды не подходит ?, или оно чем то отличается?...
    а так вложи во Veiw другой Veiw, который отвечает заданным параметрам.
     
  3. bulbasaur

    bulbasaur Создатель

    Регистр.:
    23 ноя 2009
    Сообщения:
    21
    Симпатии:
    0
    Предоставляет больше возможностей. Речь не об этом.

    Не понял. Можно подробнее? Например, как мне для нода отобрать ноды, созданные за прошлую и за следующую недели относительно даты создания данного нода?
     
  4. infarh

    infarh Постоялец

    Регистр.:
    14 мар 2008
    Сообщения:
    70
    Симпатии:
    4
    А с помощью фильтров? Создаёшь фильтр Материал: дата создания и в настройках ставишь меньше или больше и указываешь на сколько
     
  5. bulbasaur

    bulbasaur Создатель

    Регистр.:
    23 ноя 2009
    Сообщения:
    21
    Симпатии:
    0
    Ну и как в фильтрах можно указать дату создания нода, относительно которого происходит отбор? Очередной набив постов?
     
  6. infarh

    infarh Постоялец

    Регистр.:
    14 мар 2008
    Сообщения:
    70
    Симпатии:
    4
    [​IMG]
    Тут некоторая заданная и можно поставить меньше или равно. Вообще вариантов много.
     
  7. bulbasaur

    bulbasaur Создатель

    Регистр.:
    23 ноя 2009
    Сообщения:
    21
    Симпатии:
    0
    infarh
    Ключевая фраза:
    На картинке, которую ты привёл этого сделать нельзя. Заголовочный пост поправил.
     
  8. shamaner

    shamaner Постоялец

    Регистр.:
    10 окт 2007
    Сообщения:
    140
    Симпатии:
    18
    Relationships попробуйте. столбик где три поля.

    Relationships
    Аргументы
    Поля
     
  9. bulbasaur

    bulbasaur Создатель

    Регистр.:
    23 ноя 2009
    Сообщения:
    21
    Симпатии:
    0
    Получилось сделать через аргументы.

    В качестве аргумента указал Date: Date (node). Далее в параметрах аргумента указал Date field(s:( Content: Date (field_date). В качестве дефолтного аргумента указал вот такой PHP код:
    PHP:
    // проверяем, является ли урл урлом нода (т. е. вида /node/123)
    if(arg(0) == 'node' && is_numeric(arg(1))) {
      
    $node=node_load(arg(1));
      if(
    $node) {
        
    // чтобы не захватывать текущий нод, прибавляем к дате создания нода секунду
        
    $timestamp strtotime($node->field_date[0]['value'].' +1 second');
        
    $date date('Y-m-d\TH:i:s'$timestamp);
        
    // в качестве аргумента выводим диапазон "дата создания нода +1 секунда -- +1 неделя"
        
    return $date.'--P1W';
      }
      else {
        return 
    FALSE;
      }
    }
    }
    Если хочется возвратить диапазон за прошлую неделю относительно даты создания нода:
    PHP:
    if(arg(0) == 'node' && is_numeric(arg(1))) {
      
    $node=node_load(arg(1));
      if(
    $node) {
        
    $timestamp strtotime($node->field_date[0]['value'].' -1 week');
        
    $date date('Y-m-d\TH:i:s'$timestamp);
        return 
    $date.'--P1W';
      }
      else {
        return 
    FALSE;
      }
    }
    http://groups.drupal.org/node/1362
    Единственное неудобство - если хочется отсортировать ноды по убыванию даты, и если нодов, найденных "в будущем", много, то выводиться будут ноды, найденные самыми первыми, и не больше того количества, которое указано в параметрах view.
     
Статус темы:
Закрыта.