| 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. |
|---|