絵日記プラグイン(image.rb/image_ex.rb/image_gps.rb)で日記に貼った画像を一覧表示する、tDiaryの拡張機能(プラグイン & Ruby CGI)です。
-- 使用例 : 日記 → Image Gallery(Listモード) → Image Gallery(SlideShowモード) → Viewerモード
現在の最新バージョンは、Version 2.1.0 : 2014/11/30 です。
tDiary Image Gallery は contribパッケージで配布しています。こちらからどうぞ。→tDiary contribパッケージ
- おしらせ (2014.11.30) -
Listモードで画像をクリックすると、その画像を大きく表示します。(これを「Viewerモード」と呼びます。)
Viewerモードでは、JPEG画像にEXIFデータがあれば併せて表示します。EXIFデータを表示させるには、「exifparser」が必要です。)
Listモードの"[SlideShow]"というリンクのクリックで、画像のスライドショーを表示します。(これを「SlideShowモード」と呼びます。)
Listモードで表示対象とする画像を次の条件で絞り込むことができます。
絞り込みの指定には、正規表現を使うことができます。
※exifparse のインストール手順の詳細については、下記「セットアップ」をご覧ください。
<tDiaryのインストールディレクトリ> │ image-gallery.rb ...Image GalleryのCGI │ README.ja ...Image Galleryのドキュメント | ├─<js> | <SmoothGallery>...SmoothGallery javascriptライブラリ等 | ├─<views> │ gallery.rhtml ...Image Gallery用rhtml | ├─<misc> │ └─<plugin> │ recent_image.rb ...画像登録用プラグイン | └─<theme> image-gallery.css ...Image Gallery用css
※このディレクトリ構成はtDiary標準のディレクトリ構成に合わせてありますので、ディレクトリを変更されている方はそれぞれ、必要なファイルを所定のディレクトリにコピーしてください。
tDiary 4.0.5 までのバージョンでは、gallery.rhtml を格納するディレクトリ名が "views" ではなく "skel" となっています。こちらのバージョンをお使いの方は gallery.rhtml を skel ディレクトリにコピーしてください。
$ chmod a+x image-gallery.rb
※インストールする環境に合わせ、必要なら、image-gallery.rb の先頭行にある #! のパス(Rubyの実行パス)を変更したり、tDiaryのindex.rb と同様、シンボリックリンクを張る/名前を変えるなどの設定をしてください。
日記のサイドバーなどに「<%=recent_image %>」など、recent_image.rb を呼び出すように記述した上で、recent_image.rb プラグインを有効にします。(tDiary の追記→設定→プラグイン選択で recent_image.rbのチェック・ボックスにチェック)
※recent_image.rb を有効にすると、tDiaryで日記を編集するたびに recent_image.rb が呼び出され、新たな日記に絵日記プラグインが使われているかをチェックし、画像の情報をキャッシュ・ファイルに保存するようになります。image-gallery.rb は、このキャッシュ・ファイルを参照することで、日記に貼られた画像の情報を得る仕組みになっています。このキャッシュ・ファイルは以下の場所に作られます。
"<tDiaryのcache path>/gallery/image-gallery2.dat"
キャッシュ・ファイルがない状態で recent_image.rb が呼び出されると、過去の日記すべてに渡って絵日記プラグインが使われている箇所を検索し、キャッシュ・ファイルを作成しようとします。日記の規模によっては、数分程の時間がかかることがありますので、気長にお待ちください。
@options['image-gallery.show_exif'] = true
※exifparser は RubyGems からインストールできるようになっています。tDiary 4.0.1 以降からは、plugin で使用する Gem を RubyGems からより簡単にインストールする仕組みが新たに備わっていますので、こちらを使ってインストールできるようになりました。以下の手順を実行してください。
※上記はシェルによるコマンドの実行ができることが前提となっています。レンタルサーバなどでシェルが使えない環境にexifparserをインストールしたい場合のやり方について Image Gallery のサポート・ページに記載しました。exifparser を tDiary のみで使う場合は、こちらの方法でOKです。どうぞご活用ください。
<a href="./image-gallery.rb">Image Gallery</a>
image-gallery.rb をパラメータなしで呼び出すと、すべての画像がリスト形式で表示されます。ここから「画像の選択」の各入力フィールドを使って、表示する画像を絞り込むことができます。
入力フィールドは、1.ファイル名、2.日記のサブタイトル、3.画像のタイトルの三種類があり、それぞれの入力フィールドには、選択条件を正規表現で指定します。この正規表現にマッチする文字列を、各フィールドの項目(ファイル名、日記のサブタイトル、画像のタイトル)に含む画像が絞り込みの対象になります。使い方の例を以下に示します。
ファイル名
画像をファイル名で選択します。image.rbでアップロードしたファイルは、
"yyyymmdd_n.xxx" (yyyy=年,mm=月,dd=日,n=連番,xxx=拡張子)
のファイル名でサーバに置かれますので、次の例のように、日付での絞り込みができます。
例) 指定 → 意味 ======================================== 2004 → 2004年の画像 200[1-3] → 2001〜2003年の画像 200508 → 2005年8月の画像 2005(0429|0430|050[1-5]) → 2005年GW(4/29〜5/5)の画像 0101_ → すべての年の1月1日の画像
日記のサブタイトル
画像を貼り付けた日記のセクション・サブタイトルで選択指定します。
tDiaryのcategoryプラグインを使うと、日記セクションのサブタイトルに、'[カテゴリ名]'と書くことで、セクションのカテゴリ指定ができるようになります。このフィールドに、このカテゴリ名を指定することで、特定のカテゴリに含まれる画像のみを選択する、といった使い方ができます。言い換えれば、日記のカテゴリが、そのまま画像のタグとしてフィルタリングに使える、ということになります。
画像のタイトル
絵日記プラグインで画像を日記に貼り付ける際には、titleパラメータで画像のタイトルを指定することができます。このフィールドは、このタイトルで選択指定できます。
※複数のフィールドに対して条件を指定した場合には、すべての条件に当てはまる画像のみが表示の対象になります。
※これ以外の操作については、使ってみて頂ければすぐに分かるかと思います。:-)
tdiary.conf に指定できるオプションは次の通りです。[]は指定がなかったときの値です。
@options['image-gallery.column'] = <n> [3] Listモード時の横列の画像枚数を指定します。「= 3」のように数字で指定します。 @options['image-gallery.line'] = <m> [4] Listモード時の縦列の画像枚数を指定します。「= 4」のように数字で指定します。 @options['image-gallery.width'] = "www" ["120"] Listモード時の画像の幅をpixelで指定します。縦長の画像の場合は、これが高さに なります。「= "120"」のように、文字列で指定します。 @options['image-gallery.vwidth'] = "www" ["640"] Viewerモード時の画像の幅をpixelで指定します。縦長の画像の場合は、これが高さ になります。 また、画像の幅がこの指定より小さい場合は、画像の元のサイズで表 示します。「= "640"」 のように、文字列で指定します。 @options['image-gallery.show_exif'] = true [false] true指定の場合、Viewerモード時にJPEGのEXIFデータを表示します。 @options['image-gallery.use_mid_image'] = true [false] true指定の場合、SlideShowモード及びViewerモード時に、先頭にmの付いたファイル(例え ば、'm20070601_0.jpg')を表示画像とします。詳しくは、作者の日記をご覧ください。
image-gallery.rbで指定できるCGIパラメータは以下の通りです。絞込み済みのページへのリンクを作る際などにご利用ください。
order Listモード、SlideShowモードでの画像の並びを指定します。"=desc"で古い順、"=asc"で 新しい順になります。 指定がなかった場合は、新しい順になります。 name 「画像の選択」の「ファイル名」に入力したい文字列を、このパラメータで指定でき ます。 subtitle 「画像の選択」の「日記のサブタイトル」に入力したい文字列を、このパラメータで 指定できます。 title 「画像の選択」の「画像のタイトル」に入力したい文字列を、このパラメータで指定 できます。 pagetitle ページのタイトルを指定します。 showinputfield 「画像の選択」の入力フィールドを表示したくない場合、"=false"を指定します。 mode 表示モードを指定します。Listモードの場合は"=list"、SlideShowモードの場合は "=slide"、Viewerモードの場合は、"=viewer"をそれぞれ指定します。Viewerモード の場合は、さらにkeyパラメータを使って画像のキーを指定します。 key Viewerモードの際の画像のキーを指定します。画像のキーは、ファイル名から拡張子 を除いたものになります。(例: 20060429_0.jpg → "key=20050429_0")
※文字化けを避けるため、name, subtitle, title, pagetitleに二バイト文字を指定する場合は、CGIエスケープした文字列を指定するようにして下さい。文字列をCGIエスケープする簡単な方法として、以下をお勧めします。
Image GalleryのスタイルはtDiaryで使用しているテーマがそのまま使われます。Listモードの表示の調整などを行う場合は、'theme/image-gallery.css'を直接編集するか、append-cssプラグインを使ってcssの設定をしてください。
※1.0.6までのバージョンをお使いの方へ
1.0.7以降のバージョンでは、標準スタイルを上記のcssファイルで提供することにしました。append-cssプラグインなどを使ってスタイルを変更している場合には、お手数ですがこのcssファイルを見て、変更済みのDIV要素をコメントアウトするなどの処置を行ってください。
recent_image.rbは、tDiary の日記本文やヘッダ、サイドバーなどに、最新の画像を表示するプラグインとしての機能も持っています。表示した画像のクリックで、Image-Gallery の Viewerモードに直接ジャンプするオプションも用意しています。recent_image.rb の詳細については、ソース中のドキュメントを見るか、以下のサイトを参照してください。
2005/10/23 | Ver1.0.1 | ・公開開始 |
2005/10/28 | Ver1.0.2 | ・recenet_image.rbの修正(プラグインのロード時に毎回キャッシュ・ファイルを作成していた) |
2005/10/30 | Ver1.0.3 | ・recenet_image.rbの修正(日記の画像更新がキャッシュ・ファイルに反映されていなかった) |
2005/11/23 | Ver1.0.5 | ・recenet_image.rbの修正(一部のJPEGファイルで例外、PNG,GIFファイルのサイズ誤りの修正) |
・「ファイル名」での選択で、日付の指定(年月日/年月/年)をした場合、前/次の日付へのリンクを表示するようにした。 | ||
2006/05/02 | Ver1.0.6 | ・CGIパラメータのpagetitle, showinputfieldを追加 |
2007/06/02 | Ver1.0.7 | ・SmoothGalleryを使用しSlideShowモードを追加(SmoothGallery 1.0.1を取り込み)。 |
・入力フィールドをページの末尾に置くようにした。 | ||
・標準スタイルのcssファイルを指定するようにした。 | ||
・生成するHTMLの誤りを修正した。 | ||
2008/01/27 | Ver1.0.8 | ・SmoothGalleryを2.0にアップした。 |
・同じ年、同じ月、同じ日、同じcategoryの画像へのリンク機能をViewerモードに追加した。 | ||
2008/03/22 | Ver1.0.9 | ・wikiスタイルを使用している場合、サブタイトルのリンクをcategoryと判断してしまうバグを修正した。 |
・EXIFデータで、タグ名が不明なもの("Tag0x"で始まるもの)を表示しないようにした。 | ||
・recent_image.rbで、"@options['recent_image.use_cache']"の指定に関わらず必ずキャッシュ・ファイルを生成するようにした。 | ||
2008/05/23 | Ver1.0.9a | ・アーカイブ中のディレクトリのスペルミス(misk→misc)を修正した。変更したのはアーカイブファイル名のみ。 |
2010/09/30 | Ver2.0.0 | ・tDiary 3.0.0 対応。文字コードを EUC-JP から UTF-8 に変更。 |
2011/11/03 | Ver2.0.1 | ・tDiary 3.1.x 対応。tDiaryのバージョン判定の修正。(tdtdsさんに感謝!) |
2012/03/10 | Ver2.0.2 | ・Ruby 1.9 対応。(kpさんに感謝!) |
2012/04/30 | Ver2.0.3 | ・tDiary 3.1.3 対応。 |
2013/05/01 | Ver2.0.4 | ・tDiary 3.2.2 対応。 |
・image_ex.rb の yearlydir を使用していると、ファイルの日付指定を誤ることがある問題を修正。 | ||
2014/11/30 | Ver2.1.0 | ・tDiary v4.1.0 対応。 |
・フルスクリーン・スライドショーモードでブラウザのウィンドウサイズ変更に対応した。 | ||
・tDiary 2.2までのEUC-JP文字コード対応版を削除した。 |
作者の日記にツッコミを入れるか、kashijuku[at]gmail.com までメールをどうぞ。cssでのデザイン(渇望(笑))、機能追加パッチ、バグの連絡などもお待ちしてます。