Gnaviモジュールlightboxの改良
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
3件表示
(全3件)
すべてのトピック一覧へ
投稿ツリー
- Gnaviモジュールlightboxの改良 (タツ, 2015/6/3 6:56)
- Re: Gnaviモジュールlightbox2への改良 (タツ, 2017/2/23 21:04)
- Re: Gnaviモジュールlightbox2への改良 (タツ, 2019/8/30 8:53)
Gnaviモジュールlightboxの改良
msg# 1
タツ
投稿数: 2450
Gnaviモジュールについて、以前、「Lightbox & Videobox preload for XOOPS Cube Legacy 2.1」を導入し、記事詳細内の画像にもLightboxが利用できるようになっていました。
しかし、HTML5に対応していない為、携帯で見ると画像が適正に処理されていません。もともと記事に掲載可能な3画像までは順番に見ることができますが、記事詳細に掲載されている画像に関してはグループ化されていないので1枚ずつしかLightboxを利用できませんでした。
今回、改良した点は、
・ページごとに掲載された画像を全てをグループ化し順番に見ることができるようにすること。
・携帯で見ても画面内に画像が収まること。
の2点について自分で可能な限り改変してみました。その手順について備忘録として掲載します。
1.lightbox2を公式サイトからダウンロードします。
2.解凍し、必要なファイルを取り出し、Gnaviモジュールのhtml側の各フォルダに保存します。
3.ダウンロードしたlightbox.cssで利用する画像ファイル(ナビゲーションに利用する画像)はimgフォルダに入っています。これをGnaviモジュールではimagesフォルダに保存しているので、lightbox.css内の画像pathをimg→imagesに編集する必要があります。
例)url(../img/close.png) → url(../images/close.png)等
4.Gnaviのテンプレートを編集する
gnaviモジュール名_itemheader.htmlの内容を編集します
・最初の部分
・Gnaviにアップロードされた画像をページタイトルとしてグループ化する
アップロードされた3枚分の画像名はそのまま利用します
data-title="<{$photo.caption}>"
data-title="<{$photo.caption2}>"
data-title="<{$photo.caption3}>"
とします。
アップロードされた3枚分の画像は全てページタイトルとしてグループ化します。
data-lightbox="<{$xoops_pagetitle}>"
<{* FILE1~3 *}>の部分
・<{* DESCRIPTION *}>の詳細記事内に掲載された画像をページタイトルとしてグループ化する
5.以下のコードをテキストファイルに保存し、Lightbox.class.phpとしてhtml/preloadの中に設置します。サイトのpreloadに設置すればbbコードでlightboxが利用できるようになります。
以上
しかし、HTML5に対応していない為、携帯で見ると画像が適正に処理されていません。もともと記事に掲載可能な3画像までは順番に見ることができますが、記事詳細に掲載されている画像に関してはグループ化されていないので1枚ずつしかLightboxを利用できませんでした。
今回、改良した点は、
・ページごとに掲載された画像を全てをグループ化し順番に見ることができるようにすること。
・携帯で見ても画面内に画像が収まること。
の2点について自分で可能な限り改変してみました。その手順について備忘録として掲載します。
1.lightbox2を公式サイトからダウンロードします。
2.解凍し、必要なファイルを取り出し、Gnaviモジュールのhtml側の各フォルダに保存します。
・js/jquery-1.11.0.min.js(これについては既に導入済だったので外しました)
→html/modules/gnaviモジュール名/js/jquery-1.11.0.min.js(必要な場合)
・imgフォルダ内の各ファイル
→html/modules/gnaviモジュール名/imagesのフォルダ内に保存
・js/lightbox.min.js
→html/modules/gnaviモジュール名/js/lightbox.min.js
・css/lightbox.css
→html/modules/gnaviモジュール名/css/lightbox.css
3.ダウンロードしたlightbox.cssで利用する画像ファイル(ナビゲーションに利用する画像)はimgフォルダに入っています。これをGnaviモジュールではimagesフォルダに保存しているので、lightbox.css内の画像pathをimg→imagesに編集する必要があります。
例)url(../img/close.png) → url(../images/close.png)等
4.Gnaviのテンプレートを編集する
gnaviモジュール名_itemheader.htmlの内容を編集します
・最初の部分
・jquery-1.11.0.min.js(必要な場合のみ)、lightbox.min.jsとlightbox.css、を読み込ませる。
- <script type="text/javascript" src="js/prototype.js"></script>
- <script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
- <script type="text/javascript" src="js/lightbox.js"></script>
- <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
↓
+ <script src="js/jquery-1.11.0.min.js"></script>(必要な場合のみ)
+ <script src="js/lightbox.min.js"></script>
+ <link rel="stylesheet" property="stylesheet" href="css/lightbox.css" type="text/css" media="all" />
・Gnaviにアップロードされた画像をページタイトルとしてグループ化する
アップロードされた3枚分の画像名はそのまま利用します
data-title="<{$photo.caption}>"
data-title="<{$photo.caption2}>"
data-title="<{$photo.caption3}>"
とします。
アップロードされた3枚分の画像は全てページタイトルとしてグループ化します。
data-lightbox="<{$xoops_pagetitle}>"
<{* FILE1~3 *}>の部分
- <{if $photo.img==1}><a href="<{$photo.ahref_photo}>" title="<{$photo.caption}>" rel="lightbox"><img src="<{$photo.imgsrc_photo}>" alt="<{$photo.caption}>" <{$photo.width_height}> /></a>
↓
+ <{if $photo.img==1}><a href="<{$photo.ahref_photo}>" data-title="<{$photo.caption}>" data-lightbox="<{$xoops_pagetitle}>"><img src="<{$photo.imgsrc_photo}>" alt="<{$photo.caption}>" <{$photo.width_height}> /></a>
- <{if $photo.img1==1}><a href="<{$photo.ahref_photo1}>" title="<{$photo.caption1}>" rel="lightbox"><img src="<{$photo.imgsrc_photo1}>" alt="<{$photo.caption1}>" <{$photo.width_height1}> /></a>
↓
+ <{if $photo.img1==1}><a href="<{$photo.ahref_photo1}>" data-title="<{$photo.caption1}>" data-lightbox="<{$xoops_pagetitle}>"><img src="<{$photo.imgsrc_photo1}>" alt="<{$photo.caption1}>" <{$photo.width_height1}> /></a>
- <{if $photo.img2==1}><a href="<{$photo.ahref_photo2}>" title="<{$photo.caption2}>" rel="lightbox"><img src="<{$photo.imgsrc_photo2}>" alt="<{$photo.caption2}>" <{$photo.width_height2}> /></a>
↓
+ <{if $photo.img2==1}><a href="<{$photo.ahref_photo2}>" data-title="<{$photo.caption2}>" data-lightbox="<{$xoops_pagetitle}>"><img src="<{$photo.imgsrc_photo2}>" alt="<{$photo.caption2}>" <{$photo.width_height2}> /></a>
・<{* DESCRIPTION *}>の詳細記事内に掲載された画像をページタイトルとしてグループ化する
<{$photo.description}>の部分
- <{$photo.description}>
↓
+ <{$photo.description|replace:'data-lightbox=""':"data-lightbox='$xoops_pagetitle'"|replace:'rel="lightbox"':"data-title='' data-lightbox='$xoops_pagetitle'"}>
5.以下のコードをテキストファイルに保存し、Lightbox.class.phpとしてhtml/preloadの中に設置します。サイトのpreloadに設置すればbbコードでlightboxが利用できるようになります。
<?php
//================================================================
// Lightbox Preload
// by photosite, http://www.photositelinks.com/
//================================================================
if (!defined('XOOPS_ROOT_PATH')) exit();
class Lightbox extends XCube_ActionFilter
{
function preBlockFilter()
{
$this->mRoot->mTextFilter->mMakeXCodeConvertTable->add(array(&$this, 'bbcode'), XCUBE_DELEGATE_PRIORITY_1);
}
function bbcode(&$patterns, &$replacements)
{
// tag for lightbox
$patterns = "/\[url=(['\"]?)(http[s]?:\/\/[^\"'<>]*)\\1 lb=(['\"]?)([^\s]*)\\3 title=(['\"]?)([^\s]*)\\5](.*)\[\/url\]/sU";
$replacements[0] = $replacements[1] = '<a href="\\2" rel="lightbox[\\4]" target="_blank" title="\\6">\\7</a>';
$patterns = "/\[url=(['\"]?)(http[s]?:\/\/[^\"'<>]*)\\1 lb=(['\"]?)([^\s]*)\\3](.*)\[\/url\]/sU";
$replacements[0] = $replacements[1] = '<a href="\\2" rel="lightbox[\\4]" target="_blank">\\5</a>';
// tag for lightbox
$patterns = "/\[siteurl=(['\"]?)([^\"'<>]*)\\1 lb=(['\"]?)([^\s]*)\\3 title=(['\"]?)([^\s]*)\\5](.*)\[\/siteurl\]/sU";
$replacements[0] = $replacements[1] = '<a href="'.XOOPS_URL.'/\\2" rel="lightbox[\\4]" target="_blank" title="\\6">\\7</a>';
$patterns = "/\[siteurl=(['\"]?)([^\"'<>]*)\\1 lb=(['\"]?)([^\s]*)\\3](.*)\[\/siteurl\]/sU";
$replacements[0] = $replacements[1] = '<a href="'.XOOPS_URL.'/\\2" rel="lightbox[\\4]" target="_blank">\\5</a>';
// </a>';
// </a>';
}
}
?>
以上
投票数:20
平均点:5.50
Re: Gnaviモジュールlightbox2への改良
msg# 1.1
タツ
投稿数: 2450
さらにbbコードを使ってlightboxの各画像にタイトルを付ける従来のlightboxではbbコードで各ページのグループ化された個々の画像にタイトルを付けることができませんでした。どうしてもbbコードで個々の画像にタイトルをつけたかったのでさらに改良を加えられたlightbox2を...詳細を見る!
Re: Gnaviモジュールlightbox2への改良
msg# 1.1.1
タツ
投稿数: 2450
lightbox2利用の際、bbコードでsiteimgを利用すると<img src="*******" align="" width="" height="" alt="" title="">とalt=""以外は意図していない「align="" width=""...詳細を見る!
3件表示
(全0件)
すべてのトピック一覧へ