PHP Fatal error: Cannot use string offset as an array in /var/www/html/sites/all/modules/views_customfield/includes/views_customfield_handler_field_phpcode.inc(118) : eval()'d code on line 1

2013.11.22

新しいコンテンツタイプを作成してviewsをいじっていると

An error occurred at /admin/build/views/ajax/preview/@@@@.
 
Error Description: 500: Internal server error. Please see server or PHP logs for error information.

500エラーが発生。サーバログを見てねとのことだったので、サーバログを見ると

PHP Fatal error:  Cannot use string offset as an array in /var/www/html/sites/all/modules/views_customfield/includes/views_customfield_handler_field_phpcode.inc(118) : eval()'d code on line 1
との表示。

 

そしたら、TOPページといくつかのviewsで作ったページの画面が真っ白で表示されないことに気がついた・・・。
 
調べてに調べて
views_customfieldの問題だろうけど、APCのメモリかPHPのメモリ不足なのか。
どちらも少しメモリを増やしてみた。
 
解決策として久しぶりにDevelを入れて
 
<?php
dsm($data)
?>
してみた。
 
viewsのPHPのcustomfieldの値には、文章にcckで作ったフィールドに画像が付いていたら、
viewsの一覧表示でカメラのアイコンが付くように下記のようにしていた。
 
<?php if ( $data->node_data_field_フィールド名_field_フィールド名_fid[0]['list'] == 1  ) {
echo '<img src="/sites/all/themes/テーマ名/img/cameraicon.gif" />';
} else {
    echo '';
}
?>
 
どうやらここを更新すると
 
Queries taking longer than 5 ms and queries executed more than once, are highlighted.
 
のエラーが出るように変わった。
 
<?php if ( $data->node_data_field_フィールド名_field_フィールド名_list[0] == 1  ) {
echo '<img src="/sites/all/themes/テーマ名/img/cameraicon.gif" />';
} else {
    echo '';
}
?>
 
と修正してみると、エラーが消えた。
 
しかし、表示がされない部分もあり、全て書き換えないといけないようで・・・。
 
 
終電が迫っていて、結局、判断に困ってバックアップをしてから7時間前のバックアップでリストアして戻した。
帰宅後の作業をサブ機に真っ白になるバックアップDBをリストア。寝付けず意地で終わらしたら、外は明るくなっていた。
 
しかしメモって置かないと直ぐ忘れる