docs.jmini.fr

Les docs Jmini

Les docs jmini regroupent mes notes personnelles plus ou moins détaillées que je souhaite partager. Compilations de liens, tutoriels, réalisations pense-bêtes, morceaux de codes...
Autant d’informations que je retrouve sur mon site et qui pourront vous être utiles. En savoir plus...



Publié par Jérémie Bresson dans les docs Jmini (http://docs.jmini.fr) à l’adresse (http://docs.jmini.fr/code/hack-xoops-ordre-image-manager).


Dernière mise à jour : Vendredi 27 juillet 2007

[HACK XOOPS] Ordre dans l’Image Manager

Ce Hack pour Xoops (2.0.x), permet de changer l’ordre d’affichage dans Image Manager. Comme tous les hacks (modification directe du code d’une application toute faite), il s’adresse à un public averti et la modification doit être refaite sur chaque mise à jour.


Par défaut, le manager d’image utilise le poids assigné à chaque image pour les classer. Cette fonctionnalité ne convenait pas du tout à la manière dont je me sers du manager. En effet, j’ajoute une photo pour mon article (ça la télécharge sur le site), et je m’en sers… Comme les derniers fichiers se retrouvaient toujours à la fin, cela ajoutait à chaque fois quelques clics avant d’avoir l’image en question. Je voulais donc avoir un tri par date d’upload, avec la plus récente en première.

Attention : l’installation de ce Hack est à vos risques et périls. N’oubliez pas de le remettre après une mise à jour de xoops.

Configuration de test :

  • Xoops 2.0.16
  • TinyEditor 1.0

Image Manager

Ma solution est simple :

Il faut ajouter deux lignes pour indiquer le tri désiré au moment de la requête SQL sur la base de données :

  • le nom de la table sur lequel on fait le tri (voir ci-dessous toutes les possibilités, dans mon cas : ‘image_created’)
  • si celui-ci est ascendant (‘ASC’) ou descendant (‘DESC’).

La requête SQL n’est pas écrite directement, mais à partir d’une instance ($criteria) de la classe : CriteriaCompo. Il faut donc se servir des méthodes setSort($sort) et setOrder($order) de l’objet.

Ce qui donne les deux lignes suivantes :

//HACK : ordre d'affichage : plus récente en premier
$criteria->setSort('image_created');
$criteria->setOrder('DESC');
//FIN_HACK

Ces lignes se placent au même niveau que les autres « $criteria->… » dans le fichier site_xoops/imagemanager.php. À savoir juste après la ligne 90 :

$criteria->setSort('image_created');

et avant :

$storetype = $imgcat->getVar('imgcat_storetype');

Image Manager dans TinyEditor

Si vous utilisez l’excellent éditeur WYSIWYG TinyEditor avec le manager d’image xoops, il faut savoir que celui-ci a été réécrit pour ce module. Les 2 lignes de code sont à insérer dans le fichier site_xoops/modules/tinyeditor/editor/plugins/ximagemanager/tinyedimagemanager.php, de la même manière : entre la ligne 114 :

$criteria->setSort('image_created');

et

$storetype = $imgcat->getVar('imgcat_storetype');

 

Critères de tri

La table qui stoque les images contiens les champs suivants (chacun d’entre eux est utilisable comme clé pour le tri) :

  • image_id : clé unique de l’image (il s’agit d’un nombre entier donné dans l’ordre croissant au fur et à mesure des ajouts)
  • image_name : nom de l’image (il est généré aléatoirement au moment du téléchargement sur le serveur)
  • image_nicename : nom d’affichage de l’image (c’est celui qui est indiqué lors du téléchargement et qui correspond à la colonne de droite dans le manager)
  • image_mimetype : type du fichier (image/gif, image/png, image/jpeg …)
  • image_created : date de création (sous forme d’un timestamp unix)
  • # image_display : 1 si l’image doit être affichée (aucun intérêt pour le tri, l’utilisateur ne voit de toute façon que les images dont le image_display est à 1 )
  • image_weight : poids de l’image (sur ma configuration de test, ce champ n’est pas renseigné… S’agit-il d’un bug)
  • # imgcat_id : identifiant de la catégorie à laquelle appartient l’image (aucun intérêt pour le tri, l’utilisateur ne voit de toute façon que les images dont la catégorie est celle qui a été choisie. )

Voir aussi

Les mots-clés de cet article : , , ,

Cet article est dans la catégorie : Code


© 2007-2024 Jérémie Bresson | jmini.fr | Ce site est sous licence Creative Commons - en savoir plus