Добрый день! Настроил на сервере LAMP, установил Drupal по инструкции. Все работает как положено, кроме функции програмного вывода блока через module_invoke.
<?php
$block = module_invoke('views', 'block_view', 'delta');
print render($block);
?>
Код ничего не выводит. При обычном выводе блока через визуальный редактор все работает. Более того, установил точную копию сайта на Open Server, подключил его к базе данных основного сайта, код из примера выше работает как положено. Поэтому подозреваю, что не хватает какого-то модуля на сервере. В администрировании Линукса не силен, к сожалению, в первый раз ставил. В чем может быть проблема?
Версия Drupal - 7.50.
Серверная ОС - Ubuntu 14.04.
Сервер - Apache 2.4.7.
PHP - 5.5.9-1ubuntu4.17
Хостинг - Microsoft Azure.
Комментарии
м.б., версия пхп другая?
На локалхосте стоит PHP-5.5.3. Версия 5.5. по документации Дрпупала официально поддерживается.
Кэш сбрасывали? Логи смотрели?
Что за 'delta'?
Кэш сбрасывал, и для браузера, и для Друпала. Крон запускал. Апач рестартил.
В логах Друпала ошибкок php только две:
Notice: Undefined index: #entity в функции og_form_group_reference_validate() (строка 741 в файле /var/www/html/sites/all/modules/og/og.module).
Но они, как я понимаю, связаны с модулем OG Groups и к проблеме отношения не имеют (программно выводится блок Views в файле node.tpl.php).
Имя блока же. На сайте оно другое, тут просто для примера delta вставил.
Уверены, что подставляете верную дельту?
Только что проверил дельту в базе данных, такая же, как и в коде. Более того, код одинаков и для локалхоста, и для основного сайта, и оба они подключены к одной и той же базе данных, так что если была бы ошибка в дельте, то блок не работал бы в обоих случаях.
Согласен, дело значит в другом.
В каком файле находиться этот код? (самописный модуль, файлы темы и т.п.)
node.tpl.php
Проблему решил, выведя блок целиком:
<?php
$block = block_load('Module_name', 'block_delta');
$block_content = _block_render_blocks(array($block));
$build = _block_get_renderable_array($block_content);
print drupal_render($build);
?>