XOOPSで言語定数が画面に表示された時の対処法

XOOPS Cubeで、プログラムの改修版をリリースしたり、最新版のモジュールをダウンロードしてアップデートしたらなぜか文字定数(_MD_LEGACY_XXXXというような暗号のような文字のことです)がそのまま表示されたりすることがあります。

これはALTSYSの言語定数管理を使っている場合に発生します。

発生したときの対処方法

1.言語定数管理を開く

lang

2.問題の起きてるモジュールを選ぶ

右に表示されたモジュール選択メニューから問題の起きてるモジュールを選びます。

言語定数管理機能を利用中の場合は括弧の中に利用してるファイル数が表示されます。

括弧の中の数字が 0 だったら言語定数管理はつかってません。問題のおきてるモジュールは括弧の中の数字が1以上になってるはずです。

3.ファイルを選択

モジュールを選ぶと、言語選択のドロップダウンとファイル選択のドロップダウンが表示されるので、キャッシュのあるファイルを選択します。

ここでも言語選択ドロップダウンの括弧の中の数字は言語定数管理で変更したファイルの数を表してます。

右側にあるファイル名のドロップダウンを切り替えて「キャッシュ状況」が「作成済」となってるファイルをさがしましょう。

not_cache

左の画像のようにキャッシュ未作成のファイルは今回の問題には無関係です。

 

 

cacheこの様に「キャッシュ状況」「作成済」になってるファイルが問題です。

キャッシュ状況が作成済みになてるときに、バージョンアップ等を実施して、あらたなメッセージ等が追加されると、言語定数がそのまま表示されることがあります。ではそこから復旧するための最後の手順。

4.一番下の「更新」をクリック!

update

これで言語定数がそのまま表示されちゃう問題は解決できると思います。

なにがおきてるのか?

言語定数管理は、各モジュールで定義されてるメッセージを一旦別の領域にコピーして、コピーした方のメッセージを管理画面で書き換えて利用することで、定数書換を実現しています。

この「コピー」のタイミングが先ほどかいた手順の最後「更新」をクリックしたときなので、モジュールをアップデートして言語定数の数が増えたら再度「更新」をクリックしてコピーしてあげる必用があるわけですね。

 

投稿者プロフィール

龍司
XOOPS CubeとNetCommons3のカスタマイズをよくやってます。
技術ネタは https://qiita.com/RyujiAMANO に書くコトがおおいです。