Fork me on GitHub

Rapport de message :*
 

Re: xcgal et lightbox js

Titre du sujet : Re: xcgal et lightbox js
par juju63 sur 26/12/2007 15:01:13

Bonjour,

voici une solution pour mettre en place un script de type lightbox avec le module Xcgallery;

Après quelques recherches, le site xoops allemand en parle et propose meme un module tout pret ici

je l'ai testé mais il ne me plait pas car on n'avait plus accès aux commentaires des photos,


je vous propose donc ma méthode qui n'abime pas le module existant

Tout se passe dans 3 fichiers:

xcgal/include/functions.inc.php
xcgal/include/theme_func.php
et
xcgal_thumb.html (templates)


dans le fichier functions.inc.php on récupère l'adresse, le titre de l'image et le nom du fichier

// Prints thumbnails of pictures in an album
function display_thumbnails($album, $cat, $page, $thumbcols, $thumbrows, $display_tabs)
{
global $xoopsModuleConfig, $xoopsTpl;
$myts =& MyTextSanitizer::getInstance(); // MyTextSanitizer object

$thumb_per_page = $thumbcols * $thumbrows;
$lower_limit = ($page-1) * $thumb_per_page;

$pic_data = get_pic_data($album, $thumb_count, $album_name, $lower_limit, $thumb_per_page);
$total_pages = ceil($thumb_count / $thumb_per_page);

$i = 0;
if (count($pic_data) > 0) {
foreach ($pic_data as $key => $row) {
$i++;

$image_size = compute_img_size($row['pwidth'], $row['pheight'], $xoopsModuleConfig['thumb_width']);

$pic_title =_MD_FUNC_FNAME.$myts->makeTBoxData4Show($row['filename'])."\n".
_MD_FUNC_FSIZE.($row['filesize'] >> 10)._MD_KB."\n".
_MD_FUNC_DIM.$row['pwidth']."x".$row['pheight']."\n".
_MD_FUNC_DATE.formatTimestamp($row['ctime'],'m');

$thumb_list[$i]['pos'] = $key < 0 ? $key : $i - 1 + $lower_limit;
$thumb_list[$i]['image'] = "<img src=\"" . get_pic_url($row, 'thumb') . "\" class=\"image\" {$image_size['geom']} border=\"0\" alt=\"{$row['filename']}\" title=\"$pic_title\" />";
$thumb_list[$i]['caption'] = ($row['caption_text']);
$thumb_list[$i]['admin_menu'] = '';
$thumb_list[$i]['pid'] = $row['pid'];

######mofif galerie lightbox
$thumb_list[$i]['url_image'] = get_pic_url($row, 'fullsize');
$thumb_list[$i]['titre_photo'] = $myts->makeTBoxData4Show($row['title']);
$thumb_list[$i]['nom_du_fichier'] = $myts->makeTBoxData4Show($row['filename']);
###### fin mofif galerie lightbox

}
$xoopsTpl->assign('no_img',0);
theme_display_thumbnails($thumb_list, $thumb_count, $album_name, $album, $cat, $page, $total_pages, is_numeric($album), $display_tabs);
} else {
$xoopsTpl->assign('no_img',1);
$xoopsTpl->assign('lang_no_img',_MD_NO_IMG_TO_DISPLAY);
$xoopsTpl->assign('album_name',$myts->makeTBoxData4Show($album_name));
}
}





dans le fichier theme.func.php on passe les variables

function theme_display_thumbnails(&$thumb_list, $nbThumb, $album_name, $aid, $cat, $page, $total_pages, $sort_options, $display_tabs, $mode='thumb')
{
global $xoopsModuleConfig,$xoopsTpl;
global $template_tab_display;
$cat_link= is_numeric($aid) ? '' : '&cat='.$cat;

$theme_thumb_tab_tmpl = $template_tab_display;

if ($mode == 'thumb') {
$theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => _MD_THM_PICPAGE));
$theme_thumb_tab_tmpl['inactive_tab'] = strtr($theme_thumb_tab_tmpl['inactive_tab'], array('{LINK}' => 'thumbnails.php?album='.$aid.$cat_link.'&page=%d'));
} else {
$theme_thumb_tab_tmpl['left_text'] = strtr($theme_thumb_tab_tmpl['left_text'], array('{LEFT_TEXT}' => _MD_THM_USERPAGE));
$theme_thumb_tab_tmpl['inactive_tab'] = strtr($theme_thumb_tab_tmpl['inactive_tab'], array('{LINK}' => 'index.php?cat='.$cat.'&page=%d'));
}

$thumbcols = $xoopsModuleConfig['thumbcols'];
$cell_width = ceil(100/$xoopsModuleConfig['thumbcols']).'%';

$tabs_html = $display_tabs ? create_tabs($nbThumb, $page, $total_pages, $theme_thumb_tab_tmpl) : '';
$i = 0;
foreach($thumb_list as $thumb){
$i++;
$pic= array();
$pic['thumb']=$thumb['image'];

###modif galerie lightbox
$pic['image_box'] = (!empty($thumb['url_image'])) ? $thumb['url_image'] : "";
$pic['titrephoto'] =$thumb['titre_photo'];
$pic['nomdufichier'] =$thumb['nom_du_fichier'];
###fin modif galerie lightbox

if (is_array($thumb['caption'])){
$pic['user']=1;
$pic['u_name']=$thumb['caption']['u_name'];
$pic['u_id']=$thumb['caption']['u_id'];
$pic['albums']=$thumb['caption']['albums'];
$pic['pictures']=$thumb['caption']['pictures'];

.....



et pour finir dans xcgal_thumb.html avec lytebox

cliquer en dessous de la vignette permet de lancer le script;
dans la galerie on met le nom de l'album et le titre de la photo (s'il n'y a pas de titre, on affiche le nom du fichier).


<{foreach item=pic from=$thumb.pics}>
<td valign="top" class="even" width ="<{$thumb.cell_width}>" align="center">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="center">
<a href="<{$pic.link_tgt}>"><{$pic.thumb}><br /></a>


<{if $pic.user == 1}>
<table cellspacing="1" cellpadding="0" border="0" width="100%" class="user_thumb_infobox">
<tr>
<th><a href="<{$xoops_url}>/userinfo.php?uid=<{$pic.u_id}>"><{$pic.u_name}></a></th>
</tr>
<tr>
<td><{$pic.albums}></td>
</tr>

<tr>
<td><{$pic.pictures}></td>
</tr>
</table>

<{else}>

<{if $pic.caption!=''}>

<{if $pic.titrephoto==''}>

<a href="<{$pic.image_box}>" rel="lyteshow[vacation]"
title="<a href=<{$pic.link_tgt}>><{$thumb.album_name}><br>
<i><font color='#CCCCCC'><{$pic.nomdufichier}></i></font></a>">
<{$pic.caption}></a>

<{else}>

<a href="<{$pic.image_box}>" rel="lyteshow[vacation]"
title="<a href=<{$pic.link_tgt}>><{$thumb.album_name}><br><{$pic.titrephoto}></a>">
<{$pic.caption}></a>

<{/if}>



<{else}>
<{if $pic.titrephoto==''}>
<font style="font-style: oblique; font-size:6px;">
<a href="<{$pic.image_box}>" rel="lyteshow[vacation]"
title="<a href=<{$pic.link_tgt}>><{$thumb.album_name}><br>
<i><font color='#CCCCCC'><{$pic.nomdufichier}></i></a>">
<font color="#CCCCCC"><{$thumb.album_name}></font>
</a>
</font>

<{else}>

<font style="font-style: oblique; font-size:6px;">
<a href="<{$pic.image_box}>" rel="lyteshow[vacation]"
title="<a href=<{$pic.link_tgt}>><{$thumb.album_name}><br><{$pic.titrephoto}></a>">
<font color="#CCCCCC"><{$thumb.album_name}></font>
</a>
</font>
<{/if}>

<{/if}>


<{/if}>
<{$pic.admin_menu}>
</td>
</tr>
</table>
</td>
<{if $pic.row_sep==1}>
</tr>
<tr>
<{/if}>
<{/foreach}>
......



voilà, en vous souhaitant de bonnes fêtes !


Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

87 Personne(s) en ligne (67 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 87 | Plus ...