Invalid argument supplied for foreach() в файле menu.inc [Решено]

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

Аватар пользователя izabel izabel 14 января 2010 в 16:19

Неожиданно появилась вот это:
«warning: Invalid argument supplied for foreach() in /home/vhosts/*****/httpdocs/includes/menu.inc on line 743.
»

вот где эта строка:

// Pull out just the menu items we are going to render so that we
// get an accurate count for the first/last classes.
foreach ($tree as $data) {
if (!$data['link']['hidden']) {
$items[] = $data;
}
}

Что делать? гугление не помогло:(

p.s
решила проблему! вспомнила, какой модуль недавно ставила. проблема была в dhtml меню. удалила его и все стало в порядке!это конечно не лучший вариант, но оно мне все равно не нужно, как выяснилось:)
спасибо всем за помощь!

Комментарии

Аватар пользователя graker graker 14 января 2010 в 17:21

А что делали? Модуль писали или модуль поставили? Видимо $tree - не массив, ищите, где забыли array().

У меня такое бывает, когда забываю при разработке модулей, что 'access arguments' в элементах меню hook_menu() должен быть массивом. Только там другие функции menu.inc ругаются.

Аватар пользователя izabel izabel 14 января 2010 в 17:44

я ничего особо не делала. добавила термин таксономии, присвоила им родителя и связанный термин и это прежупреждение сразу появилось

Аватар пользователя -OC-@drupal.org -OC-@drupal.org 14 января 2010 в 18:00

верните все взад и смотрите пропала ошибка или нет.. потом таки проще отладчиком посмотреть откуда выплывает ошибка.
в вашем случае это неверный аргумент при вызове функции [ru-api=menu_tree_output] menu_tree_output [/ru-api]

Аватар пользователя mak-vardugin mak-vardugin 14 января 2010 в 18:32

"izabel" wrote:
коммента не поняла

вы в поисковый запрос вставили строчку ошибки с вашим адресом, если его удалить из запроса и искать в гугле без вашего адреса, то вылетает описание ошибки на английском и итальянском языке - на первых 3 страницах поиска.

Аватар пользователя izabel izabel 15 января 2010 в 9:21

интернетом я пользоваться умею. написалав ведь, что гугление не помогло:( разве писала бы я сюда, если бы смогла справиться сама?

Аватар пользователя izabel izabel 15 января 2010 в 13:56

решила проблему! вспомнила, какой модуль недавно ставила. проблема была в dhtml меню. удалила его и все стало в порядке!это конечно не лучший вариант, но оно мне все равно не нужно, как выяснилось:)

Аватар пользователя -OC-@drupal.org -OC-@drupal.org 15 января 2010 в 14:16

"izabel" wrote:
решила проблему! вспомнила, какой модуль недавно ставила. проблема была в dhtml меню. удалила его и все стало в порядке!это конечно не лучший вариант, но оно мне все равно не нужно, как выяснилось:)

на орге по этому вопросу был патчик кстати.. поиском по вашей ошибке он как раз и находится

Аватар пользователя moroz6600 moroz6600 7 марта 2011 в 14:55

Подобная проблема начала вылазить после того как в одном из меню создал несколько родительських пунктов, которые являлись ссылками на страницы с таксономией - taxonomy/term/**

Нашел решение здесь: http://drupal.org/node/483920:
в файле modules/dhtml_menu/dhtml_menu.module надо заменить строчку

return isset($tree[$key]) ? $tree[$key]['below'] : array();

на

return isset($tree[$key]['below']) && is_array($tree[$key]['below']) ? $tree[$key]['below'] : array();