Pourquoi ne peut-on pas insérer du code Smarty dans la bannière des pages de Piwigo ?

Hors-sujet : Indiquer l’url de la galerie est un peu étrange, devoir coder soi-même des balises en réutilisant en général ces mêmes informations relève d’une logique perturbante.

Revenons à la question initiale : poursuivre la lecture…

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.
poursuivre la lecture…

De fête à la grenouille, vous diraient bien des gens.
En tant photographe amateur, je vous invite à découvrir mon dicton très personnel :

Quand la météo est à la pluie, laisse ton appareil dans son étui.

Quand le temps se joue de nous, il nous reste la chanson:

Señor Météo
Quando dit qu’il fait beau
Señor Météo
A glagla quel frigo !
Quando mi transistor esperansa calor
Il a tort !
Que dolor

Claude Lemesle / Joe Dassin en 1974
Depuis la météorologie a fait beaucoup de progrès, il faut bien le reconnaître.

Traduit et adapté de l’article Using Ajax with WordPress de C. Bavota (avec son aimable autorisation).

Il y a quelques temps, C. Bavota a publié une révision du thème « Magazine Basic » incluant une fonction d’enregistrement en Ajax. Dans l’attente de réactions suite à sa publication sur WordPress, il a obtenu des informations sur la façon d’intégrer Ajax en utilisant le module admin-ajax.php au lieu du code qu’il avait utilisé. Toutes les fonctions principales en Ajax de WordPress s’appuient sur admin-ajax.php, et sa mise en œuvre pour des scripts personnalisés est extrêmement simple.
poursuivre la lecture…

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.
poursuivre la lecture…

Remarque liminaire : La technique suivante ne devrait être utilisée que dans des cas très précis, nous aurons l’occasion d’en aborder certains prochainement.

Condition : Le texte doit être délimité par une balise HTML (<span> ou une autre).

Exemple:

<div class="headerMain">
  <h1><a href="http://www.vdigital.org/sharing">Qu&#039;une petite étincelle brille au fond de vos yeux !</a></h1>
</div>

Quelques uns des avantages de cette astuce :

- L’absence de script assure un affichage immédiat avec les autres éléments de la page.
- Le HTML d’origine reste simple, sans aucune modification.
- S’il s’agit d’un lien, il demeure utilisable.
- Pour les moteurs de recherche, le texte étant présent c’est lui qui est analysé et référencé.
- En contre partie, l’image ne sera pas référencée.

poursuivre la lecture…

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. poursuivre la lecture…

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. poursuivre la lecture…

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. poursuivre la lecture…

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.