Pour certaines de mes catégories (plantes, animaux) j'ai du simplifier l'affichage des catégories pour ne mettre que des vignettes 80x80.
Pour d'autres catégories comme les paysages, j'aimerais pouvoir afficher les catégories avec leur description et une vignette plus grande.
Je vois deux pistes : passer un paramètre concernant la catégorie à mainpage_categories.tpl ou afficher un autre template en fonction du code de la catégorie.
Comment faire ?
C'est une version 1.6.1
http://www.sahara-nature.com/album
Merci d'avance
Hors ligne
Voir à utiliser des class= différentes en fonction de la miniature de la catégorie...
Imagine que ton template utilise pour les miniatures
mainpage_categories.tpl
<!-- BEGIN category -->
<li>
<div class="tc{categories.category.CCLASS}">
<div class="il{categories.category.CCLASS}">
et thumbnails.tpl
<!-- BEGIN thumbnail -->
<li class="{thumbnails.line.thumbnail.CLASS}">
<span class="w1{thumbnails.line.thumbnail.CCLASS}">
<span class="w2{thumbnails.line.thumbnail.CCLASS}">
CCLASS étant choisi en fonction de la taille du thumbnail.
Cela devrait marcher et répondre à ton pb... Non?
Hors ligne
C'est bien quelque chose comme ça qui pourrait m'aller, mais je ne sais pas comment faire pour mettre quelque chose dans {categories.category.CCLASS}
Hors ligne
On réfléchi, on va prendre le temps qui faudra.
Si des membres ont d'autres idées peut-être meilleures, on les "écoutera".
Pour l'instant, dans la semaine, je regarderai quelles informations permettraient de créer CCLASS.
Et surtout où et comment...
Cool...
8-)
Dernière modification par VDigital (2006-09-25 12:03:45)
Hors ligne
J'avais mal compris ta réponse, je pensais qu'il s'agissait d'une donnée qui était déjà à disposition mais non utilisée.
Hors ligne
Pas de pb. 8-)
On va réfléchir à cette solution.
8-)
Hors ligne
Visiblement, tu n'utilises pas $conf['subcatify'].
Conséquence: Je ne traiterai pas le point particulier à mainpage_categories.tpl
Ce qui simplife un peu le pb.
8-)
Hors ligne
Nous n'avons pas les dimensions des miniatures représentatives dans la base.
Cela serait trop lourd de l'obtenir.
Je pense donc t'orienter vers une solution spécifique, j'aurai préféré du standard.
Proposition spécifique à ta galerie...
Dès lors que l'imagette provient d'un sous-répertoire /vignettes/ on cible
l'affichage des catégories par des vignettes 80x80.
Sinon si l'imagette ne provient pas d'un sous-répertoire /vignettes/ on ciblera une dimension plus grande.
Est-ce selon toi acceptable?
Hors ligne
Oui, dans mon cas cela peut tout à fait convenir, car si la catégorie contient trop de sous-catégories je vais utiliser mes vignettes 80x80, ensuite je pourrai effectivement passer à des vignettes plus grandes avec commentaires si la sous-catégorie n'a que quelques éléments.
Tous les éléments d'une même catégorie seront affichés selon le même template, le représentant du premier élément peut servir de base.
Hors ligne
Je pense qu'on inserera dans un des modules quelque chose comme:
if (strpos($thumbnail_url,'/vignettes/') === false)
{
$cclass = ''; // => thumbnail <> 80x80 => wrap2
}
else
{
$cclass = 'x80' // => thumbnail == 80x80 => wrap2x80
}
Dans /template/.../thumbnails.tpl (simplification)
<!-- BEGIN thumbnail -->
<li class="{thumbnails.line.thumbnail.CLASS}">
<span class="wrap1">
<span class="wrap2{thumbnails.line.thumbnail.CCLASS}">
et dans /template-common/local-layout.css
nous aurons donc quelque chose comme :
/* Set some sizes according to your maximum thumbnail width and height */
#content UL.thumbnails SPAN,
#content UL.thumbnails SPAN.wrap2 A,
#content UL.thumbnails SPAN.wrap2 LABEL,
#content DIV.thumbnailCategory DIV.illustration {
width: 162px; /* max thumbnail width + 2px */
}
#content UL.thumbnails SPAN.wrap2,
#content DIV.thumbnailCategory DIV.description {
height: 162px; /* max thumbnail height + 2px */
}
#content DIV.comment BLOCKQUOTE {
margin-left: 172px; /*maximum thumbnail width + ~10px */
}
#content UL.thumbnails SPAN.wrap2x80 A,
#content UL.thumbnails SPAN.wrap2x80 LABEL {
width: 82px; /* max thumbnail width + 2px */
}
#content UL.thumbnails SPAN.wrap2x80 {
height: 82px; /* max thumbnail height + 2px */
}
A suivre.
Hors ligne
VDigital a écrit:
Je pense qu'on inserera dans un des modules quelque chose comme:
if (strpos($thumbnail_url,'/vignettes/') === false)
{
$cclass = ''; // => thumbnail <> 80x80 => wrap2
}
else
{
$cclass = 'x80' // => thumbnail == 80x80 => wrap2x80
}.../...
A suivre.
Le reste des modifs sera à appliquer.
Mais ce n'est pas un des modules qui sera à modifier mais 3.
Tu auras à modifier:
/include/category_default.inc.php
/include/recent_cats.inc.php
/include/category_subcats.inc.php
à priori.
Commençons par le premier (le plus simple):
Recherche dans /include/category_default.inc.php ceci:
foreach ($pictures as $row)
{
$thumbnail_url = get_thumbnail_src($row['path'], @$row['tn_ext']);
// message in title for the thumbnail
$thumbnail_title = $row['file'];
if (isset($row['filesize']))
{
$thumbnail_title .= ' : '.$row['filesize'].' KB';
}
// link on picture.php page
et remplace par ceci:
foreach ($pictures as $row)
{
$thumbnail_url = get_thumbnail_src($row['path'], @$row['tn_ext']);
// message in title for the thumbnail
$thumbnail_title = $row['file'];
if (isset($row['filesize']))
{
$thumbnail_title .= ' : '.$row['filesize'].' KB';
}
if (strpos($thumbnail_url,'/vignettes/') === false)
{
$cclass = ''; // => thumbnail <> 80x80 => wrap2
}
else
{
$cclass = 'x80'; // => thumbnail == 80x80 => wrap2x80
}
// link on picture.php page
Avec les modifs de /template/.../thumbnails.tpl et de
/template-common/local-layout.css (si ce dernier n'existe pas il faudra le créer).
Lire le post précedent pour faire ces mises à jour.
A suivre pour les 2 autres modules impactés.
8-)
Hors ligne
Je viens de comprendre qu'il faudra revenir sur /include/category_default.inc.php
Voyons /include/recent_cats.inc.php
Recherche dans /include/recent_cats.inc.php ceci:
else
{
// template thumbnail initialization
$template->set_filenames( array( 'thumbnails' => 'thumbnails.tpl',));
if (mysql_num_rows($result) > 0)
{
$template->assign_block_vars('thumbnails', array());
// first line
$template->assign_block_vars('thumbnails.line', array());
// current row displayed
$row_number = 0;
}
$old_level_separator = $conf['level_separator'];
$conf['level_separator'] = '<br />';
// for each category, we have to search a recent picture to display and
// the name to display
while ( $row = mysql_fetch_array( $result ) )
{
$template->assign_block_vars(
'thumbnails.line.thumbnail',
array(
'IMAGE' => get_thumbnail_src($row['path'], @$row['tn_ext']),
et remplace par ceci:
else
{
// template thumbnail initialization
$template->set_filenames( array( 'thumbnails' => 'thumbnails.tpl',));
if (mysql_num_rows($result) > 0)
{
$template->assign_block_vars('thumbnails', array());
// first line
$template->assign_block_vars('thumbnails.line', array());
// current row displayed
$row_number = 0;
}
$thumbnail_url = get_thumbnail_src($row['path'], @$row['tn_ext']);
if (strpos($thumbnail_url,'/vignettes/') === false)
{
$cclass = ''; // => thumbnail <> 80x80 => wrap2
}
else
{
$cclass = 'x80'; // => thumbnail == 80x80 => wrap2x80
}
$old_level_separator = $conf['level_separator'];
$conf['level_separator'] = '<br />';
// for each category, we have to search a recent picture to display and
// the name to display
while ( $row = mysql_fetch_array( $result ) )
{
$template->assign_block_vars(
'thumbnails.line.thumbnail',
array(
'IMAGE' => $thumbnail_url,
'CCLASS' => $cclass,
La dernière ligne est celle que j'ai oublié dans /include/category_default.inc.php
Revenons donc sur /include/category_default.inc.php maintenant.
(je veux dire que la modif précédente de /include/category_default.inc.php est considérée comme faite...)
Recherche dans /include/category_default.inc.php ceci:
// link on picture.php page
$url = duplicate_picture_url(
array(
'image_id' => $row['id'],
'image_file' => $row['file']
),
array('start')
);
$template->assign_block_vars(
'thumbnails.line.thumbnail',
array(
'IMAGE' => $thumbnail_url,
et remplace par ceci:
// link on picture.php page
$url = duplicate_picture_url(
array(
'image_id' => $row['id'],
'image_file' => $row['file']
),
array('start')
);
$template->assign_block_vars(
'thumbnails.line.thumbnail',
array(
'IMAGE' => $thumbnail_url,
'CCLASS' => $cclass,
Reste donc...
/include/category_subcats.inc.php
Hors ligne
Le dernier changement en principe...
Recherche dans /include/category_subcats.inc.php ceci:
else
{
$template->set_filenames( array( 'thumbnails' => 'thumbnails.tpl',));
$template->assign_block_vars('thumbnails', array());
// first line
$template->assign_block_vars('thumbnails.line', array());
// current row displayed
$row_number = 0;
foreach ($categories as $category)
{
$template->assign_block_vars(
'thumbnails.line.thumbnail',
array(
'IMAGE' => $thumbnail_src_of[ $category['picture'] ],
et remplace par ceci:
else
{
$template->set_filenames( array( 'thumbnails' => 'thumbnails.tpl',));
$template->assign_block_vars('thumbnails', array());
// first line
$template->assign_block_vars('thumbnails.line', array());
// current row displayed
$row_number = 0;
$thumbnail_url = get_thumbnail_src($row['path'], @$row['tn_ext']);
if (strpos($thumbnail_url,'/vignettes/') === false)
{
$cclass = ''; // => thumbnail <> 80x80 => wrap2
}
else
{
$cclass = 'x80'; // => thumbnail == 80x80 => wrap2x80
}
foreach ($categories as $category)
{
$template->assign_block_vars(
'thumbnails.line.thumbnail',
array(
'IMAGE' => $thumbnail_url,
'CCLASS' => $cclass,
Ça devrait répondre à ton pb.
Hors ligne
Evidement, je n'ai rien testé, prends donc toutes les mesures de sauvegarde qui s'imposent.
Mais je suis à peu près convaincu que cela fonctionnera.
8-)
Hors ligne
Merci beaucoup pour tes indications, je vais m'y atteler ce WE.
Hors ligne