wiki:AlterncExport

Version 2 (modified by squidly, 15 months ago) (diff)

--

M export

Une classe nomme m_export.php a été ajouter afin de permettre l'export complet d'un compte alternc. L'export peut se faire pour une configuration particuliaire 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êmes appeler des hooks qui auront été implémentés dans les classes concernées. Ces hooks ce referent aus 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'iud du compte a exporter et le répertoire ou doivent être deposé les données.

exemple : pour exporter la configuration et les données de l'admninistrateur principal du serveur ( iud 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é en html, car je pensais au départ permettre 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é par les hooks : "alternc_export_conf" et "alternc_export_data"

La fonction alternc_export_conf():

Elle ne prend aucun paramètre, et renvoi une chaine de caractère contenant les informations à exportées, 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 repertoire paramettre du script ( /export/data/ dans l'exemple du dessus ) modifié pour etre 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.