Feat : ajout des slugs + @@ nécessaires si on veut utiliser Gamumail pour les inscriptions d'auteurs ou le rappel de mot de passe + la doc pour ces 2 ajouts optionnels dans le README

This commit is contained in:
cy_altern 2025-02-27 20:04:56 +01:00
parent f654cbcc62
commit 8415578c22
4 changed files with 73 additions and 8 deletions

View file

@ -326,17 +326,27 @@ $fonction(lire_config('souscriptions/slug_souscription_validation'), $Tdest, $op
* 'nom' => 'nom_fichier_attache' ]
```
## Slugs et @@ fournis pour surcharges facultatives de SPIP pour permettre l'envoi des mails en Gamumail plutôt que via notification
### slug `valider_inscription` :
- message pour la validation de l'adresse mail lors de la création d'un compte avec le form `inscription`
- à activer via une surcharge de `action_inscrire_auteur_dist()` : cf plugin **sq_collecte/sq_collecte_fonctions.php**
- pour intégrer la définition du mot de passe dès l'inscription (sans le plugin inscription_motdepasse) + d'autres contrôles de l'inscription :
- pour la saisie surcharge du HTML du form d'inscription : cf plugin **sq_collecte/formulaires/inscription.html**
- pour les contrôles il faut surcharger `formulaires_inscription_verifier_dist()` : cf plugin **sq_collecte/sq_collecte_fonctions.php**
### slug `pass_oubli`
- message pour le reset du mot de passe
- à activer via une surcharge de `formulaires_oubli_traiter_dist()`: cf plugin **rocb/rocb_options.php**
## Outrepasser l'erreur de certificat auto-signé lors de devs en https local
=> dans le mes_options.php du site mettre :
```
```php
define('_DEBUG_AUTORISER', true);
```
ce qui permet d'activer les options de curl pour ne pas vérifier le certificat dans _charger_pdf.php_ :
```
```php
// pour une connexion https locale avec certificat auto-signé
if (defined('_DEBUG_AUTORISER')) {
curl_setopt($CurlConnect, CURLOPT_SSL_VERIFYHOST, false);

View file

@ -28,7 +28,7 @@ function gamumail_upgrade($nom_meta_base_version, $version_cible) {
$maj['create'] = array(
array('maj_tables', array('spip_gamumails')),
array('creer_compte_curl')
array('creer_compte_curl', 'creer_slugs'),
);
$maj['1.0.2'] = array(array('maj_tables', array('spip_gamumails')));
$maj['1.0.5'] = array(array('creer_compte_curl'));
@ -37,14 +37,54 @@ function gamumail_upgrade($nom_meta_base_version, $version_cible) {
$maj['1.0.12'] = array(array('creer_compte_curl'));
$maj['1.0.14'] = array(array('maj_tables', array('spip_gamumails')));
$maj['1.0.16'] = array(array('maj_tables', array('spip_gamumails')));
$maj['1.0.17'] = array(array('creer_slugs'));
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
// créer les slugs fournis avec Gamumail
function creer_slugs() {
if (!sql_countsel('spip_gamumails', 'slug="valider_inscription"')) {
$set = [
'slug' => 'valider_inscription',
'titre' => 'Message de création de compte : validation de l\'adresse mail',
'sujet' => '[@@nom_site@@] Création de votre compte',
'texte' => 'Bonjour @@nom@@,
Vous venez de créer votre compte sur @@url_site@@ avec l\'identifiant de connexion @@mail_compte@@.
[Merci de cliquer sur ce lien pour le confirmer et vous connecter->@@url_token@@].
Envoyé par @@nom_site@@ (@@url_site@@)',
'statut' => 'publie',
'public' => 'non',
'rang' => '999'
];
sql_insertq('spip_gamumails', $set);
}
if (!sql_countsel('spip_gamumails', 'slug="pass_oubli"')) {
$set = [
'slug' => 'pass_oubli',
'titre' => 'Message de reset du mot de passe',
'sujet' => '[@@nom_site@@] récupération de votre mot de passe',
'texte' => 'Pour récupérer votre accès @@nom_site@@ (@@url_site@@), merci de suivre ce lien :
@@url_spip_pass@@
Vous pourrez alors saisir un nouveau mot de passe et vous connecter au site
Envoyé par @@nom_site@@ (@@url_site@@)',
'statut' => 'publie',
'public' => 'non',
'rang' => '999'
];
sql_insertq('spip_gamumails', $set);
}
}
function creer_compte_curl(){
if (sql_countsel('nom', 'spip_auteurs', 'nom="curl_login"')){
if (sql_countsel('spip_auteurs', 'nom="curl_login"')){
return;
}
$mdp = uniqid(uniqid(),1);

View file

@ -13,6 +13,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*
**/
function inc_gamumail_remplacements_dist($args, $html) {
$slug = $args['slug'];
/**
* @@url_spip_pass@@
* ATTENTION, il ne faut passer QUE si @@url_spip_pass@@ est présent, car la fonction
@ -32,6 +34,19 @@ function inc_gamumail_remplacements_dist($args, $html) {
$html = gamumail_remplacer_modele('url_spip_pass', $url_spip_pass, $html);
}
/**
* @@url_token@@ pour le mail de validation de création de compte (slug valider_inscription) + @@mail_compte@@
* en SPIP 4.2+ on DOIT récupérer l'URL de validation générée par action_inscrire_auteur()
**/
if ($slug === 'valider_inscription'
&& ($id_auteur = $args['options']['id_auteur'])
&& ($url_confirm = $args['options']['url_confirm'])
) {
$auteur = sql_fetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur));
$html = str_replace('@@url_token@@', $url_confirm, $html);
$html = str_replace('@@mail_compte@@', $auteur['email'], $html);
}
/**
* @@nom@@ => $nom ou un espace pour vider le champ @@nom@@
**/

View file

@ -6,7 +6,7 @@
compatibilite="[3.2.0;4.*]"
logo="prive/themes/spip/images/gamumail-64.png"
documentation=""
schema="1.0.16"
schema="1.0.17"
>
<nom>GamuMail</nom>