PageRenderTime 99ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/fsn-site-central/application/Controller/Requeteur.php

https://gitlab.com/team_fsn/fsn-php
PHP | 255 lines | 148 code | 37 blank | 70 comment | 26 complexity | 7bc3cb23460abff34151d06d3fc688d5 MD5 | raw file
  1. <?php
  2. class Controller_Requeteur extends Yab_Controller_Action {
  3. public function actionIndex() {
  4. $session = $this->getSession();
  5. $sitefouille_id = $session->has('sitefouille_id') ? $session->get('sitefouille_id') : null ;
  6. $requeteur = new Model_Requeteur();
  7. $categories = $requeteur->getTablesRequeteur();
  8. $this->_view->set('listeCategories', $categories);
  9. if (isset($_POST["listerRequetes"]))
  10. $listerRequetes = $_POST["listerRequetes"];
  11. else
  12. $listerRequetes = '';
  13. if ($listerRequetes == "lister") {
  14. $listeRequetes = $requeteur->getListeRequetes();
  15. $this->_view->set('requetes_index', $listeRequetes);
  16. $this->_view->set('listerRequetes', $listerRequetes);
  17. return;
  18. }
  19. if (isset($_POST["categorieprincipale_Technique"])) {
  20. $categorie_requeteur = $_POST["categorieprincipale_Technique"] ;
  21. }
  22. else {
  23. $categorie_requeteur = null ;
  24. }
  25. $this->_view->set('categorie_requeteur', $categorie_requeteur);
  26. if (isset($_POST["select_Technique"]) && isset($_POST["from_Technique"]) && isset($_POST["inner_Technique"]) && isset($_POST["where_Technique"]) && !is_null($categorie_requeteur)) {
  27. // les champs *TechniqueArea ne sont pas disponibles via $_POST tant qu'ils ne sont pas éditables : prop('disabled', true) cf. requeteur.js
  28. $requeteur = "requete_" . $categorie_requeteur;
  29. $entite = ucfirst($categorie_requeteur);
  30. if (!empty($_POST["select_Technique"]) && !empty($_POST["from_Technique"]) && !empty($_POST["where_Technique"])) {
  31. $session[$requeteur] = $_POST["select_Technique"] . ' ' . $_POST["from_Technique"] . ' ' . $_POST["inner_Technique"] . ' ' . $_POST["where_Technique"];
  32. }
  33. else{
  34. $session[$requeteur] = "";
  35. }
  36. $this->forward($entite, 'index' );
  37. }
  38. }
  39. public function actionTraduireRequeteur() {
  40. $registry = $this->getRegistry();
  41. // appel fichier internationalisation
  42. $i18n = $this->getRegistry()->get('i18n');
  43. $filter_html = new Yab_Filter_Html();
  44. $filter_no_html = new Yab_Filter_NoHtml();
  45. try {
  46. echo $filter_no_html->filter($i18n->say($_POST["donnee"]));
  47. } catch ( Exception $e ) {
  48. echo $_POST["donnee"];
  49. }
  50. }
  51. /**
  52. * Fonction qui permet l'appel ajax au service web
  53. */
  54. public function actionAjaxTableReflect() {
  55. $table = $_POST["table"];
  56. $url = 'http://'.Yab_Loader::getInstance()->getConfig()['ws'].'/'.$table.'/reflect';
  57. $header = array('Content-Type: text/xml;charset=utf-8');
  58. $data = '';
  59. $resource = curl_init();
  60. curl_setopt($resource, CURLOPT_URL, $url);
  61. curl_setopt($resource, CURLOPT_HTTPHEADER, $header);
  62. curl_setopt($resource, CURLOPT_RETURNTRANSFER, 1);
  63. curl_setopt($resource, CURLOPT_POST, 1);
  64. curl_setopt($resource, CURLOPT_POSTFIELDS, $data);
  65. $result = curl_exec($resource);
  66. curl_close($resource);
  67. if($table == "fai"){
  68. $url_fai_extensions = 'http://'.Yab_Loader::getInstance()->getConfig()['ws'].'/fsn_categorie/fai_extension';
  69. $headerExt = array('Content-Type: text/xml;charset=utf-8');
  70. $dataExt = '';
  71. $resourceExt = curl_init();
  72. curl_setopt($resourceExt, CURLOPT_URL, $url_fai_extensions);
  73. curl_setopt($resourceExt, CURLOPT_HTTPHEADER, $headerExt);
  74. curl_setopt($resourceExt, CURLOPT_RETURNTRANSFER, 1);
  75. $result_faiExtensions = curl_exec($resourceExt);
  76. curl_close($resourceExt);
  77. // On concatene avec fai_extension si fai
  78. $tabFais = json_decode($result);
  79. $max = sizeof($tabFais);
  80. $tabFai_extensions = json_decode($result_faiExtensions);
  81. if(!empty($tabFai_extensions)){
  82. foreach ($tabFai_extensions as $key => $values) {
  83. $tabFais[$max] = $values;
  84. $max += 1;
  85. }
  86. $result = json_encode($tabFais);
  87. }
  88. }
  89. // Envoie du resultat a l'ajax
  90. echo($result);
  91. die();
  92. }
  93. public function actionEnregistrerRequete() {
  94. $titre = addslashes($_POST["titre"]);
  95. $description = addslashes($_POST["description"]);
  96. $critere = addslashes($_POST["critere"]);
  97. $requete = addslashes($_POST["requete"]);
  98. $modifiee = $_POST["modifiee"];
  99. /*
  100. var_dump($titre);
  101. var_dump($description);
  102. var_dump($critere);
  103. var_dump($requete);
  104. var_dump($modifiee);
  105. var_dump($user_id);
  106. die();
  107. */
  108. $requeteur = new Model_Requeteur();
  109. $titreGet = $requeteur->getTitreRequeteur($titre); // vérifier si une requête avec ce titre existe déjà
  110. if (!empty($titreGet[0]['titre'])){ // le titre existe déjà (non vide)
  111. // echo("confirm(Veuillez confirmer la modification de la requête : ".$titre.")");
  112. $id_requete = $titreGet[0]['id'];
  113. $result = $requeteur->enregistrerRequeteur($id_requete,$titre,$description,$critere,$requete,$modifiee);
  114. }
  115. else { // sinon on peut insérer la requête en base
  116. $result = $requeteur->enregistrerRequeteur(null,$titre,$description,$critere,$requete,$modifiee);
  117. }
  118. if ($result == "1")
  119. echo("La requête a bien été enregistrée.");
  120. else
  121. echo($result);
  122. }
  123. public function actionGetFsnCategorie() {
  124. $moduleFonctionnel = $_POST["moduleFonctionnel"];
  125. $where = 'categorie_object = "' . $moduleFonctionnel . '" ';
  126. if (isset($_POST["categorieType"])) {
  127. $categorieType = $_POST["categorieType"];
  128. $where .= ' and categorie_type = "' . $categorieType . '" ';
  129. }
  130. else
  131. $categorieType = '';
  132. if (isset($_POST["categorieColonne"])) {
  133. $categorieColonne = $_POST["categorieColonne"];
  134. }
  135. else
  136. $categorieColonne = "categorie_value";
  137. $fsn_categorie = new Model_Fsn_Categorie();
  138. $result = $fsn_categorie->fetchAll()->where($where)->orderBy($categorieColonne) ;
  139. $result = $result->toArray();
  140. //var_dump($result); die();
  141. $categorieKeyArray = array();
  142. foreach($result as $fc){
  143. array_push($categorieKeyArray, $fc[$categorieColonne]);
  144. }
  145. $categorieKeyJSON = json_encode($categorieKeyArray);
  146. echo($categorieKeyJSON);
  147. }
  148. public function actionGetRequete() {
  149. $id = $_POST["id"];
  150. $colonne = $_GET["colonne"];
  151. $requeteur = new Model_Requeteur($id);
  152. $result = $requeteur->get($colonne);
  153. echo($result);
  154. /*
  155. $requeteur = new Model_Requeteur();
  156. $result = $requeteur->getRequete($id);
  157. var_dump($result); die();
  158. echo($result);
  159. */
  160. /*
  161. $JSONresult = json_encode($result);
  162. var_dump($JSONresult); die();
  163. echo($JSONresult);
  164. */
  165. }
  166. public function actionDeleteRequete() {
  167. $id = $_POST["id"];
  168. if(!empty($id)){
  169. $requeteur = new Model_Requeteur($id);
  170. $result = $requeteur->delete();
  171. if($result){
  172. echo "La réquête a été supprimée avec succès";
  173. }
  174. }
  175. // else{
  176. // echo "Un problème est survenu lors de la suppression de la réquête\nVeuillez réessayer ultérieurement";
  177. // }
  178. }
  179. /*
  180. public function actionGetRequeteTitre() {
  181. $id = $_POST["id"];
  182. $requeteur = new Model_Requeteur($id);
  183. $result = $requeteur->get('titre');
  184. echo($result);
  185. }
  186. public function actionGetRequeteDescription() {
  187. $id = $_POST["id"];
  188. $requeteur = new Model_Requeteur($id);
  189. $result = $requeteur->get('description');
  190. echo($result);
  191. }
  192. public function actionGetRequeteCritere() {
  193. $id = $_POST["id"];
  194. $requeteur = new Model_Requeteur($id);
  195. $result = $requeteur->get('critere');
  196. echo($result);
  197. }
  198. public function actionGetRequeteRequete() {
  199. $id = $_POST["id"];
  200. $requeteur = new Model_Requeteur($id);
  201. $result = $requeteur->get('requete');
  202. echo($result);
  203. }
  204. */
  205. /*
  206. public function actionListerRequetes() {
  207. $requeteur = new Model_Requeteur();
  208. $listeRequetes = $requeteur->getListeRequetes();
  209. $this->_view->set('$requetes_index', $listeRequetes);
  210. $this->_view->set('$listerRequetes',TRUE);
  211. $this->forward('Requeteur', 'index');
  212. }
  213. */
  214. }
  215. ?>