ОШИБКА В ФУНКЦИИ include() - Notice: Undefined variable в файле - Page.tpl.php

Аватар пользователя HardDreams HardDreams 13 июня 2011 в 2:23

ПОМОГИТЕ, ОШИБКА В ФУНКЦИИ include() - Notice: Undefined variable: ...

Здравствуйте, у меня проблема следующего рода:
Пытаюсь создать тему для Drupal7 из HTML шаблона. Для этого использовал модуль "Zenophile" для генерации дочерной темы "Zen".
В Page.tpl.php вставил фрагменты php для отображения контента,подключке стилей и скриптов:
Все отображаеться нормально но выдает ошибки на те строки, где вписан php код вывода переменных:

Вот пример:

Notice: Undefined variable: rdf_namespaces в функции include() (строка 79 в файле Z:\home\localhost\www\floorball\sites\all\themes\localhost_floorball\templates\page.tpl.php).
    Notice: Undefined variable: grddl_profile в функции include() (строка 81 в файле Z:\home\localhost\www\floorball\sites\all\themes\localhost_floorball\templates\page.tpl.php).
    Notice: Undefined variable: head в функции include() (строка 82 в файле Z:\home\localhost\www\floorball\sites\all\themes\localhost_floorball\templates\page.tpl.php).
    Notice: Undefined variable: head_title в функции include() (строка 83 в файле Z:\home\localhost\www\floorball\sites\all\themes\localhost_floorball\templates\page.tpl.php).
    Notice: Undefined variable: styles в функции include() (строка 84 в файле Z:\home\localhost\www\floorball\sites\all\themes\localhost_floorball\templates\page.tpl.php).
    Notice: Undefined variable: scripts в функции include() (строка 85 в файле Z:\home\localhost\www\floorball\sites\all\themes\localhost_floorball\templates\page.tpl.php).
    Notice: Undefined variable: content в функции include() (строка 131 в файле Z:\home\localhost\www\floorball\sites\all\themes\localhost_floorball\templates\page.tpl.php).

Уже два дня голову над этим ломаю. Помогите пожалуйста решить проблему

0 Thanks

Комментарии

Аватар пользователя freemantus freemantus 29 октября 2011 в 1:38
1

Вообщем я даже не видя кода шаблона могу сказать что проблема в условиях. В друпале 6 в темах часто юзаеться код типа

<?php if($node):?>
<?php 
print $node->type?>
<?php 
endif; ?>

Вот друпал 7 материться на эти условия. Перепишите в виде:

<?php if(isset($node)):?>
<?php 
print $node->type?>
<?php 
endif; ?>

Все ошибки должны исчезнуть.

Аватар пользователя NIKS_ArtReaktor NIKS_ArtReaktor 25 мая 2012 в 18:50

Мне помогло, когда в тему добавил файлик
maintenance-page.tpl.php

Просто скопированный из другой темы
maintenance-page.tpl.php

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

Тоже только начал осваивать темизацию на друпале 7.
Все делал раньше на 6-ке.

Аватар пользователя NIKS_ArtReaktor NIKS_ArtReaktor 28 мая 2012 в 11:31

Сори если ввел в заблуждение.

добавление файла
maintenance-page.tpl.php
не поможет

Уберите лишнее:

Дело в том что в page.tpl.php может быть часть <body> и до </body>

Тоесть

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php print $language->language ?>" lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">
  <head>
    <title><?php print $head_title ?></title>
    <?php print $head ?>
    <?php print $styles ?>
    <?php print $scripts ?>
  </head>
  <body class="<?php print $classes ?>">

будет матюкаться...

Вот здесь описано очень красиво все

http://drupal.org/node/313510

Аватар пользователя Pasha92 Pasha92 26 октября 2012 в 8:20
"freemantus" wrote:

Вообщем я даже не видя кода шаблона могу сказать что проблема в условиях. В друпале 6 в темах часто юзаеться код типа

<?php if($node):?>
<?php print $node->type; ?>
<?php endif; ?>

Вот друпал 7 материться на эти условия. Перепишите в виде:
<?php if(isset($node)):?>
<?php print $node->type; ?>
<?php endif; ?>

Все ошибки должны исчезнуть.

Спасибо, мне помогло

Аватар пользователя rocket_web rocket_web 11 мая 2013 в 12:53

Может кому пригодится.
Drupal 7, для избавления от данных ошибок делал так:

<?php
$node 
menu_get_object();
if (!
is_object($node)) :
    
// Пишем код для случаев, когда нода по каким-то причинам не определена
else :
    if ((
$node->type <> "announcements")&&($node->type <> "news")) :
            
// Пишем код для нод Объявления и Новости
    
else :
        
// Пишем код для всех остальных случаев
    
endif;
endif;
?>

ЗЫ: Вообще, достаточно вчитаться в сообщения об ошибках - и почти все вопросы пропадают :)