LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Wiki

ModuleManuals

cubeUtils モジュール anchor.png

機能
AutoLogin、EMLH(Easiest Multi Language Hack)
種別
ユーティリティ系モジュール
作者
NobuNobu
バージョン
0.7
動作環境
XOOPS Cube 2.1
配布元
http://www.nobunobu.com/
複製
不可
Page Top

メニュー anchor.png

Page Top

概要 anchor.png

AutoLoginと、GIJOE 氏が XOOPS2 で提唱しておられた、EMLH(Easiest Multi Language Hack)の機能を、XOOPS Cube2.1のPreload機能及びDelegate機構を使用して実装したモジュールです。

Page Top

インストール anchor.png

通常の方法でインストールします。

Page Top

アップデート anchor.png

通常の方法でアップデートします。

Page Top

アンインストール anchor.png

通常の方法でアンインストールします。

Page Top

使用方法 anchor.png

Page Top

AutoLoginを有効にする場合 anchor.png

管理画面でcubeUtilsモジュールの一般設定にて、

  • 「Auto Login 機能を使用する」を「はい」に設定
  • 「Auto Login の持続時間」にて、どの程度の期間AutoLogin状態を保持するかを設定して下さい。
Page Top

多言語機能を使用する場合 anchor.png

アーカイブに同梱されているプリロードファイル MultiLanguagePreLoad.class.php をサイトプリロード(html/preload/フォルダの下にコピー)に登録することで、多言語機能が働くようになります。

Hodajuku Distribution同梱のcubeUtilsでも、このpreloadは無効になっています。 必要な場合は、 html/preload/disabled/ フォルダ内から MultiLanguagePreLoad.class.php をhtml/preload/ フォルダにコピーしてください。

なお、cubeUtils標準では、日本語(EUC-JP)と英語の切替ができるような設定になっていますが、これ以外の組み合わせでの言語切替を行う場合など、ほとんどのケースで conf_ml のカスタマイズが必要だと思われます。

Page Top

XOOPS のブロックを iGoogle のガジェットとして登録する機能(お試し版) anchor.png

この機能は、Xoops Cube Legacyのブロックを、iGoogleのガジェットとして公開可能にする機能です。対象となるブロックは、ゲストユーザが参照可能なブロックに限定しています。 公開の手順としては、

  1. 互換モジュールの「ブロックのインストール」にて「iGoogle Gadgetブロック」を追加し、このオプションで、実際にGadgetとして公開したいブロックを指定します。
  2. この設定を行うと、もとのブロックを参照した新ブロックが作成され、ブロックが2重に表示されますので、元のブロックのほうを削除します。(ALTSYSのブロック管理で非表示に設定するほうが簡単です)
  3. 新しいブロックには左下に「+Google」アイコンが表示されますので、これをクリックすることによってこのブロックをiGoogle上に表示することが可能となります。
Page Top

多言語(マルチランゲージ)機能 anchor.png

Page Top

多言語機能の原理 anchor.png

cubeUtilsの多言語機能は

  • サイト管理者やユーザが記述したテキストについては、言語タグによって記述を分ける
  • システムのテキストについては、内部の言語名を切り替える

という2つの方式の組み合わせによって実現されています。

Page Top

言語タグの利用 anchor.png

 [(言語タグ名)]

これが言語タグです。これは開始タグになります。終了タグは

 [/(言語タグ名)]

です。

例えば、言語タグが[ja]と[en]の場合、

[ja]こんにちは[/ja][en]Hello![/en]

の様に記述することによって、日本語が選択されている時には「こんにちは」のみが、英語が選択されている時には「Hello!」がそれぞれ表示されます。

言語タグはほとんどすべての局面で利用可能です。

テーマ・テンプレート・コンテンツ内での利用はもちろんのこと、altsysによってカスタマイズする言語定数内にさえ埋め込むことができます。

単にリテラルだけでなく、HTMLの各要素を切り替えることもできます。言語に応じた画像を表示したければ、<img>タグのsrc部分に言語タグを埋め込めば良いでしょう。もちろん、<img>タグの外側を言語タグでくくることも可能です。この場合は、

ただ、この機能はあまりにも強力すぎるため、誤ったタグ記述によって、サイト全体が表示されなくなる可能性があります。(例えば、<head>内に開始タグがあるのに、そのすぐ後ろに終了タグを書き忘れた場合、次に終了タグが登場するまで、まるまる出力がスキップされてしまいます)

そのため、デフォルトでは、HTMLの</table>タグだけはまたげないようにしてあります。conf_mlのカスタマイズで、これを変更することもできます。

Page Top

言語切り替えタグの利用 anchor.png

選択言語を簡単に切り替えるためのタグもあります。

[mlimg]

を文中に挿入すると、言語可能な言語が一通り並んだ、言語選択コントローラを表示する事ができます。

言語選択コントローラに表示される各言語用画像のURLは、conf_ml.php でカスタマイズ可能です。

特定の言語への切替URLのみが必要な場合は、mlurlタグを利用します。

[mlurl:en]

と記述した場合、言語タグ名enへ切替えるためのURLが得られます。テーマやテンプレート内では、

[ja]<a href="<{$xoops_url}>[mlurl:en]">English</a>[/ja]

などと記述することになるでしょう。

Page Top

conf_ml (多言語設定ファイル)のカスタマイズ anchor.png

html/modules/cubeUtils/include/ 内に conf_ml.dist.php という雛形ファイルがあるので、まずはこのファイルを同じフォルダ内に conf_ml.php という名前にコピーします。

conf_ml.phpという名前のファイルがあれば、それを設定ファイルとして利用しますので、以降はこのファイルをカスタマイズしていくことになります。conf_ml.dist.php しかなければ、その雛形ファイルが利用されますが、このファイルは今後のバージョンアップで上書きされるため、必ずconf_ml.phpという名前にするべきでしょう。

以下、conf_mlの各項目について説明します。

Page Top
CUBE_UTILS_ML_DEFAULT_LANGNAME anchor.png

デフォルト言語を指定します。言語名はXCLシステムの言語名です。(japaneseやja_utf8など)

Page Top
CUBE_UTILS_ML_LANGS anchor.png

言語タグ名を列挙します。カンマで区切ってください。 デフォルトは、

ja,en

となっていますが、これは、[ja]と[en]が利用出来る、ということを意味しています。 この定義は、単に最初のタグがjaで、2番目のタグがenだ、ということだけを意味しており、japaneseやenglishといったXCLシステム言語名とは結びついていません。

つまり言語タグ名は自由に定義が可能です。字数制限もありませんし、記号を使うことさえできます(ただしカンマは不可能)。

定義数も自由ですが、CUBE_UTILS_ML_LANGNAMES 項目等と個数が一致する必要があります。

日英仏3ヶ国対応の例:

ja,en,fr
Page Top
CUBE_UTILS_ML_LANGIMAGES anchor.png

言語切替コントローラに表示される画像のURLです。CUBE_UTILS_ML_LANGS で定義した言語数だけ、対応するURLを記述します(カンマ区切り)。

Page Top
CUBE_UTILS_ML_LANGNAMES anchor.png

CUBE_UTILS_ML_LANGSで定義した言語タグ名とXCLシステム言語名を、ここで結びつけます。 デフォルトは以下の組み合わせですが、

define('CUBE_UTILS_ML_LANGS','ja,en');
define('CUBE_UTILS_ML_LANGNAMES','japanese,english');

この場合、[ja]がXCLのjapanese(EUC-JP)に、[en]がenglishに、それぞれ対応していることになります。

XCLシステム言語として、ja_utf8を利用している場合は、

define('CUBE_UTILS_ML_LANGS','ja,en');
define('CUBE_UTILS_ML_LANGNAMES','ja_utf8,english');

という組み合わせにする必要があります。

Page Top
CUBE_UTILS_ML_LANGDESCS anchor.png

言語切替コントローラなどで利用される言語タグの説明テキストです。CUBE_UTILS_ML_LANGS で定義した言語数だけ、対応するテキストを記述します(カンマ区切り)。

Page Top
CUBE_UTILS_ML_IMAGETAG anchor.png

言語切替コントローラを表示するためのタグ名を指定します。

Page Top
CUBE_UTILS_ML_URLTAG anchor.png

特定の言語への切替URLを表示するためのタグ名を指定します。

Page Top
CUBE_UTILS_ML_NEVERCROSSREGEX anchor.png

言語タグがまたいではいけない構造を指定します。 デフォルトでは、</table>を言語タグはまたげません。 リスクを承知でまたげるようにするには、

define('CUBE_UTILS_ML_NEVERCROSSREGEX','');

とします。

Page Top
CUBE_UTILS_ML_COOKIELIFETIME anchor.png
Page Top
CUBE_UTILS_ML_PARAM_NAME anchor.png
Page Top
CUBE_UTILS_ML_COOKIE_NAME anchor.png

これらはいずれも、内部処理用の定義なので、特に変数名がバッティングする、などの問題がなければ、変更する必要はありません。

Page Top
CUBE_UTILS_ML_DBSETUP_LANGUAGE anchor.png
Page Top
CUBE_UTILS_ML_OUTPUT_MULTIBYTE anchor.png
Page Top
CUBE_UTILS_ML_OUTPUT_CHARSET anchor.png

これらはインストール時に利用される定義です。ja_utf8を利用している場合は、

// 'charset_mysql.php' in Legacy module language directory will be called.
define ('CUBE_UTILS_ML_DBSETUP_LANGUAGE','ja_utf8');
define ('CUBE_UTILS_ML_OUTPUT_MULTIBYTE',1);
define ('CUBE_UTILS_ML_OUTPUT_CHARSET','UTF-8');

とする必要があります。

Page Top

知っておくべき事 anchor.png

Page Top

HD同梱版が最新です anchor.png

CubeUtils は、nobunobu さんのサイトでも手に入りますが、最新版は HD(ホダ塾ディストリビューション)に同梱されているものです。/modules/CubeUtils だけ抜き出して使ってもまったく問題はありませんので、こちらで手に入れるようにしてください。
http://hodajuku.sourceforge.net/

Page Top

EMLH の「またいではいけないタグ」機能 anchor.png

CubeUtils には、誤ったタグ記述で、サイト全体を崩してしまうようなことを避けるために、大きな構造をまたがないようにする仕掛けが施されています(GIJOE 氏のオリジナルの EMLH と同等の仕様です)。 デフォルトでは </table> をまたいで、言語タグを使用すると、EMLH はきちんと機能しません。

「またいではいけないタグ」は、conf_ml.dist.?php に定義されていますので、その中の定数、CUBE_UTILS_ML_NEVERCROSSREGEX を編集することで変更できます。EMLH 設定時に、/modules/cubeUtils/include/conf_ml.dist.?php を conf_ml.php にコピーしていると思いますので、適宜修正してください。

なお、もともとおかしくなってしまうことを防ぐ為の機能ですので、table すべてを言語タグに入れる為に、CUBE_UTILS_ML_NEVERCROSSREGEX をいじるのではなく、またがないように記述した方がよい解決でしょう。

<table> <tr> <td>[ja]日本語[/ja][en]English[/en]</td> </tr> </table>

参考:http://www.xugj.org/modules/QandA/index.php?topic_id=733

Page Top

管理画面 anchor.png

Page Top

一般設定 anchor.png

一般設定では、AutoLogin に関する設定(有効化と期間について)を行うことができます。

Page Top

ブロック anchor.png

ブロック名テンプレート説明ブロック複製ブロックオプション
言語選択なしEMLH用の言語選択ブロック不要
iGoogle Gadget用ブロックcubeUtils_block_igoogle.html  複数インストール可能どの既存のブロックを iGogle に登録するかを選択
ログインcubeUtils_block_login.htmlオートログインのチェックボックスのついたログイン用ブロック不要         
Page Top

テンプレートセット anchor.png

テンプレート名説明
cubeUtils_userform.html/user.php にアクセスしたときに現れるオーバライド用のログイン画面
cubeUtils_block_igoogle.htmlブロックを iGoogle ガジェットに追加する為のリンクを記載したもの
cubeUtils_block_login.htmlオートログインのチェックボックスのついたログイン用ブロック
Page Top

Tips anchor.png

  • EMLH の言語タグはテーマやテンプレート内でも有効です。言語ごとに条件分けを作れたりするので、表現が豊かになるかもしれません。
Page Top

よくある質問 anchor.png

Page Top

CubeUtils をいれたらログインブロックが二つになった anchor.png

CubeUtils をいれると自動的に CubeUtils のログインブロックが表示状態になります。デフォルトの user モジュールにもログインブロックがあるので、user モジュールのログインブロックを非表示にしてください。

Page Top

たくさんのページを一気に開いたら /user.php?op=confirm というアドレスで真っ白になった anchor.png

Macintosh の Safari をお使いではありませんか? Safari でプライベートブラウズをオンにしているとそういうことが起こってしまうようです。

Page Top

iGoogle にうまく追加できない anchor.png

まずアクセス権を確認してください。iGoogle に追加する予定のブロックのアクセス権が、ゲストに許可されていないと、iGoogle には追加できません。 また cubeUtils モジュールアクセス権限も、ゲストに開放するようにしてください。

下記アドレスの example.com を、ご自分のサイトに変更してアクセスしてみてください。

http://example.com/modules/cubeUtils/igoogle.php

これで、XML ツリーが表示されることを確認してください。

次に

http://example.com/modules/cubeUtils/igoogle.php?mode=raw&block=nnn

と叩いて、ブロックの内容が表示されるかどうかを確認してください。
* nnn は、iGoogle Gadget ブロックの bid です。bid は、「互換モジュール」「ブロックの管理」の一覧の左端にある番号です。

あと、GoogleのGadgetの定義は、Google側にキャッシュされるようで、キャッシュが効いている間は修正しても反映されないようです。

なので、もしブロックの権限を間違って一度設定するとその時の状態が残っているかもしれません。これを解消するためには、

から、Googleで提供しているGadgetを持ってきて、対象のCacheをOFFにしてやる必要があります。このガジェットを iGoogle に登録すると、キャッシュをコントロールできるようになるので、iGoogle に追加してみてください。

あと、この機能では、一旦 Gadget が Google にキャッシュされて配信されるので、MAMP や XAMMP などのローカル XOOPS ではテストなどできないので、注意してください。

Page Top

カスタムブロックを iGoogle に追加したい anchor.png

iGoogle にはカスタムブロックも追加できます。 何らかの方法で新規ブロックを作って、その bid を登録して、表示チェックをしてみてください。

Page Top

iGoogle Gadget用ブロックをサイトに表示せずに iGoogle 登録したい anchor.png

iGoogle への登録は、下記スクリプト片の(No)の部分をiGoogle Gadget用ブロックの bid にしたものがあれば、それで事足ります。

<a href="http://fusion.google.com/add?moduleurl=http%3A//http://www.medianews.jp/modules/cubeUtils/igoogle.php%3Fblock%3D(No)"><img width="104" title="Add to iGoogle" alt="Add to iGoogle" src="http://buttons.googlesyndication.com/fusion/add.gif" height="17" border="0" /></a>

ので、表示チェックさえできてしまえば、この部分だけテーマなりに生書きすることで、画像も変更できますし、自由なデザインをすることができます。

また混乱しやすいと思われるのですが、ゲストに許可さえされていれば、じっさいにブロックが表示されている必要はないので、Altsys をつかって、「表示サイド」を「なし」にしても問題はありません。

Page Top

iGoogle 追加ブロックを複製したい anchor.png

Altsys の「強制ブロック複製機能」を用いれば複製ができるようです。

http://example.com/modules/cubeUtils/igo?ogle.php

の、XML ツリー <UserPref name="block"> の子要素に複数のブロックが登録されていることを確認してください。

Page Top

ライセンス anchor.png

GPLです。

Page Top

/ anchor.png


トップ   凍結 差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 20456, today: 2, yesterday: 1
初版日時: 2008-08-04 (月) 15:27:47
最終更新: 2014-01-13 (月) 22:06:01 (JST) (1345d) by jidaikobo
Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities