Вы здесь

Показывать блок в определенные дни недели

0

Хотелось бы показывать блок только в выходные дни.
С помощью каких модулей это можно организовать?

Спасибо.

Версия Drupal: 
7.x
Категория: 
Block API
Вопрос задан 03.10.2015 - 18:48

Ответы

4

Вы можете написать маленький модуль сами, используйте hook_block_view_alter() или hook_block_view_MODULE_DELTA_alter(), в нем проверьте будний ли день сегодня и если да, то скройте контент:

/**
 * Implements hook_block_view_alter().
 */
function MODULE_block_view_alter(&$data, $block) {
  if ($block->delta == 'your-block-delta' && date('N') < 6) {
    $data = array();
  }
}
Ответ дан 03.10.2015 - 20:15

Можно прямо в template.php этот hook сделать, если боитесь модуль писать. Только помните про кеширование.

Комментарий оставлен 04.10.2015 - 02:33
0

По модулям, не подскажу, всё что удалось найти в гугле по этому запросу — под 6.x. Но, навскидку, логика должна быть примерно такая: определяем дату всех выходных дней, записываем их в массив, делаем в шаблоне сравнение текущей даты с датами из массива. Если совпало, то выводим регион с блоком, если нет, то нет.

P.S. Можно ещё пойти через модуль Date. Помню делал через него автоматическое архивирование (по наступлению заданной даты/времени) для нод с сезонными предложениями для одного проекта. Довольно неплохо и быстро получилось.. без особого гугления :)

Ответ дан 03.10.2015 - 19:05
0

Думаю можно это реализовать средствами Rules и Rules Bonus Pack там как раз есть экшен для добавления блока в регион.

Actions

  • Place a block: This action lets you place a block in a region, and decide its
    weight. Works on both blocks enabled by default (thereby moving them) and on
    disabled blocks (thereby enabling them). All regions in all enabled themes are
    available for selection.n.
Ответ дан 03.10.2015 - 20:16
Аватар пользователя 69
69
11
0

КАК ВАМ ОТВЕТИЛИ а также есть модуль extended_block_visibility но там опять тот же код надо писать что вам дали с функцией

date('N');
return true; //обязательно при выполнении условия
Ответ дан 03.10.2015 - 21:05