From 5bcf3af1bd92f7dcb6533f307514f46e1177fce5 Mon Sep 17 00:00:00 2001 From: cy_altern Date: Tue, 1 Jul 2025 00:48:29 +0200 Subject: [PATCH] =?UTF-8?q?WIP=20:=20ajout=20d'un=20Gamutable=20pour=20adm?= =?UTF-8?q?inistrer=20les=20messages=20de=20contact=20et=20assimil=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/gamucontact.php | 2 + content/messages.html | 6 ++ formulaires/configurer_gamucontact.html | 21 ++++-- gamucontact_administrations.php | 1 + gamucontact_autorisations.php | 9 +++ inclure/inc_messages.html | 18 ++++++ json_messages.json.html | 86 +++++++++++++++++++++++++ paquet.xml | 5 +- 8 files changed, 138 insertions(+), 10 deletions(-) create mode 100644 content/messages.html create mode 100644 inclure/inc_messages.html create mode 100644 json_messages.json.html diff --git a/base/gamucontact.php b/base/gamucontact.php index 178d2f5..04d5f99 100644 --- a/base/gamucontact.php +++ b/base/gamucontact.php @@ -28,6 +28,7 @@ function gamucontact_declarer_tables_interfaces($interfaces) { */ function gamucontact_declarer_tables_objets_sql($tables) { $tables['spip_messages'] = [ + 'type' => 'message', 'principale' => 'oui', 'field'=> [ 'id_message' => 'bigint(21) NOT NULL', @@ -37,6 +38,7 @@ function gamucontact_declarer_tables_objets_sql($tables) { 'nom' => "varchar(255) NOT NULL", 'telephone' => "varchar(55) NOT NULL", 'email_contact' => "varchar(255) NOT NULL", + 'origine' => 'tinytext NOT NULL DEFAULT ""', 'type' => "varchar(25) NOT NULL DEFAULT ''", 'date_heure' => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'", 'date_fin' => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'", diff --git a/content/messages.html b/content/messages.html new file mode 100644 index 0000000..cd854bf --- /dev/null +++ b/content/messages.html @@ -0,0 +1,6 @@ +[(#REM) + intégrer le gamutable de gestion des messages + +]
+ +
diff --git a/formulaires/configurer_gamucontact.html b/formulaires/configurer_gamucontact.html index 20ec372..73f5d7b 100644 --- a/formulaires/configurer_gamucontact.html +++ b/formulaires/configurer_gamucontact.html @@ -10,13 +10,13 @@ #ACTION_FORMULAIRE -
- <:gamucontacts:destinataires:> -
- #SAISIE{input, liste_id_auteur, label=Destinaires auteurs SPIP, explication=une liste d'id_auteur séparés par des ;} - #SAISIE{textarea, liste_emails, label=Destinaires sans compte auteur, explication=une liste d'emails séparés par des ;, rows=3} -
-
+
+ <:gamucontacts:destinataires:> +
+ #SAISIE{input, liste_id_auteur, label=Destinaires auteurs SPIP, explication=une liste d'id_auteur séparés par des ;} + #SAISIE{textarea, liste_emails, label=Destinaires sans compte auteur, explication=une liste d'emails séparés par des ;, rows=3} +
+
<:gamucontacts:telephone:>
@@ -24,6 +24,13 @@ #SAISIE{radio, telephone_obligatoire, label=Obligatoire ?, data=#ARRAY{oui,Oui, '',Non} }
+
+ <:gamucontacts:interface_messages:> +
+ #SAISIE{radio, gamutable_afficher_type, label=Afficher le type, data=#ARRAY{oui, Oui, '', Non}} +
+
+
<:gamucontacts:antispam:>
diff --git a/gamucontact_administrations.php b/gamucontact_administrations.php index 4ee49e0..ca0523e 100644 --- a/gamucontact_administrations.php +++ b/gamucontact_administrations.php @@ -29,6 +29,7 @@ function gamucontact_upgrade($nom_meta_base_version, $version_cible) { $maj['create'] = array(array('maj_tables', array('spip_messages'))); $maj['1.0.5'] = array(array('maj_tables', array('spip_messages'))); $maj['1.0.6'] = array(array('maj_tables', array('spip_messages'))); + $maj['1.0.7'] = array(array('maj_tables', array('spip_messages'))); include_spip('base/upgrade'); maj_plugin($nom_meta_base_version, $version_cible, $maj); diff --git a/gamucontact_autorisations.php b/gamucontact_autorisations.php index f908285..8ac79f9 100644 --- a/gamucontact_autorisations.php +++ b/gamucontact_autorisations.php @@ -18,3 +18,12 @@ if (!defined('_ECRIRE_INC_VERSION')) { * @pipeline autoriser */ function gamucontact_autoriser() { } + +/** + * autorisation pour voir les messages : par défaut 0minirezo + * + **/ +function gamucontact_autoriser_messages_voir_dist($faire, $type, $id, $qui, $opt) { + return in_array($qui['statut'], ['0minirezo']); +} + diff --git a/inclure/inc_messages.html b/inclure/inc_messages.html new file mode 100644 index 0000000..05b6030 --- /dev/null +++ b/inclure/inc_messages.html @@ -0,0 +1,18 @@ +[(#AUTORISER{voir,messages}|sinon_interdire_acces)] + +#SET{url,#URL_PAGE{json_messages.json}} +
+[(#SET{titre_un, Messages envoyés sur le site})] + +
+ +
diff --git a/json_messages.json.html b/json_messages.json.html new file mode 100644 index 0000000..5928d09 --- /dev/null +++ b/json_messages.json.html @@ -0,0 +1,86 @@ +#HTTP_HEADER{Content-Type: application/json; charset=#CHARSET} +[(#AUTORISER{voir,messages}|sinon_interdire_acces)] + +[(#ENV{id}|setenv{id_message})] +[{ +"header":{ + "id": "_", + "date": "Date", + "formulaire": "Formulaire", + [(#CONFIG{gamucontact/gamutable_afficher_type}|oui) + "type": "Type", + ] + "objet": "Objet", + "statut": "Statut", + "nom": "Expéditeur", + "email_contact": "Email", + "telephone": "Tel", + "message": "Message" + }, + "crayons":{ + "statut": "" + }, + "ordreCol" : { + "date": "desc" + }, + "filtreCol" : { + "statut": "select", + "formulaire": "select", + "nom": "input", + [(#CONFIG{gamucontact/gamutable_afficher_type}|oui) + "type": "select", + ] + "email_contact" : "input" + }, + "filtreColValeurs" : {}, + "classes": { + "id": "w80p", + "objet": "minw150p", + "statut": "minw80p", + "formulaire": "w150p" + } +} + +, + +[(#SET{message,
[(#TEXTE*|couper{150})]
+
+ [(#TEXTE*)] +
+})] +#SET{statut, #LISTE{prepa,prop,publie,poubelle}|str_replace{#LISTE{Brouillon,Proposé,Publié,Poubelle}, #STATUT}} +#SET{formulaire, #TITRE|replace{Formulaire de, ''}} + +{ +"html": { + "id": #ID_MESSAGE, + "date": [(#DATE_HEURE|affdate{d/m/Y H:i:s}|json_encode)], + "formulaire": [(#GET{formulaire}|json_encode)], + [(#CONFIG{gamucontact/gamutable_afficher_type}|oui) + "type": [(#TYPE|json_encode)], + ] + "objet": [(#OBJET|json_encode)], + "statut": [(#GET{statut}|json_encode)], + "nom": [(#NOM|json_encode)], + "email_contact": [(#EMAIL_CONTACT|json_encode)], + "telephone": [(#TELEPHONE|json_encode)], + "message": [(#GET{message}|json_encode)] +}, +"search": { + "id": #ID_MESSAGE, + "date": [(#DATE_HEURE|affdate{Y-m-d H:i:s}|json_encode)], + "formulaire": [(#GET{formulaire}|json_encode)], + [(#CONFIG{gamucontact/gamutable_afficher_type}|oui) + "type": [(#TYPE|json_encode)], + ] + "objet": [(#OBJET|json_encode)], + "statut": [(#GET{statut}|json_encode)], + "nom": [(#NOM|json_encode)], + "email_contact": [(#EMAIL_CONTACT|json_encode)], + "telephone": [(#TELEPHONE|json_encode)], + "message": [(#GET{message}|json_encode)] +} +} + +] + diff --git a/paquet.xml b/paquet.xml index 6d66564..0f1f0e0 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,12 +1,12 @@ GamuContact @@ -21,5 +21,4 @@ -