2008/03/07: MODxのプラグイン「ManagerManager」のインストールと日本語への対応
MODxの管理画面をカスタマイズするときに使うプラグイン「ManagerManager」を使うときに、忘れがちなポイントと、フィールド名に日本語を使いたいときのTipsです。
< 環境 >
MODx 0.9.6.1p2
ManagerManager 0.2.4.1
< インストール >
まず、インストール時に忘れてしまいそうなポイント。
めっさ簡単ですが、日本語にしてる人いなそうだったのでついでに全部。
1. まずはダウンロード&解凍
http://modxcms.com/ManagerManager-1565.html
2. 管理画面から「 リソース > リソース管理 > プラグイン > プラグインの作成 」
とたどって、「プラグイン名」を「ManagerManager」、「プラグイン コード (php)」のフィールドにダウンロードすると入ってる「plugin.txt」の内容をコピペします。
(「plugin.txt」はサンプルみたいなもんで、カスタマイズする場合はここを弄ることになります)
3. そこから、「システムイベント」タブに移って、「OnDocFormRender」と「OnDocFormPrerender」と「OnPluginFormRender」にチェックを入れる。
4. ここまでできたら最後に「保存」
↑ これを忘れやすいので注意!1の後に保存しちゃうと2の後忘れてしまいがち(自分)。
5. /assets/plugins/managermanager のディレクトリにダウンロードした「mm.inc.php」をアップロード。
6. あとは、同梱の「managermanagerHelp.html」や「plugin.txt」をみながら設定項目を弄る。
< 日本語への対応 >
インストール後、フィールド名に日本語を使うと、文字化けする場合があります。そんなときの対処法です。
*ここの情報は、こちらでモデレーターのyamaさんに教えていただいた解決法を、自分なりに少し噛み砕いて書いてみます。yamaさんありがといございました!
さきほどの、4でアップロードした「mm.inc.php」を弄ります。
文字化けするのは、文字コードの変換がうまく言ってないからなのでそこを適正にするためにPHPのhtmlentitiesを使ってる部分を修正するみたいです。
ためしにこのファイルを「htmlentities」で全文検索すると、14個所ヒットしました。一応、関係あるところだけ修正しようと、一個ずつ見ていきました。
(めんどくさければ全置換でも大丈夫な気がしますが)
ソースコードには、
「$output = " // ----------- Rename tab -------------- \n";」
などと言う風に、内容が一目で分かるように書いてあるので、これをヒントに上から見ていくと・・・
「Rename field」(309行目)と「Change field help」(464行目)、「Rename tab」(505行目)あたりが、日本語絡んできそうです。怪しい・・・
と、いうことでこのあたりの「htmlentities」を弄ります。第2第3引数にそれぞれ「ENT_QUOTES」「$modx->config['modx_charset']」を仕込んでやります。
例:
htmlentities($newname)
↓
htmlentities($newname,ENT_QUOTES,$modx->config['modx_charset'])
全部で、11箇所弄りました。
これで、文字コードがMODxで指定しているものと対応するようになっていい感じです。フィールド名だけでなく、ポップアップのヘルプやタブにも日本語使えるようになりました。
トラックバックURL
< 環境 >
MODx 0.9.6.1p2
ManagerManager 0.2.4.1
< インストール >
まず、インストール時に忘れてしまいそうなポイント。
めっさ簡単ですが、日本語にしてる人いなそうだったのでついでに全部。
1. まずはダウンロード&解凍
http://modxcms.com/ManagerManager-1565.html
2. 管理画面から「 リソース > リソース管理 > プラグイン > プラグインの作成 」
とたどって、「プラグイン名」を「ManagerManager」、「プラグイン コード (php)」のフィールドにダウンロードすると入ってる「plugin.txt」の内容をコピペします。
(「plugin.txt」はサンプルみたいなもんで、カスタマイズする場合はここを弄ることになります)
3. そこから、「システムイベント」タブに移って、「OnDocFormRender」と「OnDocFormPrerender」と「OnPluginFormRender」にチェックを入れる。
4. ここまでできたら最後に「保存」
↑ これを忘れやすいので注意!1の後に保存しちゃうと2の後忘れてしまいがち(自分)。
5. /assets/plugins/managermanager のディレクトリにダウンロードした「mm.inc.php」をアップロード。
6. あとは、同梱の「managermanagerHelp.html」や「plugin.txt」をみながら設定項目を弄る。
< 日本語への対応 >
インストール後、フィールド名に日本語を使うと、文字化けする場合があります。そんなときの対処法です。
*ここの情報は、こちらでモデレーターのyamaさんに教えていただいた解決法を、自分なりに少し噛み砕いて書いてみます。yamaさんありがといございました!
さきほどの、4でアップロードした「mm.inc.php」を弄ります。
文字化けするのは、文字コードの変換がうまく言ってないからなのでそこを適正にするためにPHPのhtmlentitiesを使ってる部分を修正するみたいです。
ためしにこのファイルを「htmlentities」で全文検索すると、14個所ヒットしました。一応、関係あるところだけ修正しようと、一個ずつ見ていきました。
(めんどくさければ全置換でも大丈夫な気がしますが)
ソースコードには、
「$output = " // ----------- Rename tab -------------- \n";」
などと言う風に、内容が一目で分かるように書いてあるので、これをヒントに上から見ていくと・・・
「Rename field」(309行目)と「Change field help」(464行目)、「Rename tab」(505行目)あたりが、日本語絡んできそうです。怪しい・・・
と、いうことでこのあたりの「htmlentities」を弄ります。第2第3引数にそれぞれ「ENT_QUOTES」「$modx->config['modx_charset']」を仕込んでやります。
例:
htmlentities($newname)
↓
htmlentities($newname,ENT_QUOTES,$modx->config['modx_charset'])
全部で、11箇所弄りました。
これで、文字コードがMODxで指定しているものと対応するようになっていい感じです。フィールド名だけでなく、ポップアップのヘルプやタブにも日本語使えるようになりました。