Warning: Invalid argument supplied for foreach() in element_children()

Главные вкладки

Аватар пользователя y-vo y-vo 29 июля 2019 в 9:46

Приветствую. Возникла такая проблема - при выводе вьюшки програмно. То есть существует у меня page--front.tpl.php, я ее темизирую, вывожу там вьюшку в контентной части. Вывожу следующим образом:

<?php
                    $block 
module_invoke('views','block_view','test-block');
                    if(
$block !=0){
                        print 
render($block);
                    }
                    
?>

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

Warning: Invalid argument supplied for foreach() in element_children() (line 6608 of /var/www/html/includes/common.inc).
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.jpg64.45 КБ

Лучший ответ

Аватар пользователя ivnish ivnish 29 июля 2019 в 10:46

Патчить ядро без использования средств автоматизации, типа composer - это плохая практика. Ядро семерки всё равно обновляется довольно часто. В итоге любители патчить ядро просто перестают ядро обновлять, а потом когда их сайт будет заражен кричат "ко ко ко друпал дырявый"

Комментарии

Аватар пользователя ivnish ivnish 29 июля 2019 в 10:46

Патчить ядро без использования средств автоматизации, типа composer - это плохая практика. Ядро семерки всё равно обновляется довольно часто. В итоге любители патчить ядро просто перестают ядро обновлять, а потом когда их сайт будет заражен кричат "ко ко ко друпал дырявый"

Аватар пользователя y-vo y-vo 29 июля 2019 в 10:53

а каким образом стоило поступить в данной ситуации? Не совсем понимаю.Я слышал о нем только применительно к восьмерке.