Проблемы с php в шаблоне

Аватар пользователя ako28 ako28 13 марта в 13:18

Здравствуйте.
Переделал шаблон node-тип-материала.tpl.php и получаю php предупреждения в Последних записях журнала:
Cannot use a scalar value as an array в функции include() (строка 208 в файле \sites\all\themes\promotion\templates\cur\node--cur.tpl.php).?>

Выходит 4 таких предупреждения на 4 строки

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

Шаблон отображает как нужно, но выдает предупреждения. Внутри каждого региона программно выводятся блоки, вьювсы и поля.

Извините, но форум почему-то не совсем корректно отображает листинг кода...Вот скриншот

Вот листинг полностью на pastebin:
https://pastebin.com/hjGZgQZA

0 Thanks

Лучший ответ

Аватар пользователя bumble bumble 13 марта в 15:50
2

Всегда(!) добавляйте проверки на существование и заполненность элементов массивов.
В PHP это не контролируемая структура.


<?php if (!empty($page['two_66_33_first'])): ?>
  <?php print render($page['two_66_33_first']); ?>
<?php 
endif; ?>

Комментарии

Аватар пользователя bumble bumble 13 марта в 15:50
2

Всегда(!) добавляйте проверки на существование и заполненность элементов массивов.
В PHP это не контролируемая структура.


<?php if (!empty($page['two_66_33_first'])): ?>
  <?php print render($page['two_66_33_first']); ?>
<?php 
endif; ?>
Аватар пользователя bumble bumble 13 марта в 16:17

Затем что нет индекса 'two_66_33_first' в массиве "$page".
Читать нужно не про render, а про PHP.

Аватар пользователя ako28 ako28 13 марта в 17:09
bumble wrote:

Всегда(!) добавляйте проверки на существование и заполненность элементов массивов.
В PHP это не контролируемая структура.
<span style="color: #000000"><br /><span style="color: #0000BB">&lt;?php </span><span style="color: #007700">if (!empty(</span><span style="color: #0000BB">$page</span><span style="color: #007700">[</span><span style="color: #DD0000">'two_66_33_first'</span><span style="color: #007700">]))</span><span style="color: #0000BB">?&gt;<br /></span>  <span style="color: #0000BB">&lt;?php </span><span style="color: #007700">print </span><span style="color: #0000BB">render</span><span style="color: #007700">(</span><span style="color: #0000BB">$page</span><span style="color: #007700">[</span><span style="color: #DD0000">'two_66_33_first'</span><span style="color: #007700">])</span><span style="color: #0000BB">?&gt;<br />&lt;?php </span><span style="color: #007700">endif</span><span style="color: #0000BB">?&gt;<br /></span></span>

Спасибо, так и есть