OpenPNEでプロフィール項目を追加しても管理画面に表示が反映されない件
ちょっとSNS用のCMS「OpenPNE」をインストールする機会があったんですが、つまらないところでハマった(というほどでもないけど)のでメモ。
とりあえず普通にインストールは完了し、管理画面にログイン。
試しにプロフィールの項目を追加してみようと思ってやってみたら、何度やっても追加されない。
おっかしいなぁ、と思ってMySQLデータベースの中身を見てみたら、テーブル「c_profile」に、普通に新規に追加したプロフィール項目のデータは入ってる。
ということは、どうも管理画面側でデータベースを select した際に、なんらかの原因でデータを引っ張ってこれてないんだな、と目星がついたので、該当する箇所のPHPソースコードを元にざっと grep してみたところ、あっさり原因判明。
OpenPNEの設定ファイル「config.php」には、
// MySQL ヒント使用設定
define('OPENPNE_USE_MYSQL_HINT', true);
という箇所があるんですが、「MySQL ヒント」って何だ?と思いつつ、とりあえずデフォルトで true になってるからそのままでいいや、と思ったら、そこが原因だったらしい。
先ほどの管理画面のプロフィール項目のデータを、テーブル「c_profile」から select してくる際に、MySQL ヒント使用設定(OPENPNE_USE_MYSQL_HINT)が true だと、SQL文の中に「/*! */」で括られたコメントを挿入してるみたい。
で、何故かそのコメントが入ってると、データを引っ張って来れなくて、データベースにはちゃんとデータが入っているのに、管理画面には項目が表示されない、ということになっていたようです。
なんでそのコメントが入ってると駄目なのかは不明(つまり原因判明と言いつつ、本当の意味では原因は判明してないわけです……)。
まあ、とにかくこの「MySQL ヒント使用設定」をオフにすれば、解決しました。
// MySQL ヒント使用設定
define('OPENPNE_USE_MYSQL_HINT', false);
けど、この「MySQLヒント」って言うのは何なんだろう?
ググっても特にそれらしきものは引っかからなくて、よくわかりません。
誰か教えて、エロい人。