#1 2006-09-24 18:20:12

nadia
Membre
2006-08-05
59

Associer à la catégorie un template

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


Mon web site sur la flore et la faune du Sahara et son album-photo

Hors ligne

#2 2006-09-24 19:06:25

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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?


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#3 2006-09-24 20:08:04

nadia
Membre
2006-08-05
59

Re: Associer à la catégorie un template

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}


Mon web site sur la flore et la faune du Sahara et son album-photo

Hors ligne

#4 2006-09-24 20:37:55

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#5 2006-09-24 22:05:02

nadia
Membre
2006-08-05
59

Re: Associer à la catégorie un template

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.


Mon web site sur la flore et la faune du Sahara et son album-photo

Hors ligne

#6 2006-09-24 22:23:50

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

Pas de pb. 8-)

On va réfléchir à cette solution.
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#7 2006-09-25 12:12:51

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#8 2006-09-25 12:32:07

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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?


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#9 2006-09-25 23:06:00

nadia
Membre
2006-08-05
59

Re: Associer à la catégorie un template

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.


Mon web site sur la flore et la faune du Sahara et son album-photo

Hors ligne

#10 2006-09-26 08:38:05

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#11 2006-09-26 14:15:11

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#12 2006-09-26 21:39:18

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#13 2006-09-26 21:46:38

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#14 2006-09-26 21:48:07

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Associer à la catégorie un template

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-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#15 2006-09-26 22:17:12

nadia
Membre
2006-08-05
59

Re: Associer à la catégorie un template

Merci beaucoup pour tes indications, je vais m'y atteler ce WE.


Mon web site sur la flore et la faune du Sahara et son album-photo

Hors ligne

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact