ダウンロードモジュール
ダウンロードモジュールとは、任意のファイルをダウンロードできるようにするモジュールです。a-blog cmsのデータベースに格納されているデータを取り出して任意の形式のファイルに出力し、そのファイルをダウンロードできるようにします。
出力するファイルは、CSVやXML形式など任意の形式で作成でき、モジュールやグローバル変数などを記述してカスタマイズが可能です。
このダウンロードモジュールはv1.3.1より利用できます。
任意の形式のファイルをダウンロードできるようにする
1. ダウンロードするファイルのテンプレートを用意する
ダウンロードさせたいファイルのテンプレートを作成します。CSVやXMLなど任意のテキスト形式のテンプレートファイルを作成できます。テンプレートですので、モジュールやグローバル変数を記述できます。
例として以下のようなCSVファイルを作成するとします。これは、ユーザープロフィールモジュールを使用して、ユーザーの情報の一覧をCSV形式のファイルに出力する場合の例です。
<!-- BEGIN_MODULE User_Profile --><!-- BEGIN user:loop -->"{name}[escquot]","{mail}[escquot]"<!-- END user:loop --><!-- END_MODULE User_Profile -->
CSV形式では、ダブルクォーテーションで囲まれた中にダブルクォーテーションが含まれている時のために、ダブルクォーテーションをエスケープする校正オプション[escquot]を指定しています。(CSVの仕様につきましては、他のWebサイトを参照してください。)
上記のソースを記述したら、ファイル名を「user.csv」として保存します。ここでは例として「csv」というディレクトリを作成し、/csv/user.csv とします。
2. ダウンロードするボタンを作成する
次に、ファイルをダウンロードするためのフォームボタンを作成します。テンプレートの任意の場所にフォームボタンを設置できます。手順1で作成したCSVファイルをダウンロードする場合は、以下のようなソースを記述します。
<form action="ユーザーリスト.csv" method="post"> <input type="hidden" name="bid" value="%{BID}" /> <input type="hidden" name="tpl" value="csv/user.csv" /> <input type="hidden" name="charset" value="Shift_JIS" /> <input type="submit" name="ACMS_POST_Download" value="CSVをダウンロード" /> </form>
1行目(必須):<form action="ダウンロードするファイル名" method="post">
フォームボタンを押してダウンロードするファイルのファイル名を、拡張子含めて記述します。
2行目(必須):<input type="hidden" name="bid" value="%{BID}" />
出力するデータ内容のブログを指定します。
3行目(必須):<input type="hidden" name="tpl" value="テンプレートファイル名" />
ダウンロードするファイル名を、拡張子含めて記述します。
4行目:<input type="hidden" name="charset" value="文字コード名" />
ダウンロードするファイルの文字コードを指定します。ダウンロードするファイルが生成される時に、この部分で指定した文字コードに変換されてファイルが生成されます。文字コードを指定しない場合は、ダウンロードするファイルのテンプレートで出力された文字コードとなります。
5行目(必須):<input type="submit" name="ACMS_POST_Download" value="ボタンのラベル" />
ファイルをダウンロードするボタンです。ACMS_POST_Downloadというモジュールを動作させてダウンロードする記述です。
これで、ボタンを押すとaction属性で指定したファイル名のファイルがダウンロードされるようになります。
ユーザーの情報など個人情報に関わるものや機密性のあるデータを取り扱う場合には、管理ページに記述したり、Touch_SessionWithAdministrationモジュールを使用するなどして、管理者のみがダウンロードできるような配慮も可能です。