【cfFormMailer】管理画面をEnglish運用するとエラーになる  【解決済み】

質問全般・改善要望
返信する
mozog
メンバー
メンバー
記事: 2
登録日時: 2013年12月05日(木) 02:37

【cfFormMailer】管理画面をEnglish運用するとエラーになる

投稿記事 by mozog »

-----
ご利用のサーバ: sixcore
MODXのバージョン:1.0.12J
PHPのバージョン: 5.3.3
MySQLのバージョン: 5.0.95 utf8_general_ci
ブラウザ:chrome
cfFormMailer: 1.3
WEBサイト:  charset=utf-8
-----

お世話になります。質問させてください。
cfFormMailerを使用時、管理画面の言語をEnglish設定にした後、WEBフォームにアクセスするとエラーが出てしまいます。
管理画面が日本語の場合問題ありません。

以前は英語の設定でも出来ていたと思います。
Illegal character encodingという事ですが、どうすれば良いか分からす困っています。
皆さんの環境ではcfFormMailerを英語の管理画面にて運用できますか?


具体的な症状として
・グローバル設定 > 管理画面の言語をEnglishに
→ログイン時、ログオフ時(一般公開の状態)など全ての状態でエラーに

・権限管理 > ユーザー管理 > 特定のIDの管理画面の言語をEnglishに
→この特定のIDユーザーがログインしているときに、cfWEBフォームを開くとエラーに
→ログオフ時では問題なくフォーム画面が動きます。 


よろしくお願いします。

コード: 全て選択

エラー
イベントID	0
ソース	Snippet - cfFormMailer
日付	2013/12/05 02:06:33
≪ MODX Parse Error ≫

MODX encountered the following error while attempting to parse the requested resource:
≪ PHP Parse Error ≫
PHP error debug
Error : mb_convert_encoding() [function.mb-convert-encoding]: Illegal character encoding specified
ErrorType[num] :	WARNING[2]
File :	/xxxxx.com/public_html/assets/snippets/cfFormMailer/class.cfFormMailer.inc.php
Line :	736
Source :	 $text = mb_convert_encoding($text, 'utf-8', CHARSET);
Basic info
REQUEST_URI :	/contact/
Resource :	[4]お問合わせ
Current Snippet :	cfFormMailer
Referer :	http://xxxxx.com
User Agent :	Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
IP :	101.108.10.129
Benchmarks
MySQL :	0.0040 s (4 Requests)
PHP :	0.0166 s
Total :	0.0206 s
Memory :	859.66 KB

Backtrace

1	DocumentParser->executeParser()
index.php on line 143
2	DocumentParser->prepareResponse()
manager/includes/document.parser.class.inc.php on line 333
3	DocumentParser->outputContent()
manager/includes/document.parser.class.inc.php on line 444
4	DocumentParser->parseDocumentSource()
manager/includes/document.parser.class.inc.php on line 475
5	DocumentParser->evalSnippets()
manager/includes/document.parser.class.inc.php on line 1938
6	DocumentParser->_get_snip_result()
manager/includes/document.parser.class.inc.php on line 1564
7	DocumentParser->evalSnippet()
manager/includes/document.parser.class.inc.php on line 1651
8	eval()
manager/includes/document.parser.class.inc.php on line 1515
9	Class_cfFormMailer->parseConfig()
manager/includes/document.parser.class.inc.php(1515) : eval()'d code on line 30
10	Class_cfFormMailer->adaptEncoding()
assets/snippets/cfFormMailer/class.cfFormMailer.inc.php on line 1223
11	mb_convert_encoding()
assets/snippets/cfFormMailer/class.cfFormMailer.inc.php on line 736
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 【cfFormMailer】管理画面をEnglish運用するとエラーになる

投稿記事 by yama »

http://www.clefarray-web.net/blog/archi ... -v003.html
cfFormMailerは日本語環境での動作のみを想定した仕様になっていて、英語環境で動作しないのは基本的に仕方がないかもです。

コード: 全て選択

Source :    $text = mb_convert_encoding($text, 'utf-8', CHARSET);
問題はここのところですね。

コード: 全て選択

$lang = (isset($language)) ? $language : $modx->config['manager_language'];
$lang = str_replace("japanese-", "", $lang);
define(CHARSET, $lang);
cfFormMailerのコードを追ってみると上記のような記述があって、まさしく日本語環境のみでしか正しく動作しない感じです。
でもたぶん [[cfFormMailer?language=utf8]] と書くと動作するようになるんじゃないかと思います。

管理画面の言語とフロントエンドで実際にサイトとして表示する言語は本来は別の話だと思うので、この点に関してはMODX本体の改善点として今後工夫してみたいと思います。
mozog
メンバー
メンバー
記事: 2
登録日時: 2013年12月05日(木) 02:37

Re: 【cfFormMailer】管理画面をEnglish運用するとエラーになる  【解決済み】

投稿記事 by mozog »

yama 様

いつもお世話になります。
ご教授いただいた通り [[cfFormMailer? language=`utf8`]] であっさり解決しました。

余談となりますが、以前のバージョンで出来たはずと思い、色々試した所、
本家版 Evo 1.0.6-1.0.12で
・グローバル設定 > 管理画面の言語をJananese後、
権限管理 > ユーザー管理 > 特定のIDの管理画面の言語をEnglishに、
特定のIDを英語で運用でできる事がわかりました。


とにかく、
とても助かりました、ありがとうございます。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: 【cfFormMailer】管理画面をEnglish運用するとエラーになる

投稿記事 by yama »

本家版のほうは、その仕様では一部のプラグインで問題があったと思います。日本語版は最近それを修正したのでcfFormMailerの問題が出てきました。cfFormMailerのほうは改善ができるので、後日改めて原作者さんに提案をお送りします。
返信する