Приветствую. Возникла такая проблема - при выводе вьюшки програмно. То есть существует у меня page--front.tpl.php, я ее темизирую, вывожу там вьюшку в контентной части. Вывожу следующим образом:
<?php
$block = module_invoke('views','block_view','test-block');
if($block !=0){
print render($block);
}
?>
Сколько это применял на разных сайтах, всегда все работало без проблем. Тут вылез косяк следующего содержания:
Warning: Illegal string offset '#children' in drupal_render() (line 6065 of /var/www/html/includes/common.inc).
Warning: Cannot assign an empty string to a string offset in drupal_render() (line 6065 of /var/www/html/includes/common.inc).
Warning: Illegal string offset '#children' in drupal_render() (line 6075 of /var/www/html/includes/common.inc).
Warning: Illegal string offset '#children' in drupal_render() (line 6113 of /var/www/html/includes/common.inc).
Warning: Illegal string offset '#printed' in drupal_render() (line 6120 of /var/www/html/includes/common.inc).
Все бы ничего и можно бы было скрыть вывод ошибок, как советуют на некоторых ресурсах, вьюха то работает все таки. Но проблема в том что после вьюшки у меня выводится лишняя буква "t", в отдельной строке, да и наличие самих ошибок не очень радует. Почитал, понял что это распространенная ошибка.
Нашел тут патч https://www.drupal.org/project/drupal/issues/1711256#comment-6334838, но он для 6608 строки, заменил, эта ошибка ушла, но у меня еще и на других строках ошибки связанные с этим.
Насколько я понимаю скрипт пытается получить массив в каких то дочерних элементах перебирая массив, но получает строку.
Но что там перебирается и откуда он там получает эту строку я не понимаю)
В общем может кто сталкивался и что то посоветует? Не знаю, стоит ли вообще лезть в ядро, может есть вариант решить проблему по другому?
Вложение | Размер |
---|---|
devtools.jpg | 64.45 КБ |
Комментарии
Возможно кому то пригодится, решил проблему с помощью патча, указанного в данном комментарии https://stackoverflow.com/a/56057393/5756010
Пофиксился и вывод лишних символов и ошибки.
Патчить ядро без использования средств автоматизации, типа composer - это плохая практика. Ядро семерки всё равно обновляется довольно часто. В итоге любители патчить ядро просто перестают ядро обновлять, а потом когда их сайт будет заражен кричат "ко ко ко друпал дырявый"
а каким образом стоило поступить в данной ситуации? Не совсем понимаю.Я слышал о нем только применительно к восьмерке.
Когда включат в ядро, то приедет к Вам с обновлением.
Ну об этом еще 8 лет назад было известно... и до сих пор, частично пропатчено, но не до конца