Возможно ли публиковать новости на определеную дату в друпал?

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

Комментарии

Аватар пользователя igor701 igor701 12 октября 2009 в 10:22

можно просто дату вперёд выставлять, а во views фильтр сделать

Документ: Время создания
меньше чем или равно
now

Аватар пользователя burnis burnis 12 февраля 2010 в 16:37

а в пятом друпале с помощью views это можно сдеать?
у Node: Created Time такого не нашел. Может делается как-то по другому?
заранее спасибо

Аватар пользователя iryston iryston 12 февраля 2010 в 21:15

У Друпала есть одна тонкость, как ее побороть я не знаю.
Вариантов отложенной публикации много, самые простые уже посоветовали выше,
можно также использовать db_rewrite_sql
для этого написать простенький модуль,
назовем его "deferrednode", а дату проставлять в поле "дата создания"

function deferrednode_db_rewrite_sql($query, $primary_table, $primary_field, $args) {
  switch ($primary_field) {
    case 'nid':
    if(!user_access('administer nodes')){
      // this query deals with node objects
      $return = array();
      if ($primary_table != 'n') {
        $return['join'] = "LEFT JOIN {node} n ON $primary_table.nid = n.nid";
      }
     // $return['where'] = 'created <' . mktime(0, 0, 0, 1, 1, 2005);
      $return['where'] = 'n.created <' . time();
      return $return;
      break;
      }
    case 'tid':
      // this query deals with taxonomy objects
      break;
 
    case 'vid':
      // this query deals with vocabulary objects
      break;
  }
}
 
function deferrednode_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
  if($op=='view' && $node->created > time() && !user_access('administer nodes')) drupal_access_denied();
  }

При отключенном кешировании последний вариант отрабатывает нормально, но стоит включить кеш, и тогда без запуска крона не обойтись.
Учитывая, что крон запускается только через определенные прмежутки времени точно вовремя выставить материал не получается. Та же проблема привязки к крону и у других известных мне способов.