Voici une petite noisette et une fonction qui répondent à un besoin qui avait déjà été formulé dans les forums de SPIP et sur la liste des utilisateurs. Quel est le besoin ? Avertir un auteur qu’il a reçu un message privé depuis la partie publique d’un site SPIP. Pour y arriver, nous allons avoir besoin de la balise session qui est disponible sous forme de plugin.
Première étape, créez un fichier inc-message.html et collez-y ce code :
#CACHE{0}
[(#SESSION{id_auteur}|avertissement_messagerie_compatible)]
Puis collez ce code dans le fichier mes_fonctions.php afin de définir le filtre avertissement_messagerie_compatible :
<?php
//1
charger_fonction('commencer_page', 'inc');
//2
function avertissement_messagerie_compatible($id_auteur){
//3
$GLOBALS[connect_id_auteur] = $id_auteur;
//4
return avertissement_messagerie($id_auteur);
}
?>
Ensuite, il suffit d’inclure la noisette inc-message dans les squelettes de son site comme ceci :
<INCLURE{fond=inc-message}>
Le code de la fonction
Description du code de la fonction qui définit le filtre avertissement_messagerie_compatible :
- on charge le fichier inc/commencer_page.php à l’aide la fonction charger_fonction (voir la doc de cette fonction sur doc.spip.org)
- on définit la fonction du filtre avertissement_messagerie_compatible qui recevra comme paramètre l’id_ateur généré par la balise
#SESSION
. - on affecte la valeur de la variable id_auteur à la variable globale connect_id_auteur qui sera utilisée dans la fonction avertissement_messagerie
- on appelle la fonction avertissement_messagerie en lui passant quand même le paramètre id_auteur pour compatibilité avec la version SVN de SPIP. En effet, la fonction avertissement_messagerie est différente dans cette version de SPIP.
Dans la version 192 on a : avertissement_messagerie()
Et dans la version SVN : avertissement_messagerie($id_auteur)
La fonction avertissement_messagerie_compatible est un filtre intermédiaire qui passe la variable id_auteur à la fonction avertissement_messagerie. Cela permet au filtre de fonctionner avec la version 192 et la version SVN. De plus, le plugin balise session n’est pas nécessaire avec la version SVN car cette balise y est disponible par défaut.
Merci beaucoup à Fil pour toutes ces informations.
Messages
22 novembre 2007, 15:50, par Soon7
désolé d’être un boulet mais c’est histoire d’être sur, au final, ce inclue :
doit donc bien être dans inclus dans la partie publique du site.
Mais par exemple pour un spip clear, il vaut mieux le mettre où ? dans post.html ? ou on peut le mettre dans n’importe quel squelette et ça va fonctionner ?
Voir en ligne : blog d’un webmaster de Martinique
23 novembre 2007, 11:46, par bb
Bonjour,
Tout dépend de l’endroit où tu veux afficher l’avertissement "Vous avez un nouveau message" dans tes pages publiques... Par exemple, si tu place le inclure dans le fichier sidebar.html le message sera affiché dans la barre latérale de ton site.
Bon courage ++