root/alternc/tags/0.9.5/HACKING

Revision 812, 5.1 kB (checked in by root, 3 years ago)

move everything to trunk

Line 
1 Modularisation d'AlternC
2 ========================
3
4 - Chaque classe a un nom en lettres (pas trop long).
5 - Chaque classe fournit :
6         * Un fichier m_<classname>.php contenant la déclaration de la classe php
7         * Une classe qui s'appelle "m_<classname>"
8         * La variable globale instanciant la classe est $<classname>, elle est créée automatiquement par config_real.php
9         * Un fichier .pot dans locales/<classname>.po (et eventuellement <classname>_manual.po pour les entrees non détectées par gettext
10         * Les messages d'erreur sont du type "err_<classname>_<errno>" ou <errno> est un entier positif. 0 pour "OK"
11         * Une classe PEUT présenter un fichier "menu_<classname>.php" dans admin/
12
13 - Une classe peut présenter les fonctions particulières suivantes :
14         * alternc_add_domain($domain) qui est appellée quand un domaine est créé sur le compte membre courant
15         * alternc_del_domain($domain) qui est appellée quand un domaine est supprimé sur le compte membre courant
16         * alternc_add_member($uid) quand un membre est créé
17         * alternc_del_member($uid) quand un membre est détruit
18         * alternc_quota_check($uid) pour recalculer le quota utilisé par un membre
19         * alternc_quota_names() qui retourne une chaine ou un tableau avec le(s) noms des quota(s) gérés par cette classe.
20         si elle ne les contient pas, ces fonctions ne seront pas appellées...
21
22
23 AlternC est fourni en standard avec les classes :
24 - domain (installation domaines / dns / mx)
25 - ftp (maintenance des comptes ftp)
26 - mail (maintenance des emails pop/alias)
27 - quota (gestion globale des quotas de service et de disques)
28 - bro (navigateur dans le système de fichier)
29 - admin (panneau administrateur)
30 - mem (connexion et préférences membre)
31 - mysql (maintenance de bdd mysql)
32 - err (gestion des erreurs)
33 - sta2 (demande de sortie de logs bruts apache)
34 - hta (protection de dossiers web par htaccess/htpasswd)
35
36 Les modules additionnels dispo :
37 - alternc-webinstaller (cette classe particulière permet l'intégration facile d'outils (dmanager, spip, forum, chat ...) )
38 - alternc-mailman (gestion de listes sous mailman)
39 - alternc-sympa (gestion de listes sous sympa)
40 - alternc-webalizer (gestion de stats webalizer)
41 - procmail_builder (plugin spécial pour squirrelmail)
42
43 Donc, pour s'installer, une classe a besoin de :
44 - Créer les éventuelles structures de données nécessaires (mysql)
45 - Copier le fichier m_<classname> dans bureau/class/
46 - Copier l'eventuel fichier menu_<classname>.php
47 - Copier les éventuels autres fichiers dans bureau/admin, bureau/locales/* ...
48
49 Quotas
50 ------
51
52 Le système de quota est simple : la classe peut appeler
53         $quota->inc dec ...
54 pour le membre donné, sur le nom de quota utilisé par celle-ci,
55 (utiliser <classname> est conseillé ;)
56
57 Quand un nouveau membre est créé, la valeur par défaut choisi par
58 l'admin lui est associé, et cette valeur vaut 0 par défaut.
59
60 Autres
61 ------
62
63 Il est conseillé que chaque classe non standard fournisse un dossier
64 dans /bureau/admin/ dans lequel elle stocke les pages web
65 correspondantes, ceci afin de ne pas alourdir le dossier bureau/admin...
66
67 Ajout à l'API :
68 - La variable globale "$classes" contient un tableau avec le nom des
69   classes disponibles (nom court sans m_  =>mail, quota, err...)
70
71 Hooks ou "events" AlternC
72 =========================
73
74 Liste des fonctions "events" appellées lorsqu'un évènement particulier a lieu
75 sur un compte, tel que l'ajout d'un domaine, la suppression d'un domaine etc.
76
77 - Ces fonctions commencent TOUJOURS par "alternc_"
78 - SEULES ces fonctions ont le droit d'utiliser le prefixe alternc_ dans les
79 classes
80 - Les fonctions ne peuvent apparaitre que dans les classes d'AlternC, ayant
81 pour nom m_<nom du module>
82 - Chaque fonction est prototypée ci-dessous et son évènement est expliqué en
83 détail
84
85
86
87 alternc_del_domain($dom)
88         fonction appellée lorsqu'un domaine est effacé d'un compte AlternC.
89         $dom est le nom de domaine concerné.
90
91 alternc_add_domain($dom)
92         fonction appellée lorsqu'un domaine est installé sur un compte AlternC.
93         $dom est le nom de domaine concerné.
94
95 alternc_quota_check($id)
96         fonction appellée afin de recalculer le quota d'un membre pour le service correspondant.
97         $id est le numéro unique du membre concerné.
98
99 alternc_add_member($id)
100         fonction appellée lorsqu'un compte membre est créé sur le serveur AlternC.
101         $id est le numéro unique du membre concerné, qui a déjà été créé dans les tables principales.
102
103 alternc_del_member($id)
104         fonction appellée lorsqu'un compte membre est supprimé sur le serveur AlternC.
105         $id est le numéro unique du membre concerné, qui sera détruit après l'appel.
106
107 alternc_add_mx_domain($dom)
108         fonction appellée lorsqu'un domaine déjà hébergé mais n'ayant pas le mx pointant vers nous voit son mx
109         pointer vers nous. Pour les classes sensible au mail, cela équivaut bien souvent à add_domain
110
111 alternc_del_mx_domain($dom)
112         fonction appellée lorsqu'un domaine déjà hébergé et ayant son mx pointant vers nous voit son mx
113         nous quitter. Pour les classes sensible au mail, cela équivaut bien souvent à del_domain
114
115 alternc_description()
116         retourne la chaine ou la liste de chaine de description du module, traduit par gettext.
117         permet de savoir à quoi sert un module ou les éléments d'un module.
Note: See TracBrowser for help on using the browser.