Thecus N4100Pro用Module PHPFILEMGR v2.00.01 で日本語表示を可能にする

PHPFILEMGR v2.00.01はThecus N4100Pro用のファイルマネージャーとして機能するモジュールです。
N4100Proを使い込んでいくと、ファイル操作などを頻繁に行いたくなるのですが、SSHでコンソールからlsなどとタイプするのも結構めんどくさいものです。

Thecus 4ベイ エントリーNASキット Webサーバー機能 DLNA対応 N4100PRO
Thecus 4ベイ エントリーNASキット Webサーバー機能 DLNA対応 N4100PRO
Thecus
売り上げランキング : 21421

Amazonで詳しく見る by G-Tools

PHPFILEMGR v2.00.01はインストールすると、ブラウザからディレクトリをツリー構造で把握しながら、コピーや移動、圧縮や解凍、パーミッションの変更やファイルの編集などビジュアルに行うことができます。
とても便利なのですが、一つ致命的な問題が・・・。それは、「日本語が化ける」ことです。
もともとこのモジュールは、別の作者が作成した「php File Manager 0.9.3」というPHPのプログラムを取り込んで作られているようです。ファイラーとしての機能は、php File Manager 0.9.3に依存しているようです。PHPFILEMGR v2.00.01に内包されているphp File Manager 0.9.3とオリジナルのものが完全に同じなのか、カスタムされているのかは詳細に調査していません。もちろん、Thecus N4100PROで利用するのですがらPHPFILEMGR v2.00.01に内包されているスクリプトをターゲットに日本語表示ができるように対応することにします。

変更方法
PHPFILEMGR v2.00.01をダウンロードして解凍します。ついでに、Thecusにモジュールとしてインストールしておきます。
解凍してできあがったフォルダ内の「PHPFILEMGR」配下にある「www」フォルダ直下の「index.php」を編集します。最終的に保存するときにファイルの文字コードを変更して保存したいので、編集するにはそれなりのテキストエディタを用意しておいた方がいいでしょう。

編集する箇所は2カ所です。

<?
// +--------------------------------------------------
// | Config Class
// +--------------------------------------------------
class config {
    var $data;
    var $filename;
    function config(){
        global $script_filename;
        $this->data = array(
            'lang'=>'en',
            'auth_pass'=>md5(''),
            'quota_mb'=>0,
            'upload_ext_filter'=>array(),
            'download_ext_filter'=>array(),
            'error_reporting'=>'',
            'fm_root'=>'',
            'cookie_cache_time'=>time()+60*60*24*30, // 30 Dias
            'version'=>'0.9.3'
            );
        $data = false;
        $this->filename = $script_filename;
        if (file_exists($this->filename)){
            $mat = file($this->filename);
            $objdata = trim(substr($mat[1],2));
            if (strlen($objdata)) $data = unserialize($objdata);
        }
        if (is_array($data)&&count($data)==count($this->data)) $this->data = $data;
        else $this->save();
    }
?>

158行目付近にある「Config Class」ブロック内の
‘lang’=>’en’,

‘lang’=>’jp’,
に書き換えます。

さらに、

<?
// +--------------------------------------------------
// | Interface
// +--------------------------------------------------
function html_header($plus=""){
    global $fm_color;
echo "
<html>
<head>
<title>...:::: ".et('FileMan')."</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
$plus
</head>
<script language=\"Javascript\" type=\"text/javascript\">
<!--
    function Is(){
        this.appname = navigator.appName;
        this.appversion = navigator.appVersion;
        this.platform = navigator.platform;
        this.useragent = navigator.userAgent.toLowerCase();
        this.ie = ( this.appname == 'Microsoft Internet Explorer' );
        if (( this.useragent.indexOf( 'mac' ) != -1 ) || ( this.platform.indexOf( 'mac' ) != -1 )){
            this.sisop = 'mac';
        } else if (( this.useragent.indexOf( 'windows' ) != -1 ) || ( this.platform.indexOf( 'win32' ) != -1 )){
            this.sisop = 'windows';
        } else if (( this.useragent.indexOf( 'inux' ) != -1 ) || ( this.platform.indexOf( 'linux' ) != -1 )){
            this.sisop = 'linux';
        }
    }
    var is = new Is();
    function enterSubmit(keypressEvent,submitFunc){
        var kCode = (is.ie) ? keypressEvent.keyCode : keypressEvent.which
        if( kCode == 13) eval(submitFunc);
    }
    var W = screen.width;
    var H = screen.height;
    var FONTSIZE = 0;
    switch (W){
        case 640:
            FONTSIZE = 8;
        break;
        case 800:
            FONTSIZE = 10;
        break;
        case 1024:
            FONTSIZE = 12;
        break;
        default:
            FONTSIZE = 14;
        break;
    }
";
?>

712行目付近にある「Interface」ブロック内にある

<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">


charsetの値を以下のように「UTF-8」に変更します。

<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">

あとは、この編集したindex.phpファイルそのものを「UTF-8(BOM無し)」の文字コードで保存しておきます。
このファイルを、Thecus N4100PROの「/opt/apache/htdocs/modules/PHPFILEMGR/www/」のindex.phpに上書きします。パーミッションは775に変更します。

これで、再度ディレクトリを読み込むと日本語でディレクトリ名やファイル名が正しく表示されるようになります。

これで便利になりました。

p.s.
WindowsXP+IE6の環境では、ここまでやっても残念ながら一部の文字が化けてしまうという現象が発生することがあります。IE6の問題のようですから対処するのは困難ですし、いまさらIE6でなくてもという感がありますから問題なしと判断することに・・・。
FireFox3.5やIE8ではきちんと表示されることを確認しています。

One Response - “Thecus N4100Pro用Module PHPFILEMGR v2.00.01 で日本語表示を可能にする”

  1. Chameleon Cyber » Blog Archive » N4100PROの新ファームで一部モジュールが動かない件について : 2009/09/28 - 23:02:02 -

    [...] が、「PHPFILEMGR」というモジュールが動作しませんでした。 フォーラムの方で、対応バージョンがリリースされていたので、新版のModule version 2.00.03へ変更することで利用可能になります。 日本語が扱えるようにするには、「Thecus N4100Pro用Module PHPFILEMGR v2.00.01 で日本語表示を可能にする」を参考にしてください。 [...]

Leave a Reply

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>