\n"; echo "\t".$col1."\n"; echo "\t".$col2."\n"; echo "\t".$col3."\n"; echo "\n"; } function affichetitre($titre, $align = '') { echo "\n"; echo "\t"; if ($align != "") { echo "<".$align.">"; } echo $titre; if ($align != "") { echo ""; }; echo "\n"; echo "\n"; } function afficheinfo($col1, $col2) { echo "\n"; echo "\t".$col1."\n"; echo "\t".$col2."\n"; echo "\n"; } // }}} require_once "../obj/utils.class.php"; $f = new utils(NULL, "gen", _("Generateur")); $description = _('Le generateur openMairie permet de construire une '. 'application sur la base de l\'anayse des informations du '. 'SGBD. Cet ecran vous presente une liste des tables '. 'presentes dans votre base de donnees pour l\'utilisation du '. 'generateur et une serie d\'assistants vous permettant des '. 'operations de migration et de creation d\'etats.').' '; $f->displayDescription($description); /** * XXX - parametrage * - les tables .seq ne sont pas affichees (mysql) * - on ne peut pas detruire les tables de base openexemple * - utilisateur.class est surcharge */ echo "\n
\n"; $dyn = 'standard'; /** * Tables presentes dans la base de donnees */ // en fonction du type de base de donnees if (OM_DB_PHPTYPE == "mysql") { $sql = "SHOW TABLES FROM `".OM_DB_SCHEMA.OM_DB_DATABASE."`"; } elseif (OM_DB_PHPTYPE == "pgsql") { $sql = "select tablename from pg_tables where schemaname='".OM_DB_SCHEMA."' ORDER BY tablename"; $sql_view = "select viewname from pg_views where schemaname='".OM_DB_SCHEMA."' ORDER BY viewname"; $res_view = $f->db->query($sql_view); $f->isDatabaseError($res_view); } else { $message = _("Le generateur ne prend pas en charge le type de base de donnees que vous utilisez :"); $message .= " ".OM_DB_PHPTYPE; $f->displayMessage("error", $message); die(); } // execution de la requete $res = $f->db->query($sql); $f->isDatabaseError($res); // Récupération d'un paramètre si le fichier de paramétrage existe // Permet de ne pas générer des tables non souhaitées $tables_to_avoid = array(); if (file_exists("../gen/dyn/gen.inc.php")) { include "../gen/dyn/gen.inc.php"; } // $title = _("Analyse de la base de donnees")." ".OM_DB_PHPTYPE." -> "; $title .= (OM_DB_SCHEMA == "" ?"":OM_DB_SCHEMA.".").OM_DB_DATABASE; $f->displaySubTitle($title); // echo "
\n"; echo "\t"; echo _("Generation")." "._("objet")." : ".OM_DB_DATABASE." ( ".OM_DB_PHPTYPE." ) "; echo "\n"; // echo "\t
\n"; require_once (PATH_OPENMAIRIE."gen.class.php"); while ($row =& $res->fetchRow()) { // Si la table n'est pas souhaitée on passe à la suivante if (in_array($row[0], $tables_to_avoid)) { continue; } // les tables .seq ne sont pas affichees (mysql) // && !preg_match('#^om\_.*#', $row[0])) { if (substr($row[0], -3, 3) != 'seq') { $table = $row[0]; $title = _('Generation des fichiers standards de la table').' '.$table; $f->displaySubTitle($title); $recherche = 'obj='.$table; $rubriks = array( "formulaire" => array('tableincgen', 'tableinc', 'tableformincgen', 'tableforminc', 'tableobj', 'obj'),); $params = array( "tableincgen" => array( "path" => "../gen/sql/".OM_DB_PHPTYPE."/".$table.".inc.php", "checked" => true, "method" => "tableincgen", "param" => "dyn",), "tableinc" => array( "path" => "../sql/".OM_DB_PHPTYPE."/".$table.".inc.php", "checked" => "notexist", "method" => "tableinc", "param" => OM_DB_DATABASE,), "tableformincgen" => array( "path" => "../gen/sql/".OM_DB_PHPTYPE."/".$table.".form.inc.php", "checked" => true, "method" => "tableformincgen", "param" => "dyn",), "tableforminc" => array( "path" => "../sql/".OM_DB_PHPTYPE."/".$table.".form.inc.php", "checked" => "notexist", "method" => "tableforminc", "param" => OM_DB_DATABASE,), "tableobj" => array( "path" => "../gen/obj/".$table.".class.php", "checked" => true, "method" => "tableobj", "param" => "dyn",), "obj" => array( "path" => "../obj/".$table.".class.php", "checked" => "notexist", "method" => "obj", "param" => "dyn",),); // Compatibilite : test du fichier .inc si pas de .inc.php foreach ($params as $key => $elem) { if (!file_exists($elem["path"])) { // pas de fichier .inc.php -> test de .inc seul if (file_exists(substr($elem["path"], 0, strlen($elem["path"])-4))) { $params[$key]["path"] = substr($elem["path"], 0, strlen($elem["path"])-4); } } } // Classe gen $g = new gen($table, $f->db, OM_DB_DATABASE, OM_DB_PHPTYPE, $dyn, OM_DB_SCHEMA); // if ($g->is_generable() == true) { // variables $recherche = "obj=".$table; $rightError=false; foreach ($rubriks as $key => $rubrik) { foreach ($rubrik as $param) { $method_param = $params[$param]["param"]; if ($method_param == "dyn") { $method_param = $dyn; } //Si le fichier doit etre genere (checked=true) ou seulement si il n'existe pas (notexist) if($params[$param]["checked"]===true OR ($params[$param]["checked"]==="notexist" AND !file_exists($params[$param]["path"]))) { if(!$g->ecrirefichier($params[$param]["path"], $g->{$params[$param]["method"]}($method_param))) { $rightError=true; } } } } // Affichage du message des erreurs de droits d'ecriture if($rightError) { $f->displayMessage("error",_("Erreur de droits d'ecriture lors de la generation des fichiers")); } // Affichage du message de fin de traitement $f->displayMessage("valid", $g->msg); } } // fin is_generable } // fin while echo "
\n"; echo "
\n"; echo "Retour"; echo "
\n"; ?>