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'); }