помогите пожалуйста решить проблему
в файле node.tpl.php я через include('width.php') делаю проверку переменной таким кодом
<?php
//krumo($node);
if(($field_width[0]['value'] == 1) or
($field_width1[0]['value'] == 1) or
($field_width2[0]['value'] == 1) or
($field_width3[0]['value'] == 1) or
($field_width4[0]['value'] == 1) or
($field_width5[0]['value'] == 1) or
($field_width6[0]['value'] == 1)){
echo('<script>
jQuery("#content").css("width", "100%");
jQuery("#content .field-item > table").css("width", "100%");
</script>');
}
else{
}
?>
обычно из всех перечисленных переменных на странице существует только одна. проблема в том, что друпал выводит примерно такое сообщение об некритической ошибке
«Notice: Undefined variable: field_width1 в функции include() (строка 5 в файле /usr/home/server1/domains/bla.ru/public_html/sites/all/themes/kibmak/width.php).
Notice: Undefined variable: field_width2 в функции include() (строка 6 в файле /usr/home/server1/domains/bla.ru/public_html/sites/all/themes/kibmak/width.php).
Notice: Undefined variable: field_width3 в функции include() (строка 7 в файле /usr/home/server1/domains/bla.ru/public_html/sites/all/themes/kibmak/width.php).
Notice: Undefined variable: field_width4 в функции include() (строка 8 в файле /usr/home/server1/domains/bla.ru/public_html/sites/all/themes/kibmak/width.php).
Notice: Undefined variable: field_width5 в функции include() (строка 9 в файле /usr/home/server1/domains/bla.ru/public_html/sites/all/themes/kibmak/width.php).
Notice: Undefined variable: field_width6 в функции include() (строка 10 в файле /usr/home/server1/domains/bla.ru/public_html/sites/all/themes/kibmak/width.php).»
подскажите пожалуйста как от него избавиться
Комментарии
а что именно не понятно? переменная не существует
отключите вывод ошибок на экран по адресу admin/config/development/logging
WHAT THE FUCK ARE YOU DOING?
Во-первых, ема-е, это ошибка PHP а не друпала, в котрой аж 6 раз ЧЕТКО написано, что переменная не существует.
Во-вторых
Это что вообще за нах?
<?phpecho('<script>
jQuery("#content").css("width", "100%");
jQuery("#content .field-item > table").css("width", "100%");
</script>');?>
А это... ну ппц кароче.
полный пипец. И переменная примерно так $field_width['und'][0]['value']
ребят, ну чего вы ругаетесь
так $field_width['und'][0]['value'] эта переменная не видна. только так $field_width[0]['value']
отключить вывод ошибок это для меня не решение(
ошибка скорее пхп, но на чистом пхп этот код никаких сообщений не вызывал бы. я же не использую переменную, а просто проверяю
Вы делаете все неправильно.
к сожалению друпал не видит разницы в использовании переменной и ее проверке. попробуйте использовать чистый пхп вместо друпала
Что?
Еще один кадр. Как делать правильно не скажу, зачем мне конкуренты ))
<?php
if(($field_width[0]['value'] == 1) or
($field_width1[0]['value'] == 1) or
($field_width2[0]['value'] == 1) or
($field_width3[0]['value'] == 1) or
($field_width4[0]['value'] == 1) or
($field_width5[0]['value'] == 1) or
($field_width6[0]['value'] == 1))
?>
замените на
<?php
if((isset($field_width[0]['value']) && $field_width[0]['value'] == 1) or
(isset($field_width1[0]['value']) && $field_width1[0]['value'] == 1) or
(isset($field_width2[0]['value']) && $field_width2[0]['value'] == 1) or
(isset($field_width3[0]['value']) && $field_width3[0]['value'] == 1) or
(isset($field_width4[0]['value']) && $field_width4[0]['value'] == 1) or
(isset($field_width5[0]['value']) && $field_width5[0]['value'] == 1) or
(isset($field_width6[0]['value']) && $field_width6[0]['value'] == 1))
?>
Ну так и быть...
Никогда не используйте в темах .php файл, только .tpl.php
Никогда не подключайте в шаблонах файлы вот таким вот способом
<?php
include('width.php');
?>
Есть масса способов добавить то, что вам нужно в этот файл средстваим drupal. Лучше всего через hook_preprocess_node
Никогда не выводите js код в шаблоне. У drupal есть удобное api для работы с js.
За такое вас следующий разработчик будет долго и упорно ругать