var Phenix = function () {
Troll du Web depuis 1996

SPIP

Actualiser le cache de #SPIP

Je n’ai trouvé de documentation sur cela nulle part, comme souvent avec SPIP malheureusement.

Le cache de SPIP est très puissant, mais souvent, quand on fait des modifications, on voudrait actualiser rafraichir ce cache.
Pour une raison ou pour une autre, dans mon cas c’était un formulaire de modification d’objet, mais il peut y avoir plein d’autres raisons de rafraichir le cache.

Au lieu de vider ou de recalculer, on peut simplement demander à SPIP d’invalider le cache :

  1. // On invalide les caches
  2. include_spip('inc/invalideur');
  3. suivre_invalideur("id='$objet/$id_objet'");

$objet c’est le type d’objet : article, rubrique, brève, ou même un objet créer via un plugin.
$id_objet, je pense que je ne dois pas expliquer quand même !

Je pense que cette fonction est bien plus puissante que cela, mais dans mon cas ça me suffit, si vous voulez compléter, lâchez-vous !


Modifier la carte d’identité d’un site #SPIP

Voici le premier tutoriel sur SPIP, et certainement pas le dernier vu comment, ce CMS est absolument magique.

Intro

Tous les sites SPIP sont livrés, par défaut, avec une carte d’identité : le titre du site, le slogan, l’email du webmaster, etc.
En gros par défaut, cela ressemble à cela :

Dans la plupart des cas, cela suffit largement au site. Toute fois dans certains cas, on voudrait étendre les possibilités de cette carte d’identité.

Éditer le formulaire

La première chose que l’on va faire, c’est éditer le formulaire pour ajouter les champs dont on à besoin. Le fichier se trouve dans prive/formulaires.

On copie donc configurer_identite.html et configurer_identite.php dans un dossier squelettes/formulaires. Cela a pour effet de les surcharger (voir la notion de chemin dans SPIP).

Ouvrez le fichier configurer_identite.html, vous y trouverez toute une série de li contenant des champs de formulaire.

Ajoutez-y votre champ, ici je vais ajouter un champ « téléphone de la billetterie » :

  1. #SET{name,billetterie_telephone}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}#SET{obli,''}
  2. <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
  3. <label for="#GET{name}">Téléphone billeterie</label>
  4. [<span class='erreur_message'>(#GET{erreurs})</span>]
  5. <input type='text' class='text' name='#GET{name}' id='#GET{name}' value="#ENV{#GET{name}}" />
  6. </li>

Si vous retournez sur votre page, vous constaterez qu’un nouveau champ est disponible. En revanche, il ne fonctionne pas.

En effet, SPIP n’est pas au courant qu’il doit créer ce champ dans la base de données, il faut lui dire. Pour cela, ouvrez le fichier configurer_identite.php

Dans ce fichier vous trouverez 2 foreach de ce type (ligne 21 et 49) :

  1. foreach(array('nom_site', 'adresse_site', 'slogan_site', 'descriptif_site', 'email_webmaster') as $k)

Ajoutez dans le tableau votre nouveau champ :

  1. foreach(array('nom_site', 'adresse_site', 'slogan_site', 'descriptif_site', 'email_webmaster', 'billetterie_telephone') as $k)

Rien de plus à faire, votre champ est maintenant fonctionnel !

Créer la balise

Maintenant, on va créer la balise qui va avec ce champ, dans un fichier mes_fonctions.php (a mettre à la racine de votre dossier squelettes) :

  1. /*
  2. * Balise #BILLETERIE_TELEPHONE
  3. */
  4. function balise_BILLETTERIE_TELEPHONE_dist($p) {
  5. $p->code = "\$GLOBALS['meta']['billetterie_telephone']";
  6. return $p;
  7. }

Voilà, il ne reste plus qu’à utiliser #BILLETERIE_TELEPHONE où bon vous semble dans vos squelettes SPIP. Bien sûr tous les filtres fonctionneront également !


Adieu #Wordpress, Bonjour #SPIP !

Voilà ! C’est fait ! L’ensemble de ce site a été migrer sous SPIP 3.0.5 !

D’ailleurs, je mettrais surement en ligne le plug-in qui a servi à faire la migration, c’est fait maison et ça marche pas mal !

Mais pourquoi ?! Pourquoi quitter Wordpress ?!
Bonne question...

  • Parce que SPIP est l’outil que j’utilise professionnellement, je le connais bien mieux que Wordpress. De plus, c’est pas mal de se retrouver du côté utilisateur plutôt que du côté développeur pour une fois.
  • Parce que les performances de Wordpress sont en chute libre depuis pas mal d’années. En grande partit à cause de l’absence de système de cache. Mais aussi du code de Wordpress en général.
  • Parce que l’éditeur de texte de Wordpress me casse les burnes depuis un moment a faire n’importe quoi...
  • Parce qu’il y en a marre de passer 2 jours à chercher LE plug-in qui fait ce dont tu as besoin...
  • Parce qu’il y en a marre de ce que j’appelle des « Junk plug-in » : des plug-ins qui appelle au don, qui colle de la pub, qui ont une interface dégueulasse... Bref, des plug-ins de merde...
  • Parce que Dieu seul sais pourquoi, mais j’avais un référencement de merde et des problèmes de robot.txt sous Wordpress...

Bref, autant de raisons qui m’ont fait migrer sous SPIP.
Promit, la VOO saga va revenir ^^ parce que bien entendu, ça ne marche pas comme je veux !

Par contre, j’ai pas réussi à migrer les commentaires... Mais c’est pas trop grave, c’était presque pas utilisé, les réactions sont plus nombreuses sur Twitter et FaceShit.


Sublime-SPIP

Sublime-SPIP est un plugin pour Sublime text 2 , mon éditeur de code préféré pour le moment.

alpha_ui_large-650x433.png

Ce plugin ajoute le langage spécifique au CMS SPIP grâce à une collection de snippet. Il ajoute également les balises spécifiques aux squelettes de spip.

Ce plugin permet :

  • Création rapide de Boucle SPIP via le raccourci BOUCLE (tapez BOUCLE puis faite ctrl+espace)
  • L’autocomplétion des balises SPIP.
  • L’ajout de critère dans les boucles spip.
  • Deux snippets pour créer rapidement des formulaires CVT spip.
  • Un snippets pour créer rapidement un fichier de langue spip.
  • L’autocomplétion de certaines fonctions PHP de spip.
  • L’autocomplétion des filtres SPIP.

Ce plugin est disponible sur mon GitHub.

sublime-<span class="caps">SPIP</span>.png
Download