XPressME Integration Kit

フォーラム

Re: XOOPSメインメニュー以下のサブメニューの表示を変える方法について

永らくありがとうございました フォーラム 使い方全般 XOOPSメインメニュー以下のサブメニューの表示を変える方法について Re: XOOPSメインメニュー以下のサブメニューの表示を変える方法について

#3254
toemon
キーマスター

XOOPS2.4.5での確認を行ってみました。

結果としてはmodinfo.phpの変更で素直にサブメニューが変更されました。

XOOPS2.4から日本語に関する仕様が変わっていますが(詳細はこちらを参照)

この仕様への対応としてはXPressMEのlanguage/japanese(EUC)は破棄して、

language/ja_utf8(UTF8) をjapaneseに名前変更あるいはコピー名前変更して使うことになりますが、

もしかして、XOOPS側の言語選択がjapaneseになっているにも関わらず、ja_utf8側を変更しているということはないですか?

それが問題ないようでしたら、modinfo.phpを改変後、モジュールをアップデートしてみるとか

あと、altsysの言語定数管理用のコアハックの件ですが

コアのアップグレードの事を考えると、include/common.phpをハックするより

mainfile.phpの

include XOOPS_ROOT_PATH.”/include/common.php”;

を行っている後に

<code>$d3lang_class_path = XOOPS_TRUST_PATH."/libs/altsys/class/D3LanguageManager.class.php";<br />
if ( isset($xoopsModule) && file_exists($d3lang_class_path) ) {<br />
require_once $d3lang_class_path ;<br />
$langman =& D3LanguageManager::getInstance() ;<br />
$langman->read( "modinfo.php", $xoopsModule->dirname()) ;<br />
}</code>

を付け加えてあげれば、先にAltsysの言語定数キャッシュを読みに行くようになります。

mainfile.php修正結果例

<code>if (!isset($xoopsOption["nocommon"]) && XOOPS_ROOT_PATH != "") {<br />
include XOOPS_ROOT_PATH."/include/common.php";<br />
$d3lang_class_path = XOOPS_TRUST_PATH."/libs/altsys/class/D3LanguageManager.class.php";<br />
  if ( isset($xoopsModule) && file_exists($d3lang_class_path) ) {<br />
require_once $d3lang_class_path ;<br />
$langman =& D3LanguageManager::getInstance() ;<br />
$langman->read( "modinfo.php", $xoopsModule->dirname()) ;<br />
  }<br />
}</code>

この例では、モジュールの言語ファイルmodinfo.phpのみを対象としていますが、

必要なだけ、$langman->read()すればよいと思います。

Altsys言語定数管理画面の下に表示される

「言語ファイルオーバーライドシステム・・・」とかいう表示はXCLかそうでないかで切り分けているみたいですので、上記のハックを行っても消える訳ではありません。