129 lines
4 KiB
PHP
129 lines
4 KiB
PHP
<?php
|
|
/**
|
|
* Fichier gérant l'installation et désinstallation du plugin GamuMail
|
|
*
|
|
* @plugin GamuMail
|
|
* @copyright 2020
|
|
* @author tofulm
|
|
* @licence GNU/GPL
|
|
* @package SPIP\Gamumail\Installation
|
|
*/
|
|
|
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
|
return;
|
|
}
|
|
|
|
|
|
/**
|
|
* Fonction d'installation et de mise à jour du plugin GamuMail.
|
|
*
|
|
* @param string $nom_meta_base_version
|
|
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
|
|
* @param string $version_cible
|
|
* Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
|
|
* @return void
|
|
**/
|
|
function gamumail_upgrade($nom_meta_base_version, $version_cible) {
|
|
$maj = array();
|
|
|
|
$maj['create'] = array(
|
|
array('maj_tables', array('spip_gamumails')),
|
|
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'));
|
|
$maj['1.0.6'] = array(array('maj_tables', array('spip_gamumails')));
|
|
$maj['1.0.11'] = array( array('maj_tables', array('spip_gamumails')));
|
|
$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('spip_auteurs', 'nom="curl_login"')){
|
|
return;
|
|
}
|
|
$mdp = uniqid(uniqid(),1);
|
|
$set = [
|
|
'nom' => 'curl_login',
|
|
'login' => hash('md5', 'curl_login'.time()),
|
|
'pass' => hash('sha256', $mdp),
|
|
'statut' => '1comite'
|
|
];
|
|
|
|
include_spip('action/editer_auteur');
|
|
$id_auteur = auteur_inserer(null, $set);
|
|
|
|
if ($id_auteur) {
|
|
include_spip('inc/config');
|
|
ecrire_config('curl_login', $set['login']);
|
|
ecrire_config('curl_mdp', $mdp);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Fonction de désinstallation du plugin GamuMail.
|
|
*
|
|
* @param string $nom_meta_base_version
|
|
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
|
|
* @return void
|
|
**/
|
|
function gamumail_vider_tables($nom_meta_base_version) {
|
|
|
|
sql_drop_table('spip_gamumails');
|
|
|
|
# Nettoyer les liens courants (le génie optimiser_base_disparus se chargera de nettoyer toutes les tables de liens)
|
|
sql_delete('spip_documents_liens', sql_in('objet', array('gamumail')));
|
|
sql_delete('spip_mots_liens', sql_in('objet', array('gamumail')));
|
|
sql_delete('spip_auteurs_liens', sql_in('objet', array('gamumail')));
|
|
# Nettoyer les versionnages et forums
|
|
sql_delete('spip_versions', sql_in('objet', array('gamumail')));
|
|
sql_delete('spip_versions_fragments', sql_in('objet', array('gamumail')));
|
|
sql_delete('spip_forum', sql_in('objet', array('gamumail')));
|
|
|
|
effacer_meta($nom_meta_base_version);
|
|
}
|