Форма поиска

Не получается?

Не получается решить проблему с Друпалом?

Готовы помочь делом и советом. Стоимость часа - 500 руб.

Запросить помощь

Поделитесь ссылкой:

Отладка PHP-кода в полях представлений (Views Сustom Field)

Вообще, это плохая практика - размещать PHP-код в полях представления. Во первых, такой код выполняется медленнее, во вторых - до него трудно добраться, нет проверки синтаксиса в редакторе, а самое главное: отсутствуют информативные сообщения об ошибках.

Если в код поля PHP в представлении закрадется ошибка, то в журнале Друпала вы увидите что-то вроде:

Creating default object from empty value 
в файле /home/.../public_html/sites/all/modules/views_customfield/includes
/views_customfield_handler_field_phpcode.inc(118) : eval()'d code в строке 3.

"В строке 3". И все. А где искать эту строку?

Посмотрим, как интерпретируется код поля PHP. 

function eval_phpcode($code, &$static, $data) {
  ob_start();
  print eval('?>'. $code);
  return ob_get_clean();
}

Никакого логгирования почему-то не предусмотрено. Исправим ..

Будем записывать код перед выполнением  в журнал:

function eval_phpcode($code, &$static, $data) {
  ob_start();
  watchdog('debug', '<pre>' . print_r($code, true) . '</pre>'); 
  print eval('?>'. $code);
  return ob_get_clean(); 
}

Тогда, перед непонятной строкой об ошибке мы увидим код, который ее вызывает. Остается его найти. Зная искомый текст - это леко сделать SQL-запросом к базе данных, например через phpmyadmin.

Не забудьте вернуть после отладки измененный код модуля в views_customfield_handler_field_phpcode.inc в исходное состояние.

Полезна ли для вас эта информация?: 
4
Ваша оценка: Нет В среднем: 3.5 (2 голосов)

Размещение и поддержка сайтов на Drupal

Предлагаем услуги по размещению и поддержке сайтов, разработанных как в нашем бюро, так в других веб-студиях.

Мы готовы взять на себя все работы по поддержке вашего сайта или электронного магазина и гарантируем его доступность и безопасность.

Подробнее ...

Предметная фотосъемка

Выполним профессиональную фотосъемку вашей продукции, офиса, производства, участка или любых других объектов.

Оплата услуг

Оплатить услуги разработки, модернизации, поддержки и размещения сайтов можно любыми удобными вам способами как в интернете, так и оффлайн. Оформляются все бухгалтерские документы.

Оплата услуг