/** * * @param <type> $cw * @param <type> $options basic, basicOnly , noNominativeData , etat , order=recentFirst * @return <type> */ public static function exportsGetTabCw($cw, $options = '') { //eko($cw); //eko($options); if (!$options || is_array($options) && count($options) == 0) { $options = array('noNominativeData' => true, 'etat' => array('I', 'E', 'F', 'H')); } if (!isset($options['etat'])) { $options = array_merge($options, array('etat' => array('I', 'E', 'F', 'H'))); } $cw = " ( {$cw} ) AND status IN ('" . implode("','", $options['etat']) . "') "; if (isset($options['order']) && $options['order'] == 'recentFirst') { $cw .= " ORDER BY id_instance DESC "; } if (isset($options['crossWithTable'])) { $baseFx = clFoRmXSession::getInstance()->getBase(); $baseObjets = $options['crossWithTable']['base']; $tableObjets = $options['crossWithTable']['table']; $indexIds = $options['crossWithTable']['indexIds']; $requete = "SELECT id_instance ,idformx,ids , dt_creation, dt_modif, idformx, libelle, status, author FROM {$baseFx}.formx a ,{$baseObjets}.{$tableObjets} b WHERE a.ids = b.{$indexIds} AND {$cw} GROUP BY id_instance "; } else { $requete = "SELECT id_instance ,idformx,ids , dt_creation, dt_modif, idformx, libelle, status, author FROM formx WHERE {$cw} "; } $obRequete = clFoRmXSession::getInstance()->getObjRequete(); $res = array(); foreach ($obRequete->exec_requete($requete, 'tab') as $ligne) { //on veut les infos basiques du formulaire $tabBasic = array(); if (isset($options['basic']) && $options['basic'] || isset($options['basicOnly']) && $options['basicOnly']) { $tabBasic['idInstance'] = $ligne['id_instance']; $tabBasic['ids'] = $ligne['ids']; $tabBasic['dtCreation'] = $ligne['dt_creation']; $tabBasic['dtModif'] = $ligne['dt_modif']; $tabBasic['idFormx'] = $ligne['idformx']; $tabBasic['libelle'] = $ligne['libelle']; $tabBasic['status'] = $ligne['status']; $tabBasic['author'] = $ligne['author']; } if (isset($options['basicOnly']) && $options['basicOnly']) { $res[] = $tabBasic; continue; } try { $formx = new clFoRmX($ligne['ids'], 'NO_POST_THREAT'); $formx->loadInstance($ligne['id_instance']); $okForExtract = false; if (isset($options['filterValues'])) { foreach ($options['filterValues'] as $idItem => $needValue) { if ($formx->getFormVar($idItem) == $needValue) { $okForExtract = true; } } } else { $okForExtract = true; } if ($okForExtract) { $resLigne = $tabBasic + $formx->getTabAllItemsValues($options); $res[] = $resLigne; } } catch (Exception $e) { } } return $res; }