Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

VDigital
2006-09-28 22:21:09

Le résultat est spectaculaire...

Bravo, tu as eu l'idée... Et tu as su appliquer.
Merci.

J'ai hâte de voir le résultat final.
Cela vaudra le coup de monter une solution non spécifique peut être.

8-)

VDigital
2006-09-28 22:16:08

Je pensais que seul wrap2 avait besoin d'être modifié.
8-)

Je vais faire un tour sur ton site pour voir ça...

nadia
2006-09-28 22:07:01

J'ai commencé les mises à jour, cela marche super bien !

Les modifs apportées :

mainpage_categories.tpl

<ul class="thumbnailCategories{CCLASS}">
  <!-- BEGIN category -->
  <li>
      <div class="thumbnailCategory{categories.category.CCLASS}">

ce qui donne sur une page avec que des vignettes 80x80 :

<ul class="thumbnailCategories80">
  <li>
      <div class="thumbnailCategory80">

J'ai mis à jour la classe du <ul> car je dois pouvoir afficher sur 6 ou 3 colonnes, pour l'instant sur la page des dernières catégories c'est la dernière de la liste qui pilote l'affichage sur 6 ou 3 colonnes (il n'y a que sur l'affichage des dernières catégories qu'il peut y avoir du mixte).

Les autres modifs :

category_subcats.inc.php

    $cclass='';
    foreach ($categories as $category)
    {
if (strpos($thumbnail_src_of[ $category['picture']],'/vignettes/') === false)
  {
    $cclass = ''; // => thumbnail <> 80x80
  }
  else
  {
    $cclass = '80'; // => thumbnail == 80x80
  } 

    $template->assign_block_vars(
        'categories.category',
        array(
      'CCLASS'     => $cclass,
...
...
    }
    $template->assign_var('CCLASS', $cclass);
    $template->assign_var_from_handle('CATEGORIES', 'mainpage_categories');

category_recent_cats.inc.php

// for each category, we have to search a recent picture to display and
  // the name to display
  $cclass = '';
  while ( $row = mysql_fetch_array( $result ) )
  {
  if (strpos($row['path'],'/vignettes/') === false)
  {
    $cclass = ''; // => thumbnail <> 80x80
  }
  else
  {
    $cclass = '80'; // => thumbnail == 80x80
  } 

  $template->assign_block_vars(
      'categories.category',
      array(
      'CCLASS'     => $cclass,
...
...
  }

  $template->assign_var('CCLASS', $cclass);
  $template->assign_var_from_handle('CATEGORIES', 'mainpage_categories');
}

Puis ensuite j'ai modifié pas mal le css.
Il ne me reste plus qu'à mettre en forme les commentaires que j'ai mis en display:none dans le css, je mettrai le nom de la catégorie sous les images 80x80 et des commentaires sur les autres catégories qui seront présentées sur 2 colonnes.

Je n'ai pas mis à jour le category_default.inc.php car je ne sais pas quand est-ce qu'il est appelé ce qui fait que je ne peux pas tester le résultat.

nadia
2006-09-26 22:17:12

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

VDigital
2006-09-26 21:48:07

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

VDigital
2006-09-26 21:46:38

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.

VDigital
2006-09-26 21:39:18

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

VDigital
2006-09-26 14:15:11

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

VDigital
2006-09-26 08:38:05

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.

nadia
2006-09-25 23:06:00

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.

VDigital
2006-09-25 12:32:07

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?

VDigital
2006-09-25 12:12:51

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

VDigital
2006-09-24 22:23:50

Pas de pb. 8-)

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

nadia
2006-09-24 22:05:02

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.

VDigital
2006-09-24 20:37:55

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

Pied de page des forums

Propulsé par FluxBB

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