こんばんは、martinです。何となくアップデート後はいつものことのような気がしますが…。
タグの文字列に、半角スラッシュを入れていると、タグの検索でかかってきません。それの対策もしていたつもりでしたが、詰めが甘いですね。。これはmodules/tags.inc.phpの16行目を以下のようにします。
$hit = preg_grep('{'.preg_quote($tag).'¥|}', $TAGS_LIST);
デリミッターに半角スラッシュを使っていたのが駄目でした。いつもは{}を使うんですけどね。。
あと、やはりタグ周りですが、タグに「ソ」などの文字を使っていると、タグが文字化けするという報告がありました。まるでSHIFT_JISみたいですね。これはutils_admin.phpの39行目を修正します。全角空白を省きました。
$tags = p_('tags') ? explode(',', preg_replace(array('{([^&]),[¥s]+}', '{,[¥s]*$}'), array('$1,', ''), p_('tags'))) : array();ここでの正規表現で、全角空白を入れていたせいで、誤変換をしてしまったようです。UTF-8だから大丈夫かと思いましたが、preg_replace自体がマルチバイトに対応しているわけではないですからね。u修飾子でも入れればよいかもしれませんが、まぁいいか。
ついでですが、IE6/7のサポートは基本的にやめようかと思っていたのですが(特に管理者用として)、まだ使われているようですし、折角のタグポップアップがIE6で使えないのは残念なきもするので、対応したwrite.inc.phpやedit.inc.phpも添付しておきます。
この記事に対するコメント・トラックバック [7件]
→http://itpro.nikkeibp.co.jp/article/COLUMN/20080108/290559/
3. ちらみ — 2009/12/04@19:11:14
結果、仰るようにApacheの設定でした
まさか、Apache側のconfの問題とは気づかず、申し訳ありませんでした。
このディレクティブは初めて知りました。ありがとうございます。
それから、タグの追加・削除の挙動ですが、
例えば、記事のタグにtest1というタグを作り、その記事を編集する時に、test1を消し、test2に書き換えて公開すると、更新後の記事フッタ部のタグ表示が、test1 test2と2つに増えます。
もう一度編集モードで、test1を消せば、test2だけになるので良いのですが。
これは何か意図があるのでしょうか?
5. LinaNfinE
— 2009/12/04@20:06:42
修正されていること確認しました。
きちんと文字化けしないで表示されました