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éée automatiquement par config_real.php
 | 
						|
	* Un fichier .pot dans locales/<classname>.po (et eventuellement <classname>_manual.po pour les entrees non détecté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ésenter un fichier "menu_<classname>.php" dans admin/
 | 
						|
 | 
						|
- Une classe peut présenter les fonctions particulières suivantes :
 | 
						|
	* alternc_add_domain($domain) qui est appellée quand un domaine est créé sur le compte membre courant
 | 
						|
	* alternc_del_domain($domain) qui est appellée quand un domaine est supprimé sur le compte membre courant
 | 
						|
	* alternc_add_member($uid) quand un membre est créé
 | 
						|
	* alternc_del_member($uid) quand un membre est détruit
 | 
						|
	* alternc_quota_check($uid) pour recalculer le quota utilisé par un membre
 | 
						|
	* alternc_quota_names() qui retourne une chaine ou un tableau avec le(s) noms des quota(s) gérés par cette classe.
 | 
						|
	si elle ne les contient pas, ces fonctions ne seront pas appellé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ème de fichier)
 | 
						|
- admin (panneau administrateur)
 | 
						|
- mem (connexion et préfé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ère permet l'inté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écial pour squirrelmail)
 | 
						|
 | 
						|
Donc, pour s'installer, une classe a besoin de :
 | 
						|
- Créer les éventuelles structures de données nécessaires (mysql)
 | 
						|
- Copier le fichier m_<classname> dans bureau/class/
 | 
						|
- Copier l'eventuel fichier menu_<classname>.php
 | 
						|
- Copier les éventuels autres fichiers dans bureau/admin, bureau/locales/* ...
 | 
						|
 | 
						|
Quotas
 | 
						|
------
 | 
						|
 | 
						|
Le système de quota est simple : la classe peut appeler
 | 
						|
	$quota->inc dec ...
 | 
						|
pour le membre donné, sur le nom de quota utilisé par celle-ci,
 | 
						|
(utiliser <classname> est conseillé ;)
 | 
						|
 | 
						|
Quand un nouveau membre est créé, la valeur par défaut choisi par
 | 
						|
l'admin lui est associé, et cette valeur vaut 0 par défaut.
 | 
						|
 | 
						|
Autres
 | 
						|
------
 | 
						|
 | 
						|
Il est conseillé 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 à 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ées lorsqu'un évè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ée ci-dessous et son évènement est expliqué en 
 | 
						|
détail
 | 
						|
 | 
						|
 | 
						|
 | 
						|
alternc_del_domain($dom)
 | 
						|
	fonction appellée lorsqu'un domaine est effacé d'un compte AlternC.
 | 
						|
	$dom est le nom de domaine concerné.
 | 
						|
 | 
						|
alternc_add_domain($dom)
 | 
						|
	fonction appellée lorsqu'un domaine est installé sur un compte AlternC.
 | 
						|
	$dom est le nom de domaine concerné.
 | 
						|
 | 
						|
alternc_quota_check($id)
 | 
						|
	fonction appellée afin de recalculer le quota d'un membre pour le service correspondant.
 | 
						|
	$id est le numéro unique du membre concerné.
 | 
						|
 | 
						|
alternc_add_member($id)
 | 
						|
	fonction appellée lorsqu'un compte membre est créé sur le serveur AlternC.
 | 
						|
	$id est le numéro unique du membre concerné, qui a déjà été créé dans les tables principales.
 | 
						|
 | 
						|
alternc_del_member($id)
 | 
						|
	fonction appellée lorsqu'un compte membre est supprimé sur le serveur AlternC.
 | 
						|
	$id est le numéro unique du membre concerné, qui sera détruit après l'appel.
 | 
						|
 | 
						|
alternc_add_mx_domain($dom)
 | 
						|
	fonction appellée lorsqu'un domaine déjà hébergé mais n'ayant pas le mx pointant vers nous voit son mx
 | 
						|
	pointer vers nous. Pour les classes sensible au mail, cela équivaut bien souvent à add_domain
 | 
						|
 | 
						|
alternc_del_mx_domain($dom)
 | 
						|
	fonction appellée lorsqu'un domaine déjà hébergé et ayant son mx pointant vers nous voit son mx
 | 
						|
	nous quitter. Pour les classes sensible au mail, cela équivaut bien souvent à del_domain
 | 
						|
 | 
						|
alternc_description()
 | 
						|
	retourne la chaine ou la liste de chaine de description du module, traduit par gettext.
 | 
						|
	permet de savoir à quoi sert un module ou les éléments d'un module.
 |