埋め込み画像のHTML生成でHighslide JS用のアトリビュートを追加するようにカスタマイズする方法を紹介しています。このカスタマイズで簡単にHighslide JSを使った画像表示が可能となります。
前回のHighslide JS-サムネール画像を拡大表示するスマートなjavascriptを紹介したエントリーで記述していたように、Movable Type(ムーバルタイプ)の埋め込み画像(ファイルのアップロード)作業にてHighslide JS用のアトリビュートを追加するようにカスタマイズできましたので紹介しておきます
このカスタマイズをすることでMovable Type(ムーバルタイプ)で簡単にHighslide JSを使えるようになります。
今回このカスタマイズでmixiにてヒントをくださいました。ナカヤマ様・きりり様この場を借りてお礼申しあげます。ありがとうございました。
ファイルアップロードカスタマイズ
今回のカスタマイズは、デフォルトでのファイルアップロードにおいて埋め込み画像のHTML生成ならびに表示タグをカスタマイズしました。
埋め込み画像のHTML生成にてHighslide JS用のアトリビュート(属性)を最初から生成するようにしました。
尚、このエントリーで紹介するカスタマイズを行った場合、デフォルトでの埋め込み画像のHTMLは生成されなくなります。
おことわり:今回のカスタマイズでMTの動作に支障をきたしても当サイトでは責任を負うことはできませんことをご了承願います。また、カスタマイズ前に別名にてデフォルトファイルを保存するようにしてください。最悪動作がおかしくなった場合は、デフォルトファイルをアップロードすることで元の状態に戻ります。
Highslide JS用のアトリビュート(属性)
Highslide JS-サムネール画像を拡大表示するスマートなjavascriptにて紹介しているように、Highslide JSの動作を可能とするには、以下のようなHTML生成(アトリビュートの変更・追加)が必要となります。
Highslide JS基本タグ
上記のコードのが基本パターンです。
キャプションを追加して表示したい場合は以下のコードを上部に追加します。
idセレクタにimgタグに指定したセレクタ名を設定する必要があります。
上記のコードの場合、imgタグをid='任意'で指定し、キャプションdivブロックにid='caption-for-任意'で指定してあります。各イメージ毎に並べて表示してキャプション表示をする場合、id指定を個々に揃えて設定する必要があります。
Movable Type(ムーバルタイプ)デフォルトでの埋め込み画像HTML生成タグ
デフォルトで画像【埋め込み】を選択した場合、以下のようなHTMLコードが生成されます。
上記のコードを以下のようなHTMLコードが生成されるように変更します。
埋め込み画像生成ファイルperlスクリプト
Movable Type(ムーバルタイプ)で埋め込み画像が生成されるスクリプトは、libフォルダ>MTフォルダ>Appフォルダ>CMS.pmファイルの中にあります。
今回のカスタマイズの概要は、以下の通りです。
- デフォルトで生成されるコードをHighslide JS用のアトリビュート(属性)で生成されるように生成HTMLの変更
- イメージのidセレクタ名生成(新規ファイル名を生成するようにする)
画像ファイル名が表示されるようにします。ただし、"ファイル名.画像形式"表示はid認識してくれません。"."を"_"(アンダーバー)に置き換えます。
CMS.pmファイル(4686行目)sub _process_post_upload部分
埋め込み画像HTML生成は、CMS.pmファイルの中の4686行目(MT-3.33-ja)のsub _process_post_upload部分となります。
4803行目コード変更
4803行目のコードを変更します。デフォルトの状態でのコードは以下の通りです。
上記のコードを以下のように変更します。
追記修正(2008/2/20):注意id属性を指定した要素は、同一ページにおいて一つのみと決まりがありますので、複数画像をhislideJSで動作させる場合でも下記のコードは、ページ上のどこかにひとつあれば、正しく作動します。body要素すぐ後にでも追加させるようにするといいかと思います。
修正前のコードには、上記のコードも一緒に生成されるようにしていましたが、同一ページに複数画像を表示させる時に同じid属性の要素が複数存在することになりますので下記コードに修正いたしました。
各img画像並びにキャプションブロックのid指定に新規で$fnamealtを設定しています。これは、デフォルトでimgのalt属性に$fnameが設定されていますが、この設定を使うと”ファイル名+.ファイル形式”で生成されます($fnameはファイル名.画像形式)。これではidとして認識してくれません。
新規に$fnamealtを設定し、"."を"_"(アンダーバー)に置き換えて生成されるようにします。例えば、0001.gifのファイル名は、0001_gifといったように"."を"_"(アンダーバー)に置き換えたファイル名に変換されるように設定します。
$fnamealt設定
$fnamealtは、任意の設定名です。お好きな設定名に変更することもできます。
$fnameで設定されているファイル名を変換して生成するために設定します。("."を"_"[アンダーバー]に置き換えて生成するようにします。)
4691行目に以下のようなコードがあります。
上記のコードの下に以下のコードを追加します。
上記のコードの追加で$fnamealtは、$fnameで生成されるコードにおいて、"."を"_"[アンダーバー]に置き換えて生成するように設定しています。
上記で設定の変更は終了です。変更したCMS.pmファイルをお使いのブログのシステムの中にアップロードします。
ftpソフトを使ってlibフォルダ>MTフォルダ>Appフォルダ>CMS.pmファイルに上書きアップロードします。
デフォルトスクリプト(MT-3.33-ja)
一応4686行目からのデフォルトのスクリプトを残しておきます。動作がおかしくなった場合は、修正することで元に戻ります。(4686行目〜4815行目)
+ expand sourceをクリックするとコードが表示されます。
今回のカスタマイズで参考にしたサイト
今回のカスタマイズで参考にさせていただいたエントリーです。
今回のカスタマイズで少しperlカスタマイズもわかるようになった気がします。MovableType 画像回り込み改造のエントリーを参考に画像のalt属性入力やセレクトボタン表示でHighslide JSタグ生成も選択できるなどの更なるカスタマイズを試してみようと思います。
perlの知識がある方で、今回のカスタマイズに興味のある方でお力を貸していただける方が見えましたら、コメント・トラックバックお待ちしております。



コメントする