Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2008-06-29 18:22:30

toguo
メンバー
From: 日本
登録日: 2004-04-24
投稿: 36

Re: 半角カタカナや全角英数字の強制変換

Nucleusを複数ユーザーで運営していると、それぞれのユーザーのリテラシーに差があり、半角カタカナや全角英数字で入力するユーザーがいて、今までは手作業で変えたりしていましたが、初心者ユーザーが増え対応に困ってきました。

そこでNucleus内の処理に

$text = mb_convert_kana($text,'rnKV', 'UTF-8');

のようなものを加えて対応出来ればと思っています。

コアファイルを見てみたのですが、どの場所に加えれば良いのか理解する事が出来ませんでした。
もし対応方法をご存知の方がいらっしゃいましたらご教示頂けないでしょうか。

記事タイトル、本文、続きの部分に処理が加えられればと考えています。
使用しているNucleusは3.3になります。

どうぞ宜しくお願い致します。

オフライン

#2 2008-06-29 23:00:32

藤咲
Administrator
From: 広島
登録日: 2003-11-17
投稿: 1,211
ウェブサイト

Re: 半角カタカナや全角英数字の強制変換

toguo さんの発言:

そこでNucleus内の処理に

$text = mb_convert_kana($text,'rnKV', 'UTF-8');

のようなものを加えて対応出来ればと思っています。

コアファイルを見てみたのですが、どの場所に加えれば良いのか理解する事が出来ませんでした。

方法としては、DBに登録前に変換して格納する方法と、出力時に変換する方法の二つがあると思います。
で、出力時に変換する、という考え方で作成したのが
NP_Replace
<!-- l --><a class="postlink-local" href="http://japan.nucleuscms.org/bb/viewtopic.php?p=13509#13509">viewtopic.php?p=13509#13509</a><!-- l -->
です。
ただ、イントラのIIS環境でしか試してない自分用プラグインなのでうまくいかない場合は色々改良が必要かと思います。


藤咲
備忘録とかもろもろ
http://fjsk.tk/

オフライン

#3 2008-06-30 04:46:24

Katsumi
メンバー
From: CA
登録日: 2005-06-24
投稿: 637
ウェブサイト

Re: 半角カタカナや全角英数字の強制変換

config.phpで、

$_POST=mb_convert_kana_array($_POST);
function mb_convert_kana_array($data) {
	return is_array($data) ? array_map('mb_convert_kana_array', $data) : mb_convert_kana($data,'rnKV', 'UTF-8');
}

とするので、どうでしょうか。試していないので、実運用の前にローカルでテストするなどしてください。

オフライン

#4 2008-06-30 10:31:17

toguo
メンバー
From: 日本
登録日: 2004-04-24
投稿: 36

Re: 半角カタカナや全角英数字の強制変換

藤咲さん Katsumiさん
toguoです。

お返事有り難うございます。
まずはKatsumiさんの方法をテストしてみました。

Katsumi さんの発言:

config.phpで、

$_POST=mb_convert_kana_array($_POST);
function mb_convert_kana_array($data) {
	return is_array($data) ? array_map('mb_convert_kana_array', $data) : mb_convert_kana($data,'rnKV', 'UTF-8');
}

とするので、どうでしょうか。試していないので、実運用の前にローカルでテストするなどしてください。

新しい記事を作成し、記事タイトル・本文・続きに半角カタカナと全角英数字を入れて投稿したら、無事に変換されました。

これは記事投稿や編集など情報をPOSTメソッドで送信する時に、処理が加えられるという事で宜しいでしょうか。

オフライン

Board footer