Уведомления о неопределенных индексах/переменных

Я создаю свой собственный шаблон в Drupal 7 и имею некоторые системные ошибки. Может ли кто-нибудь объяснить мне это, и как их исправить или направить на какую-то документацию, которая поможет мне решить эти проблемы? Вот ошибки:

Примечание. Неопределенный индекс: навигация в include() (строка 82 из /Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/page.tpl.php).       Примечание. Неопределенная переменная: secondary_menu_heading в include() (строка 107 из /Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/page.tpl.php).       Примечание. Неопределенная переменная: title в include() (строка 53 из /Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/block.tpl.php).       Примечание. Неопределенная переменная: title в include() (строка 53 из /Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/block.tpl.php).       Примечание. Неопределенная переменная: jump_link_target в include() (строка 74 из /Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/html.tpl.php).

1

2 ответы

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

Определенно нет $ secondary_menu_heading , предоставленного по умолчанию в файле page.tpl.php, и no jump_link_target , предоставленного по умолчанию в html.tpl.php .

Предполагаю, что вы основываете свою тему на другой теме, которая делает предоставляет эти переменные файлам шаблонов, и вам нужно сделать то же самое. Если это так, посмотрите на template.php файл для этой темы, в частности, на функции themename_preprocess_x() ... здесь переменные создаются и предоставляются файлы шаблонов.

Есть хороший обзор того, как работает тематическая система на этом сообщении .

1
добавлено

Я получил ту же ошибку, используя подзаголовок Zen в моей установке D7:

Примечание. Неопределенная переменная: title в include() (строка 53   .../сайты/все/темы/mysubtheme/шаблоны/block.tpl.php)

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

Как сказал Клайв, в page.tpl.php существует переменная, не существующая. Итак, я скопировал следующую функцию из шаблона Zen.php в файл моей подтемы template.php:

function mysubtheme_process_block(&$variables, $hook) {
   $variables['title'] = isset($variables['block']->subject) ? $variables['block']->subject : '';
}

(Однако обратите внимание, что вам нужно переименовать функцию с помощью < yoursubtheme _process_block ").

И ... voilá, названия моего блока показаны снова. :-)

Большое спасибо за комментарий, Клайв. Это мне очень помогло!

Джоан

1
добавлено