Esempio n. 1
0
 function traiterPostPost($item)
 {
     $reg = array();
     //si demande de création linkage dans colone dynamique dans base
     if ($item->getAttribute('linkDBCol')) {
         if (ereg(".*field:([^;]*);.*", $item->getAttribute('linkDBCol'), $reg)) {
             $field = $reg[1];
         } else {
             $field = $item->getAttribute('id');
         }
         if (ereg(".*table:([^;]*);.*", $item->getAttribute('linkDBCol'), $reg)) {
             $table = $reg[1];
         } else {
             $table = $this->session->tableDyn;
         }
         if (ereg(".*db:([^;]*);.*", $item->getAttribute('linkDBCol'), $reg)) {
             $db = $reg[1];
         } else {
             $db = $this->session->baseInstances;
         }
         if (ereg(".*type:([^;]*);.*", $item->getAttribute('linkDBCol'), $reg)) {
             $type = $reg[1];
         } else {
             //sinon on regarde si il existe déja
             $requete = $this->getSession()->getObjRequete('', $db, $table);
             $desc = $requete->descTable();
             if (isset($desc[$field])) {
                 $type = $desc[$field][1] . "(" . $desc[$field][0] . ")";
             } else {
                 $type = "VARCHAR(32)";
             }
         }
         if (ereg(".*key:([^;]*);.*", $item->getAttribute('linkDBCol'), $reg)) {
             $key = $reg[1];
             if (ereg("(.*):(.*)", $key, $reg)) {
                 //key:pouet:pouet;
                 $key = $reg[1];
                 switch ($reg[2]) {
                     case 'ids':
                         $val = $this->ids;
                         break;
                     case 'idinstance':
                         $val = $this->idInstance;
                         break;
                     default:
                         $val = $this->getFormVar($reg[2]);
                         break;
                 }
             } else {
                 // key:pouet;
                 switch ($key) {
                     case 'idinstance':
                         $val = $this->idInstance;
                         break;
                     case 'ids':
                     default:
                         $val = $this->ids;
                         break;
                 }
             }
             $keycol = $key;
             $keyval = $val;
             $key = $key . " = '{$val}'";
         } else {
             $key = "ids='" . $this->ids . "'";
             $keycol = 'ids';
             $keyval = $this->ids;
         }
         $val = utf8_decode($item->getElementsByTagName('Val')->item(0)->nodeValue);
         //on coupe si chaine rentrée trop grande
         if (ereg("VARCHAR\\((.*)\\).*", $type, $reg)) {
             $val = substr($val, 0, $reg[1]);
         }
         $data[$field] = $val;
         $data[$keycol] = $keyval;
         $requete = $this->getSession()->getObjRequete('', $db, $table);
         $requete->testAndMakeCol($field, $type);
         //rechargement de la classe pour traitement des donnes data avec la colonne cette fois
         $requete = $this->getSession()->getObjRequete($data, $db, $table);
         $resu = $requete->uoiRecord($key);
     }
     if ($item->getAttribute('link')) {
         //si l'item est lié à une variable globale
         $this->getGlobvarsContainer()->set($item->getAttribute('link'), formxTools::domGetValueFxItem($item));
     }
     if ($item->getElementsByTagname('Cond')->length > 0) {
         //si l'item a une condition d'affichage, on la met à jour
         $this->majCondAffichage($item);
     }
     //si l'item est de type closer et que sa condition est vraie, on cloture le formulaire et on le ferme
     if ($item->getAttribute('closer') && $this->testCondDOM($item)) {
         $_POST['formx_autoclose'] = true;
         $this->ImustDisapear = true;
         $this->close();
     }
     if ($item->getAttribute('minimizer') && $this->testCondDOM($item)) {
         $_POST['formx_autoclose'] = true;
         $this->ImustDisapearNow = true;
         $this->setFormVar($item->getAttribute('minimizer'), '');
         //$this->close();
     }
     //marqueur que les infos sont fraiches pour l'affichage ( à charge de l'afficheur de les remettre à zero ensuite )
     $item->setAttribute('isfresh', 'y');
 }