Здравствуйте. Подскажите как правильно убрать эту ошибку warning: Invalid argument supplied for foreach() in /var/www/drupal/includes/menu.inc on line 1010.
вот эта строка foreach ($node_links[$nid] as $mlid => $link) {
в функции
if ($node_links) {
// Use db_rewrite_sql to evaluate view access without loading each full node.
$nids = array_keys($node_links);
$placeholders = '%d'. str_repeat(', %d', count($nids) - 1);
$result = db_query(db_rewrite_sql("SELECT n.nid FROM {node} n WHERE n.status = 1 AND n.nid IN (". $placeholders .")"), $nids);
while ($node = db_fetch_array($result)) {
$nid = $node['nid'];
foreach ($node_links[$nid] as $mlid => $link) {
$node_links[$nid][$mlid]['access'] = TRUE;
}
}
}
_menu_tree_check_access($tree);
return;
}
Ошибку можно удалить если закомментровать, но ведь это не правильно.
foreach ($node_links[$nid] as $mlid => $link) {
$node_links[$nid][$mlid]['access'] = TRUE;
}
Комментарии
update: Если строчки закомментировать, то пропадает большая часть меню сайта. Так что это не решение.
эта ошибка вызывается вследствие написанного вами кода. Рыть надо в файлах, которые писали вы. Вы там неправильно что-то передали
Я не писал какого-то самостоятельного кода. Стандартный drupal 5, обновленный до 6, плюс несколько модулей. Ну равзве, что еще тема оформления есть своя и то не с нуля написанная, а переделанная с другой.
Здесь неправильно передаётся параметр $node_links. Ищите в других модулях, где вызывается эта функция
Спасибо.
Проблема в стандартном модуле menu. Если его отключить, ошибка исчезает, как врочем и навигационное меню тоже.
анализ ошибок видно не твой конек))))
сказали же уже
ищи проблему в модулях или в самописном модуле, снипете или тп и тд.
В сниппете врядли, сомневаюсь что всунутый туда hook_menu() заработает