if(isset($forfrontend)||$modx->isFrontend()){ $html = getTinyMCEScript($elementList,$webTinyMCETheme,$width,$height,$frontend_language); } else { $html = getTinyMCEScript($elementList); }
$frontend_language = isset($modx->config['fe_editor_lang']) ? $modx->config['fe_editor_lang']:"";
if(isset($forfrontend)||$modx->isFrontend()){ $html = getTinyMCEScript($elementList,$webTinyMCETheme,$width,$height,$frontend_language); } else { $html = getTinyMCEScript($elementList); }
$tinymce_language = !empty($lang) ? getTinyMCELang($lang) : getTinyMCELang($manager_language);
$fontend_languageは,$langになるので、$tinymce_languageはgetTinyMCELang($front_language)と同じになるんでは?
こんばんわ
ちょっと補足いたします。
if(isset($forfrontend)||$modx->isFrontend()){ $html = getTinyMCEScript($elementList,$webTinyMCETheme,$width,$height,$frontend_language); } else { $html = getTinyMCEScript($elementList); }
↑でgetTimyMCEScript関数に$frontend_languageを渡し、
$tinymce_language = !empty($lang) ? getTinyMCELang($lang) : getTinyMCELang($manager_language);
↑で$timymce_languageを$manager_languageに置き換えられ、$timymce_languageがTinyMCE自体に受け渡されていると思います。このトピックの対応にあるように、getTimyMCEScript関数に$manager_languageの定義を追加すればロジック上は変数に値が渡りますが、そもそも$manager_languageは管理画面のUIに対する文字コードで$frontend_languageがページ編集側の文字コードではないでしょうか?
管理画面は、manager_languageで動作しているのでドキュメント編集時は、manager_languageの文字コードであるべきなので、Settingsでわざわざ文字コードを指定する必要性はないと思います。
つまり、私の疑問点は
getTinyMCESettings関数では$manager_language
getTimyMCEScript関数では$frontend_language
の組み合わせが正しいのではないかということですね。
まぁ、管理画面が日本語で、ウェブページ側を英語とかの運用をしなければ問題ありませんが。。。
getTimyMCEScript関数の$langがデフォルト引数でブランクになっているので、
$fontend_languageは,$langになるので、$tinymce_languageはgetTinyMCELang($front_language)と同じになるんでは?
$html = getTinyMCEScript($elementList);
$elementListだけが引数のときはそうなりますね。
なんか、細かい話に時間をとっていただいてすみません。。。
またまた、補足です。
getTimyMCEScript関数の$langがデフォルト引数でブランクになっているので、
$fontend_languageは,$langになるので、$tinymce_languageはgetTinyMCELang($front_language)と同じになるんでは?
$html = getTinyMCEScript($elementList);
から呼び出されたときは、global変数の$manager_languageになりますよね?
のロジックでいえば、下の引数1つではない方、すなわち$frontend_languageがパラメタとして入ってる方が呼ばれるんではないかというロジックだと思います。(っていうか、そうとしか思えないif文だと)
if(isset($frontend)||$modx->isFrontend()){
$html = getTinyMCEScript($elementList,$webTinyMCETheme,$width,$height,$frontend_language);
} else {
$html = getTinyMCEScript($elementList);
}
確かに、マルチリンガルなコンテンツを作る場合ならユーザに紐づいてないと駄目ですよね。
と書きましたが、確かに$manager_languageで統一されれば良いので$front_languageは無視でよいのかもしれませんねー。。。
※$front_languageはユーザに紐づいていないし。。。
いえいえ、こちらこそ。
ZeRoさん、
なるほどー、そうですねー。
でも、getTinyMCEScript関数呼び出すときは$frontend_language渡すのに、関数の中で$manager_languageに入れ替えるのも変ですよね?
もともと$manager_language渡せばいいし。。。
とりあえず、スッキリしました。長々とお付き合いいただきありがとうございました。
なら余計に・・・ですね
なお、$manager_languageはユーザに紐づいてるみたいです。
ユーザの設定画面側の指定が優先されるみたいです。Config側を日本語でユーザ側を英語にしてみたら、ユーザの方が優先されましたから。。。