[SPIP Zone] [Spip-zone-commit] r32614 - in /_plugins_/contact: ./ action/ base/ exec/ fonds/ formulaires/ lang/

Tiens je parlais justement de ce fonctionnement là la semaine dernière pour le formulaire de contact.

Mais pourquoi finalement utiliser un statut particulier et une interface particulière ?
Ne serait-il pas plus simple de notifier l’auteur par un message ‹ normal › de la messagerie (doublé de l’email évidemment), qu’il pourrait consulter dans ses messages normaux et les gérer de la même façon. Surtout si tu créé un auteur lorsqu’il n’existe pas !

Quitte à ajouter un flag et un système de flags sur les messages et dans l’interface de la messagerie 2.0.
Pour moins de dev on aurait quelque chose de mieux et de plus léger à maintenir dans le temps, non ?

(mon gyrophare s’allume à chaque fois que je vois une fonctionnalité doublonner et que je me représente le code à maintenir en plus :stuck_out_tongue: )

Cédric

Le 2 novembre 2009 17:05, <rastapopoulos@spip.org> a écrit :

Author: rastapopoulos@spip.org
Date: Mon Nov 2 17:05:13 2009
New Revision: 32614

Log:
Et voilà une option permettant d’enregistrer les messages de contact dans la base, en tant que message à un auteur.

Pas de conflit avec la messagerie existante car ça utilise un « type » de message dédié et une interface exec dédiée aussi.

Un nouvel auteur avec un statut « contact » est créé à chaque nouveau message de contact, en plus du message lui-même. Sauf si l’adresse email utilisée est déjà existante chez un utilisateur.
Cela permet notamment de transformer peut-être un jour ce contact en utilisateur réel du système, et bien d’autres utilisations…

Pour l’instant seuls les auteurs connectés eux-mêmes peuvent voir leurs propres messages. Mais c’est à améliorer suivant la remarque de Nicolas Hoizey disant que souvent on crée des faux utilisateurs pour les destinataires. Donc il faudrait au moins que les statuts « webmestre » aient accès à l’ensemble des contacts enregistrés.

Added:
plugins/contact/action/
plugins/contact/action/supprimer_message.php (with props)
plugins/contact/base/
plugins/contact/base/contact_installation.php (with props)
plugins/contact/base/contact_tables.php (with props)
plugins/contact/exec/
plugins/contact/exec/contact_messages.php (with props)
plugins/contact/exec/contact_select_message.php (with props)
plugins/contact/exec/contact_un_message.php (with props)
Modified:
plugins/contact/contact_pipelines.php
plugins/contact/fonds/cfg_contact.html
plugins/contact/formulaires/contact.php
plugins/contact/lang/contact_en.php
plugins/contact/lang/contact_fr.php
plugins/contact/plugin.xml

Added: plugins/contact/action/supprimer_message.php

plugins/contact/action/supprimer_message.php (added)
+++ plugins/contact/action/supprimer_message.php Mon Nov 2 17:05:13 2009
@@ -0,0 +1,17 @@
+<?php
+
+if (!defined(« _ECRIRE_INC_VERSION »)) return;
+
+include_spip(‹ inc/filtres ›);
+
+// Permet de supprimer un message de contact.
+function action_supprimer_message() {
+

  • $securiser_action = charger_fonction(‹ securiser_action ›, ‹ inc ›);
  • $id_message = $securiser_action();
  • sql_delete(« spip_messages », « id_message= ».sql_quote($id_message));
  • sql_delete(« spip_auteurs_messages », « id_message= ».sql_quote($id_message));
    +}

+?>

Propchange: plugins/contact/action/supprimer_message.php

svn:executable = *

Added: plugins/contact/base/contact_installation.php

plugins/contact/base/contact_installation.php (added)
+++ plugins/contact/base/contact_installation.php Mon Nov 2 17:05:13 2009
@@ -0,0 +1,75 @@
+<?php
+include_spip(‹ inc/meta ›);
+include_spip(‹ base/create ›);
+
+include_spip(‹ inc/meta ›);
+
+// Installation et mise à jour
+function contact_upgrade($nom_meta_version_base, $version_cible){
+

  • $version_actuelle = ‹ 0.0 ›;
  • if (
  • (!isset($GLOBALS[‹ meta ›][$nom_meta_version_base]))
  • || (($version_actuelle = $GLOBALS[‹ meta ›][$nom_meta_version_base]) != $version_cible)
  • ){
  • if (version_compare($version_actuelle,‹ 0.0 ›,‹ = ›)){
  • // Création des tables
  • include_spip(‹ base/create ›);
  • include_spip(‹ base/abstract_sql ›);
  • creer_base();
  • echo « Création des tables de messageries si inexistantes.
     »;
  • ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, ‹ non ›);
  • }
  • /*if (version_compare($version_actuelle,‹ 0.5 ›,‹ < ›)){
  • include_spip(‹ base/create ›);
  • include_spip(‹ base/abstract_sql ›);
  • // Modification de contact
  • sql_alter(‹  ›);
  • // On change la version
  • echo « Mise à jour du plugin contact en version 0.5
     »;
  • ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, ‹ non ›);
  • }*/
  • }

+}
+
+// Désinstallation
+function contact_vider_tables($nom_meta_version_base){
+

  • include_spip(‹ base/abstract_sql ›);
  • // On recupere tous les messages de contact
  • $messages = sql_allfetsel(
  • ‹ id_message ›,
  • ‹ spip_messages ›,
  • 'type = '.sql_quote(‹ contac ›)
  • );
  • $messages = array_map(‹ reset ›, $messages);
  • $in = sql_in(
  • ‹ id_messages ›,
  • $messages
  • );
  • // On supprime les messages
  • sql_delete(
  • ‹ spip_messages ›,
  • 'type = '.sql_quote(‹ contact ›)
  • );
  • // On supprime les liens
  • sql_delete(
  • ‹ spip_auteurs_messages ›,
  • $in
  • );
  • // On efface la version entregistrée
  • effacer_meta($nom_meta_version_base);

+}
+
+?>

Propchange: plugins/contact/base/contact_installation.php

svn:executable = *

Added: plugins/contact/base/contact_tables.php

plugins/contact/base/contact_tables.php (added)
+++ plugins/contact/base/contact_tables.php Mon Nov 2 17:05:13 2009
@@ -0,0 +1,59 @@
+<?php
+
+if (!defined(« _ECRIRE_INC_VERSION »)) return;
+
+function contact_declarer_tables_principales($tables_principales) {

  • // On vérifie si la table n’a pas déjà été déclarée.
  • if(!$tables_principales[‹ spip_messages ›]) {
  • // déclaration de la table spip_messages
  • $spip_messages = array(
  • « id_message » => « bigint(21) NOT NULL »,
  • « titre » => « text DEFAULT ‹  › NOT NULL »,
  • « texte » => « longtext DEFAULT ‹  › NOT NULL »,
  • « type » => « varchar(6) DEFAULT ‹  › NOT NULL »,
  • « date_heure » => « datetime DEFAULT ‹ 0000-00-00 00:00:00 › NOT NULL »,
  • « date_fin » => « datetime DEFAULT ‹ 0000-00-00 00:00:00 › NOT NULL »,
  • « rv » => « varchar(3) DEFAULT ‹  › NOT NULL »,
  • « statut » => « varchar(6) DEFAULT ‹ 0 › NOT NULL »,
  • « id_auteur » => « bigint(21) NOT NULL »,
  • « maj » => « TIMESTAMP »);
  • $spip_messages_key = array(
  • « PRIMARY KEY » => « id_message »,
  • « KEY id_auteur » => « id_auteur »);
  • $tables_principales[‹ spip_messages ›] = array(
  • ‹ field › => &$spip_messages,
  • ‹ key › => &$spip_messages_key);
  • }
  • return $tables_principales;
    +}

+function contact_declarer_tables_interfaces($interface){

  • $interface[‹ table_des_tables ›][‹ messages ›] = ‹ messages ›;
  • $interface[‹ tables_jointures ›][‹ spip_messages ›] = ‹ messages ›;
  • return $interface;
    +}

+function contact_declarer_tables_auxiliaires($tables_auxiliaires){

  • // On vérifie si la table n’a pas déjà été déclarée.
  • if(!$tables_auxiliaires[‹ spip_auteurs_messages ›]) {
  • // Déclaration de la table spip_auteurs_messages
  • $spip_auteurs_messages = array(
  • « id_auteur » => « bigint(21) DEFAULT ‹ 0 › NOT NULL »,
  • « id_message » => « bigint(21) DEFAULT ‹ 0 › NOT NULL »,
  • « vu » => « CHAR (3) »);
  • $spip_auteurs_messages_key = array(
  • « PRIMARY KEY » => « id_auteur, id_message »,
  • « KEY id_message » => « id_message »);
  • $tables_auxiliaires[‹ spip_auteurs_messages ›] = array(
  • ‹ field › => &$spip_auteurs_messages,
  • ‹ key › => &$spip_auteurs_messages_key);
  • }
  • return $tables_auxiliaires;
    +}
    +?>

Propchange: plugins/contact/base/contact_tables.php

svn:executable = *

Modified: plugins/contact/contact_pipelines.php

plugins/contact/contact_pipelines.php (original)
+++ plugins/contact/contact_pipelines.php Mon Nov 2 17:05:13 2009
@@ -7,4 +7,16 @@
return $flux;
}

+function contact_ajouter_boutons($boutons_admin) {

  • // On vérifie s’il faut enregistrer les contacts.
  • if (lire_config(‹ contact/sauvegarder_contacts ›)) {
  • $boutons_admin[‹ forum ›]->sousmenu[‹ messages_contact ›] = new Bouton(
  • find_in_path(‹ contact-24.png ›, ‹ images/ ›, false),
  • _T(‹ contact:msg_messagerie ›),
  • generer_url_ecrire(‹ contact_messages ›)
  • );
  • }
  • return ($boutons_admin);
    +}
    ?>

Added: plugins/contact/exec/contact_messages.php

plugins/contact/exec/contact_messages.php (added)
+++ plugins/contact/exec/contact_messages.php Mon Nov 2 17:05:13 2009
@@ -0,0 +1,43 @@
+<?php
+
+include_spip(‹ inc/presentation ›);
+include_spip(‹ exec/contact_select_message ›);
+
+function exec_contact_messages() {
+
+global $connect_id_auteur, $connect_statut, $spip_lang_rtl;
+
+$commencer_page = charger_fonction(‹ commencer_page ›, ‹ inc ›);
+echo $commencer_page(« Messages de contact », « forum », « contact_messages »);
+
+echo debut_gauche(« contact_messages »,true);
+
+echo debut_boite_info(true);
+
+echo _T(‹ contact:msg_accueil ›);
+
+echo fin_boite_info(true);
+
+
+echo debut_droite(« contact_messages », true);
+
+$messages_vus = array();
+
+$nouveaux_messages = afficher_ses_messages(_T(‹ contact:msg_nouveaux ›), « , spip_auteurs_messages AS lien », « lien.id_auteur=$connect_id_auteur AND vu=‹ non › AND statut=‹ publie › AND type=‹ contac › AND lien.id_message=messages.id_message », $messages_vus, true, false);
+
+if ($nouveaux_messages)

  • echo $nouveaux_messages;
    +else {
  • echo debut_boite_info(true);
  • echo _T(‹ contact:msg_pas_nouveaux ›);
  • echo fin_boite_info(true);
    +}

+echo afficher_ses_messages(‹  › . _T(‹ contact:msg_lus ›) . ‹  ›, « , spip_auteurs_messages AS lien », « lien.id_auteur=$connect_id_auteur AND vu!=‹ non › AND statut=‹ publie › AND type=‹ contac › AND lien.id_message=messages.id_message », $messages_vus, true, false);
+
+
+echo fin_gauche(), fin_page();
+
+}
+?>

Propchange: plugins/contact/exec/contact_messages.php

svn:executable = *

Added: plugins/contact/exec/contact_select_message.php

plugins/contact/exec/contact_select_message.php (added)

[… 411 lines stripped …]


Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit

Le 02/11/2009 17:48, Cédric Morin a écrit :

(mon gyrophare s'allume à chaque fois que je vois une fonctionnalité
doublonner et que je me représente le code à maintenir en plus :stuck_out_tongue: )

Tu as dû remarquer que moi aussi, la plupart du temps.

Cette décision venait d'un constat d'utilisation : on n'a pas spécialement envie d'activer toute l'artillerie de la messagerie (donc pour tous les auteurs, avec boutons en plus partout, etc), alors qu'on veut juste avoir une interface pour visionner les résultats du formulaire de contact uniquement (donc essentiellement pour les admins la plupart du temps).

De ce fait, pour l'instant l'interface est copiée mais c'est pas forcément le même code à terme. Pour les messages de contact on ne veut pas toutes les options qu'il y a dans la visualisation des messages classiques. On veut avoir la liste, la provenance, et visualiser un par un les trucs (avec les documents joints, mais ça je l'ai fait).

Je ne sais pas trop comment faire pour que ça utilise la même table (puisque maniant exactement le même concept) mais que ça reste indépendant quand même puisque le but n'est pas le même.

Surtout qu'en 2.1 ensuite, le plugin messagerie n'est même pas forcément là du tout...

--
RastaPopoulos

Pour moi, Cédric a raison, pas la peine de copier toute une interface alors que celle ci est déjà prête, c'est un peu comme pour Echoppe :slight_smile:
Le 2 nov. 2009 à 17:58, RastaPopoulos a écrit :

Le 02/11/2009 17:48, Cédric Morin a écrit :

(mon gyrophare s'allume à chaque fois que je vois une fonctionnalité
doublonner et que je me représente le code à maintenir en plus :stuck_out_tongue: )

Tu as dû remarquer que moi aussi, la plupart du temps.

Cette décision venait d'un constat d'utilisation : on n'a pas spécialement envie d'activer toute l'artillerie de la messagerie (donc pour tous les auteurs, avec boutons en plus partout, etc), alors qu'on veut juste avoir une interface pour visionner les résultats du formulaire de contact uniquement (donc essentiellement pour les admins la plupart du temps).

De ce fait, pour l'instant l'interface est copiée mais c'est pas forcément le même code à terme. Pour les messages de contact on ne veut pas toutes les options qu'il y a dans la visualisation des messages classiques. On veut avoir la liste, la provenance, et visualiser un par un les trucs (avec les documents joints, mais ça je l'ai fait).

Je ne sais pas trop comment faire pour que ça utilise la même table (puisque maniant exactement le même concept) mais que ça reste indépendant quand même puisque le but n'est pas le même.

Surtout qu'en 2.1 ensuite, le plugin messagerie n'est même pas forcément là du tout...

--
RastaPopoulos

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

----

PRIGENT Yohann
Répondre à ce mail à l'adresse prigent.yohann@gmail.com, Merci !

Je vois l’idée. Je reste sceptique sur le besoin de différencier, mais parce que je parle de l’interface moderne qui est dans le plugin messagerie, pas de l’interface obsolète du core plein de boutons et de trucs incompréhensibles.

Après on peut avoir un réglage pour « activer la messagerie uniquement pour ceux qui reçoivent des messages » :stuck_out_tongue:
Donc a mon avis faut merger à terme, quitte à avoir une dépendance, ou un utilise (d’ailleurs, puisque certains s’en ficheront d’avoir une trace sur la messagerie interne)
Cédric

Le 2 novembre 2009 17:58, RastaPopoulos <rastapopoulos@spip.org> a écrit :

Le 02/11/2009 17:48, Cédric Morin a écrit :

(mon gyrophare s’allume à chaque fois que je vois une fonctionnalité
doublonner et que je me représente le code à maintenir en plus :stuck_out_tongue: )

Tu as dû remarquer que moi aussi, la plupart du temps.

Cette décision venait d’un constat d’utilisation : on n’a pas spécialement envie d’activer toute l’artillerie de la messagerie (donc pour tous les auteurs, avec boutons en plus partout, etc), alors qu’on veut juste avoir une interface pour visionner les résultats du formulaire de contact uniquement (donc essentiellement pour les admins la plupart du temps).

De ce fait, pour l’instant l’interface est copiée mais c’est pas forcément le même code à terme. Pour les messages de contact on ne veut pas toutes les options qu’il y a dans la visualisation des messages classiques. On veut avoir la liste, la provenance, et visualiser un par un les trucs (avec les documents joints, mais ça je l’ai fait).

Je ne sais pas trop comment faire pour que ça utilise la même table (puisque maniant exactement le même concept) mais que ça reste indépendant quand même puisque le but n’est pas le même.

Surtout qu’en 2.1 ensuite, le plugin messagerie n’est même pas forcément là du tout…


RastaPopoulos


spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Le 2 novembre 2009 18:06, Yohann Prigent <prigent.yohann@gmail.com> a écrit :

Pour moi, Cédric a raison,

Encore un effort et t’auras ton patch :stuck_out_tongue:
Cédric, trolleur

Le 2 nov. 2009 à 18:13, Cédric Morin a écrit :

Le 2 novembre 2009 18:06, Yohann Prigent <prigent.yohann@gmail.com> a écrit :

Pour moi, Cédric a raison,

Encore un effort et t’auras ton patch :stuck_out_tongue:

Oui, t’avait dit une semaine, j’essaye donc d’accélérer un peu les choses ^^

Cédric, trolleur

Yohann, l’impatient


PRIGENT Yohann
Répondre à ce mail à l’adresse prigent.yohann@gmail.com, Merci !

Ne serait-il pas plus simple de notifier l'auteur par un message 'normal' de
la messagerie (doublé de l'email évidemment), qu'il pourrait consulter dans

Sur la messagerie normale (celle qui marche si mal), le plugin
Notifications ajoute l'envoi d'un email, mais de façon un peu
astucieuse (il n'envoie l'email que si le destinataire n'est pas en
ligne).

-- Fil

Le 02/11/2009 18:06, Yohann Prigent a écrit :

Pour moi, Cédric a raison, pas la peine de copier toute une interface
alors que celle ci est déjà prête, c'est un peu comme pour Echoppe :slight_smile:

Raté ! Échoppe c'est exactement le contraire, c'est dans la base de données que ça a été forké (les rubriques). Donc c'est beaucoup plus difficile à modifier et à maintenir.

--
RastaPopoulos

Le 02/11/2009 18:08, Cédric Morin a écrit :

Je vois l'idée. Je reste sceptique sur le besoin de différencier, mais
parce que je parle de l'interface moderne qui est dans le plugin
messagerie, pas de l'interface obsolète du core plein de boutons et de
trucs incompréhensibles.

Est-ce que le plugin Messagerie est activable aussi sur un SPIP 2.0 ? Ça me permettrait de tester car je ne travaille plus sur la dev.

Après on peut avoir un réglage pour "activer la messagerie uniquement
pour ceux qui reçoivent des messages" :stuck_out_tongue:
Donc a mon avis faut merger à terme, quitte à avoir une dépendance, ou
un utilise (d'ailleurs, puisque certains s'en ficheront d'avoir une
trace sur la messagerie interne)

Ben moi aussi je préfèrerais n'avoir qu'une interface.

Après il faut quand même pouvoir différencier les messages internes des vrais auteurs, des messages de contact (les contacts étant enregistrés en tant qu'utilisateur mais avec un statut "contact" et sans rien de plus).

D'où le fait que les messages de ce type sont enregistrés en tant de "type=contac" (ouais ben ya que 6 caractères de déclarés :D).

Sauf qu'après si dans l'interface ya des sélections en dur de type=machinpardéfaut, ceux de contact n'apparaitront jamais. Mais bon je sais pas comment c'est fait dans l'interface moderne, je n'ai pas encore lu.

--
RastaPopoulos

Le 2 nov. 2009 à 20:07, RastaPopoulos a écrit :

Le 02/11/2009 18:06, Yohann Prigent a écrit :

Pour moi, Cédric a raison, pas la peine de copier toute une interface
alors que celle ci est déjà prête, c'est un peu comme pour Echoppe :slight_smile:

Raté ! Échoppe c'est exactement le contraire, c'est dans la base de données que ça a été forké (les rubriques). Donc c'est beaucoup plus difficile à modifier et à maintenir.

Comment ça ? Echoppe c'est pas la copie exacte du systeme de rubriques sous un nom de catégories ?

Le 2 nov. 2009 à 20:18, RastaPopoulos a écrit :

Le 02/11/2009 18:08, Cédric Morin a écrit :

Je vois l'idée. Je reste sceptique sur le besoin de différencier, mais
parce que je parle de l'interface moderne qui est dans le plugin
messagerie, pas de l'interface obsolète du core plein de boutons et de
trucs incompréhensibles.

Est-ce que le plugin Messagerie est activable aussi sur un SPIP 2.0 ? Ça me permettrait de tester car je ne travaille plus sur la dev.

ben oui, il est sur contrib meme, sur ta page auteur
mais attention, pour le moment il propose une interface pour le public, mais ne touche pas au privé.

Après on peut avoir un réglage pour "activer la messagerie uniquement
pour ceux qui reçoivent des messages" :stuck_out_tongue:
Donc a mon avis faut merger à terme, quitte à avoir une dépendance, ou
un utilise (d'ailleurs, puisque certains s'en ficheront d'avoir une
trace sur la messagerie interne)

Ben moi aussi je préfèrerais n'avoir qu'une interface.

Après il faut quand même pouvoir différencier les messages internes des vrais auteurs, des messages de contact (les contacts étant enregistrés en tant qu'utilisateur mais avec un statut "contact" et sans rien de plus).

Ah j'avais pas compris. C'est l'expéditeur qui est ajouté aux auteurs ? ...

D'où le fait que les messages de ce type sont enregistrés en tant de "type=contac" (ouais ben ya que 6 caractères de déclarés :D).

Sauf qu'après si dans l'interface ya des sélections en dur de type=machinpardéfaut, ceux de contact n'apparaitront jamais. Mais bon je sais pas comment c'est fait dans l'interface moderne, je n'ai pas encore lu.

--
RastaPopoulos

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Le 2 nov. 2009 à 21:10, cedric.morin@yterium.com a écrit :

Le 2 nov. 2009 à 20:18, RastaPopoulos a écrit :

Le 02/11/2009 18:08, Cédric Morin a écrit :

Après on peut avoir un réglage pour "activer la messagerie uniquement
pour ceux qui reçoivent des messages" :stuck_out_tongue:
Donc a mon avis faut merger à terme, quitte à avoir une dépendance, ou
un utilise (d'ailleurs, puisque certains s'en ficheront d'avoir une
trace sur la messagerie interne)

Ben moi aussi je préfèrerais n'avoir qu'une interface.
Après il faut quand même pouvoir différencier les messages internes des vrais auteurs, des messages de contact (les contacts étant enregistrés en tant qu'utilisateur mais avec un statut "contact" et sans rien de plus).

Ah j'avais pas compris. C'est l'expéditeur qui est ajouté aux auteurs ? ...

Non, non, ce que veux dire RastaPopoulos, c'est que les formulaires de contact permettent en général de s'adresse à un groupe anonyme d'auteurs, genre « équipe technique », « équipe commerciale », etc. donc les messages ne sont pas forcément destinés à de « réels » utilisateurs de SPIP, au sens « auteur ».

-Nicolas

--
Nicolas HOIZEY
Blog : http://www.gasteroprod.com/
Photos : http://flic.kr/nicolas-hoizey/

Le 03/11/2009 08:27, Nicolas Hoizey a écrit :

Ah j'avais pas compris. C'est l'expéditeur qui est ajouté aux auteurs
? ...

Non, non, ce que veux dire RastaPopoulos, c'est que les formulaires de
contact permettent en général de s'adresse à un groupe anonyme
d'auteurs, genre « équipe technique », « équipe commerciale », etc. donc
les messages ne sont pas forcément destinés à de « réels » utilisateurs
de SPIP, au sens « auteur ».

Les deux.

Quand quelqu'un envoi un message de contact, si l'adresse email n'est pas déjà chez un utilisateur, ça crée un nouvel utilisateur, uniquement avec cette adresse.

Ceci pour deux raisons :
- de toute façon un message a un auteur, et dans la base SPIP, il est identifié par un id_auteur dans la table spip_messages.
- le contact est alors gardé en mémoire et mutualisé, donc si la même personne envoie plusieurs messages, on peut imaginer lister "tous les messages de tel contact". Et surtout on peut ensuite transformer cet utilisateur de statut "contact" en autre chose ensuite, si besoin est.

Exemple :

- gros@gros.com envoi un message avec le formulaire.

- si cette adresse n'est pas trouvé dans spip_auteurs :
   $id_auteur = sql_insertq(
       'spip_auteurs',
       array('email'=>'gros@gros.com', 'statut'=>'contact')
   );
   Cet $id_auteur est utilisé pour l'auteur du message.

- si l'adresse est trouvé dans spip_auteurs, alors c'est l'auteur déjà existant qui est mis en auteur du message.

--
RastaPopoulos

Le 3 nov. 2009 à 09:02, RastaPopoulos a écrit :

Le 03/11/2009 08:27, Nicolas Hoizey a écrit :

Ah j'avais pas compris. C'est l'expéditeur qui est ajouté aux auteurs
? ...

Non, non, ce que veux dire RastaPopoulos, c'est que les formulaires de
contact permettent en général de s'adresse à un groupe anonyme
d'auteurs, genre « équipe technique », « équipe commerciale », etc. donc
les messages ne sont pas forcément destinés à de « réels » utilisateurs
de SPIP, au sens « auteur ».

Les deux.

Quand quelqu'un envoi un message de contact, si l'adresse email n'est pas déjà chez un utilisateur, ça crée un nouvel utilisateur, uniquement avec cette adresse.

Aïe, cela ne me plait pas du tout, car cela va conduire au remplissage sans fin de la table des auteurs, qui est déjà la principale critique faite à l'encontre de spip-listes.

Ceci pour deux raisons :
- de toute façon un message a un auteur, et dans la base SPIP, il est identifié par un id_auteur dans la table spip_messages.
- le contact est alors gardé en mémoire et mutualisé, donc si la même personne envoie plusieurs messages, on peut imaginer lister "tous les messages de tel contact". Et surtout on peut ensuite transformer cet utilisateur de statut "contact" en autre chose ensuite, si besoin est.

Le stocker dans une autre table n'empêcherait en rien ces deux choses. Cela empêcherait juste d'utiliser l'interface de messagerie du core. Mais vu que de toute façon tu préfères ne pas l'utiliser... :wink:

-Nicolas

--
Nicolas HOIZEY
Blog : http://www.gasteroprod.com/
Photos : http://flic.kr/nicolas-hoizey/

Le 3 novembre 2009 09:02, RastaPopoulos <rastapopoulos@spip.org> a écrit :

Le 03/11/2009 08:27, Nicolas Hoizey a écrit :

Ah j’avais pas compris. C’est l’expéditeur qui est ajouté aux auteurs
? …

Non, non, ce que veux dire RastaPopoulos, c’est que les formulaires de
contact permettent en général de s’adresse à un groupe anonyme
d’auteurs, genre « équipe technique », « équipe commerciale », etc. donc
les messages ne sont pas forcément destinés à de « réels » utilisateurs
de SPIP, au sens « auteur ».

Les deux.

Quand quelqu’un envoi un message de contact, si l’adresse email n’est pas déjà chez un utilisateur, ça crée un nouvel utilisateur, uniquement avec cette adresse.

Ceci pour deux raisons :

  • de toute façon un message a un auteur, et dans la base SPIP, il est identifié par un id_auteur dans la table spip_messages.

il vaudrait mieux permettre que l’auteur expeditaire soit un simple email comme sur les forum.
Puis d’ailleurs, il manque aussi la gestion de thread, comme sur les forums.

Ah ben, la messagerie, ce serait pas techniquement un cas particulier de forums sur auteur que seuls l’auteur et l’expediteur peuvent voir ?

Cedric, qui cherche le PGDC

Le 3 nov. 2009 à 09:37, Cédric Morin a écrit :

Le 3 novembre 2009 09:02, RastaPopoulos <rastapopoulos@spip.org> a écrit :

Le 03/11/2009 08:27, Nicolas Hoizey a écrit :

Ah j’avais pas compris. C’est l’expéditeur qui est ajouté aux auteurs
? …

Non, non, ce que veux dire RastaPopoulos, c’est que les formulaires de
contact permettent en général de s’adresse à un groupe anonyme
d’auteurs, genre « équipe technique », « équipe commerciale », etc. donc
les messages ne sont pas forcément destinés à de « réels » utilisateurs
de SPIP, au sens « auteur ».

Les deux.

Quand quelqu’un envoi un message de contact, si l’adresse email n’est pas déjà chez un utilisateur, ça crée un nouvel utilisateur, uniquement avec cette adresse.

Ceci pour deux raisons :

  • de toute façon un message a un auteur, et dans la base SPIP, il est identifié par un id_auteur dans la table spip_messages.

il vaudrait mieux permettre que l’auteur expeditaire soit un simple email comme sur les forum.

+1

Puis d’ailleurs, il manque aussi la gestion de thread, comme sur les forums.

Pour gérer des réponses à ces messages ?

Ah ben, la messagerie, ce serait pas techniquement un cas particulier de forums sur auteur que seuls l’auteur et l’expediteur peuvent voir ?

Si, effectivement, mais on s’écarte là du « simple » formulaire de contact destiné aux Internautes, non ?

Cedric, qui cherche le PGDC

PGCD plutôt, non ? :wink:

-Nicolas


Nicolas HOIZEY
Blog : http://www.gasteroprod.com/
Photos : http://flic.kr/nicolas-hoizey/