SOY CMS/Shopのファイルマネージャは以前は自家製のものを利用していましたが、あるバージョンからelFinderというOSSに変更しました。
elFinder 2.1.x - file manager for web
ファイルマネージャは要求されることが多く、開発が非常に大変なので、動作の良いものを探していましたところ、elFinderに遭遇して採用しています。
このelFinderはファイルの管理だけではなく、
画像のリサイズ、切り取りや回転といった編集も行うことができる。
更に拡張子毎にアップロードを禁止することもでき、現時点では、phpやjsといったプログラムに関するファイルのアップロードを禁止しています。
phpやjsファイルをSOY CMS内で管理したい方もいるかと思いますので、elFinderでどのように設定しているか紹介します。
/CMSのインストールディレクトリ/soycms/js/elfinder/php/connector.php
を開き、ファイルの下の方で、
opts = array( // 'debug' => true, 'roots' => array( array( 'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED) 'path' => $path, // path to files (REQUIRED) 'URL' => $url, // URL to files (REQUIRED) 'uploadDeny' => array('all'), // All Mimetypes not allowed to upload 'uploadAllow' => array('image', 'text/plain', 'text/css', 'application/zip', 'application/epub+zip'), 'uploadOrder' => array('deny', 'allow'), // allowed Mimetype `image` and `text/plain` only 'accessControl' => 'access' // disable and hide dot starting files (OPTIONAL) ) ) );
上記の様な設定に関する配列があります。
連想配列の中にuploadAllowという設定があり、ここでアップロードを許可するMIMEタイプを指定しています。
例えば、jsファイルを許可したい場合は、MIMEタイプがtext/javascriptなので、
'uploadAllow' => array('image', 'text/plain', 'text/css', 'application/zip', 'application/epub+zip', 'text/javascript'),
この様に追加してみると、
追加する前は、
エラーで弾かれるが、uploadAllowに追加後に再度試してみると、
無事、アップロードされました。
アップロード直後はアイコンが何故かtxtファイルになる。
このファイルにフォーカスをあて、右クリックしてみると、
編集も行える様になっています。
注意ですが、管理画面でスクリプトの編集になるということは、不正ログイン後に悪意のコードを書かれる可能性がありますので、その点はご了承頂いた上で変更を行ってください。