AutoLogin & Multi Language Module.
- 2005/09/04 幾つかパス名の指定にTYPOがあったのを修正しました。
- 2005/08/07 MultiLanguage部分にバグがあったので0.1aに入替ました。
- 2005/08/06 XOOPS System Hack Utilities, Hackでなくてもここまでできますけど、まだまだ実験中!
概要
このモジュールは、一切のXOOPSコアファイルに対する修正無しで、GIJOE氏開発の以下のHACKと同等機能を提供するモジュールです。
- Auto Login Hack
- EMLH(Easiest Multi Language Hack)
モジュール化するにあたって、幾つかの機能の互換性は無くなっていますが、基本的には上記のGIJOE氏開発による2つのHackと同等の機能を持っています。
元々のHackに比べると、コアを修正する手間が不用な分、若干性能的には、無駄な処理を行っていますが、ほとんど影響しないと思います。
また、Multi Language対応部分に関しては、EMLHに対して、XOOPSの言語環境切替の機能が付加されています。但しこの機能を使用すると、ブロックキャッシュにも対応できるというEMLHの特徴の一つが失われてしまう事になります。
ダウンロード
導入方法
1.ファイルのコピー
解凍したファイル群を、XOOPSのルートにコピーして下さい。
主なディレクトリ構成は以下のようになっています。
XOOPS_ROOT_PATH
|
+--language
| |
| +--multi_lang
|
+--modules
|
+--sysutil
2.モジュールの導入
sysutilモジュールを、インストールして下さい。
3.モジュールの設定
管理所メニューのsysutil-一般設定を開いて、各設定項目を設定して下さい。
この時、Multi Languageを使用しない場合でも、デフォルトの使用言語は適切に設定して下さい。
導入直後は、「english」に設定されていますが、日本語環境の場合には「japanese」に変更して下さい。
4.AutoLogin機能を使用される方のみの設定
標準の「ログイン」ブロックを非表示に変更し、替わりにsysutilモジュールの「ログイン」を表示するように変更して下さい。
5.Multi Languageを使用される方のみの設定
language/multi_lang/conf_ml.dist.phpというファイルを、language/multi_lang/conf_ml.phpという名前のファイルとしてコピーし、そのファイルの中身を修正して下さい。
標準のファイルでは、日本語、英語の切替を行う事が可能となっています。
[mlimg]タグにて表示される国旗イメージは、日米の国旗のみがmodules/sysutil/imagesディレクトリ下においてあります。
6.Multi Languageを使用される方のみの設定
必要に応じて、「言語切替」ブロックを表示するように設定して下さい。
7.すべての方の最終設定
XOOPSの「システム管理」-「一般設定」-「一般設定」画面にて、使用言語を「multi_lang」に変更して下さい。
コメント
- 大変便利です!インストールとても簡単でした!!ためしに使わせていただきます。 -- komshiz
- オートログイン、大変便利で助かっております。つい最近気付いた部分を質問させてください。ログイン前に「パスワード紛失」のリンクをクリックすると、{/modules/sysutil/index.php#lost}のページが表示されるのですが、これまでのような「パスワードを紛失されましたか?」と言う、登録メールアドレスを入力してパスワードを再発行する表示がなくなってしまいました。この表示を元に戻すことはできるでしょうか? -- [[通りすがりさん>user/通りすがりさん]]
- 素晴らしいです!ありがとうございます >「パスワード紛失」modules/sysutil/index.php106行目のファイル名をsysutil_userform.htmlにしたらなおりました。これでいいのでしょうか^^;englishを選択すると文字コードが西ヨーロッパ言語になって、ひどく文字化けしてしまいます。どうしたらいいでしょうか。。。 -- [[通りすがりさん>user/通りすがりさん]]
- 元々autologinというモジュール名で開発していたので、その時のが残ってしまっていました。 -- nobunobu
- 英語に切り替えた時に残っている日本語部分の文字化けに対しては、小生は、language/english/global.phpの最後の方の、_CHARSETを'EUC-JP'にして、XOOPS_USE_MULTIBYTESを1に変えて運用しています。 -- nobunobu
-
- すごいですね!ちなみに管理画面で左のモジュールアイコンにマウスがかさなったときに出るポップアップメニューが英語のまま日本語に戻らなくなってしまったのは僕だけでしょうか? -- [[通りすがりさん>user/通りすがりさん]]
- 一般設定のサイト名とサイト副題を日本語だけに戻したら直りました、なんでだろう? -- [[通りすがりさん>user/通りすがりさん]]
- アイコンのメニューは、cacheディレクトリ下に、モジュールインストールや一般設定の変更時にその時の言語にて作成して書き込まれるため、現在の言語に連動しない仕組みになっています。 -- nobunobu
- すいません、AutoLoginモジュールを導入したのですがそのときにゲストのアクセス権限を奪ってしまい、ログアウト後ログイン画面には入れなくなってしまいました。DBの復元も試して見たのですが効果無く困っています。自分の設定ミスなのですがどうにかしてログインする方法はないでしょうか。宜しくお願いします。 -- [[通りすがりさん>user/通りすがりさん]]
- 一時的に、langauag/multi_langというフォルダを、別名にリネームすれば、英語モードでの通常モードに戻ります。
この状態でuser.phpを開けばログインできます。
で管理メニューでゲストのアクセス権をつけて下さい。 -- nobunobu
- アクセス権を奪いログインできなくなった者です。コメントしていただいたとおりにし、おかげさまでログインすることができました。のぶのぶさん、ありがとうございます。 -- [[通りすがりさん>user/通りすがりさん]]
- 失礼します。バージョン2.013以降にインストールしたのですがlogin画面を変更しても出力されません。なぜでしょう? -- [[通りすがりさん>user/通りすがりさん]]
- はじめまして。今日インストールしてみました。素晴らしいモジュールでびっくりです。『language/multi_lang/conf_ml.dist.phpというファイルを、language/multi_lang/conf_ml.phpという名前のファイルとしてコピーし、そのファイルの中身を修正して下さい。 』、というのはなにをどう変更すればよいのでしょう?チョット初心者です。よければ詳しく教えてください。 -- [[通りすがりさん>user/通りすがりさん]]
- Multi Languageで日英以外の切替を行われたい方などは、変更が必要になります。例えばフランス語を書きたい場合には[fr]等のタグを別途定義して、国旗のイメージを用意して、XOOPSのfranchというLanguage定義と結びつける必要が出てくるので、当ファイル内の、SYSUTIL_ML_LANGS・SYSUTIL_ML_LANGIMAGES・SYSUTIL_ML_LANGNAMESを定義する必要があるということです。 -- nobunobu
- のぶのぶさん、ありがとうございます! さらに質問ですが、このページにあるように、国旗を押すと言語切り替えができるようにしたいのですが、それは何か特別な処理をしないといけませんか?? よろしくお願いします。 -- [[通りすがりさん>user/通りすがりさん]]
- [mlimg]というタグを記述すると、の様に表示されます。("["は実際には半角です) -- nobunobu
- 大変便利なモジュールをありがとうございます.言語選択の機能を活用させて頂いております.Language SelectionでJとEを大文字にしたくて,conf_ml-dist.php内のリソースを変更すると,例えばEnglishを選択したもメニューは日本語のままになります.自分でカスタムブロック内で>user/通りすがりさん]]
- marcanさんのMultilanguageが使えなくなって、非常に困っていたのですが、のぶのぶさんのお陰で言語切り替えを復活させることができました!ありがとうございました!!! -- minorin
- IIS 5.1だとインストール時にmainfile.phpの書き込みに失敗するようです・・・。 -- 通りすがりさん
- mainfile.phpの書込など当モジュールでは行っていませんけど????? -- nobunobu
- SysUtilModuleを利用している状態でメンテナンスモードにしたら、管理者がログインできなくなってしまいました。phpMyAdminでメンテナンスモードを解除してログインして回避しました。取り急ぎ、ご報告いたします。 -- uhouho
- とても便利なモジュールに感謝!早速使わせていただいて思ったのですがXOOPSモジュールと連動(ブロックキャッシュがなにかわかりませんが、今とこ(問題なし?かな)を設定してつかってるのですが、英語を選んだ際にISO-8859でエンコードされ、その際に日本語がもじばけしてしまいます。英語を選んだ状態で更にEUC-jpにエンコードかけると日本語も英語もきちんとひょうじされるので、これをどこかのせっていでできないかとおもっています。英語を選んだ時のエンコードはEUC-jpって。良い方法はないでしょうか? -- bubble
- あれ?ところでどうしてのぶのぶさんのサイトでは英語せんたくしても日本語が文字化けしないんですか?私なにかまちがって設定しちゃってるんでしょうか。 -- bubble
- これは、languages/english/global.phpの下の方にある、define('_CHARSET', 'ISO-8859-1'); というのを、define('_CHARSET', 'EUC-JP');に変更して使っています。 -- nobunobu
- あああああ〜、おおおおお〜!できました!!とても感謝感激です。ありがとうございます。本当に助かりました。 -- bubble
- 導入方法の7番目の設定をすると,ページが真っ白になって表示されなくなったり,ページの読み込みが最後まで終了しなかったりと不安定になってしまいます.また,言語選択ブロックを表示させたら「SYSUTIL_ML_LANGNAMES」と表示され「japanese」や「english」の選択肢が表示されません.どのように対処すればよろしいでしょうか. -- 通りすがりさん
- いつもMulti Languageを使用させてもらっています。デフォルトの表示をEnglishモードにしたいのですが、何処をいじればよろしいでしょうか? また、ブラウザの属性を調べて、日本語バージョン以外を英語表示にする方法があれば、こちらもよろしくお願いします。 -- 通りすがりさん
- /languages/multi_lang/conf_ml.dist.php を同フォルダー内に conf_ml.phpという名前でコピーして、
define ('SYSUTIL_ML_DEFAULT_LANGUNAME','japanese');
って部分を
define ('SYSUTIL_ML_DEFAULT_LANGUNAME','english');
に変更すれば、デフォルトは変えれます。
自動切り替えについては、$_SERVER['HTTP_ACCEPT_LANGUAGE']を見ればブラウザが表示できる言語判定できるので、
この先頭2文字がjaで無ければってな判定を行えば良いはずですけど・・・・
if (preg_match("/^ja/",$_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
define ('SYSUTIL_ML_DEFAULT_LANGUNAME','japanese');
} else {
define ('SYSUTIL_ML_DEFAULT_LANGUNAME','english');
}
なんて形で出来るかもしれません。
試してないので、確かではありませんけど・・・・ -- nobunobu
- >ページが真っ白になって表示されなくなったり,ページの読み込みが最後まで終了しなかったり
conf_ml.phpの編集段階でなにか間違われた様に感じますが・・・
もしよければ、本ページ下方の、XOOPSのコメント投稿機能か、BBSのゲストブックにでも、
現在のconf_ml.phpの内容を教えて頂けますか? -- nobunobu
- 現在のconf_ml.phpの内容ですが,デフォルトのconf_ml.dist.phpをコピーしただけで変更はしていません.日英以外の言語を追加しない場合は,特に編集する必要はないのですよね?? -- 通りすがりさん
- ※追記です.使用言語をmulti_langに設定した直後に表示される「データベースを更新しました」というリダイレクトページの下部に
Notice [PHP]: Constant _mi_system_name already defined in file modules/system/language/english/modinfo.php line 6
Notice [PHP]: Constant _mi_bwiki_recent already defined in file modules/bwiki/language/english/modinfo.php line 7
Notice [PHP]: Constant _mi_xhnewbb_name already defined in file modules/xhnewbb/language/english/modinfo.php line 6
などのNoticeメッセージが全部で400行以上出力されてしまいます.
また,multi_langに設定している状態だと多くのページの下部に
Notice [PHP]: Constant sid already defined in file include/common.php line 192
と表示されます.
他のモジュールとの相性とかいう問題なのでしょうか...? -- 通りすがりさん
- sysutilを使わせていただいています。このモジュールを使用しているときに、メンテナンスモードにするにはどうしたらいいのでしょうか?一度メンテナンスモードにしたら、管理者でログインできなくなりえらいことでした。sysutilを非アクティブにしログインブロックを標準に切り替えてもうまくいきません。この時は、データベースを直接phpMyAdminで操作し事なきを得ましたが、何かするとログインできなくなってしますのが困りものです。安全で手軽な手順がありましたらご教授ください。 -- Guest
- 一般設定の言語を「日本語」にするか、languages/ml_langのディレクトリ名を変更する(この場合には英語になりますが)のが、一番手っ取り早いですよ。 -- nobunobu
- 早々のリプライありがとうございます。で、define ('SYSUTIL_ML_DEFAULT_LANGUNAME','english');を設定し、ブラウザを再起動してみたのですが、期待していた英語のトップページは表示されず日本語のままです。手動で変更すると英語で表示されるのですが、この現象は正しいのでしょうか? -- 通りすがりさん
- 一旦選択された言語設定は、クッキーに記憶されるので、同一PCのブラウザからではクッキーを消さない限りは確認できません。 -- nobunobu
- 度々のリプライありがとうございます。クッキー情報を削除しただけでは、日本語が表示されません゛した。そこで、sysutilの一般設定のデフォルトの言語設定をenglish に設定すると、英語が表示されました。この場合、define ('SYSUTIL_ML_DEFAULT_LANGUNAME','japanese');のままでも、英語表示が可能でした。ただし、define ('SYSUTIL_ML_DEFAULT_LANGUNAME','japanese');が有効でなければ、2番目の目的(ブラウザ属性による判別)は無理な気がしますが・・・ -- 通りすがりさん
- メンテナンスモードに関して質問させていただいたものです。一般設定を「japanese」にする方法でできました。ありがとうございました。 -- 通りすがりさん
- 『国旗を押すと言語切り替えができるようにしたい』と言う質問に対しての、のぶのぶさんの返答で『[mlimg]というタグを記述すると表示されます』と言うのにさらに質問なのですが、タグをどこへどの様に記述すれば良いのでしょうか? -- 通りすがりさん
- [ja]タグが記述できる場所ならドコデモOKですよ。 -- nobunobu
- sysutil便利に使用させてもらっています。xoopsを2.0.15JPにバージョンアップした所,ログイン時にIDを覚えるにマークしてログインすると,途中で止まってしまうようになりました。マークしないとTOPページに行きます。 -- 通りすがりさん
- 自分も同じ症状が再現します。ログイン途中で真っ白な画面が表示されます。リロードすると正常に表示されますが。-> 解決しました。include/functions.phpを一部変更しました。参考:XOOPS Cube日本サイト - フォーラム -- mita
- 大変便利なsysutilありがとうございます。Multi Languageのみ使用していますが、メールの送信をしたときにフォーム名として使った[ja]お問い合わせ[/ja][en]Contact[/en]など
の部分がそのままメールされてしまうのは当方の設定ミスでしょうか。
使用しているのはメールフォームver.1.1.1, php ver.5.8.0, xoopscube ver. 2.0.15です。宜しくお願いします。 -- 通りすがりさん
- -- 通りすがりさん
- sysutilすばらしいですね!便利に使用させて頂いております。さて、早速質問なのですが、myalbum-pへはどうも反映されずタグがそのままでちゃうような感じ(新着画像とかのブロック表示で、、単独のページだと問題なし)なのです。myalbum-pの中のlanguageディレクトリの下にあるファイルをなにか修正する必要があるのでしょうか?申し訳ありません、当方初心につき是非、お教え頂きたく。よろしくお願いいたします。 -- Guest