materiainfo.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. //no index
  3. header("X-Robots-Tag: noindex, nofollow", true);
  4. ini_set('display_errors', 1);
  5. error_reporting(E_ALL);
  6. //no caché
  7. header('Expires: Sun, 01 Jan 2014 00:00:00 GMT');
  8. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  9. header('Cache-Control: no-store, no-cache, must-revalidate');
  10. header('Cache-Control: post-check=0, pre-check=0', false);
  11. header('Pragma: no-cache');
  12. date_default_timezone_set('America/Mexico_City');
  13. require_once("../include/nusoap/nusoap.php");
  14. require_once("../include/bd_pdo.php");
  15. //--funcion interna
  16. function quitaNumeros($words){
  17. $words = strtoupper($words);
  18. return preg_replace('/\d/', '', $words );
  19. }
  20. function quitaLetras($words){
  21. $words = strtoupper($words);
  22. return preg_replace("/[^0-9]/", "", $words);
  23. }
  24. function getIniciales($materia){
  25. $ret = '';
  26. $materia = str_ireplace( array("Á","É","Í","Ó","Ú","Ñ","Ä","Ë","Ï","Ö","Ü","Â","Ê","Î","Ô","Û","Ã"), array("A","E","I","O","U","N","A","E","I","O","U","A","E","I","O","U","A"), utf8_encode($materia));
  27. foreach (explode(' ', $materia) as $word){
  28. if(ctype_alpha($word[0]))
  29. $ret .= $word[0];
  30. }
  31. return strtoupper($ret);
  32. }
  33. //-----
  34. function getareashortname($shortname = ""){
  35. global $pdo;//global para que la vea la función
  36. $tmp = explode('-', $shortname);
  37. /*$grupo = quitaLetras(str_replace(' ', '', $tmp[0]));
  38. $carrera = quitaNumeros(str_replace(' ', '', $tmp[0]));*/
  39. /*$stmt = $pdo->prepare('Select * from fs_areamateria(:gpo, :pref)');
  40. $stmt->bindParam(":gpo", $grupo);
  41. $stmt->bindParam(":pref", $carrera);*/
  42. $stmt = $pdo->prepare('Select * from fs_areashortname(:short)');
  43. $stmt->bindParam(":short", $tmp[0]);
  44. if($stmt->execute()){
  45. $materias_rs = $stmt->fetchAll();
  46. $stmt->closeCursor();
  47. foreach($materias_rs as $materia){
  48. if(getIniciales($materia["Materia_desc"]) == strtoupper($tmp[1])){
  49. return $materia["Area_id"];
  50. }
  51. }
  52. }
  53. return "0";
  54. }
  55. function getatributos($id){
  56. global $pdo;//global para que la vea la función
  57. //$tmp = explode('-', $shortname);
  58. //$id = $tmp[3];
  59. $stmt = $pdo->prepare('Select * from fs_materia(:id, NULL, NULL, NULL, NULL, 0, NULL)');
  60. $stmt->bindParam(":id", $id);
  61. if($stmt->execute()){
  62. $materia_rs = $stmt->fetch();
  63. }
  64. $stmt->closeCursor();
  65. //---
  66. $stmt = $pdo->prepare('Select * from fs_materia_atributoegreso(NULL, :id)');
  67. $stmt->bindParam(":id", $id);
  68. if($stmt->execute()){
  69. $atributos_rs = $stmt->fetchAll();
  70. }
  71. $stmt->closeCursor();
  72. $stmt = $pdo->prepare('Select * from fs_materia_ods(NULL, :id)');
  73. $stmt->bindParam(":id", $id);
  74. if($stmt->execute()){
  75. $ODS_rs = $stmt->fetchAll();
  76. }
  77. $stmt->closeCursor();
  78. //----
  79. $atributosArray = array();
  80. foreach($atributos_rs as $atr){
  81. $atributosArray[] = array("num"=> $atr["AtributoEgreso_id"], "desc"=>$atr["AtributoEgreso_desc"], "contribuye"=>$atr["Materia_AtributoEgreso_contribuye"]);
  82. }
  83. $odsArray = array();
  84. foreach($ODS_rs as $atr){
  85. $odsArray[] = array("num"=> $atr["ODs_num"], "desc"=>$atr["ODs_desc"], "contribuye"=>0);
  86. }
  87. //array("materia"=>"xsd:string", "carrera"=>"xsd:string", "plan"=>"xsd:string", "atributos" => "tns:AtributosList", "ods" =>"tns:AtributosList"),//regresa
  88. return array(
  89. "materia"=>$materia_rs["Materia_desc"],
  90. "carrera"=>$materia_rs["Carrera_desc"],
  91. "plan"=>$materia_rs["PlanEstudio_desc"],
  92. "atributos" => $atributosArray,
  93. "ods" => $odsArray);
  94. }
  95. /*function getods($shortname = ""){
  96. global $pdo;//global para que la vea la función
  97. $tmp = explode('-', $shortname);
  98. $stmt = $pdo->prepare('Select * from fs_materia_atributoegreso(NULL, :id)');
  99. $stmt->bindParam(":id", $tmp[3]);
  100. if($stmt->execute()){
  101. $rs = $stmt->fetchAll();
  102. $stmt->closeCursor();
  103. $odsArray = array();
  104. foreach($rs as $atr){
  105. $odsArray[] = array("num"=> $atr["ODs_num"], "desc"=>$atr["ODs_desc"], "contribuye"=>0);
  106. }
  107. }
  108. return $odsArray;
  109. }*/
  110. //define("PAG", "http://atenea.lci.ulsa.mx/webservice/materiainfo_service");
  111. define("PAG", "http://200.13.89.48/webservice/materiainfo_service");
  112. $server = new soap_server();
  113. $server->configureWSDL("materiainfo_service", PAG);
  114. //Create a complex types
  115. $server->wsdl->addComplexType('AtributoComplex', 'complexType', 'struct', 'all','',
  116. array( 'num' => array('name' => 'num','type' => 'xsd:integer'),
  117. 'desc' => array('name' => 'desc','type' => 'xsd:string'),
  118. 'contribuye' => array('name' => 'contribuye','type' => 'xsd:integer')
  119. )
  120. );
  121. $server->wsdl->addComplexType('AtributosList', 'complexType', 'array', '', 'SOAP-ENC:Array', array(),
  122. array(
  123. array('ref' => 'SOAP-ENC:arrayType',
  124. 'wsdl:arrayType' => 'tns:AtributoComplex[]')
  125. ),
  126. 'tns:AtributoComplex'
  127. );
  128. // Parametros de salida
  129. $server->register("getareashortname",
  130. array("shortname" => "xsd:string"),//recibe
  131. array("area" => "xsd:string"),//regresa
  132. PAG,
  133. PAG."#getareashortname",
  134. "rpc",
  135. "encoded",
  136. "Obtiene el área de una materia a partir de su shortname formato (200CIB-IALP-2020A-175)");
  137. $server->register("getatributos",
  138. array("id" => "xsd:integer"),//recibe
  139. array("materia"=>"xsd:string", "carrera"=>"xsd:string", "plan"=>"xsd:string", "atributos" => "tns:AtributosList", "ods" =>"tns:AtributosList"),//regresa
  140. PAG,
  141. PAG."#getatributos",
  142. "rpc",
  143. "encoded",
  144. "Obtiene los atributos de egreso a partir de su shortname formato (200CIB-IALP-2020A-175)");
  145. /*$server->register("getods",
  146. array("shortname" => "xsd:string"),//recibe
  147. array("ods" => "tns:AtributosList"),//regresa
  148. PAG,
  149. PAG."#getods",
  150. "rpc",
  151. "encoded",
  152. "Obtiene los ODS a partir de su shortname formato (200CIB-IALP-2020A-175)");*/
  153. @$server->service(file_get_contents("php://input"));
  154. ?>