Français
Vous n'êtes pas identifié. (Inscription / S'identifier)
Pierrick,
Avec le nouveau moteur de recherche le calendrier ne marche plus quand on clique sur une journee. Tu travailles dessus ?
Si non j'aimerais le refaire de sorte que:
- quand on clique sur un jour donne toutes les vignettes sont directement visibles (et non les categories). donc il ne va plus utiliser le search.php
- et 2 fonctionnalites qui m'interessent personellement:
- pouvoir chosir pas seulement une anee donne, un mois donnee et un jour donnee mais au moins deux de tous les ans, tous les mois et tous les jours (on peut voir: Toutes les photos prises un mois de fevrier = qq chose de genre "Ce mois dans l'histoire" ou toutes les photos prise le 15eme de n'importe quel mois)
- avoir en plus de la vue annee/mois/jour une vue annee/semaine de l'annee/jour de la semaine ce qui permettra d'avoir "Cette semaine dans l'histoire"
Dis-moi ce que t'en penses.
A+
Dernière modification par rvelices (2006-02-16 06:26:14)
Hors ligne
En fait j'ai encore un peu reflechi et avec le nouveau page[items] c'est tres simple et elegant de faire tout ca ... Je me rend compte compte que t'as change ca pour que tu puisses accomoder facilement des categories avec des requetes complexes (? tags).
En fait on pourra utiliser simplement picture.php?cat=calendar&date=all-05-12 ...
Et je promet que meme avec toutes mes bidouilles (calendrier par semaine + all) j'aurai moins de lignes de code que l'actuel calendrier en faisant abstraction du message copyright au debut du fichier car je compte avoir 3 fichiers pour le calendrier:
1 calendar_init.inc.php pour eviter beaucoup de code en section_init.inc.php
2 category_calendar_subcats.inc.php pour le $page['thumbnails_include'] quand on n'a pas choisi annee, mois et jour
3 category_calendar_default.inc.php pour le $page['thumbnails_include'] quand on a completement choisi annee, mois et jour
Hors ligne
J'ai une idée de refonte assez complète pour le calendrier. Je suis effectivement dessus, mais seulement en idées. J'ai du boulot là, je reviens poster plus tard dans la journée. (je suis content que tu constates la nouvelle souplesse apportée par $page['items'], c'était le but recherché, et c'est la classification par tags qui m'a convaincu de la nécessité de ce changement)
Hors ligne
L'idée que j'ai en tête pour le calendrier, c'est de ne plus le considérer comme une section spéciale, mais comme un mode de vue. J'imagine 2 modes de vue : liste et calendrier. La vue liste est celle que nous connaissons bien, maintenant ordonnable à la volée en fonction de la date, de la popularité, etc. La vue calendrier, accessible depuis n'importe quelle section, afficherait un calendrier (année puis mois (puis semaine) puis jour) avec uniquement les éléments de la section courante.
Si je suis dans la section catégorie 43, qui est une catégorie fille non mère avec 32 photos, je passe en vue calendrier, je vois que dans cette catégorie 43 il y a des photos de 2005 et 2006. Je clique sur 2006, j'arrive sur index.php/category/43-sunsets/calendar-2006, puis index.php/category/43-sunsets/calendar-2006.05 pour le mois de mai, et ainsi de suite.
Pour reproduire le calendrier de la branche 1.5, il suffira de switcher en vue calendrier à la racine du site : index.php/categories/calendar
Bref, on supprime la notion complètement inutile des catégories dans le calendrier qui était une erreur à mon avis, et on transforme une section spéciale en mode de vue. Le switch se ferait avec un bouton dans la barre de navigation de la section courante. Le select avec les proposition d'ordre ne serait visible qu'en mode de vue liste.
Peut-être est-ce une évolution un peu lourde. On pourrait (tu pourrais, en fait) faire ta proposition dans un premier temps, et s'inspirer de la mienne dans un second temps.
Qu'en penses tu ?
Hors ligne
Vraiment bien ton idee. Maintenant plus technique, je vois un moyen de faire ca:
a la fin de section_init: si GET[view]==calendar
- filtrer page[items] conformement au GET[date]
- si calling_page (il faut remettre ce parametre) est category on genere les barres de navigation du calendrier
C'est bon pour:
z0rglub a écrit:
une catégorie fille non mère avec 32 photos
Mais si ma categorie est mere (ou la racine de site) et donc page[items] est vide ?
Par example:
Fetes
+- Nouvel an 2005
+- Anniversaire titi
+- Nouvel an 2004
...
ou
Vacances
+- Tahiti
+- Hawaii
+- Reunion
...
Ca ne m'interesse pas du tout un calendrier quand je suis dans la categorie Tahiti, mais plutot quand je suis dans la categorie Vacances.
Devrait on regenerer page[items] avec toutes les photos dans toutes les categories filles ? (biensur en filtrant par rapport au GET[date])
Hors ligne
En mode de vue calendrier, le $page['items'] doit contenir tous les éléments directs et indirects. Sinon, aucun intérêt comme tu le soulignes. (et comme je le disais implicitement avec la façon de simuler le calendrier de la branche 1.5).
rvelices a écrit:
- si calling_page (il faut remettre ce parametre) est category on genere les barres de navigation du calendrier
Je ne sais pas trop où il faudrait mettre ce code. En tout cas, le paramètre $calling_page est inutile en fait, quelque chose comme :
if (basename($_SERVER["PHP_SELF"]) == 'category.php')
remplace l'écriture en dur de l'appelant.
Hors ligne
Hors ligne
Tu fais la version que tu proposais ou celle que je propose ? J'aimerais que tu regardes l'ergonomie que proposes Flickr sur les calendriers, c'est ce qui m'a inspiré, je trouve cela très bien fait (avec et sans vignette, etc.)
A mon avis, c'est un dev difficile, il va nécessiter plusieurs itérations.
Hors ligne
z0rglub a écrit:
Tu fais la version que tu proposais ou celle que je propose ?
Les 2 combinees: ta version avec un moteur utilisant une definition "generique" de la division du calendrier:
1. annee / mois / jour
2. annee / semaine de l'annee / jour de la semaine
...
z0rglub a écrit:
J'aimerais que tu regardes l'ergonomie que proposes Flickr sur les calendriers, c'est ce qui m'a inspiré, je trouve cela très bien fait (avec et sans vignette, etc.)
Je n'ai pas vu sans vignette, mais seulement une presentation par annee+mois / jour (http://flickr.com/explore/interesting/2006/02) ou jour (http://flickr.com/explore/interesting/2006/02/16/). Ca sera pas trop difficile de rajouter ca comme division "generique" du calendrier (annee+mois/jour).
z0rglub a écrit:
A mon avis, c'est un dev difficile, il va nécessiter plusieurs itérations.
Probablement. La premiere version va contenir le moteur avec une ergonomie/presentation minimale et ensuite j'attend votre retour sur l'ergonomie/presentation.
Hors ligne
La premiere version du calendrier est sous svn 1047.
- ne pas utiliser le lien Calendrier dans le menu Special, mais plutot "Toggle calendar" en haut a droite (question ouverte: comment devrait on presenter ce lien ?)
- la presentation html est moche pour le moment (les barres de navigation calendrier sont completes). J'espere avoir votre retour sur la presentation de ces barres.
- j'ai implemente 3 styles de calendrier: annee/mois/jour, annee+mois/jour et annee/semaine de lannee/jour de la semaine (on peut switcher dans la premiere barre de navigation Styles: ...)
- le bouton up ne marche pas encore dans picture.php
Un petit mot cote performances:
Je me suis rendu compte que MySql n'utilise pas les indexes dans une requete WHERE YEAR(date_creation)=2005 (d'autant moins dans une requete WHERE YEAR=.. AND MONTH=...).
A cause de la "genericite" du calendrier (3 styles possibles et on peut rajouter d'autres), les requetes ne sont pas (encore :-) ) optimisees. Par consequent, les requetes de generation de miniatures pour une periode donnee du calendrier peuvent prendre longtemps.
Hors ligne
rvelices a écrit:
Je me suis rendu compte que MySql n'utilise pas les indexes dans une requete WHERE YEAR(date_creation)=2005 (d'autant moins dans une requete WHERE YEAR=.. AND MONTH=...).
Normal, la majorité des SGBD n'utilisent pas un index quand une fonction est appliquée sur une colonne indexée.
essaie de transformer en plus simple pour le SGBD
date_creation BETWEEN '2005-01-01' AND '2005-12-31'
Pour la requête sur le mois:
Dans un premier temps essaie le between sur l'année et MONTH(date_creation) = '09' (remarque les quotes car sinon là encore toute conversion de format implique le non usage d'un index).
8-)
Hors ligne
En fait je viens de voir sur flickr de vues comme:
http://www.flickr.com/photos/shutterblo … /calendar/
http://www.flickr.com/photos/shutterblo … /calendar/
http://www.flickr.com/photos/shutterblo … /calendar/
http://www.flickr.com/photos/shutterblo … 11/detail/
C'est vraiment pas mal, mais un peu chiant a faire.
C'est ce que tu pensais avoir Pierrick ?
Hors ligne
(quand puis-je passer cet inestimable topic dans les discussions publiques ?)
rvelices a écrit:
[... à propos de la présentation ...]
Voici l'idée que j'avais à propos de tout ça, niveau présentation : sur la page principale, on est soit en vue liste, soit en vue calendrier.
En vue liste, la barre de navigation affiche :
- les propositions de tri, dans un select
- une icône pour passer en vue calendrier ![]()
En vue calendrier, la barre de navigation affiche :
- les styles de calendrier, dans un select
- une icône pour passer en vue liste (icône à trouver)
Pour la présentation des barres de calendrier, je propose tout simplement de s'inspirer très très fortement l'excellente navigabilité que Flickr propose avec son mode de navigation calendrier, vue liste (nous ne sommes pas capable de faire navigation calendrier en vue calendrier, ni vue détails). Voici ce que ça donne, en images :


Pour les 52 semaines du style de calendrier "ywd", les 52 liens passeront sur plusieurs lignes, pas grave à mon avis.
En tout cas, les trois styles sont vraiment une bonne idée :-) En ywd, il faudrait trouver quelque chose pour qu'on arrive à situer les jours de la semaine 23 par exemple. J'ai du mal personnellement à ne pas regarder un vrai calendrier pour vérifier à quel jours exacts cela correspond.
Un petit mot cote performances:
Je me suis rendu compte que MySql n'utilise pas les indexes dans une requete WHERE YEAR(date_creation)=2005 (d'autant moins dans une requete WHERE YEAR=.. AND MONTH=...).
En effet, pas d'index sur les function(colonne), c'est pour cela que j'ai utilisé la méthode que VDigital expose plus haut.
Hors ligne
(énorme rvelices... je rédigeais ma réponse pendant ton post, en lisant bien mon post, tu as la réponse)
Hors ligne
La vue mensuelle calendrier est impossible à faire dans PWG à cause de l'imprévisibilité du format des miniatures. La vue globale calendrier et la vue annuelle calendrier (avec uniquement des liens vers les dates, sans miniatures), c'est possible et assez sympa, mais comment intégrer cela simplement ? Dans un premier temps, je propose de se limiter à la proposition de mon précédent post.
Hors ligne