うぇブログ(xeblog2)をPHP5で動かす
うぇブログ(xeblog)はXOOPS用の高機能ブログモジュールです。Ethnaというフレームワークを使用しています。
これをPHP5の環境で動かそうとしたらハマりましたのでメモ。
Ethna自体をアップグレードすればすむかも知れませんし、今さっき作業したばかりなので見落としもあるかもしれません。
1)PHP4互換モードにする
.htaccessを使い、
php_flag zend.ze1_compatibility_mode on
の行を足してPHP4互換にしてしまいます。これで本文以外は表示されます。。
2)生成されるSELECT文のフィールドが空になっている。
「SELECT FROM ...」となっていましたので、「SELECT * FROM ...」とします。
common/xanhte/lib/Ethna/class/Ethna_AppObject.php
を「SELECT」で検索し(複数見つかります)、たとえば1117行目あたりの上に
if(!$column) $column = "*";
$sql = "SELECT $column FROM $tables $condition $group_by $sort $limit";
を足します。$columnsとなっているところもあります。DISTINCTとある場合はそのままにします。
これでブログ記事一覧が表示されます。
3)PHP5では、array_merge関数の動作が違う。
どう違うのかは文献を探っていただくとして、その文献に対処も載っています。(array)でキャストします。
同ファイルの1114行目あたりの
$prop_def = array_merge($this->prop_def, $search_prop_def);
を
$prop_def = array_merge((array)$this->prop_def, (array)$search_prop_def);
とします。
これで個別記事が表示されます。
XOOPSをgrepしたらarray_mergeはたくさん出てきたのですが、どうすればよいのでしょうね^^)

