Error: Unsupported operand types в функции node_build_content()

Проблема встретилась на Drupal 7 - некоторые страницы товаров выдавали ошибку 500 - отдавал ее именно друпал, не хостинг.

В логах (/admin/reports/dblog) можно было увидеть примерно следующее:

Находим ошибку в логах
Здесь собственно текст ошибки и URL, где ее встретили

Error: Unsupported operand types в функции node_build_content() (строка 1415 в файле /var/www/site.ru/modules/node/node.module).

Выглядит страшно: ссылается на строки в модулях ядра!

Но если немного погуглить, то находим проблему на главном сайте https://www.drupal.org/project/ds/issues/1264386 

Здесь мы понимаем, что ошибка относится к модулю Display Suite (мне повезло - у меня он, но наверное могут быть и другие причины). Какие-то проблемы с рендером ноды... Но не спешите ставить патчи! Да, обновите на всякий случай все свои модули и ядро, это всегда только в плюс. 

Лично мне помогло решение в 15-от комментарии.

Суть в чем - на текущей странице, выводимой через DS, присутствует блок с представлением Views, в котором также присутствует ссылка на текущую страницу. То есть пользователю в этой вьюшке показывается страница, на которой он фактически сейчас находится. Тут то и происходит конфликт в рендере.

Вам остается отредактировать представление, чтобы исключить текущую ноду из показа, ну а в моей случае просто пришлось убрать референсы на самого себя. 

Это один из вариантов решения, но надеюсь было полезно :)

Теги

Добавить комментарий