--- /dev/null
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function action_editer_souscription_don_dist($arg=null) {
+ if (is_null($arg)){
+ $securiser_action = charger_fonction('securiser_action', 'inc');
+ $arg = $securiser_action();
+ }
+
+ if (!$id_souscription_don = intval($arg)){
+ $id_souscription_don = don_inserer();
+ }
+
+ if (!$id_souscription_don)
+ return array(0,'');
+
+ $err = don_modifier($id_souscription_don);
+
+ return array($id_souscription_don, $err);
+}
+
+
+/**
+ * Inserer une nouvelle donation en en base
+ *
+ * @return bool
+ */
+function don_inserer() {
+
+ $champs = array('date_souscription' => date('Y-m-d H:i:s'));
+
+ // Envoyer aux plugins
+ $champs = pipeline('pre_insertion',
+ array('args' => array('table' => 'spip_souscription_dons'),
+ 'data' => $champs)
+ );
+
+ $id_souscription_don = sql_insertq("spip_souscription_dons", $champs);
+
+ pipeline('post_insertion',
+ array('args' => array('table' => 'spip_souscription_dons',
+ 'id_objet' => $id_souscription_don),
+ 'data' => $champs)
+ );
+
+ return $id_souscription_don;
+}
+
+/**
+ * Modifier une donation
+ *
+ * $c est un contenu (par defaut on prend le contenu via _request())
+ *
+ * @param int $id_souscription_don
+ * @param array|bool $set
+ * @return string
+ */
+function don_modifier($id_souscription_don, $set=false) {
+ include_spip('inc/modifier');
+
+ $c = collecter_requests(
+ // white list
+ array('courriel',
+ 'recu_fiscal',
+ 'envoyer_info',
+ 'prenom',
+ 'nom',
+ 'adresse',
+ 'code_postal',
+ 'ville',
+ 'id_souscription_campagne'),
+ // black list
+ array('statut', 'date'),
+ // donnees eventuellement fournies
+ $set
+ );
+
+
+ $inserer_transaction = charger_fonction('inserer_transaction', 'bank');
+ $id_transaction = $inserer_transaction(_request('montant'),
+ '', /* montant_ht */
+ '', /* id_auteur */
+ $id_souscription_don, /* auteur_id => id_souscription_don */
+ _request('courriel'));
+
+ if(!$id_transaction) {
+ return "Identifiant de transaction introuvable..."; /* FIXME: à rendre traduisible. */
+ }
+
+ $c = array_merge($c, array("id_transaction" => $id_transaction));
+
+ if($err = objet_modifier_champs('souscription_don', $id_souscription_don, array(), $c))
+ return $err;
+}
--- /dev/null
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function action_exporter_dons_payes_dist($arg=null) {
+
+ /* FIXME: permettre de selectionner les exports */
+ /* FIXME: améliorer la jointure... */
+
+ if (is_null($arg)) {
+ $securiser_action = charger_fonction('securiser_action', 'inc');
+ $arg = $securiser_action();
+ }
+
+ /* Vérification des droits de l'utilisateur. */
+ if(!autoriser("exporter", "souscriptiondon", '')) {
+ include_spip('inc/minipres');
+ echo minipres();
+ exit;
+ }
+
+
+ $row = sql_select("id_souscription_don, courriel,"
+ ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
+ ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
+ ."id_souscription_campagne, titre", /* $select */
+ "spip_souscription_dons LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne) ",
+ "reglee='oui'"); /* $where */
+
+ $entete = array("ID du don",
+ "Courriel",
+ "Montant",
+ "Reglée",
+ "Statut",
+ "Date de paiement",
+ "Mode de paiement",
+ "ID de l'autorisation",
+ "Nom",
+ "Prénom",
+ "Code Postal",
+ "Ville",
+ "Souhaite reçu fiscal",
+ "Souhaite être informé",
+ "Date don",
+ "ID Campagne",
+ "Titre de la campagne");
+
+ /* Utilisation de la fonction exporter_csv de Bonux */
+ $exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
+
+ $exporter_csv('souscription_dons_payes', $row, ',', $entete);
+ exit();
+}
--- /dev/null
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function action_exporter_dons_tous_dist($arg=null) {
+
+ /* FIXME: permettre de selectionner les exports */
+ /* FIXME: améliorer la jointure... */
+
+ if (is_null($arg)) {
+ $securiser_action = charger_fonction('securiser_action', 'inc');
+ $arg = $securiser_action();
+ }
+
+ /* Vérification des droits de l'utilisateur. */
+ if(!autoriser("exporter", "souscriptiondon", '')) {
+ include_spip('inc/minipres');
+ echo minipres();
+ exit;
+ }
+
+
+ $row = sql_select("id_souscription_don, courriel,"
+ ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
+ ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
+ ."id_souscription_campagne, titre",
+ "spip_souscription_dons LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne)");
+
+ $entete = array("ID du don",
+ "Courriel",
+ "Montant",
+ "Reglée",
+ "Statut",
+ "Date de paiement",
+ "Mode de paiement",
+ "ID de l'autorisation",
+ "Nom",
+ "Prénom",
+ "Code Postal",
+ "Ville",
+ "Souhaite reçu fiscal",
+ "Souhaite être informé",
+ "Date don",
+ "ID Campagne",
+ "Titre de la campagne");
+
+ /* Utilisation de la fonction exporter_csv de Bonux */
+ $exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
+
+ $exporter_csv('souscription_dons_tous', $row, ',', $entete);
+ exit();
+}
--- /dev/null
+<?php
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function action_exporter_dons_payes_dist($arg=null) {
+
+ /* FIXME: permettre de selectionner les exports */
+ /* FIXME: améliorer la jointure... */
+
+ if (is_null($arg)) {
+ $securiser_action = charger_fonction('securiser_action', 'inc');
+ $arg = $securiser_action();
+ }
+
+ /* Vérification des droits de l'utilisateur. */
+ if(!autoriser("exporter", "souscriptiondon", '')) {
+ include_spip('inc/minipres');
+ echo minipres();
+ exit;
+ }
+
+
+ $row = sql_select("id_souscription_don, courriel,"
+ ."montant, reglee, spip_transactions.statut, date_paiement, mode, autorisation_id,"
+ ."nom, prenom, code_postal, ville, recu_fiscal, envoyer_info, date_souscription,"
+ ."id_souscription_campagne, titre", /* $select */
+ "spip_souscription_dons LEFT JOIN spip_transactions USING(id_transaction) LEFT JOIN spip_souscription_campagnes USING(id_souscription_campagne) ",
+ "reglee='oui'"); /* $where */
+
+ $entete = array("ID du don",
+ "Courriel",
+ "Montant",
+ "Reglée",
+ "Statut",
+ "Date de paiement",
+ "Mode de paiement",
+ "ID de l'autorisation",
+ "Nom",
+ "Prénom",
+ "Code Postal",
+ "Ville",
+ "Souhaite reçu fiscal",
+ "Souhaite être informé",
+ "Date don",
+ "ID Campagne",
+ "Titre de la campagne");
+
+ /* Utilisation de la fonction exporter_csv de Bonux */
+ $exporter_csv = charger_fonction('exporter_csv', 'inc/', true);
+
+ $exporter_csv('souscription_dons', $row, ',', $entete);
+ exit();
+}
--- /dev/null
+<?php
+/**
+ * Déclarations relatives à la base de données
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Pipelines
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+/**
+ * Déclaration des alias de tables et filtres automatiques de champs
+ *
+ * @pipeline declarer_tables_interfaces
+ * @param array $interfaces
+ * Déclarations d'interface pour le compilateur
+ * @return array
+ * Déclarations d'interface pour le compilateur
+ */
+function souscription_declarer_tables_interfaces($interfaces) {
+ $interfaces['table_des_tables']['souscription_dons'] = 'souscription_dons';
+ $interfaces['table_des_tables']['souscription_campagnes'] = 'souscription_campagnes';
+
+ return $interfaces;
+}
+
+
+/**
+ * Déclaration des objets éditoriaux
+ *
+ * @pipeline declarer_tables_objets_sql
+ * @param array $tables
+ * Description des tables
+ * @return array
+ * Description complétée des tables
+ */
+function souscription_declarer_tables_objets_sql($tables) {
+
+ $tables['spip_souscription_dons'] =
+ array('type' => 'souscription_don',
+ 'principale' => "oui",
+ 'table_objet_surnoms' => array('souscriptiondon'), // table_objet('souscription_don') => 'souscription_dons'
+ 'field'=> array("id_souscription_don" => "bigint(21) NOT NULL",
+ "id_transaction" => "bigint(21) NOT NULL DEFAULT 0",
+ "id_souscription_campagne" => "bigint(21) NOT NULL DEFAULT 0",
+ "courriel" => "text NOT NULL DEFAULT ''",
+ "nom" => "text NOT NULL DEFAULT ''",
+ "prenom" => "text NOT NULL DEFAULT ''",
+ "code_postal" => "text NOT NULL DEFAULT ''",
+ "adresse" => "text NOT NULL DEFAULT ''",
+ "ville" => "text NOT NULL DEFAULT ''",
+ "recu_fiscal" => "varchar(3) NOT NULL DEFAULT 0",
+ "envoyer_info" => "varchar(3) NOT NULL DEFAULT ''",
+ "date_souscription " => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
+ "maj" => "TIMESTAMP"
+ ),
+ 'key' => array("PRIMARY KEY" => "id_souscription_don",
+ "KEY id_transaction" => "id_transaction",
+ "KEY id_souscription_campagne" => "id_souscription_campagne"),
+ 'titre' => "nom AS titre, '' AS lang",
+ 'date' => "date_souscription",
+ 'champs_editables' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'),
+ 'champs_versionnes' => array('courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'),
+ 'rechercher_champs' => array(),
+ 'join' => array("id_transaction" => "id_transaction"),
+ /* 'join' => array("id_souscription_campagne" => "id_souscription_campagne"), */
+ /* 'tables_jointures' => array('souscription_campagnes'), */
+ 'tables_jointures' => array('spip_transactions'),
+ );
+
+ $tables['spip_souscription_campagnes'] =
+ array('type' => 'souscription_campagne',
+ 'principale' => "oui",
+ 'table_objet_surnoms' => array('souscriptioncampagne'),
+ 'field'=> array("id_souscription_campagne" => "bigint(21) NOT NULL",
+ "objectif" => "int(11) NOT NULL DEFAULT 0",
+ "objectif_initial" => "int(11) NOT NULL DEFAULT 0",
+ "type_objectif" => "varchar(255) NOT NULL DEFAULT 0",
+ "titre" => "text NOT NULL DEFAULT ''",
+ "texte" => "longtext NOT NULL DEFAULT ''",
+ "statut" => "varchar(255) NOT NULL DEFAULT 0",
+ "date" => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
+ "maj" => "TIMESTAMP"
+ ),
+ 'key' => array("PRIMARY KEY" => "id_souscription_campagne",
+ "KEY id_souscription_campagne" => "id_souscription_campagne",
+ ),
+ 'titre' => "titre AS titre, '' AS lang",
+ 'date' => "date",
+ 'champs_editables' => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif'),
+ 'champs_versionnes' => array('objectif', 'titre', 'texte', 'objectif_initial', 'type_objectif'),
+ 'rechercher_champs' => array(),
+ /* 'tables_jointures' => array('spip_souscription_campagnes'), */
+ );
+
+ return $tables;
+}
--- /dev/null
+<?php
+/**
+ * Déclarations relatives à la base de données
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Pipelines
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+/**
+ * Déclaration des alias de tables et filtres automatiques de champs
+ *
+ * @pipeline declarer_tables_interfaces
+ * @param array $interfaces
+ * Déclarations d'interface pour le compilateur
+ * @return array
+ * Déclarations d'interface pour le compilateur
+ */
+function souscription_declarer_tables_interfaces($interfaces) {
+
+ $interfaces['table_des_tables']['souscription_dons'] = 'souscription_dons';
+
+ return $interfaces;
+}
+
+
+/**
+ * Déclaration des objets éditoriaux
+ *
+ * @pipeline declarer_tables_objets_sql
+ * @param array $tables
+ * Description des tables
+ * @return array
+ * Description complétée des tables
+ */
+function souscription_declarer_tables_objets_sql($tables) {
+
+ $tables['spip_souscription_dons'] =
+ array(
+ 'type' => 'souscription_don',
+ 'principale' => "oui",
+ 'table_objet_surnoms' => array('souscriptiondon'), // table_objet('souscription_don') => 'souscription_dons'
+ 'field'=> array("id_souscription_don" => "bigint(21) NOT NULL",
+ "id_transaction" => "bigint(21) NOT NULL DEFAULT 0",
+ "montant" => "int(11) NOT NULL DEFAULT 0",
+ "courriel" => "text NOT NULL DEFAULT ''",
+ "nom" => "text NOT NULL DEFAULT ''",
+ "prenom" => "text NOT NULL DEFAULT ''",
+ "code_postal" => "text NOT NULL DEFAULT ''",
+ "adresse" => "text NOT NULL DEFAULT ''",
+ "ville" => "text NOT NULL DEFAULT ''",
+ "recu_fiscal" => "int(1) NOT NULL DEFAULT 0",
+ "envoyer_info" => "int(2) NOT NULL DEFAULT 0",
+ /* "statut" => "varchar(255) DEFAULT '0' NOT NULL COLLATE NOCASE", */
+ "date_souscription " => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
+ "maj" => "TIMESTAMP"
+ ),
+ 'key' => array("PRIMARY KEY" => "id_souscription_don",
+ ),
+ 'titre' => "nom AS titre, '' AS lang",
+ 'date' => "date_souscription",
+ 'champs_editables' => array('montant', 'courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'),
+ 'champs_versionnes' => array('montant', 'courriel', 'nom', 'prenom', 'code_postal', 'adresse', 'ville', 'recu_fiscal', 'envoyer_info'),
+ 'rechercher_champs' => array(),
+ 'tables_jointures' => array('spip_transactions' => 'id_transaction'),
+ );
+
+ return $tables;
+}
+
+
+/* /\** */
+/* * Déclaration des tables secondaires (liaisons) */
+/* * */
+/* * @pipeline declarer_tables_auxiliaires */
+/* * @param array $tables */
+/* * Description des tables */
+/* * @return array */
+/* * Description complétée des tables */
+/* *\/ */
+/* function souscription_declarer_tables_auxiliaires($tables) { */
+
+/* $tables['spip_souscription_dons_liens'] = */
+/* array( */
+/* 'field' => array("id_souscription_don" => "bigint(21) DEFAULT '0' NOT NULL", */
+/* "id_objet" => "bigint(21) DEFAULT '0' NOT NULL", */
+/* "objet" => "VARCHAR(25) DEFAULT '' NOT NULL", */
+/* "vu" => "VARCHAR(6) DEFAULT 'non' NOT NULL" */
+/* ), */
+/* 'key' => array("PRIMARY KEY" => "id_souscription_don,id_objet,objet", */
+/* "KEY id_souscription_don" => "id_souscription_don" */
+/* ) */
+/* ); */
+
+/* return $tables; */
+/* } */
+?>
--- /dev/null
+!<?php
+
+/**
+ * Fichier généré par la Fabrique de plugin v5
+ * le 2013-03-01 16:49:34
+ *
+ * Ce fichier de sauvegarde peut servir à recréer
+ * votre plugin avec le plugin «Fabrique» qui a servi à le créer.
+ *
+ * Bien évidemment, les modifications apportées ultérieurement
+ * par vos soins dans le code de ce plugin généré
+ * NE SERONT PAS connues du plugin «Fabrique» et ne pourront pas
+ * être recréées par lui !
+ *
+ * La «Fabrique» ne pourra que régénerer le code de base du plugin
+ * avec les informations dont il dispose.
+ *
+**/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+$data = array (
+ 'fabrique' =>
+ array (
+ 'version' => 5,
+ ),
+ 'paquet' =>
+ array (
+ 'nom' => 'Souscription',
+ 'slogan' => '',
+ 'description' => 'Module de souscription pour Attac France et Basta!',
+ 'prefixe' => 'souscription',
+ 'version' => '1.0.0',
+ 'auteur' => 'Olivier Tétard',
+ 'auteur_lien' => 'http://olivier.miskin.fr',
+ 'licence' => 'GNU/GPL',
+ 'categorie' => 'communication',
+ 'etat' => 'dev',
+ 'compatibilite' => '[3.0.5;3.0.*]',
+ 'documentation' => '',
+ 'administrations' => 'on',
+ 'schema' => '1.0.0',
+ 'formulaire_config' => 'on',
+ 'formulaire_config_titre' => 'Configuration des modules de souscription',
+ 'fichiers' =>
+ array (
+ 0 => 'autorisations',
+ 1 => 'fonctions',
+ 2 => 'options',
+ 3 => 'pipelines',
+ ),
+ 'inserer' =>
+ array (
+ 'paquet' => '',
+ 'administrations' =>
+ array (
+ 'maj' => '',
+ 'desinstallation' => '',
+ 'fin' => '',
+ ),
+ 'base' =>
+ array (
+ 'tables' =>
+ array (
+ 'fin' => '',
+ ),
+ ),
+ ),
+ 'scripts' =>
+ array (
+ 'pre_copie' => '',
+ 'post_creation' => '',
+ ),
+ 'exemples' => '',
+ ),
+ 'objets' =>
+ array (
+ 0 =>
+ array (
+ 'nom' => 'Dons',
+ 'nom_singulier' => 'Don',
+ 'genre' => 'masculin',
+ 'logo_variantes' => '',
+ 'table' => 'spip_souscription_dons',
+ 'cle_primaire' => 'id_souscription_don',
+ 'cle_primaire_sql' => 'bigint(21) NOT NULL',
+ 'table_type' => 'souscription_don',
+ 'champs' =>
+ array (
+ 0 =>
+ array (
+ 'nom' => 'Courriel',
+ 'champ' => 'courriel',
+ 'sql' => 'text NOT NULL DEFAULT \'\'',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ 2 => 'obligatoire',
+ ),
+ 'recherche' => '',
+ 'saisie' => 'input',
+ 'explication' => '',
+ 'saisie_options' => '',
+ ),
+ 1 =>
+ array (
+ 'nom' => 'Nom',
+ 'champ' => 'nom',
+ 'sql' => 'text NOT NULL DEFAULT \'\'',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ ),
+ 'recherche' => '',
+ 'saisie' => 'input',
+ 'explication' => '',
+ 'saisie_options' => '',
+ ),
+ 2 =>
+ array (
+ 'nom' => 'Prénom',
+ 'champ' => 'prenom',
+ 'sql' => 'text NOT NULL DEFAULT \'\'',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ ),
+ 'recherche' => '',
+ 'saisie' => 'input',
+ 'explication' => '',
+ 'saisie_options' => '',
+ ),
+ 3 =>
+ array (
+ 'nom' => 'Code postal',
+ 'champ' => 'code_postal',
+ 'sql' => 'text NOT NULL DEFAULT \'\'',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ ),
+ 'recherche' => '',
+ 'saisie' => 'input',
+ 'explication' => '',
+ 'saisie_options' => '',
+ ),
+ 4 =>
+ array (
+ 'nom' => 'Adresse',
+ 'champ' => 'adresse',
+ 'sql' => 'text NOT NULL DEFAULT \'\'',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ ),
+ 'recherche' => '',
+ 'saisie' => 'textarea',
+ 'explication' => '',
+ 'saisie_options' => '',
+ ),
+ 5 =>
+ array (
+ 'nom' => 'Ville',
+ 'champ' => 'ville',
+ 'sql' => 'text NOT NULL DEFAULT \'\'',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ ),
+ 'recherche' => '',
+ 'saisie' => 'input',
+ 'explication' => '',
+ 'saisie_options' => '',
+ ),
+ 6 =>
+ array (
+ 'nom' => 'Envoyer un reçu fiscal',
+ 'champ' => 'recu_fiscal',
+ 'sql' => 'int(1) NOT NULL DEFAULT 0',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ ),
+ 'recherche' => '',
+ 'saisie' => 'oui_non',
+ 'explication' => '',
+ 'saisie_options' => '',
+ ),
+ 7 =>
+ array (
+ 'nom' => 'Souhaite être informé',
+ 'champ' => 'envoyer_info',
+ 'sql' => 'int(2) NOT NULL DEFAULT 0',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ ),
+ 'recherche' => '',
+ 'saisie' => 'oui_non',
+ 'explication' => 'Souhaite recevoir des informations publiques',
+ 'saisie_options' => '',
+ ),
+ 8 =>
+ array (
+ 'nom' => 'Identifiant de la transaction',
+ 'champ' => 'id_transaction',
+ 'sql' => 'int(11) NOT NULL DEFAULT 0',
+ 'caracteristiques' =>
+ array (
+ 0 => 'editable',
+ 1 => 'versionne',
+ ),
+ 'recherche' => '',
+ 'saisie' => '',
+ 'explication' => '',
+ 'saisie_options' => '',
+ ),
+ ),
+ 'champ_titre' => 'nom',
+ 'champ_date' => 'date_souscription',
+ 'statut' => '',
+ 'chaines' =>
+ array (
+ 'titre_objets' => 'Dons',
+ 'titre_objet' => 'Don',
+ 'info_aucun_objet' => 'Aucun don',
+ 'info_1_objet' => 'Un don',
+ 'info_nb_objets' => '@nb@ dons',
+ 'icone_creer_objet' => 'Créer un don',
+ 'icone_modifier_objet' => 'Modifier ce don',
+ 'titre_logo_objet' => 'Logo de ce don',
+ 'titre_langue_objet' => 'Langue de ce don',
+ 'titre_objets_rubrique' => 'Dons de la rubrique',
+ 'info_objets_auteur' => 'Les dons de cet auteur',
+ 'retirer_lien_objet' => 'Retirer ce don',
+ 'retirer_tous_liens_objets' => 'Retirer tous les dons',
+ 'ajouter_lien_objet' => 'Ajouter ce don',
+ 'texte_ajouter_objet' => 'Ajouter un don',
+ 'texte_creer_associer_objet' => 'Créer et associer un don',
+ 'texte_changer_statut_objet' => 'Ce don est :',
+ ),
+ 'table_liens' => 'on',
+ 'roles' => '',
+ 'auteurs_liens' => '',
+ 'vue_auteurs_liens' => '',
+ 'echafaudages' =>
+ array (
+ 0 => 'prive/squelettes/contenu/objets.html',
+ 1 => 'prive/objets/infos/objet.html',
+ 2 => 'prive/squelettes/contenu/objet.html',
+ ),
+ 'autorisations' =>
+ array (
+ 'objet_creer' => 'toujours',
+ 'objet_voir' => 'webmestre',
+ 'objet_modifier' => 'webmestre',
+ 'objet_supprimer' => 'webmestre',
+ 'associerobjet' => 'webmestre',
+ ),
+ 'boutons' =>
+ array (
+ 0 => 'menu_edition',
+ 1 => 'outils_rapides',
+ ),
+ 'saisies' =>
+ array (
+ 0 => 'objets',
+ ),
+ ),
+ ),
+ 'images' =>
+ array (
+ 'paquet' =>
+ array (
+ 'logo' =>
+ array (
+ 0 =>
+ array (
+ 'extension' => '',
+ 'contenu' => '',
+ ),
+ ),
+ ),
+ 'objets' =>
+ array (
+ 0 =>
+ array (
+ ),
+ ),
+ ),
+);
+
+?>
\ No newline at end of file
--- /dev/null
+<div class="formulaire_spip formulaire_configurer formulaire_#FORM">
+
+ <h3 class="titrem"><:souscription:cfg_titre_parametrages:></h3>
+
+ [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
+ [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
+
+ <form method="post" action="#ENV{action}">
+ <div>
+ #ACTION_FORMULAIRE{#ENV{action}}
+
+ <input type="hidden" name="_meta_casier" value="souscription" />
+ <p class="boutons"><span class="image_loading"> </span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
+ </div>
+ </form>
+</div>
\ No newline at end of file
--- /dev/null
+<div class='formulaire_spip formulaire_editer formulaire_#FORM formulaire_#FORM-#ENV{id_souscription_campagne,nouveau}'>
+ [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
+ [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
+
+ [(#ENV{editable})
+ <form method='post' action='#ENV{action}'><div>
+ #ACTION_FORMULAIRE{#ENV{action}}
+
+
+ <ul>
+ [(#SAISIE{input, titre, obligatoire=oui, label=<:souscription_campagne:label_titre:>})]
+ [(#SAISIE{selection, type_objectif, obligatoire=oui,
+ label=<:souscription_campagne:label_type_objectif:>,
+ explication=<:souscription_campagne:explication_type_objectif:>,
+ datas=#ARRAY{souscriptiondon, Dons, souscriptionadhesion, Adhésions, souscriptionabonnement, Abonnements}})]
+ [(#SAISIE{input, objectif, obligatoire=oui, label=<:souscription_campagne:label_objectif:>, explication=<:souscription_campagne:explication_objectif:>})]
+ [(#SAISIE{input, objectif_initial, obligatoire=oui, label=<:souscription_campagne:label_objectif_initial:>, explication=<:souscription_campagne:explication_objectif_initial:>})]
+ [(#SAISIE{textarea, texte, label=<:souscription_campagne:label_description:>, inserer_barre=edition, rows=10})]
+ </ul>
+
+ <p class="boutons"><input type='submit' class='submit' value='<:souscription_campagne:confirmer_creation_campagne:>' /></p>
+ </div>
+ </form>
+ ]
+</div>
--- /dev/null
+<?php
+/**
+ * Gestion du formulaire de d'édition de souscription_campagne
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Formulaires
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+include_spip('inc/actions');
+include_spip('inc/editer');
+
+function formulaires_editer_souscription_campagne_identifier_dist($id_souscription_campagne='new',
+ $retour='',
+ $lier_trad=0,
+ $config_fonc='',
+ $row=array(),
+ $hidden='')
+{
+ return serialize(array(intval($id_souscription_campagne)));
+}
+
+function formulaires_editer_souscription_campagne_charger_dist($id_souscription_campagne='new',
+ $retour='',
+ $lier_trad=0,
+ $config_fonc='',
+ $row=array(),
+ $hidden='')
+{
+ return formulaires_editer_objet_charger('souscription_campagne',
+ $id_souscription_campagne,
+ '',
+ $lier_trad,
+ $retour,
+ $config_fonc,
+ $row,
+ $hidden);
+
+ /* return array_merge($valeurs, array('objectif' => '0', */
+ /* 'objectif_initial' => '0', */
+ /* 'type_objectif' => 'souscriptiondon', */
+ /* )); */
+}
+
+function formulaires_editer_souscription_campagne_verifier_dist($id_souscription_campagne='new',
+ $retour='',
+ $lier_trad=0,
+ $config_fonc='',
+ $row=array(),
+ $hidden='')
+{
+ return formulaires_editer_objet_verifier('souscription_campagne',
+ $id_souscription_campagne,
+ array('titre',
+ 'objectif',
+ 'objectif_initial',
+ 'type_objectif',
+ ));
+
+}
+
+function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne='new',
+ $retour='',
+ $lier_trad=0,
+ $config_fonc='',
+ $row=array(),
+ $hidden='')
+{
+
+ $res = formulaires_editer_objet_traiter('souscription_campagne',
+ $id_souscription_campagne,
+ '',
+ $lier_trad,
+ $retour,
+ $config_fonc,
+ $row,
+ $hidden);
+
+ /* // Un lien a prendre en compte ? */
+ /* if ($associer_objet AND $id_souscription_campagne = $res['id_souscription_campagne']) { */
+ /* list($objet, $id_objet) = explode('|', $associer_objet); */
+
+ /* if ($objet AND $id_objet AND autoriser('modifier', $objet, $id_objet)) { */
+ /* include_spip('action/editer_liens'); */
+ /* objet_associer(array('souscription_campagne' => $id_souscription_campagne), array($objet => $id_objet)); */
+ /* if (isset($res['redirect'])) { */
+ /* $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_souscription_campagne, '&'); */
+ /* } */
+ /* } */
+ /* } */
+
+ return $res;
+}
--- /dev/null
+<script language="JavaScript" type="text/javascript">
+$(document).ready(function() {
+ if($('input[type=radio][name=recu_fiscal]:checked').attr('value') == 'on') {
+ $("#don_bloc_fiscal").show();
+ }
+ else {
+ $("#don_bloc_fiscal").hide();
+ }
+
+ $("input[type=radio][name=recu_fiscal]").change(function() {
+ $("#don_bloc_fiscal").toggle();
+ });
+});
+</script>
+
+<div class='formulaire_spip formulaire_#FORM formulaire_#FORM-#ENV{id_souscription_don,nouveau}'>
+ [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
+ [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
+
+
+ [(#ENV{editable})
+ <form method='post' action='#ENV{action}'><div>
+ #ACTION_FORMULAIRE{#ENV{action}}
+ <ul>
+ [(#SAISIE{input, courriel, obligatoire=oui, label=<:souscription_don:label_courriel:>})]
+ [(#SAISIE{input, montant, obligatoire=oui, label=<:souscription_don:label_montant:>})]
+ [(#SAISIE{oui_non, recu_fiscal, label=<:souscription_don:label_recu_fiscal:>})]
+ [(#SAISIE{oui_non, envoyer_info, label=<:souscription_don:label_envoyer_info:> })]
+ [(#SAISIE{hidden, id_souscription_campagne})]
+ </ul>
+
+ <fieldset id="don_bloc_fiscal">
+ <legend>Informations complémentaires</legend>
+ <p>Les informations suivantes sont nécessaires (...)</p>
+ <ul>
+ [(#SAISIE{input, prenom, label=<:souscription_don:label_prenom:>})]
+ [(#SAISIE{input, nom, label=<:souscription_don:label_nom:>})]
+ [(#SAISIE{textarea, adresse, label=<:souscription_don:label_adresse:>, rows=3})]
+ [(#SAISIE{input, code_postal, label=<:souscription_don:label_code_postal:>})]
+ [(#SAISIE{input, ville, label=<:souscription_don:label_ville:>})]
+ </ul>
+ </fieldset>
+ <p class="boutons"><input type='submit' class='submit' value='<:souscription_don:confirmer_don:>' /></p>
+ </div>
+ </form>
+ ]
+</div>
--- /dev/null
+<?php
+/**
+ * Gestion du formulaire de d'édition de souscription_don
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Formulaires
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+include_spip('inc/actions');
+include_spip('inc/editer');
+
+/**
+ * Identifier le formulaire en faisant abstraction des paramètres qui ne représentent pas l'objet edité
+ *
+ * @param int|string $id_souscription_don
+ * Identifiant du souscription_don. 'new' pour un nouveau souscription_don.
+ * @param string $retour
+ * URL de redirection après le traitement
+ * @param int $lier_trad
+ * Identifiant éventuel d'un souscription_don source d'une traduction
+ * @param string $config_fonc
+ * Nom de la fonction ajoutant des configurations particulières au formulaire
+ * @param array $row
+ * Valeurs de la ligne SQL du souscription_don, si connu
+ * @param string $hidden
+ * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
+ * @return string
+ * Hash du formulaire
+ */
+function formulaires_souscription_don_identifier_dist($id_souscription_don='new',
+ $retour='',
+ $lier_trad=0,
+ $config_fonc='',
+ $row=array(),
+ $hidden='')
+{
+ return serialize(array(intval($id_souscription_don)));
+}
+
+/**
+ * Chargement du formulaire d'édition de souscription_don
+ *
+ * Déclarer les champs postés et y intégrer les valeurs par défaut
+ *
+ * @uses formulaires_editer_objet_charger()
+ *
+ * @param int|string $id_souscription_don
+ * Identifiant du souscription_don. 'new' pour un nouveau souscription_don.
+ * @param string $retour
+ * URL de redirection après le traitement
+ * @param int $lier_trad
+ * Identifiant éventuel d'un souscription_don source d'une traduction
+ * @param string $config_fonc
+ * Nom de la fonction ajoutant des configurations particulières au formulaire
+ * @param array $row
+ * Valeurs de la ligne SQL du souscription_don, si connu
+ * @param string $hidden
+ * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
+ * @return array
+ * Environnement du formulaire
+ */
+function formulaires_souscription_don_charger_dist($id_souscription_campagne) {
+
+ if(!verifier_campagne($id_souscription_campagne))
+ return false;
+
+ return array('montant' => '',
+ 'courriel' => '',
+ 'recu_fiscal' => '',
+ 'envoyer_info' => 'on',
+ 'prenom' => '',
+ 'nom' => '',
+ 'adresse' => '',
+ 'code_postal' => '',
+ 'ville' => '',
+ 'id_souscription_campagne' => $id_souscription_campagne,
+ );
+}
+
+/**
+ * Vérifications du formulaire d'édition de souscription_don
+ *
+ * Vérifier les champs postés et signaler d'éventuelles erreurs
+ *
+ * @uses formulaires_editer_objet_verifier()
+ *
+ * @param int|string $id_souscription_don
+ * Identifiant du souscription_don. 'new' pour un nouveau souscription_don.
+ * @param string $retour
+ * URL de redirection après le traitement
+ * @param int $lier_trad
+ * Identifiant éventuel d'un souscription_don source d'une traduction
+ * @param string $config_fonc
+ * Nom de la fonction ajoutant des configurations particulières au formulaire
+ * @param array $row
+ * Valeurs de la ligne SQL du souscription_don, si connu
+ * @param string $hidden
+ * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
+ * @return array
+ * Tableau des erreurs
+ */
+function formulaires_souscription_don_verifier_dist($id_souscription_campagne)
+{
+ $erreurs = formulaires_editer_objet_verifier('souscription_don', 'new',
+ array('courriel',
+ 'montant',
+ 'id_souscription_campagne'));
+
+ if(!verifier_campagne($id_souscription_campagne)) {
+ $erreurs['message_erreur'] = "La campagne à laquelle est associée ce don est invalide";
+ }
+
+ if(_request('recu_fiscal')) {
+ foreach(array('prenom', 'nom', 'adresse', 'code_postal', 'ville') as $obligatoire) {
+ if(!_request($obligatoire)) {
+ $erreurs[$obligatoire] = 'Ce champ est obligatoire (reçu fiscal demandé)';
+ }
+ }
+ }
+
+ if(intval($id_souscription_campagne) != intval(_request('id_souscription_campagne')))
+ $erreurs['message_erreur'] = "Campagne invalide";
+
+ if ($e = _request('courriel') AND !email_valide($e))
+ $erreurs['courriel'] = _T('form_prop_indiquer_email');
+
+ if ($e = _request('montant') AND !(ctype_digit($e))) {
+ /* FIXME: vérifier que le montant est compris dans les bornes. */
+ $erreurs['montant'] = "Montant invalide";
+ }
+
+ return $erreurs;
+}
+
+/**
+ * Traitement du formulaire d'édition de souscription_don
+ *
+ * Traiter les champs postés
+ *
+ * @uses formulaires_editer_objet_traiter()
+ *
+ * @param int|string $id_souscription_don
+ * Identifiant du souscription_don. 'new' pour un nouveau souscription_don.
+ * @param string $retour
+ * URL de redirection après le traitement
+ * @param int $lier_trad
+ * Identifiant éventuel d'un souscription_don source d'une traduction
+ * @param string $config_fonc
+ * Nom de la fonction ajoutant des configurations particulières au formulaire
+ * @param array $row
+ * Valeurs de la ligne SQL du souscription_don, si connu
+ * @param string $hidden
+ * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
+ * @return array
+ * Retours des traitements
+ */
+function formulaires_souscription_don_traiter_dist($id_souscription_campagne)
+{
+
+ $lier_trad=0;
+ $config_fonc='';
+ $row=array();
+ $hidden='';
+
+ $ret = formulaires_editer_objet_traiter('souscription_don',
+ 'new',
+ '',
+ $lier_trad,
+ $retour,
+ $config_fonc,
+ $row,
+ $hidden);
+
+ $redirect = "";
+ $row = sql_fetsel("transaction_hash,id_transaction", /* $select */
+ "spip_transactions LEFT JOIN spip_souscription_dons USING(id_transaction)", /* $from */
+ "id_souscription_don=".$ret['id_souscription_don']); /* $where */
+
+ if(!$row) {
+ $ret['message_erreur'] = "Echec creation de la transaction";
+ }
+ else {
+ $hash = $row['transaction_hash'];
+ $id_transaction = $row['id_transaction'];
+ $redirect = generer_url_public("payer", "id_transaction=$id_transaction&transaction_hash=$hash");
+ $ret['redirect'] = $redirect;
+ }
+
+ return $ret;
+}
+
+/* /\* return array('message_ok' => "Transaction $id_transaction cree", *\/ */
+/* /\* 'editable' => true, *\/ */
+/* /\* 'redirect' => $redirect); *\/ */
+
+/* return formulaires_editer_objet_traiter('souscription_don', */
+/* $id_souscription_don, */
+/* '', */
+/* $lier_trad, */
+/* $redirect, */
+/* $config_fonc, */
+/* $row), */
+/* $hidden); */
+/* } */
+/* else { */
+/* return array('message_erreur' => "Echec creation de la transaction", */
+/* 'editable' => true); */
+/* } */
+
+
+function verifier_campagne($id_souscription_campagne) {
+ /* FIXME: vérifier que la campagne a bien le bon statut (ouverte, fermée, terminée, etc.) */
+
+ /* Vérification de l'existance de la *campagne*, de son *statut* et de la *concordance du type* */
+ if(intval($id_souscription_campagne)
+ AND $t = sql_getfetsel('type_objectif', 'spip_souscription_campagnes', 'id_souscription_campagne='.intval($id_souscription_campagne))
+ AND $t == 'souscriptiondon')
+ {
+ return true;
+ }
+
+ return false;
+}
--- /dev/null
+<?php
+// This is a SPIP language file -- Ceci est un fichier langue de SPIP
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+ // S
+ 'souscription_description' => 'Module de souscription pour Attac France et Basta!',
+ 'souscription_nom' => 'Souscription',
+ 'souscription_slogan' => '',
+);
+
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This is a SPIP language file -- Ceci est un fichier langue de SPIP
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+$GLOBALS[$GLOBALS['idx_lang']] =
+ array(
+
+ // C
+ 'confirmer_creation_campagne' => 'Enregistrer',
+
+ // E
+ 'explication_objectif' => "Permet d'indiquer un objectif monétaire pour la campagne.<br/>Mettre 0 si la campagne n'a pas d'objectif.",
+ 'explication_objectif_initial' => "Permet d'indiquer le niveau initial de la campagne. Ce champs peut être utilisé pour indiquer des dons, adhésions ou abonnements n'ayant pas été compatibilisées par le module de souscriptions.",
+ 'explication_type_objectif' => "Type de l'objectif (influe le montant de l'objectif)",
+
+ // I
+ 'info_1_souscription_campagne' => 'Une campagne',
+ 'info_aucun_souscription_campagne' => 'Aucune campagne',
+ 'info_nb_souscription_campagnes' => '@nb@ campagnes',
+ 'icone_creer_souscription_campagne' => 'Créer une campagne',
+ 'icone_modifier_souscription_campagne' => 'Modifier cette campagne',
+
+ // L
+ 'label_description' => 'Description de la campagne',
+ 'label_objectif_initial' => 'Niveau initial de la campagne',
+ 'label_objectif' => 'Niveau de l\'objectif',
+ 'label_titre' => 'Titre',
+ 'label_type_objectif' => "Type d'objectif",
+ 'label_montant_actuel' => "Niveau actuel de la campagne",
+
+ // T
+ 'titre_souscription_campagnes' => 'Campagnes',
+ 'titre_souscription_campagne' => 'Campagne',
+ 'titre_logo_souscription_campagne' => 'Logo de cette campagne',
+);
+
+?>
--- /dev/null
+<?php
+// This is a SPIP language file -- Ceci est un fichier langue de SPIP
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+ // A
+ 'ajouter_lien_souscription_don' => 'Ajouter ce don',
+
+ // C
+ 'confirmer_don' => 'Faire un don',
+
+ // E
+ 'explication_envoyer_info' => 'Souhaite recevoir des informations publiques',
+
+ // I
+ 'icone_creer_souscription_don' => 'Créer un don',
+ 'icone_modifier_souscription_don' => 'Modifier ce don',
+ 'info_1_souscription_don' => 'Un don',
+ 'info_aucun_souscription_don' => 'Aucun don',
+ 'info_nb_souscription_dons' => '@nb@ dons',
+ 'info_souscription_dons_auteur' => 'Les dons de cet auteur',
+
+ // L
+ 'label_adresse' => 'Adresse',
+ 'label_code_postal' => 'Code postal',
+ 'label_courriel' => 'Courriel',
+ 'label_montant' => 'Montant',
+ 'label_envoyer_info' => 'Souhaite recevoir des informations publiques',
+ 'label_id_transaction' => 'Identifiant de la transaction',
+ 'label_nom' => 'Nom',
+ 'label_prenom' => 'Prénom',
+ 'label_recu_fiscal' => 'Envoyer un reçu fiscal',
+ 'label_ville' => 'Ville',
+ 'label_campagne' => 'Campagne',
+ 'label_titre_campagne' => 'Titre de la campagne',
+ 'label_exporter_payes' => 'Exporter les dons payés',
+ 'label_exporter_tous' => 'Exporter tous les dons',
+
+ // R
+ 'retirer_lien_souscription_don' => 'Retirer ce don',
+ 'retirer_tous_liens_souscription_dons' => 'Retirer tous les dons',
+
+ // T
+ 'texte_ajouter_souscription_don' => 'Ajouter un don',
+ 'texte_changer_statut_souscription_don' => 'Ce don est :',
+ 'texte_creer_associer_souscription_don' => 'Créer et associer un don',
+ 'titre_langue_souscription_don' => 'Langue de ce don',
+ 'titre_logo_souscription_don' => 'Logo de ce don',
+ 'titre_souscription_don' => 'Don',
+ 'titre_souscription_dons' => 'Dons',
+ 'titre_souscription_dons_rubrique' => 'Dons de la rubrique',
+
+ // V
+ 'voir_exporter' => "Exporter les dons",
+);
+
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This is a SPIP language file -- Ceci est un fichier langue de SPIP
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+ // A
+ 'ajouter_lien_souscription_don' => 'Ajouter ce don',
+
+ // C
+ 'confirmer_don' => 'Faire un don',
+
+ // E
+ 'explication_envoyer_info' => 'Souhaite recevoir des informations publiques',
+
+ // I
+ 'icone_creer_souscription_don' => 'Créer un don',
+ 'icone_modifier_souscription_don' => 'Modifier ce don',
+ 'info_1_souscription_don' => 'Un don',
+ 'info_aucun_souscription_don' => 'Aucun don',
+ 'info_nb_souscription_dons' => '@nb@ dons',
+ 'info_souscription_dons_auteur' => 'Les dons de cet auteur',
+
+ // L
+ 'label_adresse' => 'Adresse',
+ 'label_code_postal' => 'Code postal',
+ 'label_courriel' => 'Courriel',
+ 'label_montant' => 'Montant',
+ 'label_envoyer_info' => 'Souhaite être informé',
+ 'label_id_transaction' => 'Identifiant de la transaction',
+ 'label_nom' => 'Nom',
+ 'label_prenom' => 'Prénom',
+ 'label_recu_fiscal' => 'Envoyer un reçu fiscal',
+ 'label_ville' => 'Ville',
+
+ // R
+ 'retirer_lien_souscription_don' => 'Retirer ce don',
+ 'retirer_tous_liens_souscription_dons' => 'Retirer tous les dons',
+
+ // T
+ 'texte_ajouter_souscription_don' => 'Ajouter un don',
+ 'texte_changer_statut_souscription_don' => 'Ce don est :',
+ 'texte_creer_associer_souscription_don' => 'Créer et associer un don',
+ 'titre_langue_souscription_don' => 'Langue de ce don',
+ 'titre_logo_souscription_don' => 'Logo de ce don',
+ 'titre_souscription_don' => 'Don',
+ 'titre_souscription_dons' => 'Dons',
+ 'titre_souscription_dons_rubrique' => 'Dons de la rubrique',
+);
+
+?>
\ No newline at end of file
--- /dev/null
+<?php
+// This is a SPIP language file -- Ceci est un fichier langue de SPIP
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+ // S
+ 'souscription_titre' => 'Souscription',
+
+ // C
+ 'cfg_exemple' => 'Exemple',
+ 'cfg_exemple_explication' => 'Explication de cet exemple',
+ 'cfg_titre_parametrages' => 'Paramétrages',
+
+ // S
+ 'titre_souscriptions' => 'Souscriptions',
+
+ // T
+ 'titre_page_configurer_souscription' => 'Configuration des modules de souscription',
+ 'titre_page_souscriptions_tous' => 'Liste des souscriptions',
+ 'titre_types_souscriptions' => 'Types de souscriptions',
+);
+
+?>
\ No newline at end of file
--- /dev/null
+<BOUCLE_campagne(SOUSCRIPTION_CAMPAGNES){id_souscription_campagne=#ENV{campagne}}>
+
+<h2>#TITRE</h2>
+
+#TEXTE
+
+<BOUCLE_campagne_dons(SOUSCRIPTION_DONS transactions){id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}{transactions.reglee=oui}{somme montant}>
+[(#SET{montant,#SOMME{montant}|plus{#OBJECTIF_INITIAL}})]
+[(#SET{pourcentage_objectif,#GET{montant}|div{#OBJECTIF}|mult{100}})]
+
+Avancement de la campagne : #GET{montant} € sur #OBJECTIF € !
+<div class="progress progress-striped active">
+ <div class="bar" style="width: #GET{pourcentage_objectif}%;">#GET{pourcentage_objectif} %</div>
+</div>
+</BOUCLE_campagne_dons>
+
+#FORMULAIRE_SOUSCRIPTION_DON{#ENV{campagne}}
+
+</BOUCLE_campagne>
--- /dev/null
+!!!
+
+
+#FORMULAIRE_SOUSCRIPTION_DON{1}
+
--- /dev/null
+<paquet
+ prefix="souscription"
+ categorie="communication"
+ version="0.0.1"
+ etat="dev"
+ compatibilite="[3.0.5;3.0.*]"
+ logo=""
+ documentation=""
+ schema="0.0.3"
+ >
+
+ <nom>Souscription</nom>
+
+ <auteur lien='http://olivier.miskin.fr'>Olivier Tétard</auteur>
+
+ <licence>GNU/GPL</licence>
+ <necessite nom="saisies" compatibilite="[1.24.0;]" />
+ <necessite nom="bank" compatibilite="[2.2.1;]" />
+ <necessite nom="spip_bonux" compatibilite="[3.0.4;]" />
+
+ <pipeline nom="autoriser" inclure="souscription_autorisations.php" />
+
+ <pipeline nom="declarer_tables_objets_sql" inclure="base/souscription.php" />
+ <pipeline nom="declarer_tables_interfaces" inclure="base/souscription.php" />
+ <pipeline nom="optimiser_base_disparus" inclure="souscription_pipelines.php" />
+
+ <menu nom="souscription" titre="souscription:titre_souscriptions" parent="menu_activite" icone="images/souscription_don-16.png" action="souscriptions" />
+
+</paquet>
--- /dev/null
+<paquet
+ prefix="souscription"
+ categorie="communication"
+ version="0.0.1"
+ etat="dev"
+ compatibilite="[3.0.5;3.0.*]"
+ logo=""
+ documentation=""
+ schema="0.0.1"
+ >
+
+ <nom>Souscription</nom>
+
+ <auteur lien='http://olivier.miskin.fr'>Olivier Tétard</auteur>
+
+ <licence>GNU/GPL</licence>
+ <necessite nom="saisies" compatibilite="[1.24.0;]" />
+ <necessite nom="bank" compatibilite="[2.2.1;]" />
+ <necessite nom="spip_bonux" compatibilite="[3.0.4;]" />
+
+ <!-- <pipeline nom="autoriser" inclure="souscription_autorisations.php" /> -->
+
+ <pipeline nom="declarer_tables_objets_sql" inclure="base/souscription.php" />
+ <pipeline nom="declarer_tables_interfaces" inclure="base/souscription.php" />
+ <pipeline nom="optimiser_base_disparus" inclure="souscription_pipelines.php" />
+
+ <menu nom="souscription" titre="souscription:titre_souscriptions" parent="menu_activite" icone="images/souscription_don-16.png" action="souscriptions" />
+
+</paquet>
--- /dev/null
+<BOUCLE_souscription_campagne(SOUSCRIPTION_CAMPAGNES souscription_campagnes_liens){id_souscription_campagne}>
+
+[<div class="champ contenu_type_objectif[ (#TYPE_OBJECTIF*|strlen|?{'',vide})]">
+ <label><:souscription_campagne:label_type_objectif:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{type_objectif} type_objectif'>(#TYPE_OBJECTIF)</span>
+</div>]
+
+[<div class="champ contenu_objectif_initial[ (#OBJECTIF_INITIAL*|strlen|?{'',vide})]">
+ <label><:souscription_campagne:label_objectif_initial:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{objectif_initial} objectif_initial'>(#OBJECTIF_INITIAL)</span>
+</div>]
+
+[<div class="champ contenu_objectif[ (#OBJECTIF*|strlen|?{'',vide})]">
+ <label><:souscription_campagne:label_objectif:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{objectif} objectif'>(#OBJECTIF)</span>
+</div>]
+
+<BOUCLE_souscription_campagne_montant(SOUSCRIPTION_DONS transactions){id_souscription_campagne=#ID_SOUSCRIPTION_CAMPAGNE}{transactions.reglee=oui}{somme montant}>
+[(#SET{montant,#SOMME{montant}|plus{#OBJECTIF_INITIAL}})]
+<div class="champ contenu_objectif">
+ <label><:souscription_campagne:label_montant_actuel:> : </label>
+ <span class='montant_actuel'>#GET{montant}</span>
+</div>
+</BOUCLE_souscription_campagne_montant>
+
+[<div class="champ contenu_texte[ (#TEXTE*|strlen|?{'',vide})]">
+ <span dir='#LANG_DIR' class='#EDIT{texte} texte'>(#TEXTE)</span>
+</div>]
+
+</BOUCLE_souscription_campagne>
--- /dev/null
+<BOUCLE_souscription_don(SOUSCRIPTION_DONS spip_transactions){id_souscription_don}>
+
+[<div class="champ contenu_courriel[ (#COURRIEL*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_courriel:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{courriel} courriel'>(#COURRIEL)</span>
+</div>]
+
+[<div class="champ contenu_montant[ (#MONTANT*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_montant:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{montant} montant'>(#MONTANT)</span>
+</div>]
+
+<div>
+
+ <ul>
+ [<li><strong>Identifiant</strong> : <span dir='#LANG_DIR' class='#EDIT{id_transaction} id_transaction'>(#ID_TRANSACTION)</li>]
+ [<li><strong>Statut</strong> : <span dir='#LANG_DIR' class='#EDIT{statut} statut'>(#STATUT)</span></li>]
+ [<li><strong>Mode de paiement</strong> : <span dir='#LANG_DIR' class='#EDIT{statut} statut'>(#MODE)</span></li>]
+ [<li><strong>Date de paiement</strong> : <span dir='#LANG_DIR' class='#EDIT{statut} statut'>(#DATE_PAIEMENT)</span></li>]
+ [<li><strong>Identifiant d'autorisation</strong> : <span dir='#LANG_DIR' class='#EDIT{statut} statut'>(#AUTORISATION_ID)</span></li>]
+ </ul>
+</div>
+
+<div style="border: 1px solid black ; margin: 1em; padding: 1em;">
+
+[<div class="champ contenu_nom[ (#NOM*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_nom:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{nom} nom'>(#NOM)</span>
+</div>]
+
+[<div class="champ contenu_prenom[ (#PRENOM*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_prenom:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{prenom} prenom'>(#PRENOM)</span>
+</div>]
+
+[<div class="champ contenu_code_postal[ (#CODE_POSTAL*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_code_postal:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{code_postal} code_postal'>(#CODE_POSTAL)</span>
+</div>]
+
+[<div class="champ contenu_adresse[ (#ADRESSE*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_adresse:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{adresse} adresse'>(#ADRESSE)</span>
+</div>]
+
+[<div class="champ contenu_ville[ (#VILLE*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_ville:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{ville} ville'>(#VILLE)</span>
+</div>]
+
+[<div class="champ contenu_recu_fiscal[ (#RECU_FISCAL*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_recu_fiscal:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{recu_fiscal} recu_fiscal'>(#RECU_FISCAL)</span>
+</div>]
+
+[<div class="champ contenu_envoyer_info[ (#ENVOYER_INFO*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_envoyer_info:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{envoyer_info} envoyer_info'>(#ENVOYER_INFO)</span>
+</div>]
+
+</div>
+
+</BOUCLE_souscription_don>
--- /dev/null
+<BOUCLE_souscription_don(SOUSCRIPTION_DONS transactions souscription_campagnes){id_souscription_don}>
+
+[<div class="champ contenu_courriel[ (#COURRIEL*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_courriel:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{courriel} courriel">(#COURRIEL)</span>
+</div>]
+
+[<div class="champ contenu_titre_campagne[ (#TITRE*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_titre_campagne:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{titre} titre">(#TITRE)</span>
+</div>]
+
+[<div class="champ contenu_montant[ (#MONTANT*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_montant:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{montant} montant">(#MONTANT) €</span>
+</div>]
+
+<div>
+ <ul>
+ [<li><strong>Identifiant de la transaction</strong> : <span dir="#LANG_DIR" class="#EDIT{id_transaction} id_transaction">(#ID_TRANSACTION)</li>]
+ [<li><strong>Statut</strong> : <span dir="#LANG_DIR" class="#EDIT{statut} statut">(#STATUT)</span></li>]
+ [<li><strong>Mode de paiement</strong> : <span dir="#LANG_DIR" class="#EDIT{statut} statut">(#MODE)</span></li>]
+ [<li><strong>Date de paiement</strong> : <span dir="#LANG_DIR" class="#EDIT{statut} statut">(#DATE_PAIEMENT)</span></li>]
+ [<li><strong>Identifiant d'autorisation</strong> : <span dir="#LANG_DIR" class="#EDIT{statut} statut">(#AUTORISATION_ID)</span></li>]
+ </ul>
+</div>
+
+<div style="border: 1px solid black ; margin: 1em; padding: 1em;">
+
+[<div class="champ contenu_nom[ (#NOM*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_nom:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{nom} nom">(#NOM)</span>
+</div>]
+
+[<div class="champ contenu_prenom[ (#PRENOM*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_prenom:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{prenom} prenom">(#PRENOM)</span>
+</div>]
+
+[<div class="champ contenu_code_postal[ (#CODE_POSTAL*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_code_postal:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{code_postal} code_postal">(#CODE_POSTAL)</span>
+</div>]
+
+[<div class="champ contenu_adresse[ (#ADRESSE*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_adresse:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{adresse} adresse">(#ADRESSE)</span>
+</div>]
+
+[<div class="champ contenu_ville[ (#VILLE*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_ville:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{ville} ville">(#VILLE)</span>
+</div>]
+
+[<div class="champ contenu_recu_fiscal">
+ <label><:souscription_don:label_recu_fiscal:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{recu_fiscal} recu_fiscal">(#RECU_FISCAL|?{"oui","non"})</span>
+</div>]
+
+[<div class="champ contenu_envoyer_info">
+ <label><:souscription_don:label_envoyer_info:> : </label>
+ <span dir="#LANG_DIR" class="#EDIT{envoyer_info} envoyer_info">(#ENVOYER_INFO|?{"oui","non"})</span>
+</div>]
+
+</div>
+
+</BOUCLE_souscription_don>
--- /dev/null
+<BOUCLE_souscription_don(SOUSCRIPTION_DONS){id_souscription_don}>
+
+[<div class="champ contenu_courriel[ (#COURRIEL*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_courriel:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{courriel} courriel'>(#COURRIEL)</span>
+</div>]
+
+[<div class="champ contenu_montant[ (#MONTANT*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_montant:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{montant} montant'>(#MONTANT)</span>
+</div>]
+
+<div>
+
+ <ul>
+ [<li><strong>Identifiant</strong> : <span dir='#LANG_DIR' class='#EDIT{id_transaction} id_transaction'>(#ID_TRANSACTION)</li>]
+ [<li><strong>Statut</strong> : <span dir='#LANG_DIR' class='#EDIT{statut} statut'>(#STATUT)</span></li>]
+ [<li><strong>Mode de paiement</strong> : <span dir='#LANG_DIR' class='#EDIT{statut} statut'>(#MODE)</span></li>]
+ [<li><strong>Date de paiement</strong> : <span dir='#LANG_DIR' class='#EDIT{statut} statut'>(#DATE_PAIEMENT)</span></li>]
+ [<li><strong>Identifiant d'autorisation</strong> : <span dir='#LANG_DIR' class='#EDIT{statut} statut'>(#AUTORISATION_ID)</span></li>]
+ </ul>
+</div>
+
+<div style="border: 1px solid black ; margin: 1em; padding: 1em;">
+
+[<div class="champ contenu_nom[ (#NOM*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_nom:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{nom} nom'>(#NOM)</span>
+</div>]
+
+[<div class="champ contenu_prenom[ (#PRENOM*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_prenom:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{prenom} prenom'>(#PRENOM)</span>
+</div>]
+
+[<div class="champ contenu_code_postal[ (#CODE_POSTAL*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_code_postal:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{code_postal} code_postal'>(#CODE_POSTAL)</span>
+</div>]
+
+[<div class="champ contenu_adresse[ (#ADRESSE*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_adresse:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{adresse} adresse'>(#ADRESSE)</span>
+</div>]
+
+[<div class="champ contenu_ville[ (#VILLE*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_ville:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{ville} ville'>(#VILLE)</span>
+</div>]
+
+[<div class="champ contenu_recu_fiscal[ (#RECU_FISCAL*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_recu_fiscal:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{recu_fiscal} recu_fiscal'>(#RECU_FISCAL)</span>
+</div>]
+
+[<div class="champ contenu_envoyer_info[ (#ENVOYER_INFO*|strlen|?{'',vide})]">
+ <label><:souscription_don:label_envoyer_info:> : </label>
+ <span dir='#LANG_DIR' class='#EDIT{envoyer_info} envoyer_info'>(#ENVOYER_INFO)</span>
+</div>]
+
+</div>
+
+</BOUCLE_souscription_don>
--- /dev/null
+<BOUCLE_souscription_don(SOUSCRIPTION_DONS){id_souscription_don=#ENV{id}}>
+<div class='infos'>
+[(#SET{texte_objet,<:souscription_don:titre_souscription_don:>})]
+<div class='numero'><:titre_cadre_numero_objet{objet=#GET{texte_objet}}:><p>#ID_SOUSCRIPTION_DON</p></div>
+
+</div>
+</BOUCLE_souscription_don>
\ No newline at end of file
--- /dev/null
+[(#SET{defaut_tri,#ARRAY{
+ courriel,1,
+ nom,-1,
+ date_souscription,-1,
+ id_souscription_don,1,
+ points,-1
+}})]<B_liste_souscription_dons>
+#ANCRE_PAGINATION
+<div class="liste-objets souscription_dons">
+<table class="spip liste">
+ [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{souscription_don:info_1_souscription_don,souscription_don:info_nb_souscription_dons}})</strong></caption>]
+ <thead>
+ <tr class="first_row">
+ <th class="courriel" scope="col">[(#TRI{courriel,<:souscription_don:label_courriel:>,ajax})]</th>
+ <th class="montant" scope="col">[(#TRI{montant,<:souscription_don:label_montant:>,ajax})]</th>
+ <th class="prenom" scope="col">[(#TRI{prenom,<:souscription_don:label_prenom:>,ajax})]</th>
+ <th class="nom" scope="col">[(#TRI{nom,<:souscription_don:label_nom:>,ajax})]</th>
+ <th class="date" scope="col">[(#TRI{date_souscription,<:date:>,ajax})]</th>
+ <th class="statut" scope="col">[(#TRI{souscription_statut,<:statut:>,ajax})]</th>
+ <th class="id_souscription_campagne" scope="col">[(#TRI{id_souscription_campagne,<:souscription_don:label_campagne:>,ajax})]</th>
+ <th class="id" scope="col">[(#TRI{id_souscription_don,<:info_numero_abbreviation:>,ajax})]</th>
+ </tr>
+ </thead>
+ <tbody>
+ <BOUCLE_liste_souscription_dons(SOUSCRIPTION_DONS transactions){id_transaction?}{id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num nom},#GET{defaut_tri}}{par nom}{pagination #ENV{nb,10}}>
+ <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
+ <td class="courriel principale"><a href="[(#ID_SOUSCRIPTION_DON|generer_url_entite{souscription_don})]" title="<:info_numero_abbreviation|attribut_html:> #ID_SOUSCRIPTION_DON">[(#RANG). ]#COURRIEL</a></td>
+ <td class="montant secondaire">[(#MONTANT) €]</td>
+ <td class="prenom secondaire">[(#PRENOM)]</td>
+ <td class="nom secondaire">[(#NOM)]</td>
+ <td class="date secondaire">[(#DATE_SOUSCRIPTION|affdate_jourcourt)]</td>
+ <td class="statut secondaire">[(#STATUT)]</td>
+ <td class="id_souscription_campagne" scope="col">[(#ID_SOUSCRIPTION_CAMPAGNE)]</td>
+ <td class="id">[(#AUTORISER{modifier,souscription_don,#ID_SOUSCRIPTION_DON}|?{
+ <a href="[(#URL_ECRIRE{souscription_don_edit,id_souscription_don=#ID_SOUSCRIPTION_DON})]">#ID_SOUSCRIPTION_DON</a>,
+ #ID_SOUSCRIPTION_DON
+ })]</td>
+ </tr>
+ </BOUCLE_liste_souscription_dons>
+ </tbody>
+</table>
+[<p class="pagination">(#PAGINATION{prive})</p>]
+</div>
+</B_liste_souscription_dons>[
+<div class="liste-objets souscription_dons caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
+]<//B_liste_souscription_dons>
--- /dev/null
+[(#SET{defaut_tri,#ARRAY{
+ nom,1,
+ date_souscription,-1,
+ id_souscription_don,1,
+ points,-1
+}})]<B_liste_souscription_dons>
+#ANCRE_PAGINATION
+<div class="liste-objets souscription_dons">
+<table class='spip liste'>
+ [<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{souscription_don:info_1_souscription_don,souscription_don:info_nb_souscription_dons}})</strong></caption>]
+ <thead>
+ <tr class='first_row'>
+ <th class="courriel" scope="col">[(#TRI{courriel,<:souscription_don:label_courriel:>,ajax})]</th>
+ <th class="montant" scope="col">[(#TRI{montant,<:souscription_don:label_montant:>,ajax})]</th>
+ <th class="prenom" scope="col">[(#TRI{prenom,<:souscription_don:label_prenom:>,ajax})]</th>
+ <th class="nom" scope="col">[(#TRI{nom,<:souscription_don:label_nom:>,ajax})]</th>
+ <th class="date" scope="col">[(#TRI{date_souscription,<:date:>,ajax})]</th>
+ <th class="statut" scope="col">[(#TRI{souscription_statut,<:statut:>,ajax})]</th>
+ <th class="id" scope="col">[(#TRI{id_souscription_don,<:info_numero_abbreviation:>,ajax})]</th>
+ </tr>
+ </thead>
+ <tbody>
+ <BOUCLE_liste_souscription_dons(SOUSCRIPTION_DONS){id_transaction?}{id_mot?}{id_auteur?}{where?}{recherche?}{tri #ENV{par,num nom},#GET{defaut_tri}}{par nom}{pagination #ENV{nb,10}}>
+ <tr class='[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]'>
+ <td class="courriel principale"><a href="[(#ID_SOUSCRIPTION_DON|generer_url_entite{souscription_don})]" title="<:info_numero_abbreviation|attribut_html:> #ID_SOUSCRIPTION_DON">[(#RANG). ]#COURRIEL</a></td>
+ <td class="montant secondaire">[(#MONTANT) €]</td>
+ <td class="prenom secondaire">[(#PRENOM)]</td>
+ <td class="nom secondaire">[(#NOM)]</td>
+ <td class="date secondaire">[(#DATE_SOUSCRIPTION|affdate_jourcourt)]</td>
+ <td class="statut secondaire">[(#STATUT)]</td>
+ <td class="id">[(#AUTORISER{modifier,souscription_don,#ID_SOUSCRIPTION_DON}|?{
+ <a href="[(#URL_ECRIRE{souscription_don_edit,id_souscription_don=#ID_SOUSCRIPTION_DON})]">#ID_SOUSCRIPTION_DON</a>,
+ #ID_SOUSCRIPTION_DON
+ })] -- #OBJET </td>
+ </tr>
+ </BOUCLE_liste_souscription_dons>
+ </tbody>
+</table>
+[<p class='pagination'>(#PAGINATION{prive})</p>]
+</div>
+</B_liste_souscription_dons>[
+<div class="liste-objets souscription_dons caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
+]<//B_liste_souscription_dons>
--- /dev/null
+[(#AUTORISER{configurer,_souscription}|sinon_interdire_acces)]
+
+<h1 class="grostitre"><:souscription:titre_page_configurer_souscription:></h1>
+
+<div class="ajax">
+ #FORMULAIRE_CONFIGURER_SOUSCRIPTION
+</div>
\ No newline at end of file
--- /dev/null
+[(#AUTORISER{voir,souscription_don,#ID_SOUSCRIPTION_DON}|sinon_interdire_acces)]
+<BOUCLE_souscription_don(SOUSCRIPTION_DONS){id_souscription_don}{si #ENV{exec}|=={souscription_don}}>
+[(#BOITE_OUVRIR{[
+ [(#AUTORISER{modifier,souscription_don,#ID_SOUSCRIPTION_DON})
+ [(#ID_SOUSCRIPTION_DON|afficher_qui_edite{souscription_don}|non)
+ [(#URL_ECRIRE{souscription_don_edit,id_souscription_don=#ID_SOUSCRIPTION_DON}|icone_verticale{<:souscription_don:icone_modifier_souscription_don:>,souscription_don,edit,right ajax preload})]
+ ]
+ [(#ID_SOUSCRIPTION_DON|afficher_qui_edite{souscription_don}|oui)
+ [(#URL_ECRIRE{souscription_don_edit,id_souscription_don=#ID_SOUSCRIPTION_DON}|icone_verticale{#ID_SOUSCRIPTION_DON|afficher_qui_edite{souscription_don},warning-24,'',right edition_deja ajax preload})]
+ ]
+ ]
+
+ <h1>#PRENOM (#NOM)</h1>
+
+],simple fiche_objet})]
+
+<!--affiche_milieu-->
+
+<div id="wysiwyg">
+<INCLURE{fond=prive/objets/contenu/souscription_don,id=#ID_SOUSCRIPTION_DON,id_souscription_don=#ID_SOUSCRIPTION_DON,virtuel=oui,ajax=wysiwyg,wysiwyg=1}>
+</div>
+
+<div class="nettoyeur"></div>
+
+[(#AUTORISER{modifier,souscription_don,#ID_SOUSCRIPTION_DON})
+ [(#ID_SOUSCRIPTION_DON|afficher_qui_edite{souscription_don}|non)
+ [(#URL_ECRIRE{souscription_don_edit,id_souscription_don=#ID_SOUSCRIPTION_DON}|icone_verticale{<:souscription_don:icone_modifier_souscription_don:>,souscription_don,edit,right ajax preload})]
+ ]
+ [(#ID_SOUSCRIPTION_DON|afficher_qui_edite{souscription_don}|oui)
+ [(#URL_ECRIRE{souscription_don_edit,id_souscription_don=#ID_SOUSCRIPTION_DON}|icone_verticale{#ID_SOUSCRIPTION_DON|afficher_qui_edite{souscription_don},warning-24,'',right edition_deja ajax preload})]
+ ]
+]
+
+#PIPELINE{afficher_complement_objet,#ARRAY{args,#ARRAY{type,souscription_don,id,#ID_SOUSCRIPTION_DON},data,'<div class="nettoyeur"></div>'}}
+
+#BOITE_FERMER
+[(#EVAL{_AJAX}|oui)
+ <script type="text/javascript">/*<!\\[CDATA\\[*/reloadExecPage('#ENV{exec}','#navigation,#chemin');/*\\]\\]>*/</script>
+]
+</BOUCLE_souscription_don>
+[(#ENV**{exec}|=={souscription_don_edit}|?{#INCLURE{fond=prive/squelettes/contenu/souscription_don_edit,redirect='',env,retourajax=oui},#REM|sinon_interdire_acces})]
+<//B_souscription_don>
--- /dev/null
+#FORMULAIRE_RECHERCHE_ECRIRE{#SELF,ajax}
+<div class="nettoyeur"></div>
+
+<INCLURE{fond=prive/objets/liste/souscription_dons, par=nom, env, ajax, sinon=<:souscription_don:info_aucun_souscription_don:>}>
--- /dev/null
+[(#BOITE_OUVRIR{<:souscription_don:voir_exporter:>,'simple','section'})]
+<ul>
+ <li><a href="[(#URL_ACTION_AUTEUR{exporter_dons_payes})]"><:souscription_don:label_exporter_payes:></a></li>
+ <li><a href="[(#URL_ACTION_AUTEUR{exporter_dons_tous})]"><:souscription_don:label_exporter_tous:></a></li>
+</ul>
+#BOITE_FERMER
--- /dev/null
+
+dffgdffg!
--- /dev/null
+<div class="liste_item sous_navigation">
+ <h4><:souscription:titre_types_souscriptions:></h4>
+ <ul class='liste-items'>
+ <li class="item"><a href="#URL_ECRIRE{souscription_campagnes}">Campagnes</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_dons}">Dons</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_adhesions}">Adhésions</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_abonnements}">Abonnements</a></li>
+ </ul>
+</div>
--- /dev/null
+<div class="liste_item sous_navigation">
+ <h4><:souscription:titre_types_souscriptions:></h4>
+ <ul class='liste-items'>
+ <li class="item"><a href="#URL_ECRIRE{souscription_campagnes}">Campagnes</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_dons}">Dons</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_adhesions}">Adhésions</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_abonnements}">Abonnements</a></li>
+ </ul>
+</div>
--- /dev/null
+<div class="liste_item sous_navigation">
+ <h4><:souscription:titre_types_souscriptions:></h4>
+ <ul class='liste-items'>
+ <li class="item"><a href="#URL_ECRIRE{souscription_campagnes}">Campagnes</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_dons}">Dons</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_adhesions}">Adhésions</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_abonnements}">Abonnements</a></li>
+ </ul>
+</div>
--- /dev/null
+<div class="liste_item sous_navigation">
+ <h4><:souscription:titre_types_souscriptions:></h4>
+ <ul class='liste-items'>
+ <li class="item"><a href="#URL_ECRIRE{souscription_campagnes}">Campagnes</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_dons}">Dons</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_adhesions}">Adhésions</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_abonnements}">Abonnements</a></li>
+ </ul>
+</div>
--- /dev/null
+<div class="liste_item sous_navigation">
+ <h4><:souscription:titre_types_souscriptions:></h4>
+ <ul class='liste-items'>
+ <li class="item"><a href="#URL_ECRIRE{souscription_campagnes}">Campagnes</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_dons}">Dons</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_adhesions}">Adhésions</a></li>
+ <li class="item"><a href="#URL_ECRIRE{souscription_abonnements}">Abonnements</a></li>
+ </ul>
+</div>
--- /dev/null
+<BOUCLE_test_multiple(CONDITION){si #ENV{multiple}|=={on}|oui}>
+ [(#SET{valeur,[(#ENV*{valeur}|is_array|?{[(#ENV*{valeur})],[(#ENV*{valeur}|explode{','})]})]})]
+ <B_souscription_dons_selectionnes>
+ <ul>
+ <BOUCLE_souscription_dons_selectionnes(SOUSCRIPTION_DONS){id_souscription_don IN #GET*{valeur}}
+ {par num nom, nom}{tout}>
+ <li class="choix">#NOM (#ID_SOUSCRIPTION_DON)</li>
+ </BOUCLE_souscription_dons_selectionnes>
+ </ul>
+ </B_souscription_dons_selectionnes>
+ [(#ENV*{sans_reponse}|propre)]
+ <//B_souscription_dons_selectionnes>
+</BOUCLE_test_multiple>
+ <BOUCLE_souscription_don_selectionne(SOUSCRIPTION_DONS){id_souscription_don=#ENV{valeur}}
+ {par num nom, nom}{tout}>
+ <p>#NOM (#ID_SOUSCRIPTION_DON)</p>
+ </BOUCLE_souscription_don_selectionne>
+ [(#ENV*{sans_reponse}|propre)]
+ <//B_souscription_don_selectionne>
+<//B_test_multiple>
\ No newline at end of file
--- /dev/null
+[(#ENV{multiple}|oui)
+ [(#SET{valeur,[(#ENV*{valeur}|is_array|?{[(#ENV*{valeur})],[(#ENV*{valeur}|explode{','})]})]})]
+]
+<select name="#ENV{nom}[(#ENV{multiple}|?{\[\]})]" id="champ_[(#ENV{nom}|saisie_nom2classe)]"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple" size="#ENV{size,10}"][ disabled="(#ENV{disable})"]>
+ [(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
+ <option value="">[(#ENV{option_intro})]</option>]
+ <BOUCLE_souscription_dons(SOUSCRIPTION_DONS){par num nom, nom}{id_transaction?}{recherche?}{tout}>
+ [(#ENV{multiple}|oui)
+ <option value="#ID_SOUSCRIPTION_DON"[(#ID_SOUSCRIPTION_DON|in_array{#ENV{valeur_forcee,#GET{valeur,#ENV{defaut,#ARRAY}}}}|oui) selected="selected"]>#NOM</option>]
+ [(#ENV{multiple}|non)
+ <option value="#ID_SOUSCRIPTION_DON"[(#ID_SOUSCRIPTION_DON|=={#ENV{valeur_forcee,#ENV{valeur,#ENV{defaut}}}}|oui) selected="selected"]>#NOM</option>]
+ </BOUCLE_souscription_dons>
+</select>
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Fichier gérant l'installation et désinstallation du plugin Souscription
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Installation
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+/**
+ * Fonction d'installation et de mise à jour du plugin Souscription.
+ *
+ * @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 souscription_upgrade($nom_meta_base_version, $version_cible) {
+ $maj = array();
+
+ $maj['create'] = array(array('maj_tables',
+ array('spip_souscription_dons',
+ 'spip_souscription_campagnes',
+ )));
+ $maj['0.0.3'] = array(array('sql_alter', "TABLE spip_souscription_dons CHANGE envoyer_info envoyer_info VARCHAR(3) NOT NULL DEFAULT ''"),
+ array('sql_alter', "TABLE spip_souscription_dons CHANGE recu_fiscal recu_fiscal VARCHAR(3) NOT NULL DEFAULT ''"));
+
+ include_spip('base/upgrade');
+ maj_plugin($nom_meta_base_version, $version_cible, $maj);
+}
+
+/**
+ * Fonction de désinstallation du plugin Souscription.
+ *
+ * @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 souscription_vider_tables($nom_meta_base_version) {
+
+ sql_drop_table("spip_souscription_dons");
+ sql_drop_table("spip_souscription_campagnes");
+
+ /* Nettoyer les versionnages et forums */
+ sql_delete("spip_versions", sql_in("objet", array('souscription_don')));
+ sql_delete("spip_versions_fragments", sql_in("objet", array('souscription_don')));
+ sql_delete("spip_forum", sql_in("objet", array('souscription_don')));
+
+ effacer_meta($nom_meta_base_version);
+}
+?>
--- /dev/null
+<?php
+/**
+ * Fichier gérant l'installation et désinstallation du plugin Souscription
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Installation
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+/**
+ * Fonction d'installation et de mise à jour du plugin Souscription.
+ *
+ * @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 souscription_upgrade($nom_meta_base_version, $version_cible) {
+ $maj = array();
+
+ $maj['create'] = array(array('maj_tables', array('spip_souscription_dons', 'spip_souscription_dons_liens')));
+
+ include_spip('base/upgrade');
+ maj_plugin($nom_meta_base_version, $version_cible, $maj);
+}
+
+
+/**
+ * Fonction de désinstallation du plugin Souscription.
+ *
+ * @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 souscription_vider_tables($nom_meta_base_version) {
+
+ sql_drop_table("spip_souscription_dons");
+ sql_drop_table("spip_souscription_dons_liens");
+
+ /* Nettoyer les versionnages et forums */
+ sql_delete("spip_versions", sql_in("objet", array('souscription_don')));
+ sql_delete("spip_versions_fragments", sql_in("objet", array('souscription_don')));
+ sql_delete("spip_forum", sql_in("objet", array('souscription_don')));
+
+ effacer_meta($nom_meta_base_version);
+}
+?>
--- /dev/null
+<?php
+/**
+ * Définit les autorisations du plugin Souscription
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Autorisations
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+/**
+ * Fonction d'appel pour le pipeline
+ * @pipeline autoriser */
+function souscription_autoriser(){}
+
+
+// -----------------
+// Objet souscription_dons
+
+
+/**
+ * Autorisation de voir un élément de menu (souscriptiondons)
+ **/
+function autoriser_souscriptiondons_menu_dist($faire, $type, $id, $qui, $opt){
+ return true;
+}
+
+
+/**
+ * Autorisation de voir le bouton d'accès rapide de création (souscriptiondon)
+ **/
+function autoriser_souscriptiondoncreer_menu_dist($faire, $type, $id, $qui, $opt){
+ /* return autoriser('creer', 'souscription_don', '', $qui, $opt); */
+ return false;
+}
+
+/**
+ * Autorisation de créer un don. Tout le monde est autorisé
+ * à faire un don.
+ **/
+function autoriser_souscriptiondon_creer_dist($faire, $type, $id, $qui, $opt) {
+ return true;
+}
+
+/**
+ * Autorisation de voir un don. Il faut être administrateur pour voir
+ * un don.
+ **/
+function autoriser_souscriptiondon_voir_dist($faire, $type, $id, $qui, $opt) {
+ return autoriser('webmestre', '', '', $qui);
+}
+
+/**
+ * Autorisation de modifier un don. Personne n'est autorisé à le
+ * faire.
+ **/
+function autoriser_souscriptiondon_modifier_dist($faire, $type, $id, $qui, $opt) {
+ return false;
+}
+
+/**
+ * Autorisation de supprimer un don. Personne n'est autorisé à le
+ * faire.
+ **/
+function autoriser_souscriptiondon_supprimer_dist($faire, $type, $id, $qui, $opt) {
+ return false;
+}
+
+/*
+ * Autorisation d'exporter un don.
+ */
+function autoriser_souscriptiondon_exporter_dist($faire, $type, $id, $qui, $opt) {
+ return autoriser('webmestre', '', '', $qui);
+}
--- /dev/null
+<?php
+/**
+ * Définit les autorisations du plugin Souscription
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Autorisations
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+/**
+ * Fonction d'appel pour le pipeline
+ * @pipeline autoriser */
+function souscription_autoriser(){}
+
+
+// -----------------
+// Objet souscription_dons
+
+
+/**
+ * Autorisation de voir un élément de menu (souscriptiondons)
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+ **/
+function autoriser_souscriptiondons_menu_dist($faire, $type, $id, $qui, $opt){
+ return true;
+}
+
+
+/**
+ * Autorisation de voir le bouton d'accès rapide de création (souscriptiondon)
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+ **/
+function autoriser_souscriptiondoncreer_menu_dist($faire, $type, $id, $qui, $opt){
+ /* return autoriser('creer', 'souscription_don', '', $qui, $opt); */
+ return false;
+}
+
+/**
+ * Autorisation de créer (souscriptiondon)
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+ **/
+function autoriser_souscriptiondon_creer_dist($faire, $type, $id, $qui, $opt) {
+ return true;
+}
+
+/**
+ * Autorisation de voir (souscriptiondon)
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+ **/
+function autoriser_souscriptiondon_voir_dist($faire, $type, $id, $qui, $opt) {
+ /* return autoriser('webmestre', '', '', $qui); */
+ return false;
+}
+
+/**
+ * Autorisation de modifier (souscriptiondon)
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+ **/
+function autoriser_souscriptiondon_modifier_dist($faire, $type, $id, $qui, $opt) {
+ return autoriser('webmestre', '', '', $qui);
+}
+
+/**
+ * Autorisation de supprimer (souscriptiondon)
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+ **/
+function autoriser_souscriptiondon_supprimer_dist($faire, $type, $id, $qui, $opt) {
+ return autoriser('webmestre', '', '', $qui);
+}
+
+
+/**
+ * Autorisation de lier/délier l'élément (souscriptiondons)
+ *
+ * @param string $faire Action demandée
+ * @param string $type Type d'objet sur lequel appliquer l'action
+ * @param int $id Identifiant de l'objet
+ * @param array $qui Description de l'auteur demandant l'autorisation
+ * @param array $opt Options de cette autorisation
+ * @return bool true s'il a le droit, false sinon
+ **/
+function autoriser_associersouscriptiondons_dist($faire, $type, $id, $qui, $opt) {
+ return autoriser('webmestre', '', '', $qui);
+}
+
+function autoriser_dons_souscriptionexporter_dist($faire, $type, $id, $qui, $opt) {
+ print "...";
+ return false;
+ return autoriser('webmestre', '', '', $qui);
+}
+
+print "..";
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * Fonctions utiles au plugin Souscription
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Fonctions
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+?>
--- /dev/null
+<?php
+/**
+ * Options du plugin Souscriptionau chargement
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Options
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+?>
--- /dev/null
+<?php
+/**
+ * Utilisations de pipelines par Souscription
+ *
+ * @plugin Souscription
+ * @copyright 2013
+ * @author Olivier Tétard
+ * @licence GNU/GPL
+ * @package SPIP\Souscription\Pipelines
+ */
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+
+/**
+ * Optimiser la base de données en supprimant les liens orphelins
+ * de l'objet vers quelqu'un et de quelqu'un vers l'objet.
+ *
+ * @pipeline optimiser_base_disparus
+ * @param array $flux Données du pipeline
+ * @return array Données du pipeline
+ */
+function souscription_optimiser_base_disparus($flux){
+ include_spip('action/editer_liens');
+ $flux['data'] += objet_optimiser_liens(array('souscription_don'=>'*'),'*');
+ return $flux;
+}
+
+?>