Spip’eur - Scripts, articles, ressources, astuces pour SPIP
  
Vous êtes ici : Accueil > Spip > Spip hébergé chez Free
Articles, ressources, documents, solutions propres à l’hébergement d’un site SPIP chez Free.Vous utilisez un site Spip hébergé chez Free, cette rubrique est là pour vous, vous y trouverez des articles, ressources, documents et solutions propres à l’hébergement d’un site SPIP chez Free.
Spip
  Astuces pour sites ’Spiper’
  Boucles et modules pour Spip
  Spip hébergé chez Free
Logiciels
  Outils internet
  Programmation
  Scripts PHP
  Utilitaire
 
 
Dans le même thème
 
Dans la même rubrique
 
Vu sur Google

Etre averti lors de l’envoi de commentaire

Par Eric, le lundi 22 décembre 2003. Version imprimable   Envoyer cet article à un(e) ami(e)  
Votre site est hébergé chez Free, voici comment vous pouvez utiliser le script form2mail de free pour être averti lorsqu’un visiteur poste un nouveau message dans le forum associé à un article.

La fonction PHP mail() est maintenant disponible chez free, pour en savoir plus, consulter cet article

Vous désirez (en tant que propriétaire d’un site SPIP hébergé chez Free) être averti lorsqu’un visiteur poste un nouveau message dans le forum associé à un article, voici comment utiliser le script form2mail de free pour y arriver.(Les modifications décrites ici sont basées sur la version 1.6 de SPIP).

Le principe consiste à brancher l’exécution de 2 scripts différents quand un visiteur cliquera sur le bouton ’Message définitif : Envoyer au site’.
Voici la marche à suivre pour y parvenir :

-  Editer le fichier ./inc_forum.php [1]
-  Localiser la fonction retour_forum() dans laquelle nous allons effectuer toutes les modifications décrites ci-après
-  Localiser les lignes


$ret .= "\n<a name='formulaire_forum'></a>\n";
$ret .= "\n<FORM ACTION='$lien' METHOD='post'>";
   Modifier cette portion comme :

$ret .= "\n<a name='formulaire_forum'></a>\n";
$form4free=false; // Pour ajouter le formulaire invisible de free uniquement quand le bouton 'envoyer est présent
$ret .= "\n<FORM ACTION='$lien' METHOD='post'>";

-  Un peu plus bas, localiser les lignes

if (!$nouveau_document AND $afficher_texte != 'non'){
   $ret .= "<div class='spip_encadrer'>";
   if ($afficher_texte != "non"){
   Modifier cette portion comme :

if (!$nouveau_document AND $afficher_texte != 'non'){
   $ret .= "<div class='spip_encadrer'>";
   $form4free=true; // On doit ajouter le formulaire free
   if ($afficher_texte != "non"){

-  Toujours peu plus bas, localiser les lignes

if (strlen($texte) < 10 AND !$presence_mots)
 $ret .= "<p><div align='right'><font color=red>"._T('forum_attention_dix_caracteres')."</font></div>\n";
else if (strlen($titre) < 3 AND $afficher_texte <> "non")
 $ret .= "<p><div align='right'><font color=red>"._T('forum_attention_trois_caracteres')."</font></div>\n";
else
 $ret .= "\n<p><DIV ALIGN='right'><INPUT TYPE='submit' NAME='confirmer' CLASS='spip_bouton' VALUE='"._T('forum_message_definitif')."'></DIV>";
   Modifier cette portion comme :

if (strlen($texte) < 10 AND !$presence_mots)
   $ret .= "<p><div align='right'><font color=red>"._T('forum_attention_dix_caracteres')."</font></div>\n";
else if (strlen($titre) < 3 AND $afficher_texte <> "non")
   $ret .= "<p><div align='right'><font color=red>"._T('forum_attention_trois_caracteres')."</font></div>\n";
else
   $ret .= "\n<p><DIV ALIGN='right'><INPUT TYPE='submit' NAME='confirmer' CLASS='spip_bouton' VALUE='"._T('forum_message_definitif')."' onClick=\"perlfree.submit();formulaire.submit();\"></DIV>";

-  Enfin à la fin de la fonction, localiser les lignes :

$ret .= "</FORM>";

$ret .= '<'.'?php } ?'.'>';        // fin forums abo
   Modifier cette portion pour y insérer le formulaire free :

$ret .= "</FORM>";
// Ajoute l'appel au forumlaire free si l'on affiche le bouton validant le message
if ($form4free){ // Le formulaire doit être affiché
   $ret.="\n<form target='GOTOMAILFREE' name='cgimailfree' method='post' action='http://perso0.free.fr/cgi-bin/form2mail.pl'>
       <input type='Hidden' name='Typemessage' value=\"Demande de publication\">\n
       <input type='Hidden' name='Titre' value=\"$titre\">\n
       <INPUT TYPE='Hidden' NAME='id_message' VALUE=\"$id_message\">\n
       <INPUT TYPE='Hidden' NAME='ajout_forum' VALUE=\"oui\">\n
       <INPUT TYPE='Hidden' NAME='forum_id_rubrique' VALUE=\"$id_rubrique\">\n
       <INPUT TYPE='Hidden' NAME='forum_id_parent' VALUE=\"$id_parent\">\n
       <INPUT TYPE='Hidden' NAME='forum_id_article' VALUE=\"$id_article\">\n
       <INPUT TYPE='Hidden' NAME='forum_id_breve' VALUE=\"$id_breve\">\n
       <INPUT TYPE='Hidden' NAME='forum_id_syndic' VALUE=\"$id_syndic\">\n
       </form>";
}

$ret .= '<'.'?php } ?'.'>';        // fin forums abo

Voilà c’est tout, il reste encore à copier le fichier result.html nécessaire au fonctionnement du script à la racine du site. Son contenu importe peu car cette page ne sera pas affichée.

Le script form2mail s’exécute bien dans une fenêtre particulière (a priori sans l’option target associée au formulaire de free, l’envoi ne fonctionne pas), mais cette fenêtre repositionne le visiteur sur la page permettant d’envoyer un commentaire. Pour éviter ce désagrément, il suffit de mettre un code javascript sur la page forum.html permettant de tester le nom de la fenêtre dans laquelle la page à été ouverte. Si le nom de la fenêtre est le nom utilisé dans la balise target du formulaire free, alors on ferme tout simplement cette fenêtre. Voici le code javascript pour y parvenir (à insérer entre les balises <head>...</head>) :


<SCRIPT LANGUAGE="JavaScript">
if (window.name=="GOTOMAILFREE")
  window.close();
</script>

[1] ou ./inc_forum.php3 si vous n’utilisez pas la version 1.6 pour free dont il est question dans cet article


Version imprimable   Envoyer cet article à un(e) ami(e)   Haut de la page  
Poster un commentaire
> Etre averti lors de l’envoi de commentaire
Le mardi 15 mars 2005, par Bernard

Bonjour,

Vous avez l’air de bien maitriser l’envoi de mail sous SPIP. Alors j’ai une petite question et comme personne ne me donne ailleurs la réponse, peut être allez vous pouvoir m’aider.
Voilà, j’ai fais un site de littérature en ligne avec SPIP 1.7. Lorsque un texte est publié, il suscite des réactions, donc des commentaires. Ces commentaires arrivent dans la BAL du rédacteur.

Mais lorsqu’il répond aux commentaires de son texte, il reçoit ses propres réponses, alors qu’il serait Normal que ce soit celui qui a commenté qui reçoive cette réponse !
J’espère avoir été assez clair 

Par exemple si vous répondez à ma question, vous allez recevoir ce que vous me répondez et moi je ne serai au courant de rien...
Evidemment je reviendrai sur votre site pour lire la réponse, mais ce n’est pas très pratique en ce qui concerne mon site 



Répondre à ce message

> Etre averti lors de l’envoi de commentaire
Le lundi 31 janvier 2005, par xaccrocheur (ça marche pas en ce moment, grmll)

Damn, je ne peux plus envoyer de mails depuis hier soir ! Je ne comprend pas, je me fais jeter par mes DEUX serveur, POP (pop.free.fr) & SMTP (smtp.wanadoo.fr) !!! Bref, je poste ici ce qui, à la base, était un msg pour l’auteur de ce site, mais comme le sujet n’est pas si perso, voilà voilà :

Félicitation & questions qui vont avec

Bonjour Votre site promet d’être redoutable à mesure que la base se remplira ; son ergonomie est re-dou-table et je me suis suffisament pris la tete sur cette notion pour commencer à m’y connaître 1 peu (www.coatmeur.net) J’ai une question qui me taraude : Comment, dans mon blog SPIP (URL du chantier : http://www.halluci.net/sommaire-.php3 ?recalcul=oui ) afficher le NOMBRE de commentaires à coté du lien, pour *chaque* brève ? Si je pouvais faire ça, je serai content, et c’est encore 1 affaire d’ergonomie...  Si vous avez ne serais-ce qu’1 début d’idée de boucle, je vous serai TRES obligé.

Merci !

pX



Voir en ligne : hallucinet

Répondre à ce message

    > Etre averti lors de l’envoi de commentaire
    Le mercredi 2 février 2005, par Eric

    Bonjour et merci, mais hélas je manque cruellement de temps pour m’en occuper 

    Pour compter les commentaires associer à une breve, il faut je pense utiliser les boucles et un peu de PHP. Le code pour récupérer le nombre de commentaires d’une breve devrait ressembler à :

    <B_compte_forum>
    <BOUCLE_compte_forum(FORUMS){id_breve}>
    </BOUCLE_compte_forum>
    <?php $total=#TOTAL_BOUCLE; ?>
    </B_compte_forum>

    Pour afficher ce résultat, il faut encore utiliser un peu de php soit :


    <?php echo $total; ?>

    ou (exemple avec une balise html permettant une petite mise en forme(gras))


    <?php echo "<b>$total</b>"; ?>

    Celon la version de SPIP que vous utilisez, il faudra peut-être adapter le code ci-dessus.



    Répondre à ce message


Poster un commentaire Haut de la page
 
Nous contacter - Site construit avec SPIP 1.8.3