Подскажите пожалуйста что я не парвильно делаю при внедрении php кода в блок
1) Создаю новый блок
2) Перехожу к разделу "Установки видимости для страницы"
3) В разделе "Установки видимости для страницы" выбираю "Показать, если данный PHP-код возвращает TRUE (PHP-режим, только для экспертов)."
4) Добавляю в поле "текст" следующее:
*
<?php
echo 'Hello';
?>
Так вот я не вижу слово 'Hello', только сам тектс блока.
P.S. Если вместо echo 'Hello' вызвать несуществующую функцию, то вываливается ошибка (по чем можно судить что PHPfilter работает)
Комментарии
Я сам только начинаю разбираться с Друпалом, и если, как я понял, задача состоит в том что бы внедрить php код в блок, то "Установки видимости для страницы" тут не при чем, а для внедрение php кода, надо включить модуль PHP filter, затем в настройках блока выбрать Input format -> PHP code. После этого php можно вставлять в "Block body" <?php echo "Hello World!!!"; ?>.
А пункт "Установки видимости для страницы" это для того, что бы управлять на каких страницах должен показываться блок.
Все так. В отличие от пятерки в шестом PHP-фильтр по умолчанию выключен...
2) Перехожу к разделу "Установки видимости для страницы" этот пхп код должен возвращать TRUE или FALSE а никак не хелло ворд ))) т.е. его примерная структура должна быть какой:
<?php
$a = 'FALSE'
if (!$a) {$b = 'TRUE' //блок показывать
} else {$b = 'FALSE'} //блок не показывать
return $b;
Что-то мне подсказывает, что этот код может не работать. Ибо 'true' и 'false' - это строки, которые при преобразовании _должны_ быть интерпретированы в true. Возможно что код работает, но это будет частный случай, исключение. Так делать нельзя.
Начиная с версии 4 в PHP введён тип bool, c двумя регистро-независимыми значениями переменной - true и false. Пользуйтесь ими.
<?php
return true;
?>
можно возвращать условие, оно будет преобразовано в тип bool:
<?php
return ($a > $b);
?>
приведённый выше пример можно переписать так:
<?php
$a = false;
return !$a;
?>
спасибо всем большое.