Pour le titre du menu, je propose: "browse by tags" ou "show tags" plutôt que "tags".
Quand j'ai vu tags, je me suis dit "c'est pour en ajouter", alors que c'est pour naviguer...
Idéalement (si ce n'est déjà fait), une conf pour afficher le "related tags" par défaut. le niveau 0 correspondant au panneau complet. On peut limiter de même l'affichage des tags à un certain nombre ou en fonction du poids.
z0rglub a écrit:
rvelices a écrit:
Pierrick, je me suis rendu compte que sur la page de recherche, la liste de tags n'est vraiment pas facile a utiliser pour trouver un. Mais je n'ai pas d'idee claire d'un meilleur moyen.
Ce que j'avais prévu, mais pas encore implémenté, c'est dans la fonction include/functions_html.inc.php::get_html_tag_selection de pouvoir, selon un $conf['checkboxes_to_multiselect_tags_threshold'] (à 50 par exemple) pouvoir switcher entre la liste de checkboxes et un multiselect de N lignes de haut. Ton avis ?
une première solution simple, est de stocker les tags dans un tableau imbriqué. C'est pas très propre d'un point de vue HTML, mais ça fait de beaux alignements (lecture facilitée).
Sinon, ne mettre que les N tags de poids fort (ou les N premiers) et avoir un lien "more..." qui amène un popup avec la totale ou un reload de la page avec un get pour afficher tous les tags.
oui, c'est de l'AJAX. Pas pour la 1.6, on ne sera pas prêt. Pour la 1.7, on pourra y réfléchir.
J'ai trouve un autocomplete assez interessant: full javascript ou google suggest.
Ca donne des idees peut etre ...
z0rglub a écrit:
Ce que j'avais prévu, mais pas encore implémenté, c'est dans la fonction include/functions_html.inc.php::get_html_tag_selection de pouvoir, selon un $conf['checkboxes_to_multiselect_tags_threshold'] (à 50 par exemple) pouvoir switcher entre la liste de checkboxes et un multiselect de N lignes de haut. Ton avis ?
Je ne pense pas que ca va resoudre mon probleme. Effectivement ca va reduire l'espace occupe sur la page, mais ca sera encore plus difficile de trouver un tag (le meme probleme que sur le select des categories - quand on en a 1000 - c'est difficile a selectionner les bonnes meme si on connait bien la structure).
Peut etre un iframe ou un div avec un scroll bar ou que on peut montrer/cacher ?
C'est peut etre pas le bon topic, mais je pense que la recherche des mots (premier input sur la page) devrait automatiquement regarder dans les tags, le nom et la description des categories (une recherche simplifiee). Cette recherche simplifiee pourra etre affinee en specifiant auteur,tag,date,...
Sinon je committe ce soir mes dernieres (je promet!) ameliorations avant la 1.6 : ajout de 2 index (#tags.url_name et #image_tag.tag_id), urls avec seulement #tags.url_name (le meme nombre de requetes SQL qu'avant et en cas de non unicite, tous les tags avec le meme url_name seront montres) et finalement possibilite d'avoir les urls de categories comme /category/123-mes_vacances.
rvelices a écrit:
Pierrick, je me suis rendu compte que sur la page de recherche, la liste de tags n'est vraiment pas facile a utiliser pour trouver un. Mais je n'ai pas d'idee claire d'un meilleur moyen.
Ce que j'avais prévu, mais pas encore implémenté, c'est dans la fonction include/functions_html.inc.php::get_html_tag_selection de pouvoir, selon un $conf['checkboxes_to_multiselect_tags_threshold'] (à 50 par exemple) pouvoir switcher entre la liste de checkboxes et un multiselect de N lignes de haut. Ton avis ?
rvelices, sur ton site, ça rend vraiment bien la classification par tag :-) Beaucoup mieux que sur ma galerie de développement ! (je suis très content)
Vas-y rvelices, je ne l'ai volontairement pas fait parce que je préfère passer des identifiants numériques dans les URL et que #tags.url_name n'a pas de contrainte d'unicité (contrairement à #tags.name qu'on ne peut pas passer dans un URL).
Eric, j'ai mis un exemple ici. Voir la page tags.
Pierrick, je me suis rendu compte que sur la page de recherche, la liste de tags n'est vraiment pas facile a utiliser pour trouver un. Mais je n'ai pas d'idee claire d'un meilleur moyen.
Et une derniere chose: vois-tu un incovenient a ce que je developpe la possibilite des url tags/animals a la place de tags/3-animals (configurable biensur) ? Est-ce que j'ai 24 heures avant la branche 1.6 ?
z0rglub a écrit:
(à propos de la double requête) Alors si je me souviens bien... j'ai cherché à faire une seule requête mais je n'ai pas réussi. Voyons pourquoi...
Dans ton exemple, le poids (counter) d'un tag augmente si les images auquel il est associé sont liées à de nombreuses catégories, or ce n'est pas ce qu'on veut. On ne veut se servir des catégories que pour déterminer l'accessibilité à l'image. J'espère ne pas dire n'importe quoi, mais il me semble que c'est correct :-)
T'as 100% raison ... Encore une fois j'ai ete trop vite.
... et sinon OK pour limiter à 5 levels. Dans mon exemple, j'avais écrit un script Perl qui remplissait les tables #tags et #image_tag, malheureusement de manière uniforme. Chaque tag avait à peu près le même poids.
(à propos de la double requête) Alors si je me souviens bien... j'ai cherché à faire une seule requête mais je n'ai pas réussi. Voyons pourquoi...
Dans ton exemple, le poids (counter) d'un tag augmente si les images auquel il est associé sont liées à de nombreuses catégories, or ce n'est pas ce qu'on veut. On ne veut se servir des catégories que pour déterminer l'accessibilité à l'image. J'espère ne pas dire n'importe quoi, mais il me semble que c'est correct :-)
Pierrick,
J'ai pense a une optimisation dans la fonction get_available_tags:
A la place de 2 requetes (si $forbidden_categories n'est pas null), ce n'est pas plus rapide de faire une seule comme:
SELECT tag_id, name, url_name, count(*) as counter FROM pwg_image_tag it INNER JOIN pwg_tags ON tag_id = id, pwg_image_category ic WHERE ic.image_id=it.image_id AND ic.category_id NOT IN (351,355) GROUP BY tag_id
On rajoute: , pwg_image_category ic
WHERE ic.image_id=it.image_id
AND ic.category_id NOT IN (351,355)
Ca devrait marcher pour tous les MySql ...
vimages a écrit:
as tu un exemple visible ?
Juste sur ma machine en local malheureusement.
as tu un exemple visible ?
:o)
merci
eric.