Highslide JS用アトリビュート追加-Movable Type(ムーバルタイプ)埋め込み画像カスタマイズ

前回のHighslide JS-サムネール画像を拡大表示するスマートなjavascriptを紹介したエントリーで記述していたように、Movable Type(ムーバルタイプ)の埋め込み画像(ファイルのアップロード)作業にてHighslide JS用のアトリビュートを追加するようにカスタマイズできましたので紹介しておきます

images/mthighslide_png-image

画像をクリックすると元に戻ります。

Highslide JSのMovable Type(ムーバルタイプ)への導入はHighslide JS-サムネール画像を拡大表示するスマートなjavascriptのエントリーをご覧ください。

このカスタマイズをすることで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を設定しています。これは、デフォルトでimgalt属性に$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の知識がある方で、今回のカスタマイズに興味のある方でお力を貸していただける方が見えましたら、コメント・トラックバックお待ちしております。

トラックバック(3)

このブログ記事を参照しているブログ一覧: Highslide JS用アトリビュート追加-Movable Type(ムーバルタイプ)埋め込み画像カスタマイズ

このブログ記事に対するトラックバックURL: http://weblibrary.s224.xrea.com/x/mt/mt-tb.cgi/176

ISDN64kbps:広島県三次市甲奴町 - HighslideJS:かっちょいい! (2006年10月24日 10:32)

コッチョリ Web Design のサムエール画像を拡大表示するスマートなjavascript を 追跡(ストーカーか。ぷっ 続きを読む

Highslide JS用アトリビュート追加-Movable Type(ムーバル... 続きを読む

lib/MT/App/CMS.pm 4803行目の width="$thumb_width" height="$thumb_height" を削... 続きを読む

コメントする

アイテム

  • ff-logo-big

    ff-logo-big: firefoxロゴ

  • fmtube_image

    fmtube_image: fmtubesキャッチイメージ

  • mock.jpg

    mock.jpg: fm+tubesのモックページ(デザインレイアウト)。最終的にはこのスタイルでマルチブログで展開してみる構想。

  • mtdeinfo

    mtdeinfo: Movabletypeを勉強するならこのサイト。サンプルファイルもあって、情報も探しやすいです。とてもきれいに情報表示されていて、とても参考になります。

  • mytumblr

    mytumblr: 個人の趣味でのtumblrです。女性のポートレートなんかがおおいです

  • caputure_contextmenu

    caputure_contextmenu: tumblr caputureを右クリックコンテキストメニューで選択する

  • tumblrgallery

    tumblrgallery: tumblrを使ってWEBデザインGalleryを簡単に作ってみました。

  • psdtuts

    psdtuts: http://psdtuts.com/のイメージ画像

  • designflavor.

    designflavor.: http://www.designflavr.com/のイメージ

  • entrymain_template

    entrymain_template: ブログ記事の概要は、インデックステンプレート、ブログ記事のリスト(アーカイブテンプレート)、検索結果(システムテンプレート)の3つのテンプレートで共通に使われています。それぞれのテンプレートでの表示内容の違いをイメージに表してみました。

このブログ記事について

このページは、スカイが2006年10月22日 01:42に書いたブログ記事です。

ひとつ前のブログ記事は「dp.SyntaxHighlighter-コード表示に役立つJavaScript」です。

次のブログ記事は「prototype.jsでサイドメニュー折りたたみ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。