Помогите, пожалуйста. Я в ступоре.
Реализовал поддержку комментариев на сайте.
Имею тип материала "news". Создаю соответствующую ноду. Отображается нормально.
Добавляю к ней комментарий, перехожу на страницу с нодой, вижу:
Fatal error: [] operator not supported for strings in D:\xampp\htdocs\nays\sites\all\themes\<имя своей темы>\preprocess\preprocess-comment.inc on line 29.
Удаляю комментарий из админки, нода нормально выводится.
И т.д.
Проблема возникает только со своей темой. В гарланде все ОК.
Не знаю, на что думать. Гугл подсказывает мне, что проблема возникает с разными сущностями друпала, не только с комментариями.
Что можно попробовать сделать для выявления проблемы?
Комментарии
Ругается вот на такие строчки в соответствующем файле:
<?php
if ($vars['id'] == 1) {
$vars['classes_array'][] = 'first';
}
if ($vars['id'] == $vars['node']->comment_count) {
$vars['classes_array'][] = 'last';
}
...
?>
Если поубирать их, то все ок. Но стили хотелось бы прицепить.
пропишите перед данным кодом что нибудь типа
dump($var); и посмотрите что у вас представляет $vars.
Подозреваю, что $vars['classes_array'] у вас является строкой а вы с ней работаете как с массивом.
Идея ясна!
Про препроцессоры попонятнее стало после статей типа:
http://habrahabr.ru/blogs/drupal/86460/
С реализацией туго.
var_dump($var) выводит NULL
Совсем не понятно Оо.
Потому что ругается-то на $vars['classes_array'][] = 'first';
Соответственно, и var_dump-пить надо $vars
Twil, спасибо за отклик. Извиняюсь, что долго не отписывался
про $var VS $vars стормозил. Издержки копипаста :(.
Код препроцессоров допилили:
<?php
if ($vars['id'] == 1) {
if(is_array($vars['classes_array']))
$vars['classes_array'][] = 'first';
else
$vars['classes_array'] .= 'first';
}
?>