Objectif
Le script liste le nom de chaque rédacteur sur une page choisie. Les liens permettent l’ouverture d’une fenêtre pop-up qui contient un formulaire généré par la balise #FORMULAIRE_ECRIRE_AUTEUR
de Spip, et permet d’envoyer un email.
La boucle d’affichage des auteurs et du lien pour leur envoyer un message
<BOUCLE_mail_auteur(AUTEURS) {id_auteur}{tout}>
<?php if ("#EMAIL") { ?>
<a
href="inc_ecrire_auteur.php3?id_auteur=#ID_AUTEUR" target="mail"
title="<:envoyer_message:>"
onclick="javascript:window.open('inc_ecrire_auteur.php3?id_auteur=#ID_AUTEUR', 'mail', 'scrollbars=yes, resizable=yes, width=640, height=640'); return false;">
[ (#NOM)]</a>
<?php } else { ?>
[ (#NOM)]
<?php } ?>
</BOUCLE_mail_auteur>
Le paramètre {tout}
Le paramètre {tout}
permet de lister tous les rédacteurs, qu’ils aient écrit quelque chose ou pas. (voir l’article 907)
Il faut bien vérifier dans tout le site qu’il n’y ait plus de #EMAIL qui apparaissent.
La page avec le formulaire
Le fichier inc_ecrire_auteur.php3 :
Le inc_ecrire_auteur.php3 est un fichier .php3 à 1 mois (30*24*3600 secondes) de
délais, il n’est absolument pas nécessaire de mettre un délai court.
Son squelette inc_ecrire_auteur.html :
Son squelette inc_ecrire_auteur.html se contente d’afficher la mise en page avec une simple boucle AUTEUR{id_auteur}
et #FORMULAIRE_ECRIRE_AUTEUR
Le voici : adaptez le à cotre convenance.
J’ai placé des commentaire dedans.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<BOUCLE_ecrire_auteur(AUTEURS){id_auteur}{tout}>
<html lang="#LANG">
<head>
<title>Écrire à #NOM</title>
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET">
<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP -->
<link rel="stylesheet" href="spip_style.css" type="text/css">
<!-- Les feuilles de style specifiques aux presents squelettes -->
<link rel="stylesheet" href="typographie.css" type="text/css">
<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) -->
<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv">
<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur -->
<link rel="stylesheet" href="impression.css" type="text/css" media="print">
</head>
<body dir="#LANG_DIR" OnLoad=self.focus()>
<div class="cartouche">
<h1 class="titre-texte">Écrire à #NOM</h1>
</div>
<div class="texte">
[(#FORMULAIRE_ECRIRE_AUTEUR|sinon{"Ce rédacteur ne peut pas être contacté de cette façon"}) ]
</BOUCLE_ecrire_auteur>
<//B_ecrire_auteur>
</div>
</body>
</html>
Démonstration
J’utilise ce pluggin dans ce site http://espace.jdr.ath.cx
Utilisation
Quand vous avez besoin d’afficher les auteurs de l’article avec un lien vers leur formulaire, il suffit de placer la ligne suivante à l’intérieur de la boucle article :
<INCLURE(inc_lien_ecrire_auteur.php3){id_auteur}>
Il faudrait améliorer cela pour qu’un message soit envoyé dans la partie privée si le rédacteur n’a pas mis d’e-mail.
Autres utilisations... :
Vous pourriez utiliser d’autres champs du rédacteur, ou bien les champs EXTRA
pour permettre au rédacteur de spécifier une autre adresse e-mail pour recevoir les messages des visiteurs.
améliorations à faire
Je me suis inspiré de la fenêtre qui s’ouvre pour permettre de recevoir ses identifiants par e-mail quand on les a oubliés.
Il faudrait que cette fenêtre pop-up soit refermée et crée, parce que si elle est déjà ouverte mais masquée cela peut poser quelques problèmes quand on a un système anti popup. (la fenêtre ne viendrait pas au premier plan, cela donnerait l’impression que le lien ne fonctionne pas.)
L’autre solution consiste à nommer différement la fenêtre, par exemple mail#id_article
.
Grégoire
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |