source: spip-zone/_plugins_/parrainage/base/parrainage_tables.php @ 54053

Last change on this file since 54053 was 54053, checked in by rastapopoulos@…, 9 years ago

Importation du plugin "Parrainage", permettant de faire des campagnes de... parrainage.

N'importe quel utilisateur peut avoir une liste de contacts à qui faire la pub du site. Tout contact est identifié par son adresse email. Dans sa liste, on peut ajouter un contact avec un formulaire simple (nom, email) : #FORMULAIRE_AJOUTER_FILLEUL. On peut aussi utiliser le plugin "Importateur de contacts", notamment avec OpenInviter?, pour importer en masse : #FORMULAIRE_IMPORTER_CONTACTS{#SELF, parrainage_importer_contacts}.

On voit sa liste avec #FORMULAIRE_PARRAINAGE. On peut alors sélectionner à qui envoyer le message, ajouter un texte, et balancer tout ça. Chaque contact a un statut (juste un contact, déjà contacté, déjà inscrit mais pas grâce à toi, ou filleul cad inscrit grace à toi).

Les filleuls potentiels reçoivent un mail invitant à s'inscrire. Lors de l'inscription, un champ supplémentaire permet de renseigner la clé du parrain (c'est automatique si on suit le lien du mail). Un utilisateur inscrit de cette manière, sera alors lié à son parrain.

Il est possible de configurer le plugin pour *obliger* les inscrits à avoir un parrain. Il est alors impossible de s'inscrire sur le site si l'on a pas reçu une invitation. Cela permet de faire un peu de "buzz".

File size: 1.5 KB
Line 
1<?php
2
3// Sécurité
4if (!defined("_ECRIRE_INC_VERSION")) return;
5
6function parrainage_declarer_tables_interfaces($interface){
7        // 'spip_' dans l'index de $tables_principales
8        $interface['table_des_tables']['filleuls'] = 'filleuls';
9       
10        $interface['table_date']['filleuls'] = 'date_invitation';
11       
12        $interface['table_titre']['filleuls'] = 'nom as titre, "" as lang';
13       
14        return $interface;
15}
16
17function parrainage_declarer_tables_principales($tables_principales){
18        //-- Table filleuls -----------------------------------------------------------
19        $filleuls = array(
20                'id_filleul' => 'bigint(21) NOT NULL',
21                'email' => 'tinytext not null default ""',
22                'nom' => 'text not null default ""',
23                'id_parrain' => 'bigint(21) NOT NULL default 0',
24                'id_auteur' => 'bigint(21) NOT NULL default 0',
25                'statut' => 'varchar(255) not null default ""',
26                'date_invitation' => 'datetime not null default "0000-000-00 00:00:00"',
27                'code_invitation' => 'varchar(255) not null default ""'
28        );
29       
30        $filleuls_cles = array(
31                'PRIMARY KEY' => 'id_filleul',
32                'KEY id_parrain' => 'id_parrain',
33                'KEY id_auteur' => 'id_auteur'
34        );
35       
36        $tables_principales['spip_filleuls'] = array(
37                'field' => &$filleuls,
38                'key' => &$filleuls_cles,
39                'join'=> array(
40                        'id_filleul' => 'id_filleul',
41                        'id_auteur' => 'id_auteur',
42                        'id_parrain' => 'id_auteur',
43                )
44        );
45
46        return $tables_principales;
47}
48
49function parrainage_rechercher_liste_des_champs($tables){
50        $tables['filleul']['nom'] = 4;
51        $tables['filleul']['email'] = 3;
52        return $tables;
53}
54
55?>
Note: See TracBrowser for help on using the repository browser.