Top/PukiWiki/改造/一括添付・サムネイル出力・キャッシュ

一括添付・サムネイル出力・キャッシュはてなブックマーク

以下はテストが不足しています :p


ARAIさんの作成された attach・refプラグイン改造パッチを元にダメな感じにいじりました。
便利なパッチを作ってくださったARAIさんに感謝 :)

このパッチで付加される機能

  • 一括添付
    • ローカルで複数のファイルをZIPアーカイブかtarアーカイブにまとめ、アップロードすると、サーバ側で展開・添付されます。
    • ZIPアーカイブの展開を利用する場合、zipというPHP拡張モジュールが有効になっている必要があります。
  • サムネイルの作成
    • #refで参照される画像のサムネイルを作成し、cache下に *.thumb という名前でキャッシュします。
  • 添付ファイルへの直リンを禁止
    • refererを頼りに添付ファイルへの直リンを禁止します。効果は気休め程度です。
    • 「対象をファイルに保存」も出来なくなります。

セットアップ

  1. データのバックアップを取る。
  2. PukiWikiをインストールしたディレクトリにパッチをダウンロードする。
  3. そのディレクトリに移動し、patchを使ってパッチを当てる。
    patch -p1 < attach_ref_d_146.diff.4
  4. plugin/attach.inc.phpを開き、定数を設定
    定数説明デフォルト値
    PLUGIN_THUMB_QUALサムネイルのクオリティ (JPEG圧縮時に使用)50
    PLUGIN_THUMB_RESAMPLE_ALLサムネイルの変換方法 (TRUE:全て滑らかなJPEGに変換, FALSE:JPEGは滑らかなJPEGにその他はPNGに変換)TRUE
    PLUGIN_OPEN_AVOID_DIRECTファイルオープンの場合、直リンを弾くFALSE
    PLUGIN_THUMB_QUALやTHUMB_RESAMPLE_ALLの値を変更する場合はキャッシュ (cache/*.thumb) を一度消して下さい。
    (キャッシュは自動では削除されません。)
  5. plugin/ref.inc.phpを開き、定数を設定
    定数説明デフォルト値
    PLUGIN_REF_THUMB引数を指定しない場合にサムネイルを作成するかFALSE

一括添付 (attachプラグイン)

  1. 添付したい複数のファイルをZIPアーカイブかtarアーカイブにまとめる
  2. 添付フォームのアップロードボタンの横のチェックボックスをチェックし、上記をアップロード


アーカイブが展開され格納されていたファイルが全て添付されます


フォームはこんな感じ

attach_form.png

サムネイル (refプラグイン)

refプラグインの標準の引数に加えて下記を指定できます

  • thumb : サムネイルを使う
  • nothumb : サムネイルを使わない

指定しない場合は前述の定数PLUGIN_REF_THUMBに従います。

サムネイルのサンプル

画像形式元画像サムネイルの変換方法 (THUMB_RESAMPLE_ALL)
画質優先 (TRUE)速度優先 (FALSE)
PNGpng.png 透過png_resampled.jpg 透過しなくなりますpng_resized.png
GIFgif.gif 透過gif_resampled.jpg 透過しなくなりますgif_resized.png
JPEGjpeg.jpgjpeg_resampled.jpgjpeg_resampled.jpg
変換方法に依らず
常に画質優先

備考

ref.inc.phpの'PLUGIN_REF_DIRECT_ACCESS'をTRUEにしていると動作しないと報告がありました。

(デフォルトではFALSEになっているため問題ありません)

(moerrariさんご報告ありがとうございました :)

履歴

コメント等ありましたらどうぞ :)

最新の5件を表示しています。 コメントページを参照

  • のの at 2008-02-06 (Wed) 02:47

    でぃあばぁさん!ありがとうございます!!やっと出来ました!!! 反省も含めて、私のような素人のためにも、まとめました。

    環境:
    コンピュータ(powerbook-g4)
    pukiwikiというフォルダにpukiwiki-1.4.7_notb_utf8.tarを展開したファイルが全て入っている。
    attach_ref_d_147_utf8.diffというでぃあぱぁさん提供のdiffもpukiwikiフォルダに入れる。
    MAC OSXのアプリケーション>ユーティリティ>ターミナル.appを起動
    cd コマンドでpukiwikiフォルダにディレクトリを変更する。
    次の命令を入力 patch -p1 < attach_ref_d_147_utf8.diff
    結果
    powerbook-g4:pukiwiki myname$ patch -p1 < attach_ref_d_147_utf8.diff
    patching file en.lng.php
    patching file ja.lng.php
    patching file plugin/attach.inc.php
    patching file plugin/ref.inc.php
    powerbook-g4:pukiwiki myname$
    ものの数秒で終了。変更された4つのファイルをftpでサーバーへUpする。
  • のの at 2008-02-06 (Wed) 03:08

    反省は,utf8かどうかも重要だったということ。 macだと.から始まるゴミも一緒にUpされてしまうのが弱点か。

    • でぃあばぁ(管理者) at 2008-02-06 (Wed) 07:34

      おめでとうございます! :) まとめありがとうございます。折を見て説明も見直しますね。

  • のの at 2008-02-10 (Sun) 07:52

    でぃぱぁさん、本当にありがとうございました。これから細かい部分は試してみたいところです。でも、色々なパッチや修正をしているとなかなか大変だなと思いました。もっと勉強します。

  • moerrari at 2011-02-18 (Fri) 21:53

    デフォルトでは問題ありませんが、ref.inc.phpの'PLUGIN_REF_DIRECT_ACCESS'を何かの拍子でTRUEにしていると動作しないので注意。

    • でぃあばぁ(管理者) at 2011-02-18 (Fri) 23:06

      ご報告ありがとうございます :) 備考として追記いたしました。

  • moerrari at 2011-07-03 (Sun) 18:03

    便利に使わせていただいてます。
    今回UTF-8環境での利用のために、attach_ref_d_147_utf8.diffをUTF-8版のpukiwikiに当てたのですが、
    2バイト文字で始まるファイル名をtarに固めたものを添付すると展開されたファイル名の半角英数文字以前の2バイト文字部分が消えてしまいます。
    ただし2バイト文字を含んでいてもファイルの先頭が半角英数であれば問題なく展開されます。
    例)ほげほげ_1.txt ふがふが_2.txt をtarで添付→_1.txt _2.txtのように展開される。
    例2)1_ほげほげ.txt 2_ふがふが.txtをtarで添付→そのままの名前で展開される
    念の為まっさらな状態のpukiwikiにパッチを当てた状態で試してみましたが同様でした。
    ローカルのtarコマンドでは問題なく展開できます。解決策はあるでしょうか?(そもそも2バイト文字をファイル名に使うのが良くないのですが…)

    • moerrari at 2011-07-20 (Wed) 00:36

      今日、この件を忘れて何の気なしに2バイト文字で始まる複数ファイルをtarにしてアップロードしたところ不具合なく添付できました。なぜ以前はできなかったのかは不明です。

name:

参考

Amazon

差分 一覧