Здравствуйте. Вот уже прошло не мало времени, и руки начинают опускаться... Гуглил, где только не искал, что только не читал, а проблему так и не решил. После Joomla и DLE - Drupal реально сложный...
Ну собственно о ошибке:
Выбивает строчек 8 вот это фигни - Notice: Trying to get property of non-object в функции block_block_view() (строка 245 в файле /home/l/live/sekret.net/public_html/modules/block/block.module).
Ошибка как я понял здесь:
unction block_block_view($delta = '') {
$block = db_query('SELECT body, format FROM {block_custom} WHERE bid = :bid', array(':bid' => $delta))->fetchObject();
$data['subject'] = NULL;
245- $data['content'] = check_markup($block->body, $block->format, '', TRUE);
return $data;
Ну какая там ошибка? Если я там ничего не трогал! Подскажите, спасибо...
Комментарии
для начала, определите какая $delta передается в функцию во время ошибки
дальше залезть в mysql (таблица block_custom) и по 'bid' (он же $delta) посмотреть в каком блоке проблема
о_0 ОГО!!! Ща расшифрую ваш ответ, а потом попробую...
Я нуб... Извините, но ничего не понял...........
Так, по порядку, залезть в базу данных и просмотреть таблицу block_custom можете?
Да, там уже был (могу), но ничего понятного для меня там "пока" нет.
помогите...
Многие будут плеваться, но делаем тупо и быстро
Вставьте после конструкции
$block = db_query('SELECT body, format FROM {block_custom} WHERE bid = :bid', array(':bid' => $delta))->fetchObject();
Вот это:
if (!is_object($block)) {
file_put_contents(DRUPAL_ROOT . '/sites/default/files/wrong_block', $delta);
}
Перезагрузите страницу с ошибкой, посмотрите в файл /sites/default/files/wrong_block - там должна быть цифра. Ищите в базе в таблице custom_block в колонке bid эту цифру, есть там соответствующая запись?
Цифра "5", но bid записей что-то вообще не наблюдаю....
Это два поля соответствуют двум блокам которые я пытался создать.
у вас сайт с этими ошибками нормально работает? Если да - идем в конфигурацию, разработка, ошибки, не показывать
так, идем на страницу управления блоками, создаем там пустой блок, называем его как-нить, идем в базу в таблицу custom_block и у этого нового блока меняем bid на 5. enjoy
boatsman
Спасибо вам за помощь, но проблема так и не решилась, сделал все как вы говорили - ошибка есть. Но был сильно удивлен когда поставил стандартный шаблон - и ошибки пропали!!! Шаблон кстати tb_blog...
если ошибка осталась, то, вероятно, у вас этот "потерянный" блок не единственный.
Удаляем файл wrong_block
меняем
if (!is_object($block)) {
file_put_contents(DRUPAL_ROOT . '/sites/default/files/wrong_block', $delta);
}
на
if (!is_object($block)) {
file_put_contents(DRUPAL_ROOT . '/sites/default/files/wrong_block', $delta . "\n", FILE_APPEND);
}
перезагружаем страницу с ошибкой
смотрим в wrong_block что получилось
Вот че вышло: 8 3 4 6 11 7 8 3 4 6 11 7...
Самое интересное, что сайт только делаю, установил шаблон на новый друпал с демо данными, а геморроя ппц...
boatsman Спасибо тебе огромное, за понимание и отзывчивость, ошибку устранил!
Добрый ты...
Попробовал советы от boatsman, но это скорее из разряда диагностики. Каждый раз мы таким образом создаём всё новые и новые ошибки-блоки.
Решение самое простое! Совсем не нужно трогать файл block.module )) Объясняю! Ошибка возникает из за самопроизвольного удаления одного из блоков напрямую в базе данный (mysql), а именно в таблице block_custom. Например удалили блок со значением 32 в колонке bid. Ошибка будет возникать после этого на тех страничках где он стоял. Почему? Потому что мы забыли ещё подкорректировать вот эту таблицу block. Идём в него, ищем в колонке delta нашу заветную циферку 32 и удаляем строку. Обязательно проверьте чтоб в этой строке в колонке theme стояла именно ваша на данный момент включенная тема. Всё!!!