Saluer nos inscrits ou les surprendre

Avec Piwigo, dans votre thème personnel, vous aurez peut-être pris soin déjà de coder :

include_once(PHPWG_ROOT_PATH .'themes/mon_theme/include/functions.inc.php');

ou

include_once(PHPWG_ROOT_PATH .'local/php/functions.inc.php');

Alors sans le moindre plugin, vous pouvez compléter votre galerie de fonctions diverses et variées.
Continuer la lecture de « Saluer nos inscrits ou les surprendre »

É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 »

Concevoir des templates évolutifs

Piwigo utilise un système de templates pour générer des pages web. Un template est un morceau de code HTML dans lequel seuls quelques éléments d’information seront modifiés d’une utilisation à l’autre. Un template simplifie la plupart des adaptations.
Par contre, ce système pourrait vous priver d’une partie des évolutions de Piwigo. Si vous adaptez une partie d’une page web, et si celle-ci a besoin d’être complétée ou transformée par l’équipe de conception, alors votre adaptation pourrait masquer les nouveautés.

En comparaison, une application comme WordPress sans template vous privera des évolutions de thème, ou les évolutions effaceront toutes vos adaptations. En général les applications, qui n’utilisent pas de templates, auront beaucoup de thèmes mais ceux-ci resteront sans évolution.

Assurément, il n’y aurait pas de solution idéale.
Nous allons voir pour Piwigo comment coder un template évolutif dans un thème personnel. Continuer la lecture de « Concevoir des templates évolutifs »

La mise en œuvre de getParam()

Dans le cadre de Piwigo, la fonction getParam() expliquée dans cet autre billet va nous permettre de présenter des images en fonction de différents paramètres.

Avant tout, nous allons étudier où introduire cette fonction dans Piwigo. Cette fonction pourrait avoir sa place à plusieurs endroits, essentiellement dans :
– un plugin, et plus précisément plugins/PersonalPlugin/main.inc.php (également éditable en ligne par LocalFiles Editor), ou
– un thème, et plus précisément dans un themeconf.inc.php (mais ceux-ci ne sont pas éditables en ligne à ce jour).

Avec de bons arguments, je considère que sa place est dans le themeconf.inc.php, car l’appel de cette fonction concerne l’affichage final.
Si nous placions cette fonction dans un plugin, il ne faudrait jamais perdre de vue que le plugin devrait rester actif.
En le plaçant dans la configuration du thème, nous n’aurons qu’à créer des templates sur lesquels nous souhaitons agir différement.

Exemples dans un thème personnel. Continuer la lecture de « La mise en œuvre de getParam() »

Avec de bons arguments

Pour une utilisation dans Piwigo, mais cela pourrait également convenir à d’autres logiciels, je vous propose de découvrir une petite fonction PHP toute simple.

if ( !function_exists( 'getParam' )) {
  function getParam($name, $def = false) {
    if (defined('IN_ADMIN') and IN_ADMIN) return $def;
    foreach ( $_REQUEST as $k => $v ) {
      if ( is_string($k) and stripos( $k, $name ) > 0 )
        return trim(preg_replace("/[^0-9a-z\-_\.]+/i", " ", $k)); // Remove anything but 0-9,a-z,-_
      // permalink, category_url_style in 'id-name', picture_url_style in id-file
    }
    return $def;
  }
}

Avant de l’utiliser, je me propose une explication minimaliste.
Cette fonction PHP fait appel à un preg_replace et une expression rationnelle.
L’objectif est de conserver uniquement les caractères comme le point, la virgule, les 2 tirets (- et _), les lettres (minuscules ou majuscules, mais pas les lettres accentuées) et les chiffres.
Par exemple, supposons que nous ayons ceci :

$_POST['avant'] = 'Quel 1er_paramètre ? Un argument';
echo getParam('avant');

alors nous devrions avoir en retour :

Quel 1er_paramtre   Un argument

L’intérêt sera de sécuriser votre site lors de l’appel à cette fonction.

Découvrir la mise en œuvre de cette fonction.