カスタマイズ&運用TIPS : lightboxをxoopsで使ってみる
投稿者 : taka 投稿日時: 2007-1-27

bbcodeから簡単に使うために
HTMLで記述する場合はlightbox自体の説明を見てもらえば簡単ですよね。ただ、XOOPSを使っているのであれば、やはりbbcodeから簡単に使えれば便利です。という事で、class/module.textsanitizer.phpにルールを追加しておいて、超簡単にlightboxを使えるようにしてしまいましょう。
ちなみにmyalbumで、imagemanagerを統合してある状況でのお話です。そうでなければ、サムネイル→ポップアップで元サイズ表示という感じにはなりませんから。(やっぱりこれは必要不可欠なセッティングですね。)
module.textsanitizer.php156〜157行目
$patterns[] = "/\[siteurl=(['\"]?)([^\"'<>]*)\\1](.*)\[\/siteurl\]/sU";
$replacements[] = '<a href="'.XOOPS_URL.'/\\2"target="_blank">\\3</a>';のところを、
// START SETTING FOR LIGHTBOX
$patterns[] = "/\[siteurl=(['\"]?)([^\"'<>]*)\\1 lb=(['\"]?)([^\"\(\)\?\&'<>]*)\\3 title=(['\"]?)([^\"\(\)\?\&'<>]*)\\5](.*)\[\/siteurl\]/sU";
$replacements[] = '<a href="'.XOOPS_URL.'/\\2" rel="lightbox[\\4]" title="\\6">\\7</a>';
$patterns[] = "/\[siteurl=(['\"]?)([^\"'<>]*)\\1](.*)\[\/siteurl\]/sU";
$replacements[] = '<a href="'.XOOPS_URL.'/\\2">\\3</a>';
// END OF SETTINGとして保存します。(site内リンクなのでデフォルト用のところもついでにtarget属性を削除しています)
後はいろいろなモジュールやカスタムブロックなどからbbcodeを利用して記述する際、
siteurl=... の後に lb=group名 title=タイトルと記述すれば、lightbox対応になります。赤字で示したgroup名は特に入れなくてもlightboxとして機能しますが、多くの画像を1ページで使用する場合、next,prevなどで1くくりにしたければ、同じgroup名をつけます。赤字で示したタイトルは文字通り写真のタイトル名称です。








