Home > WEB > highslide

highslide

English (Google automatic translation) | Français (La traduction automatique de Google)

やっぱWordPressに乗り換え… の時にLightbox2も組み込んでみたんであるが、どうも見慣れた感がある。
組み込んだときに Mdkart 氏作成の「add-lightbox」プラグインを入れて使っていた。

ほかに画像表示のエフェクトがないかと探していたところ、おで氏作成の「wpj-highslide」を発見。
タグ付きの書式で書けば、highslideが適用されるとのこと…。

highslide はサムネイル画像をクリックすると拡大表示し、カーソルキーで前の画像、次の画像、マウスでドラッグ(移動)ができるもの。CSSを切り替えることによって、いろんなパターンに適用できる。

石川五右衛門

石川五右衛門(クリックで閉じる/プレスでドラッグ/← で前/→ で次の画像)

タグは書かなければいけないみたいだから、Add-lightbox をいじってなんとかならないものかとやってみた。
テンプレートの編集は必要だけど、見事自動的にタグを付けることに成功。
私は英語が堪能ではないため、日本語のことしか考えていない(すみません)。

とはいえ、勝手に改造したモノを配布するわけにもいかず、作者の方(Mdkart氏)に連絡を取ってみたんである。
しつこいようですが、私は英語が堪能ではないため、エキサイトさんに翻訳をお願いすることに(笑)。

送った内容は

あなたが作ったプラグインを改造して「highslide用」に改造しました。
配布してもいいっすか?

みたいな感じで。

その日の夜に返事をいただいた。

大まかな内容として

ちゃんと作り直して、私のブログに掲載しましょう。
その方がカンタンですし、最善策じゃないかと…。

という返事がきた。

追記:本日返信があり、

Lightboxプラグインと、そう大差ないだろうから、
あなたのBLOGで変更点を掲載しちゃってください。

みたいな返事がきました。Thankyou, Mdkart!

確かにサポートとかのコトを考えると、私のスキルではどこまでできるかわかりませんしねぇ。
↑もうこの選択肢はなくなりました。

お急ぎで試したい方は、add-lightboxをダウンロードして、以下の部分を修正すれば動くんじゃないかと…。

6/2追記…結構な参照数があるようなので、もしや「”」が正常に表示されていないのか?と思ったんで、テキスト版をアップ。改行コードはCR、エンコーディングはUTF-8が開けるエディタが必須。
Download >> add-lightbox-modify-utf8.txt.zip

13行目あたりからある以下4行のコードを (original code)

$pattern = "/<a(.*?)href=('|¥")([^>]*).(bmp|gif|jpeg|jpg|png)(’|¥”)(.*?)>(.*?)<¥/a>/i”;
$replacement = ‘<a$1href=$2$3.$4$5 rel=”lightbox[%LIGHTID%]“$6>$7</a>’;
$content = preg_replace($pattern, $replacement, $content);
$content = str_replace(”%LIGHTID%”, $post->ID, $content);

以下の4行に差し替える。 (modifed code)

$pattern = "/<a(.*?)href=(.+¥.jpg¥"|.+¥.jpeg¥"|.+¥.png¥"|.+¥.gif¥")(>)(<img .+)(alt=¥")(.*)(¥" width.+)<¥/a>/i";
$replacement = '<a$1href=$2 class="highslide" onclick="return hs.expand(this)" id="$6"$3$4$5$6$7</a><div class=¥'highslide-caption¥' id=¥'caption-for-$6¥'>$6</div>';
$content = preg_replace($pattern, $replacement, $content);
$content = str_replace("", $post->ID, $content);

※「”」がちょっと違う記号になってる場合があるみたいです。ご注意ください。

私の場合、highslideのに同梱のCSSはディレクトリを作って入れている。
また、ソース中に埋め込むJavascriptも、外部jsとして保存している。
どうせならすべてのページに適用したいじゃないですか(ってフツーか)。

ディレクトリ構造は以下の雰囲気

public_html

[dir]highslide
[dir]graphics

highslide.js
highslide-html.js

[dir]hs_src (CSSや外部JSを入れてる)

highslide-w10.css
highslide-w10.js

js-scb.js

みたいな感じ。

ちなみに highslide-w10.js の内容は以下の通り。
(highslideのサンプルHTMLに書かれているものを抜き出しただけ)

hs.graphicsDir = '/highslide/graphics/';
hs.outlineType = 'rounded-white';
window.onload = function() {
hs.preloadImages(5);
}

js-scb.js は、画像のコントロールバーを表示させるためのJSを抜き出したもの。
<body>〜</body>中に表示させる必要があるんで、document.write でまとめてある。

document.write('<div id="controlbar" class="highslide-overlay controlbar">');
document.write('<a href="http://vikjavev.no/highslide/?user=1" title="Powered by Highslide JS" style="width: 30px; margin-right: 23px"></a>');
document.write('<a href="javascript:void(0)" onclick="return hs.previous(this)" title="Previous (left arrow key)"></a>');
document.write('<a href="javascript:void(0)" onclick="return hs.next(this)" title="Next (right arrow key)"></a>');
document.write('<a href="javascript:void(0)" class="highslide-move" title="Click and drag to move" style="margin-left: 10px"></a>');
document.write('<a href="javascript:void(0)" onclick="hs.close(this)"></a></div>');

上記のJSを「たくさん作るのメンドー」って方、ここからダウンしてください。(*.js files in Zip)

<body>〜</body>中のどこかに入るように

<script type="text/javascript" src="<?php bloginfo('home'); ?>/hs_src/js-scb.js"></script>

を追加する。

テンプレートの fotter.php に(<body>〜</body>中のどこかに入るように)

<div id="highslide-container"></div>

を追加。これは表示ページのどこかに入っていればいいみたい。

テンプレートの header.php に以下のコードを追加(<head>〜</head>部分に入れる)

<script type="text/javascript" src="<?php bloginfo('home'); ?>/highslide/highslide.js"></script>
<link rel="stylesheet" type="text/css" href="<?php bloginfo('home'); ?>/hs_src/highslide-w10.css" />
<script type="text/javascript" src="<?php bloginfo('home'); ?>/hs_src/highslide-w10.js"></script>

以下の面倒なコード入力は、プラグイン様がやってくれるんで入力不要。

<a href="images/full-image.jpg" class="highslide" onclick="return hs.expand(this)">
<img src="images/thumbnail.jpg" alt="Highslide JS" id="thumb1"
title="Click to enlarge" height="120" width="107" />

画像の注釈(キャプション)を入れたい場合のタグも自動で付く(ハズ)。

<div class='highslide-caption' id='caption-for-thumb1'>
This caption can be styled using CSS.
</div>

基本的にWordpress2.5.Xで生成されたタグしか考慮してません(あしからず)。
キャプションに関しては「ALTタグ」を探してIDとキャプションに引用する仕様。

もしかすると同一ページ内に同じ名前のALTタグがあると正常動作しないかも。
確実動作版は、作者様を待つ方が吉だと思う(絶対そうだ)。
↑もうこの選択肢はなくなりました。残念。

念のため、実行される場合は、くれぐれも自己責任で。

スポンサード リンク

Comments:2

1600 08-06-03 (火) 9:20

はじめまして
この改造プラグインを使用させてもらった者です。
highslideはプラグインで楽だったのですが、表示させる為の
タグ入れはめんどうだな~と思っていろいろ検索していたら
ここを見つけました。思ったとおりにでき、提供してくださったM-M-J様
に感謝です。
また、お名前の表示もしない変な形でlinkしてしまい申し訳ありませんでした。

mmj 08-06-03 (火) 9:39

1600様
いえいえ、リンクしていただけるだけで感謝でございます。
コメントまでいただき、ありがとうございます。
“ぐうたら”するための努力は惜しまない主義ですので(笑)
これからもよろしくお願い申し上げます。

Comment Form
Remember personal info
Enter characters from the image:

Trackbacks:0

Trackback URL for this entry
http://www.m-m-j.com/2008/05/highslide/trackback/
Listed below are links to weblogs that reference
highslide from M-M-J Blog

Home > WEB > highslide

Search
Feeds
Meta

Return to page top