indexhibit_V2カスタマイズその2
Horizontal formatにjQuery colorboxを付けるには
標準のHorizontal formatだと管理画面上でテキストボックス部分にタグを書く以外に
画像リンク等をする方法がないため
format.horizontal.phpとthemeフォルダ内のindex.phpを修正する必要がある。
ndxzsite/themeフォルダ内/index.phpに呼び出し行追加
index.phpのhead内のJS呼び出し部分(10-11行目辺り)
<last:page:javascript />
があり、ここでjQueryなどを呼び出してると考えられるのでこの後に
<script type="text/javascript" src="{{baseurl}}/ndxzsite/js/jquery.colorbox-min.js"></script>
<script> $(document).ready(function(){ $("#img-container a").colorbox({ maxWidth:"100%" , maxHeight:"100%"}); }); </script>
を記述。
また同様にjQuery colorboxのcssファイルを9行目付近に挿入
<link rel="stylesheet" href="{{baseurl}}/ndxzsite/js/colorbox.css" type="text/css" />
jquery.colorbox.jsを書き換えるのが面倒なのでJSフォルダ内にjquery.colorbox.jsが参照するcolorbox.cssとimagesフォルダを置いた。
本当はformat.horizontal.php内(143行目付近)に
function createExhibit()
{
$OBJ =& get_instance();
global $default;
とあり、この後に
$OBJ->page->add_jquery('hogehoge.js', 30);
などと入れるべきなのだけど、外部ファイルにする以外にjavascriptの記述方法がよくわからなかったのでひとまず楽な方でやった。
('hogehoge.js', 30);の 30の意味もよくわからない。indexの30行目に突っ込むとかそういう意味じゃないかと思ってるが。
ndxzsite/plugin/format.horizontal.phpに画像リンクを挿入
$b .= "<div " . $this->valign($size[1]) . ">\n"; $b .= "<img src='" . BASEURL . $the_file . "' width='$size[0]' height='$size[1]' alt='$go[media_thumb_path]' />"; $b .= "</div>\n";
290行目、360行目付近のimgタグをaタグで囲った。
$b .= "<div " . $this->valign($size[1]) . ">\n"; $b .= "<a class='colorbox' rel='photo' href ='" . BASEURL . "/files/gimgs/$go[media_file]' >\n"; $b .= "<img src='" . BASEURL . $the_file . "' width='$size[0]' height='$size[1]' alt='$go[media_thumb_path]' />"; $b .= "</a>\n"; $b .= "</div>\n";
あまりわかってないがとりあえずこれで動いたのでよしとする。
リンク先の画像はアップロード時の元画像を指定。
/files/gimgs/内に元画像がアップされるみたいなので、php内のそれっぽい文字列を拾ってコピペした。
class='colorbox' rel='photo'はcolorboxでグループ化してスライド表示するために付けた。
グループ化の必要がなけばid=img-container内のaタグを指定するだけでもできた。