118 lines
5.1 KiB
Plaintext
118 lines
5.1 KiB
Plaintext
|
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.
|