Здорово, народ!
Как сделать такой блок:
Товар: Слон розовый
До конца акции осталось: 50мин. 30 сек
По проишествии этого времени, на этом месте должен появится другой товар.
В блоке ссылка на товар (с определенным признаком) или статью акции товара, не принципиально.
Комментарии
Модулек есть автоматической депубликации нод. Прикрутить к нему считалку в реальном времяни и будет самое оно..
Модуль, это http://drupal.org/project/scheduler ?
или это http://drupal.org/project/node_expire ?
Прикрутить считалку? Как? Откуда?
Интересная тема.
Лучше не депубликация, а автоматом чтоб ставилось по окончании срока - "Акция закрыта".
По мне так лучше вообще эту ерунду не ставить но рас надо, значит надо.
Scheduler позволяет задать дату публикации и снятич я с публикации. Вплоть то часа.
А в нем можно выставить только часы, а дни не выставлять? По принципу каждый день с 8,00 до 11,00 пиво со скидкой.
Такую хренотень еще нашел.
http://drupal.org/project/uc_lto
А по запросу timer на орге показано аж несколько модулей
http://drupal.org/project/modules?filters=bs_project_sandbox%3A0&text=timer
Собственно осоновной вопрос:
как по прошествии промежутка времени снимать с публикации один материал и ставить другой
снять рулесом по сути можно, а вот добавить хз
Можно и поставить, но для этого надо знать PHP.
Вот как опубликовать случайный материал из не опубликованных типа story? Здесь специалисты по высокоуровневому кодингу есть?
Создал тему на орге, но видно там мой английский не понимают
http://drupal.org/node/1542354
В любом случае создавать ндо надо заранее, тем или иным образом. Подключать ее можно только "опубликовано/ не опубликовано".
Варианты решений которые попадались впринципе все перечилены.
Самый "навороченый" и гибкий - это рулес.
Вот с сетчиком время тут не подскажу, не было задачи, попробуй спросить у Mirocow, я у него видел решение с подобной фигней.
Как раз таймер - это легко модулей таймера несколько.
Мне нужно только PHP кодом опубликовать случайный (или не случайный) материал из списка не опубликованных одного типа.
Остальное я знаю.
А почему именно кодом? Вьюс чем плох?
Это я знаю:
Устанавливаем node expire дефолтное время жизни для материала. Создаем несколько материалов, но публикуем только один.
Делаем правило (Rules), когда время жизни истекает, материал снимаем с публикации...
и... (а вот это PHP кодом в этом я малость плаваю поэтому не знаю):
...публикуем случайный материал из не опубликованных определенного типа.
Как views - не понимаю.
Как то так (не тестировалось)
<?php
$nids
= array(1, 2, 3, 4, 5); // Массив из id нод$random = array_rand($nids, 1); // Отбираем из массива выше случайный ключ id $node = node_load($nids[$random[0]]);
$node->status = 1; // Публикуем
node_save($node); // Пересохраняем ?>
PROFIT!
$nids = array(1, 2, 3, 4, 5); - тут судя по всему нужно сделать выборку нод из БД с параметрами
* тип материал
* не опубликовано
Это какая таблица?
Выборка по типу ноды
d6: $nodes = db_query('SELECT nid FROM {node} WHERE type="%s"', $type);
d7: $nodes = node_load_multiple(array(), array('type' => $type));
Добавь условие для status = 1
Все дошло наконец чего хочешь. Тогда конечно пхпой.
Просто как вариант все "публикуем" а через вьюху рандомно показываем или нет ограниченое количество страниц..
<?php
$nids = array(1, 2, 3, 4, 5);
$random = array_rand($nids, 1);
$node = node_load($nids[$random[0]]);
$node->status = 1;
node_save($node);
?>
Не работает твой код, volocuga.
Может если использовать Rules в него надо какой-то return добавить?
/*После долгих размышлений*/
Да! В него надо определнно добавить ruturn. Народ, подскажите какой. Или хоть варианты. Или хоть где посмотреть примеры php кода в Rules.