form.php (onglet 1) -> soustabdyn.php (onglet 2 à n)-> sousformdyn.php *** variables ** get * formulaire $obj = objet form $idx = identifiant de l instance obj (en creation = "[") $idz = libelle fixe de l instance obj $validation = 0 (formulaire non validé) >0 (formulaire validé) $premier = numero du premier enregistrement en retour tab.php $recherche = recherche dans tab.php $recherche1 / soustabdyn.php $tricol = colone de tri dans tab.php * sql/ ... /".$obj.".inc" $champaffiche[0] = champ cle primaire formulaire $sousformulaire(array) (tableau des sousformulaires a afficher) * obj/$obj.class.php $enr->correct=1 (1 = saisie formulaire correct / 0 sinon) $enr->valF[$enr->table] valorisation $idx en ajout $enr->msg message d erreur (attention la cle doit avoir le même nom que la table) * sous formulaire $objsf = objet sous formulaire courant $premiersf = numero du premier enregistrement $tricolsf = colone de tri dans soustabdyn.php ** session profil = profil de l utilisateur - droit d acces ** autres $DEBUG =0 =1 mode debug $champidx = traitement $champaffiche (problème du as) $maj =0 (ajout) = 1 (modification) = 2 (suppression) *** passage de variable HTML -> javascript variable onglet en cours variable recherche en cours *** tabdyn.class.php méthode paginationOnglet Variables de navigation : passage par controle html suivant.value retour.value page.value *** zone d affichage HTML formulaire recherche dans les soustabdyn positionnement des onglets sous formulaire courant *** php.ini magic_quotes_gpc = on ou off *** dyn/var.inc $path_om : acces au module openMairie // correction tricol en sous form ================================================================================ english translation ================================================================================ tab.php (call) -> form.php (tab 1) -> soustabdyn.php (tab 2 to n)-> sousformdyn.php *** variables ** get * form $obj = object form $idx = identifier of instancie obj (add = "[") $idz = fix wording of instancie obj $validation = 0 (form not validate) >0 (form validate) $premier = number of first registry in return tab.php $recherche = saerch in tab.php $recherche1 / soustabdyn.php $tricol = sort column in tab.php * sql/ ... /".$obj.".inc" $champaffiche[0] = field form primary key $sousformulaire(array) (sub form array to display) * obj/$obj.class.php $enr->correct=1 (1 = form saisure correct / 0 if not) $enr->valF[$enr->table] value $idx in add $enr->msg error message (be carrefull the primary key has the same name that the table) * sub form $objsf = current sub form object $premiersf = number of the first record to display $tricolsf = sort column in soustabdyn.php ** session profil = user profil - acess right ** other $DEBUG =0 =1 debug mode $champidx = treatment $champaffiche (problem sql "as") $maj =0 (add) = 1 (modify) = 2 (delete) *** variable passage HTML -> javascript current variable tab current variable search *** tabdyn.class.php method paginationOnglet Navigation variable: passage with html control suivant.value retour.value return page.value *** display zone HTML form search in soustabdyn position of tab current sub form *** php.ini magic_quotes_gpc = on ou off *** dyn/var.inc $path_om : access openMairie */ /* DEBUG * message de fin car session profil isset ne peux pas etre atteint car retour connexion * entete_tab ? * traduire Votre profil est msg=formulaire * fonction setfocus() * pourquoi y a til 2 fonction deconnexion ? * pourquoi il y a 5 /div sous menu */ // =============== // *** include *** // =============== if (file_exists ("../dyn/session.inc")) include ("../dyn/session.inc"); // profil utilisateur [user profile] // reconnexion si variable session non definie // [reconnection if undefined session] if(!isset($_SESSION['profil'])) header('location:../index.php?msg=formulaire '.$obj); if (file_exists ("../dyn/var.inc")) include ("../dyn/var.inc"); if (file_exists ("../scr/lang.inc")) include ("../scr/lang.inc"); if (file_exists ("../obj/utils.class.php")) include ("../obj/utils.class.php"); // =============================================== // *** variables programmes [program variable]*** // =============================================== $DEBUG = 0; // =========== // *** GET *** // =========== // Objet métier form [object form] if (isset ($_GET ['obj'])) $obj = $_GET ['obj']; else $obj = ""; // Objet metier soustab [subtab object form] if (isset ($_GET ['objsf'])) $objsf = $_GET ['objsf']; else $objsf = ""; // Premier enregistrement a afficher [first record to display] if (isset ($_GET ['premier'])) $premier = $_GET ['premier']; else $premier = 0; // Premier enregistrement a afficher soustab [first record to display] if (isset ($_GET ['premiersf'])) $premiersf = $_GET ['premiersf']; else $premiersf = 0; // Recherche & gestion des quotes [search and magic quote] if (isset ($_GET ['recherche'])){ $recherche = $_GET ['recherche']; if (get_magic_quotes_gpc ()) // magic_quotes_gpc = on $recherche = StripSlashes ($recherche); }else{ $recherche = ""; } // recherche1 [search] if (!isset ($recherche1)) $recherche1 = ""; // tri form [form sort] if(isset($_GET['tri'])) $tricol=$_GET['tri']; else $tricol=""; // tri sous form [sub form sort] if(isset($_GET['trisf'])) $tricolsf=$_GET['trisf']; else $tricolsf=""; // identifiant enregistrement form [identifier form record] if (!isset ($table)) $table = ""; // libelle enregistrement form [wording form record] if (isset ($_GET ['idz'])){ $idz=$_GET ['idz']; }else{ $idz=""; } // evaluation maj [maj value] if (isset ($_GET ['idx'])){ $idx = $_GET ['idx']; if (isset ($_GET ['ids'])) { // $enteteTab = "Table ".$table." Suppression"; $maj = 2; }else{ // $enteteTab = "Table ".$table." Modification"; $maj = 1; } }else{ $maj=0; $idx="]"; //if (isset($_GET['validation'])) // $enteteTab = "Table ".$table." Validation"; //else // $enteteTab = "Table ".$table." Ajout"; } // validation if (isset ($_GET ['validation'])) $validation = $_GET ['validation']; else $validation = 0; //============================================================================== //$enteteTab :ne sert a rien method entete de formulaire // message erreur "Notice: Undefined variable: enteteTab // in c:\easyphp1-7\www\openexemple\openmairie_exemple\scr\form.php" // ligne $enr -> formulaire ($enteteTab,............) // => declaration $enteteTab vide ICI ( A VOIR ) //------------------------------------------------------------------------------ // $enteteTab passe en parametre : dbformdyn.class.php et dbform.class // ( function formulaire et sousformulaire ) //============================================================================== $enteteTab=""; // =========== // include obj // =========== include ("../obj/".$obj.".class.php"); // Classe utils () $f = new utils (); // Fichier de parametrage [files paramters] if (file_exists ("../sql/".$f -> phptype."/".$obj.".inc")) include ("../sql/".$f -> phptype."/".$obj.".inc"); // html + head echo "\n"; echo "\n"; echo "\t\n"; echo "\t\t\n"; echo "\t\t".$f -> lang("title_html")."\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\t\n"; echo "\t\n"; // ================================================================ // activation de la fonction javascript au chargement // [activate the javascript function] // cas 1 : il y a un sous formulaire et il y a une page sous form // cas 2 : il y a un sous formulaire // cas 3 : il n y a pas de sous formulaire // ================================================================ if ($objsf) if ($premiersf) echo "\n"; else echo "\n"; else echo "\n"; // =============================================================== // util.class.php : methodes collectivite, droit, header [methods] // =============================================================== $f -> collectivite (); $f -> droit ($obj); $f -> header (1, $ent, $ico, $obj); // champidx ================================================================ // Valorisation de champidx = 1er champ de $champaffiche // recuperer nom du champ de formulaire qui contient la valeur de l idx pour // affichage des sous formulaires (ajout valide) // Traitement du "as" : enlever " as ..." si present // [value of champidx with the array $champaffiche first field // when the adding is validate - treatment of the sql "as"] // ========================================================================= $champidx = $champAffiche [0]; $champidx = preg_split ("/ /", $champidx); // $champidx = $champidx [0]; // function javascript ========================================================= // *** bodyload -> activer // *** activer : // - si on est dans form -> recherche non affichée -> afficheTab=0 // sinon -> formulaire non affiché -> afficheTab = 1 // - si afficheTab = 1 appel de soustabdyn.hp // et affichage du sousformulaire dans // *** afficherfom et afficherformajout (valeur de l idx dans $champidx.value) // recharge la page si il est cliquer sur l onglet form // permet d avoir les saisies à jour dans le formulaire prinsipal // si saisie en sous formulaire // -> bodyload -> activer // *** afficher sousform : affichage du sous formulaire // appel sousformdyn.php // *** suivant, precedent, allerpage, recherche, trier // navigation en soustabdyn.php -> voir tab.class.php ou tabdyn.class.php // *********************** English translation ***************************** // *** bodyload -> activer // *** activer : // - if it is the form -> not display search -> afficheTab=0 // if not -> not display form -> afficheTab = 1 // - if afficheTab = 1, call soustabdyn.hp // and display subform // *** afficherfom et afficherformajout (idx value in $champidx.value) // reload if clik on tab form // the data is modify in form // if seasure in sub form // -> bodyload -> activer // *** afficher sousform : display the sub form // call sousformdyn.php // *** suivant, precedent, allerpage, recherche, trier // navigation in soustabdyn.php -> see tab.class.php or tabdyn.class.php // ========================================================================== ?> \n"; //If (isset($_SESSION ['profil'])){ If ($_SESSION ['profil'] >= $f -> droit) { echo "\n"; // ========================================== // AFFICHAGE DU FORMULAIRE [display form] // document.getElementById('objet_onglet') // ========================================== echo "
\n"; $enr = new $obj ($idx, $f -> db, $DEBUG); if ($DEBUG == 1) echo "Objet metier =>
".$enr->msg; echo "\t
\n"; $validation++; $enr -> formulaire ($enteteTab, $validation, $maj, $f -> db, $_POST, $obj, $DEBUG, $idx, $premier, $recherche, $tricol, $idz); echo "\t
\n"; // echo "
\n"; //
//========================================================================== // *** SOUS FORMULAIRE *** [sub form] // ========================================================================= echo "\n"; // ----------------------- // classe tabdyn.class.php // ----------------------- include ($path_om."tabdyn.class.php"); if (!isset ($sousformulaire_class)) $sousformulaire_class='sousformulaire'; echo "\t
\n"; $elem = ""; // ------------------------------------------------------------------- // AFFICHAGE DES BOUTONS ONGLETS FORMULAIRE ET SOUS FORMULAIRE: // [display form button and sub form button(s) // ------------------------------------------------------------------- // *** bouton onglet FORMULAIRE *** // ajout-> afficherformajout() [add] // autres -> afficherform() [other] if($idx==']') echo "\t\n"; else echo "\t\n"; // *** bouton onglet SOUS FORMULAIRE *** // - en maj [modify] si [if] $maj==1 // - en ajout [add] si [if] $maj == 0 , $validation>1 , $enr->correct==1 , $idx ==']' if ($maj==1 or ($maj == 0 and $validation>1 and $enr->correct==1 and $idx ==']')){{ //*** if (isset ($sousformulaire)) foreach ($sousformulaire as $elem) { echo "\t\n"; } } } // ---------------------------------------------- // RECHERCHE EN SOUS FORMULAIRE [search sub form] // ---------------------------------------------- // Affichage de la recherche en sous formulaire // [display sub form search] // SPAN // -------------------------------------------- echo "\t"; echo "\n"; // --------------------------------------------------------- // ARCHIVE l element recherche en sous formulaire // passage de variable en java script // [filing search element - passage of variable to javascript] // recherche = document.getElementById("recherchedyn").value // --------------------------------------------------------- echo "\t\n"; echo "\t\n"; // echo "\t
\n"; // ---------------------------------------------------------------- // AFFICHAGE DU SOUS FORMULAIRE COURANT [Display current sub form] // ---------------------------------------------------------------- echo "\t
\n"; // ------------------------------------------------------ // Valorisation de $idx en ajout [add : value of $idx] // ATTENTION la cle doit avoir le même nom que la table // [BE CARREFUL the primary key has the same table name ] // ------------------------------------------------------ if ($maj == 0 and $validation>1 and $enr->correct==1 and $idx ==']') $idx = $enr->valF[$enr->table]; // ------------------------------------------------------------ // passage de la variable $idx en javascript // [$idx - passage of variable to javascript] // cle formulaire -> function afficherformajout [primary key] // cle secondaire des sous formulaire [secondary key -> sub form] // --------------------------------------------------------------- if ($maj>0 or ($maj == 0 and $validation>1 and $enr->correct==1)) { ?> ".$f->lang("attention")." ".$f->lang("droit").$f->lang("pluriel")." ".$f->lang("insuffisant").$f->lang("pluriel")." - ". $f->lang("votre_profil_est")." : [".$_SESSION['profil']."]"; } //} //else // =========================================== // Le profil n est pas défini [re-connect you] // normalement on y arrive pas // =========================================== //echo "\t
Droits insuffisants - ". // "Votre profil est : [".$_SESSION['profil']."]
\n"; // ============================================================================= // SOUS FORMULAIRE COURANT [current sub form] // document.getElementById("objet").innerHTML // // ATTENTION : ne jamais appeller un element de la meme // maniere : exemple nom de champ objet echo "\t
\n"; echo "\t"; //$f -> db -> disconnect (); // if ($DEBUG == 1) echo "La base ".$dsn ['database']." est deconnectee.
"; // ==== // menu // ==== echo ""; echo ""; echo ""; echo ""; echo "\n"; // ============================ // deconnexion [disconnect] // ============================ // utils.class $f -> deconnexion (); $f -> footerhtml (); ?>