É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-10-23 21:07:55

Nicco,

(Je vais t'écrire personnellement "by mail").
A part ça, je crois que z0rglub a déjà cette idée sur les tablettes.

8-)

Nicco
2006-10-23 20:59:25

ok et puisque vous y est refaire un bouton pour l admin aussi comme ca lorsque je veux trier une categories j ai le choix entre AlphaNum et la date ;o)

en gros juste ce poste pour dire merci car j en ai recupere un bout pour chez moi et c est nickel a+

VDigital
2006-10-23 07:19:35

phgiraud a écrit:

- Il faudrait pouvoir ne pas afficher de date du tout

Oui, un #_category.fromto ferait l'affaire. Avec un $conf['display_fromto'] = false; en standard.
Là on vise la perfection...
8-)

phgiraud
2006-10-22 23:22:29

Je ne connaissais pas le last_date, cela pourait être en effet plus judicieux. En ce qui concerne plage de date, cela fait un petit moment que j'ai exactement la même idée. Malheureusement je n'ai pas trouvé le temps pour essayer de l'implémenter. Il faudrait afficher en effet la date de la plus ancienne à la plus récente, avec certaines conditions:
- Il faudrait pouvoir ne pas afficher de date du tout (par exemple, un best-of de photos serait dans ce cas), ou pouvoir préférer la date de mise à disposition
- Si les deux dates sont identiques, on affiche une date unique, par exemple "15 octobre 2006"
- Si les deux dates ont seulement 1 jour d'écart, cela donnerait par exempe "15 et 16 octobre 2006"
- Si on est dans le même mois, à plus d'un jour d'écart, "du 10 au 16 octobre 2006"
- Si dans la même année, "du 30 septembre au 16 octobres 2006"
- Autres cas, on indique les deux années "du 22 décembre 2005 au 5 janvier 2006"

(merci d'avoir déplacé la discussion dans le forum qui va bien ;-)

plg
2006-10-22 23:07:03

(topic très intéressant, j'aurai dû répondre bien plus tôt)

Il y a une autre date que tu aurais pu utiliser pour le tri des catégories : #categories.date_last qui correspond à la plus grande date parmi les #images.date_available des images contenues dans la catégorie.

Pour l'affichage de la date, au niveau de template/yoga/mainpage_categories.tpl je trouve assez spécifique d'afficher la date de la photo représentative. Il est clair qu'utiliser une date de création est plus pertinent qu'une date de mise à disposition. Seulement voilà, les catégories ne suivent pas forcément une structure évenementielle, la structure peut-être thématique, ou alors des évênements plus longs qu'une journée (un festival, un salon, ...). Une option intéressante serait d'afficher non pas une date unique, mais la date la plus petite et la plus grande. Ainsi la catégorie "2006/septembre/Salon de l'automobile" aurait pour plage : du 30 septembre 2006 au 15 octobre 2006.

Je ne fais que suivre ton idée, en allant un peu plus loin. Personnellement, j'ai une arborescence année/mois/évênement et dans le titre de l'évênement, j'ajoute souvent les numéros de jours dans le mois. Par exemple "2006/janvier/visite à Chatou (le 5)", ce qui signifie le 5 janvier 2006. C'est un peu nul, et donc ta solution serait super. Merci de l'avoir proposée.

Je me permet de déplacer ton topic dans la section "discussion" car on a largement dépassé le cadre de l'utilisation "standard".

phgiraud
2006-08-24 10:07:28

Une fois que vous avez fait en sorte que le champ "date_creation" des image soit bien alimenté par la donnée EXIF "DateTimeOriginal" qui correspond à la date de prise de vue (voir mon précédent post), il peut être intéressant de trier par défaut les images par rapport à ce champ:

include/config_local.inc.php

Code:

$conf['order_by'] = ' ORDER BY date_creation'; // par défaut, tri par date de prise de vue

Lors de l'affichage d'une image individuelle, on peut faire en sorte de voir cette date avec l'heure de la photo:

picture.php, ligne 629

Code:

if (!empty($picture['current']['date_creation']))
{
  $val = format_date($picture['current']['date_creation'], 'mysql_datetime', true);
  $infos['INFO_CREATION_DATE'] = $val;
}

D'autre part, les catégories (contenant des images) pouvant être associées à une image représentative, j'ai trouvé intéressant de pouvoir trier les catégories par rapport à la date de prise de vue de leur image représentative. Cela permet de trier automatiquement les catégories de manière chronologique.
Pour cela, pour aller au plus vite, j'ai modifié l'action du bouton "Trier alphanum":

admin/cat_list.php, ligne 117

Code:

else if (isset($_POST['submitOrderAlphaNum']))
{
  // MODIF requete : jointure cat/images pour obtenir les dates de creation des images représentatives
  $query = 'SELECT '.CATEGORIES_TABLE.'.id, '.CATEGORIES_TABLE.'.name, '.
                   IMAGES_TABLE.'.date_creation FROM '.CATEGORIES_TABLE.', '.IMAGES_TABLE.
         ' WHERE '.CATEGORIES_TABLE.'.id_uppercat '.
         (!isset($_GET['parent_id']) ? 'IS NULL' : '= '.$_GET['parent_id']).' AND '.
         CATEGORIES_TABLE.'.representative_picture_id = '.IMAGES_TABLE.'.id;';
  // MODIF pour info, afficher la requête dans les infos
  array_push(
    $page['infos'],
    $query."\n"
    );      

  $result = pwg_query($query);  
  while ($row = mysql_fetch_assoc($result))
  {
    // MODIF: [id, date_creation] + visu
    $categories[ $row['id'] ] = $row['date_creation'];    
    array_push(
      $page['infos'],
      $row['name'].", ".$row['date_creation']);      
  }
  // thiw will now sort by creation date
  asort($categories, SORT_REGULAR);
  save_categories_order(array_keys($categories));
  array_push(
    $page['infos'],
    "Categories ordonnées par date d'image représentante"
    );      
}

J'ai modifié la liste des tris possibles (combo sur la droite nommée "Ordre de tri"):

include/functions_category.inc.php

Code:

function get_category_preferred_image_orders()
{
  return array(
    array(l10n('default_sort'), '', true),
    array(l10n('most_visited_cat'), 'hit ASC', true),
    array(l10n('Creation date'), 'date_creation ASC', true),
    array(l10n('Post date'), 'date_available ASC', true),
  );
}

Dans l'écran des catégories, pour:
- afficher la date de creation de l'image représentative
- trier par défaut avec les catégories les plus récentes en premier

include/category_subcats.inc.php

Code:

ligne  40 : ORDER BY rank DESC // les + récentes en premier
ligne 123 : $date_creation_src_of = array(); // pour stocker dates de création des images de la categorie
ligne 127 : SELECT id, path, tn_ext, date_creation // pour récupérer les dates de création
ligne 136 :     $date_creation_src_of[$row['id']] = $row['date_creation'] ; // stockage
ligne 169 : 'DATE' => format_date($date_creation_src_of[ $category['picture'] ], 'mysql_datetime') // donne au TPL la date formattée

et pour ajouter la ligne avec la date au dessus du nom de la categorie, et modifier la présentation descripton/nb d'images:

template/yoga/mainpage_categories.tpl

Code:

* sous <div class="description"> ajouter : <p>{categories.category.DATE}</p>
* puis modifier : d'abord la description, une ligne vide, et le nombre d'images
        <p>{categories.category.DESCRIPTION}</p>
        <br>
        <p>{categories.category.CAPTION_NB_IMAGES}</p>

Un petit aperçu de la présentation obtenue:
http://img138.imageshack.us/img138/7048/appercucategoriesws2.jpg
On constate que les categories les + récentes sont affichées en premier, avec la date de l'image représentative, le titre, la description et le nombre d'images.

Pied de page des forums

Propulsé par FluxBB

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