| Version 3 (modified by domi, 15 months ago) (diff) |
|---|
M export
Une classe nommée m_export.php a été ajoutée afin de permettre l'export complet d'un compte alternc. L'export peut se faire pour une configuration particulière ou pour des données; le contenu de la classe est le suivant :
class m_export {
function m_export() {
}
function export_conf(){
global $hooks;
$conf = array();
$conf=$hooks->invoke('alternc_export_conf');
return $conf;
}
function export_data($dir){
global $hooks, $mem;
$hooks->invoke('alternc_export_data', Array($dir));
}
}
Elle ne contient donc que deux fonctions export_data et export_conf qui vont elles même appeler des hooks qui auront été implémentés dans les classes concernées. Ces hooks se réfèrent aux fonctions alternc_export_conf et alternc_export_data.
Utilisation
Un administrateur ayant la main sur le serveur alternc peut invoquer le script "/usr/lib/alternc/export_account.php" directement depuis la ligne de commande avec en paramètre l'id (le gid unix) du compte à exporter et le répertoire où doivent être deposées les données.
exemple : pour exporter la configuration et les données de l'admninistrateur principal du serveur ( uid 2000 )
/usr/lib/alternc/export_account.php 2000 /export/data/
Cette commande va génerer l'arborescence suivante:
/export/data/admin/
/export/data/admin/<date>/html/admin_html_<heure>.tar.gz
/export/data/admin/<date>/sql/admin_<nom base>_<heure>.tar.gz
/export/data/admin/<date>/dump_conf_<heure>
le fichier dump_conf_<heure> contient la configuration des éléments, formatée en html, car je pensais au départ permettre de l'afficher quelque part dans le panel. Donc si quelqu'un veut le changer: no problemo.
Dev
Pour que les informations puissent être exportées il suffit que la classe créée implémente au moins l'une des deux fonctions appelées par les hooks : "alternc_export_conf" et "alternc_export_data"
La fonction alternc_export_conf():
Elle ne prend aucun paramètre, et renvoie une chaine de caractères contenant les informations à exporter, formatées dans un tableau html ( pour le moment ).
exemple pour la classe m_dom:
function alternc_export_conf() {
global $db,$err;
$err->log("ftp","export");
$f=$this->get_list();
$str="<table border=\"1\"><caption> FTP </caption>\n";
foreach ($f as $d=>$v) {
$str.=" <tr>\n";
$str.=" <td>".$v["id"]."</td>\n";
$str.=" <td>".($v["encrypted_password"])."</td>\n";
$str.=" <td>".($v["login"])."</td>\n";
$str.=" <td>".($v["dir"])."<td>\n";
$str.=" </tr>\n";
}
$str.="</table>\n";
return $str;
}
La fonction alternc_export_data($repertoire)
Cette fonction prend en paramètre le répertoire paramètre du script ( /export/data/ dans l'exemple du dessus ) modifié pour être de la forme /export/data/<login>/date/ . Elle ne renvoie rien mais se charge d'écrire les données dans le sous-répertoire choisi par le programmeur.
