##################################################

  concrete5用ハックファイル集  2011/01/01

    [ファイルマネージャの日本語ファイル名対応]

  (c) 2010 hira All Rights Reserved.

##################################################

★はじめに

concrete5日本語版では、本家の英語版に比べて、表記こそ翻訳されているも
のの、コアの部分では日本語対応に難のある箇所があるようです。
そのうちのひとつとして、ファイルマネージャのファイル名が挙げられます。
日本語等のマルチバイト文字を含む名前を持つファイルをアップロードすると
き、マルチバイト文字は切り捨てられて登録されてしまいます。

 (例) 日本語ファイル1.txt → 1.txt

今回配布するファイルをconcrete5のユーザー領域に追加すると、サーバーの
ファイルシステム上でマルチバイト文字を含むファイル名を扱うことなく、
上記の問題を解決することができます。


★配布ファイル

 elements/func_mb_filename.php
 elements/files/search_results.php
 helpers/file.php
 libraries/file/importer.php
 libraries/3rdparty/... (Net_IDNA2ライブラリ)
 models/file.php
 models/file_version.php
 tools/files/delete.php
 tools/files/download.php
 tools/files/properties.php

elements, helpers, libraries, models, toolsの5個のディレクトリを
concrete5のルートディレクトリにそのままコピー(ディレクトリを統合)すれば
OKです。
これにより、ファイルがユーザー領域に追加され、コアのアップデートでの影
響を最低限に留めることができます。


★適用にあたっての注意点

このファイルでは、アップロードされるファイルの名前を文字コードに従って
変換してサーバー上にアップします。このバージョンではPunycodeによる
エンコーディングを行っております。

 (例) 日本語ファイル1.txt
        → xn--1-ceuj8q5d8118ao4bc84j.txt

ファイル検索等への影響は無いように設計しておりますが、以下の問題が起こ
る可能性があることにご留意ください。

 ・日本語版のconcrete5.4.1.1での動作を確認しておりますが、すべてのサー
   バーで動作することを保証するものではありませんし、またコアのバージ
   ョンアップによりうまく動作しなくなる可能性もあります。

 ・既にいくつかのファイルを変更して運用されている場合は、その部分との
   不整合が起こるかもしれません。

 ・問題の発生に備えて、ファイルやデータベースをバックアップしてから作
   業されることをお勧めします。


★ライセンス等

concrete5本体のライセンスに合わせ、MITライセンスでの配布とします。
変更部分に関しては、著作権は作者に所属しますが、上記ライセンスに従い自
由にご利用いただいて構いません。
同梱の LICENSE.txt もご覧ください。
なお、Punycode変換に用いる PEARの Net_IDNA2 ライブラリを同梱させていた
だいております。


★更新履歴

2011/01/01	・concrete5.4.1.1対応版リリース、エンコーディング方式の
		　変更(既存のシステムとも互換性がとれるように)

2010/09/07	・公開(concrete5.4.0.5用)


[hira]
http://hira.hopto.org/
webmaster2@hira.hopto.org
