Éviter les icones sous forme de balise img

Piwigo jusqu’à présent propose des icones sous la forme de balises <img …>, c’est pourtant ce qu’il conviendrait d’éviter pour plusieurs raisons.

Pourquoi est-ce une erreur?

1 – En cas d’erreur lors du transfert de l’image, la balise est affichée sous forme d’une petite croix rouge par la majorité des navigateurs.
2 – Les moteurs de référencement cherchent à référencer les images, or trouver des petites images identiques sur des milliers de sites conduit immanquablement à appliquer une décote sur l’intérêt de nos sites.

Quelle est la portée de cette erreur?
Les templates du thème par défaut devraient être une fois encore révisés, car ceux-ci entrainent dans la même erreur les autres thèmes et leurs templates, sans compter les plugins qui ajoutent d’autres templates répétant tous ou presque cette même erreur.
Au moins une vingtaine de fichiers sont concernés, il vous suffit d’effectuer une recherche de class="button" ou de "icon" ou encore de "navButton" dans le répertoire themes/default/template/ pour vous en convaincre.
Continuer la lecture de « Éviter les icones sous forme de balise img »

S’affranchir des templates-extensions

Piwigo par le biais de son prédécesseur PhpWebGallery avait intégré un principe assez mal compris, celui des templates-extensions (T-E.).
Le principe était alors simplement décrit et devait encore être codé, ce que j’ai réalisé dans Piwigo 2.0.

Les T-E. de Piwigo étaient sensés permettre vos adaptations tout en autorisant les évolutions des templates standards. Donc de permettre d’identifier rapidement les différences. Afin que les évolutions puissent être également appliquées à vos adaptations.
Les T-E. sont ni plus ni moins que des templates qui sous certaines conditions remplacent les templates standards.

Pour identifier rapidement les différences, il aurait été nécessaire de proposer un outil de comparaison entre chaque T-E. et son template d’origine. Ceci afin que les évolutions soient rapidement prises en compte. Continuer la lecture de « S’affranchir des templates-extensions »

Economie de plugins

Patrice, dit P@t pour les intimes, nous offre un merveilleux site essentiellement sur la Nouvelle Calédonie.
Par ailleurs, il partage ses solutions à base de Plugins et nous l’en remercions pour ses accords parfaits.

Pour autant, il n’est pas vain de comprendre comment faire l’économie d’un plugin dit «personnel» et pour ce faire, nous prendrons un exemple proposé par P@t.

Bien entendu, cela ne sera pas toujours aussi évident et il ne faut surtout pas appliquer cette solution de façon systématique. Dès lors que vous avez des requêtes SQL, il sera préférable de choisir une solution par plugin.

Exemple proposé par P@t:

add_event_handler(&#39;init&#39;, &#39;assign_template_permission_level&#39;);
function assign_template_permission_level()
{
  global $user, $template;
  $template->assign(&#39;USER_LEVEL&#39;, $user[&#39;level&#39;]);
}

et dans le template:

{if $USER_LEVEL >= 1}
Vous avez été reconnu par le webmaster comme une personne ayant plus de droits que d&#39;autres...
{/if}

C’est effectivement très simple. Qu’à cela ne tienne !
C’est tellement simple que tout ceci peut très bien être réalisé directement dans le template…

{php}
global $user;
$this->assign(&#39;USER_LEVEL&#39;, $user[&#39;level&#39;]);
{/php}
{if $USER_LEVEL >= 1}
Vous avez été reconnu par le webmaster comme une personne ayant plus de droits que d&#39;autres...
{/if}

Moins d’«handler», moins de conflits et d’erreurs. C’est encore plus simple.
Je n’explique pas toutes les justifications techniques mais assurément aujourd’hui, c’est bien la direction à prendre pour éviter le plat de spaghettis (ou sans le ‘s’ à l’italienne) à la sauce plugins.

Qu’on se le dise! Mais qu’on ne se le tienne pas pour dit, enfin au moins, cette fois c’est écrit!

Whois Online : côté template

«Whois Online» propose une solution d’affichage des indications obtenues (Cf. Les grandes lignes). Pour autant, vous désirez peut-être insérer ailleurs quelques uns de ces éléments. À la surprise générale, vous n’obtiendrez aucun élément dans certains cas. En effet, il se peut que votre template soit traité avant l’appel de «Whois Online», et dans ce cas, vous ne pourrez pas afficher ces indications. Exemple: La page about.php (A propos) ne sollicite pas le plugin, et elle ne peut pas afficher ces indications. En supposant que votre template soit analysé et résolu après l’appel du plugin, vous pourrez coder celui-ci de la façon suivante:

&lt;balise attribut="valeur"&gt;{'Exemple d\'utilisation :'|@translate} {$Whois.indication}&lt;/balise&gt;

{$Whois.indication} est un exemple, et à la place de « indication » vous avez le choix suivant:

Total Nombre de visites de toutes les pages suivies (Index / Picture).
Image Nombre de visites de la page picture.php
Other Différence entre les deux précédentes valeurs.
Current_minute Nombre de visite depuis le début de la minute actuelle (prise sur le serveur), cette minute fait donc entre 1 seconde et 1 minute (à 21:12:53, la minute ne fait que 54 secondes).
Previous_minute Nombre de visite de la minute précédente (à 21:12:53, il s’agit des visites comprises entre 21:11:00 et 21:11:59).
Current_5mins Visites des 5 dernières minutes en cours (à 21:12:53, il s’agit des visites comprises entre 21:08:00 et 21:12:53).
Current_10mins Visites des 10 dernières minutes en cours (à 21:12:53, il s’agit des visites comprises entre 21:03:00 et 21:12:53).
Current_hour Visites des 55 minutes et un peu plus.
Current_24h Visites des 1380 minutes et un peu plus.
Yesterday Visites de la journée d’hier (Calendaire).
Users_Last_day Nombre de visiteurs des 24 dernières heures à la seconde près.
Users_Last_hour Nombre de visiteurs des 3600 dernières secondes.
Guests Nombre de visiteurs non connectés qui ont été actifs durant les 5 dernières minutes (ils regardent, passent un coup de fil, sont sur une autre application, consultent un autre site, de toute façon, ils peuvent ou non revenir dans une seconde) au-delà c’est déjà peu probable.
Online Liste des membres connectés (et pas un nombre) durant les 5 dernières minutes.
Review_url Lien (href=) vers la page d’index des images que les autres visiteurs ont consultées mais pas l’actuel visiteur en tenant compte de ses droits (ce paramètre peut être non renseigné), il est possible d’y trouver des images déjà vues mais pas si elles sont dans Seen_url.
Their_ids (tableau) identifiants des images correspondantes à Review_url.
Seen_url Lien (href=) vers la page d’index des images que le visiteur vient de consulter (ce paramètre peut être non renseigné).
My_ids (tableau) identifiants des images correspondantes à Seen_url.

En complément, vous avez également {$Online.xxxxxxx} et comme pour {$Whois.xxxxxx} vous pouvez activer le plugin standard « Multi view » qui permet lancer la « Smarty Debug Console ». A l’aide de cette dernière, vous pourrez retrouver toutes les variables disponibles à l’issue du traitement de chaque page.