AlternC/HACKING

118 lines
5.1 KiB
Plaintext
Raw Normal View History

Modularisation d'AlternC
========================
- Chaque classe a un nom en lettres (pas trop long).
- Chaque classe fournit :
* Un fichier m_<classname>.php contenant la d<>claration de la classe php
* Une classe qui s'appelle "m_<classname>"
* La variable globale instanciant la classe est $<classname>, elle est cr<63><72>e automatiquement par config_real.php
* Un fichier .pot dans locales/<classname>.po (et eventuellement <classname>_manual.po pour les entrees non d<>tect<63>es par gettext
* Les messages d'erreur sont du type "err_<classname>_<errno>" ou <errno> est un entier positif. 0 pour "OK"
* Une classe PEUT pr<70>senter un fichier "menu_<classname>.php" dans admin/
- Une classe peut pr<70>senter les fonctions particuli<6C>res suivantes :
* alternc_add_domain($domain) qui est appell<6C>e quand un domaine est cr<63><72> sur le compte membre courant
* alternc_del_domain($domain) qui est appell<6C>e quand un domaine est supprim<69> sur le compte membre courant
* alternc_add_member($uid) quand un membre est cr<63><72>
* alternc_del_member($uid) quand un membre est d<>truit
* alternc_quota_check($uid) pour recalculer le quota utilis<69> par un membre
* alternc_quota_names() qui retourne une chaine ou un tableau avec le(s) noms des quota(s) g<>r<EFBFBD>s par cette classe.
si elle ne les contient pas, ces fonctions ne seront pas appell<6C>es...
AlternC est fourni en standard avec les classes :
- domain (installation domaines / dns / mx)
- ftp (maintenance des comptes ftp)
- mail (maintenance des emails pop/alias)
- quota (gestion globale des quotas de service et de disques)
- bro (navigateur dans le syst<73>me de fichier)
- admin (panneau administrateur)
- mem (connexion et pr<70>f<EFBFBD>rences membre)
- mysql (maintenance de bdd mysql)
- err (gestion des erreurs)
- sta2 (demande de sortie de logs bruts apache)
- hta (protection de dossiers web par htaccess/htpasswd)
Les modules additionnels dispo :
- alternc-webinstaller (cette classe particuli<6C>re permet l'int<6E>gration facile d'outils (dmanager, spip, forum, chat ...) )
- alternc-mailman (gestion de listes sous mailman)
- alternc-sympa (gestion de listes sous sympa)
- alternc-webalizer (gestion de stats webalizer)
- procmail_builder (plugin sp<73>cial pour squirrelmail)
Donc, pour s'installer, une classe a besoin de :
- Cr<43>er les <20>ventuelles structures de donn<6E>es n<>cessaires (mysql)
- Copier le fichier m_<classname> dans bureau/class/
- Copier l'eventuel fichier menu_<classname>.php
- Copier les <20>ventuels autres fichiers dans bureau/admin, bureau/locales/* ...
Quotas
------
Le syst<73>me de quota est simple : la classe peut appeler
$quota->inc dec ...
pour le membre donn<6E>, sur le nom de quota utilis<69> par celle-ci,
(utiliser <classname> est conseill<6C> ;)
Quand un nouveau membre est cr<63><72>, la valeur par d<>faut choisi par
l'admin lui est associ<63>, et cette valeur vaut 0 par d<>faut.
Autres
------
Il est conseill<6C> que chaque classe non standard fournisse un dossier
dans /bureau/admin/ dans lequel elle stocke les pages web
correspondantes, ceci afin de ne pas alourdir le dossier bureau/admin...
Ajout <20> l'API :
- La variable globale "$classes" contient un tableau avec le nom des
classes disponibles (nom court sans m_ =>mail, quota, err...)
Hooks ou "events" AlternC
=========================
Liste des fonctions "events" appell<6C>es lorsqu'un <20>v<EFBFBD>nement particulier a lieu
sur un compte, tel que l'ajout d'un domaine, la suppression d'un domaine etc.
- Ces fonctions commencent TOUJOURS par "alternc_"
- SEULES ces fonctions ont le droit d'utiliser le prefixe alternc_ dans les
classes
- Les fonctions ne peuvent apparaitre que dans les classes d'AlternC, ayant
pour nom m_<nom du module>
- Chaque fonction est prototyp<79>e ci-dessous et son <20>v<EFBFBD>nement est expliqu<71> en
d<EFBFBD>tail
alternc_del_domain($dom)
fonction appell<6C>e lorsqu'un domaine est effac<61> d'un compte AlternC.
$dom est le nom de domaine concern<72>.
alternc_add_domain($dom)
fonction appell<6C>e lorsqu'un domaine est install<6C> sur un compte AlternC.
$dom est le nom de domaine concern<72>.
alternc_quota_check($id)
fonction appell<6C>e afin de recalculer le quota d'un membre pour le service correspondant.
$id est le num<75>ro unique du membre concern<72>.
alternc_add_member($id)
fonction appell<6C>e lorsqu'un compte membre est cr<63><72> sur le serveur AlternC.
$id est le num<75>ro unique du membre concern<72>, qui a d<>j<EFBFBD> <20>t<EFBFBD> cr<63><72> dans les tables principales.
alternc_del_member($id)
fonction appell<6C>e lorsqu'un compte membre est supprim<69> sur le serveur AlternC.
$id est le num<75>ro unique du membre concern<72>, qui sera d<>truit apr<70>s l'appel.
alternc_add_mx_domain($dom)
fonction appell<6C>e lorsqu'un domaine d<>j<EFBFBD> h<>berg<72> mais n'ayant pas le mx pointant vers nous voit son mx
pointer vers nous. Pour les classes sensible au mail, cela <20>quivaut bien souvent <20> add_domain
alternc_del_mx_domain($dom)
fonction appell<6C>e lorsqu'un domaine d<>j<EFBFBD> h<>berg<72> et ayant son mx pointant vers nous voit son mx
nous quitter. Pour les classes sensible au mail, cela <20>quivaut bien souvent <20> del_domain
alternc_description()
retourne la chaine ou la liste de chaine de description du module, traduit par gettext.
permet de savoir <20> quoi sert un module ou les <20>l<EFBFBD>ments d'un module.