Re: XOOPSメインメニュー以下のサブメニューの表示を変える方法について
永らくありがとうございました › フォーラム › 使い方全般 › XOOPSメインメニュー以下のサブメニューの表示を変える方法について › Re: XOOPSメインメニュー以下のサブメニューの表示を変える方法について
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かそうでないかで切り分けているみたいですので、上記のハックを行っても消える訳ではありません。