src/Controller/LandingController.php line 637

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Utils\Utils;
  4. use App\Utils\Paramsutils;
  5. use App\Utils\Dbutils;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  11. use Doctrine\DBAL\Connection;
  12. use Symfony\Component\Mailer\MailerInterface;
  13. // Controller para gestionar las vistas de admin y manage y sus respectivas funciones
  14. class LandingController extends AbstractController {
  15. /* * *************************************************** Paginas de Admin **************************************************** */
  16. /**
  17. * @Route("/admin", name="app_admin")
  18. */
  19. public function admin(ParameterBagInterface $parameters, Connection $connection): Response {
  20. $paramsutils = new Paramsutils;
  21. $dbutils = new Dbutils;
  22. $data = $paramsutils->leerParametros();
  23. $params = $parameters->get("PARAMSCONF");
  24. $dbconf = $parameters->get("DBCONF");
  25. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() !== "Ko") {
  26. $renderParamsArray = array();
  27. $renderParamsArray["parametros"] = $params;
  28. $renderParamsArray["user_session"] = $this->getUser()->getUsername();
  29. $renderParamsArray["numcontacts"] = $dbutils->contarPeticiones($dbconf, $connection);
  30. $renderParamsArray["numcontactsrecent"] = $dbutils->contarPeticiones($dbconf, $connection, date("Y/m/d H:i:s", strtotime("-1 month")), date("Y/m/d H:i:s", time()));
  31. $renderParamsArray["default_service"] = $data["default_service"];
  32. $renderParamsArray["emailenviopeticiones"] = $data["emailenviopeticiones"];
  33. $renderParamsArray["ciudades"] = $data["ciudades"];
  34. $renderParamsArray["servicios"] = $data["servicios"];
  35. $renderParamsArray["blockedspam"] = $data["blockedspam"];
  36. $renderParamsArray["data"]=$data;
  37. return $this->render("/admin/admin.html.twig",
  38. $renderParamsArray,
  39. );
  40. } else {
  41. return $this->redirectToRoute("app_login");
  42. }
  43. }
  44. // Exportar CSV (Post)
  45. /**
  46. * @Route("/admin/exportar-csv", name="app_exportar-csv")
  47. */
  48. public function exportarcsv(ParameterBagInterface $parameters, Request $request, Connection $connection): Response {
  49. $dbutils = new Dbutils;
  50. $dbconf = $parameters->get("DBCONF");
  51. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() !== "Ko") {
  52. $request = $request->request;
  53. $fechaInicial = ($request->has("fechaInicial")) ? $request->get("fechaInicial") : null;
  54. $fechaFinal = ($request->has("fechaFinal")) ? $request->get("fechaFinal") : null;
  55. $output = "";
  56. $headers_printed = false;
  57. $rows = $dbutils->exportarPeticiones($dbconf, $connection, "fecha", $fechaInicial, $fechaFinal);
  58. foreach ($rows as $row) {
  59. // print out column names as the first row
  60. if (!$headers_printed) {
  61. $output .= join(";", array_keys($row)) . "\n";
  62. $headers_printed = true;
  63. }
  64. // remove newlines from all the fields and
  65. // surround them with quote marks
  66. foreach ($row as &$value) {
  67. $value = str_replace("\r\n", "", $value);
  68. $value = "\"" . $value . "\"";
  69. }
  70. $output .= join(";", $row) . "\n";
  71. }
  72. // set the headers
  73. $size_in_bytes = strlen($output);
  74. header("Content-type: application/vnd.ms-excel; charset=utf-8");
  75. header("Content-disposition: attachment; filename=peticiones.csv; size=$size_in_bytes");
  76. // send output
  77. print mb_convert_encoding($output, "utf-8", "utf-8");
  78. die();
  79. } else {
  80. return $this->redirectToRoute("app_login");
  81. }
  82. }
  83. /***************************************************** Paginas de Manage **************************************************** */
  84. // Vista Superadmin
  85. /**
  86. * @Route("/manage", name="app_manage")
  87. */
  88. public function manage(ParameterBagInterface $parameters): Response{
  89. $paramsutils = new Paramsutils;
  90. $data = $paramsutils->leerParametros();
  91. $paramsconf = $parameters->get("PARAMSCONF");
  92. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() == "idento") {
  93. $renderParamsArray = array();
  94. foreach ($data as $key => $param) {
  95. $renderParamsArray[$key] = $param;
  96. }
  97. $renderParamsArray["parametros"] = $paramsconf;
  98. return $this->render("/admin/manage.html.twig",
  99. $renderParamsArray,
  100. );
  101. } else {
  102. return $this->redirectToRoute("app_login");
  103. }
  104. }
  105. /**
  106. * @Route("/manage/guardarGeneral", name="app_guardarGeneral")
  107. */
  108. public function guardarGeneral(ParameterBagInterface $parameters, Request $request): Response {
  109. $paramsutils = new Paramsutils;
  110. $data = $paramsutils->leerParametros();
  111. $paramsconf = $parameters->get("PARAMSCONF");
  112. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  113. $request = $request->request;
  114. $result = $paramsutils->guardarParametros(paramsutils::GUARDARGENERAL, $paramsconf, $data, $request);
  115. if ($result) {
  116. return $this->redirectToRoute("app_manage");
  117. }
  118. } else {
  119. return $this->redirectToRoute("app_login");
  120. }
  121. }
  122. // - Editar Servicio (Post)
  123. /**
  124. * @Route("/manage/editarServicio", name="app_editarServicio")
  125. */
  126. public function editarServicio(ParameterBagInterface $parameters, Request $request): Response {
  127. $paramsutils = new Paramsutils;
  128. $data = $paramsutils->leerParametros();
  129. $paramsconf = $parameters->get("PARAMSCONF");
  130. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  131. $request = $request->request;
  132. $servicio = ($request->get("servicio") ? $request->get("servicio") : FALSE);
  133. $renderParamsArray = array();
  134. $renderParamsArray["parametros"] = $paramsconf;
  135. $renderParamsArray["ciudades"] = $data["ciudades"];
  136. if ($servicio) {
  137. $renderParamsArray["servicio"] = $data["servicios"][$servicio];
  138. $renderParamsArray["servicio"]["nombreServicio"] = $servicio;
  139. } else{
  140. $renderParamsArray["servicio"] = array();
  141. $renderParamsArray["servicio"]["name"] = "";
  142. $renderParamsArray["servicio"]["route"] = "";
  143. $renderParamsArray["servicio"]["default_city"] = "";
  144. $renderParamsArray["servicio"]["nombreServicio"] = "";
  145. }
  146. }
  147. return $this->render("/admin/editarServicio.html.twig",
  148. $renderParamsArray,
  149. );
  150. }
  151. /**
  152. * @Route("/manage/guardarServicio", name="app_guardarServicio")
  153. */
  154. public function guardarServicio(ParameterBagInterface $parameters, Request $request): Response {
  155. $paramsutils = new Paramsutils;
  156. $data = $paramsutils->leerParametros();
  157. $paramsconf = $parameters->get("PARAMSCONF");
  158. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  159. $request = $request->request;
  160. $paramsutils->guardarParametros(paramsutils::GUARDARSERVICIO, $paramsconf, $data, $request);
  161. return $this->redirectToRoute("app_manage");
  162. } else {
  163. return $this->redirectToRoute("app_login");
  164. }
  165. }
  166. /**
  167. * @Route("/manage/borrarServicio", name="app_borrarServicio")
  168. */
  169. public function borrarServicio(Request $request): Response {
  170. $paramsutils = new Paramsutils;
  171. $data = $paramsutils->leerParametros();
  172. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  173. $request = $request->request;
  174. $servicio = $request->get("servicio");
  175. unset($data["servicios"][$servicio]);
  176. unset($data["configuration"][$servicio]);
  177. $paramsutils->escribirParametros($data);
  178. return $this->redirectToRoute("app_manage");
  179. } else {
  180. return $this->redirectToRoute("app_login");;
  181. }
  182. }
  183. /**
  184. * @Route("/manage/editarCiudad", name="app_editarCiudad")
  185. */
  186. public function editarCiudad(ParameterBagInterface $parameters, Request $request): Response {
  187. $paramsutils = new Paramsutils;
  188. $data = $paramsutils->leerParametros();
  189. $paramsconf = $parameters->get("PARAMSCONF");
  190. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  191. $request = $request->request;
  192. $ciudad = ($request->get("ciudad") ? $request->get("ciudad") : FALSE);
  193. $renderParamsArray = array();
  194. $renderParamsArray["parametros"] = $paramsconf;
  195. if ($ciudad) {
  196. $renderParamsArray["ciudad"] = $data["ciudades"][$ciudad];
  197. $renderParamsArray["ciudad"]["nombreCiudad"] = $ciudad;
  198. } else{
  199. $renderParamsArray["ciudad"] = array();
  200. $renderParamsArray["ciudad"]["name"] = "";
  201. $renderParamsArray["ciudad"]["route"] = "";
  202. $renderParamsArray["ciudad"]["nombreCiudad"] = "";
  203. }
  204. }
  205. return $this->render("/admin/editarCiudad.html.twig", $renderParamsArray);
  206. }
  207. /**
  208. * @Route("/manage/guardarCiudad", name="app_guardarCiudad")
  209. */
  210. public function guardarCiudad(ParameterBagInterface $parameters, Request $request): Response {
  211. $paramsutils = new Paramsutils;
  212. $data = $paramsutils->leerParametros();
  213. $paramsconf = $parameters->get("PARAMSCONF");
  214. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  215. $request = $request->request;
  216. $paramsutils->guardarParametros(paramsutils::GUARDARCIUDAD, $paramsconf, $data, $request);
  217. return $this->redirectToRoute("app_manage");
  218. } else {
  219. return $this->redirectToRoute("app_login");
  220. }
  221. }
  222. /**
  223. * @Route("/manage/borrarCiudad", name="app_borrarCiudad")
  224. */
  225. public function borrarCiudad(Request $request): Response {
  226. $paramsutils = new Paramsutils;
  227. $data = $paramsutils->leerParametros();
  228. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  229. $request = $request->request;
  230. $ciudad = $request->get("ciudad");
  231. unset($data["ciudades"][$ciudad]);
  232. foreach ($data["configuration"] as $servicio => $value) {
  233. unset($data["configuration"][$servicio][$ciudad]);
  234. }
  235. foreach ($data["servicios"] as $servicio => $value) {
  236. if ($data["servicios"][$servicio]["default_city"] == $ciudad) {
  237. if (!empty($data["ciudades"])) {
  238. $data["servicios"][$servicio]["default_city"] = array_keys($data["ciudades"])[0];
  239. }
  240. }
  241. }
  242. $paramsutils->escribirParametros($data);
  243. return $this->redirectToRoute("app_manage");
  244. } else {
  245. return $this->redirectToRoute("app_login");
  246. }
  247. }
  248. /**
  249. * @Route("/manage/editarConfiguracion", name="app_editarConfiguracion")
  250. */
  251. public function editarConfiguracion(ParameterBagInterface $parameters, Request $request): Response {
  252. $paramsutils = new Paramsutils;
  253. $data = $paramsutils->leerParametros();
  254. $paramsconf = $parameters->get("PARAMSCONF");
  255. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  256. $request = $request->request;
  257. $servicio = ($request->get("servicio") ? $request->get("servicio") : FALSE);
  258. $ciudad = ($request->get("ciudad") ? $request->get("ciudad") : FALSE);
  259. $renderParamsArray = array();
  260. $renderParamsArray["parametros"] = $paramsconf;
  261. if ($servicio && $ciudad) {
  262. $renderParamsArray["servicio"] = $data["servicios"][$servicio];
  263. $renderParamsArray["servicio"]["nombreServicio"] = $servicio;
  264. $renderParamsArray["ciudad"] = $data["ciudades"][$ciudad];
  265. $renderParamsArray["ciudad"]["nombreCiudad"] = $ciudad;
  266. if (!isset($data["configuration"][$servicio][$ciudad])) {
  267. foreach ($renderParamsArray["parametros"]["conf"] as $conf => $valor) {
  268. $data["configuration"][$servicio][$ciudad][$valor]= "";
  269. }
  270. }
  271. $renderParamsArray["configuration"] = $data["configuration"][$servicio][$ciudad];
  272. }
  273. }
  274. return $this->render("/admin/editarConfiguracion.html.twig", $renderParamsArray);
  275. }
  276. /**
  277. * @Route("/manage/guardarConfiguracion", name="app_guardarConfiguracion")
  278. */
  279. public function guardarConfiguracion(ParameterBagInterface $parameters, Request $request): Response {
  280. $paramsutils = new Paramsutils;
  281. $data = $paramsutils->leerParametros();
  282. $paramsconf = $parameters->get("PARAMSCONF");
  283. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  284. $request = $request->request;
  285. $paramsutils->guardarParametros(paramsutils::GUARDARDATOS, $paramsconf, $data, $request);
  286. return $this->redirectToRoute("app_manage");
  287. } else {
  288. return $this->redirectToRoute("app_login");
  289. }
  290. }
  291. /**
  292. * @Route("/manage/borrarConfiguracion", name="app_borrarConfiguracion")
  293. */
  294. public function borrarConfiguracion(Request $request): Response {
  295. $paramsutils = new Paramsutils;
  296. $data = $paramsutils->leerParametros();
  297. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() === "idento") {
  298. $request = $request->request;
  299. $servicio = ($request->get("servicio") ? $request->get("servicio") : FALSE);
  300. $ciudad = ($request->get("ciudad") ? $request->get("ciudad") : FALSE);
  301. if (isset($data["configuration"][$servicio][$ciudad])) {
  302. unset($data["configuration"][$servicio][$ciudad]);
  303. }
  304. $paramsutils->escribirParametros($data);
  305. return $this->redirectToRoute("app_manage");
  306. } else {
  307. return $this->redirectToRoute("app_login");
  308. }
  309. }
  310. // - Importar Campos (Post)
  311. /**
  312. * @Route("/importar-campos", name="app_importarcampos")
  313. */
  314. public function importarCampos(ParameterBagInterface $parameters, Request $request, Connection $connection): Response {
  315. $paramsutils = new Paramsutils;
  316. $data = $paramsutils->leerParametros();
  317. $paramsconf = $parameters->get("PARAMSCONF");
  318. $dbconf = $parameters->get("DBCONF");
  319. if (null !== $this->getUser()->getUsername() && $this->getUser()->getUsername() !== "Ko") {
  320. $paramsutils->importarCampos($dbconf, $connection, $paramsconf, $data);
  321. return $this->redirectToRoute("app_manage");
  322. } else {
  323. return $this->redirectToRoute("app_login");
  324. }
  325. }
  326. /* * ************************************************* Vista Frontview ************************************************** */
  327. // - Página Aviso legal
  328. /**
  329. * @Route("/aviso-legal", name="app_avisolegal")
  330. */
  331. public function avisolegal(): Response {
  332. $paramsutils = new Paramsutils;
  333. $data = $paramsutils->leerParametros();
  334. return $this->render("/index/aviso-legal.html", $data);
  335. }
  336. // - Página Política cookies
  337. /**
  338. * @Route("/politica-cookies", name="app_politicacookies")
  339. */
  340. public function politicacookies(): Response {
  341. $paramsutils = new Paramsutils;
  342. $data = $paramsutils->leerParametros();
  343. return $this->render("/index/politica-cookies.html", $data);
  344. }
  345. // - Página Política privacidad
  346. /**
  347. * @Route("/politica-privacidad", name="app_politicaprivacidad")
  348. */
  349. public function politicaprivacidad(): Response {
  350. $paramsutils = new paramsutils;
  351. $data = $paramsutils->leerParametros();
  352. return $this->render("/index/politica-privacidad.html", $data);
  353. }
  354. // - Página Política privacidad contacto
  355. /**
  356. * @Route("/politica-privacidad-contacto", name="app_politicaprivacidadcontacto")
  357. */
  358. public function politicaprivacidadcontacto(): Response {
  359. $paramsutils = new Paramsutils;
  360. $data = $paramsutils->leerParametros();
  361. return $this->render("/index/politica-privacidad-contacto.html", $data);
  362. }
  363. // // - Página Términos y condiciones
  364. // #[Route("/terminos", name: "app_terminos")]
  365. // public function terminos(): Response{
  366. // $utils = new Utils;
  367. // $data = $utils->leerParametros();
  368. // return $this->render("/terminos.html",$data);
  369. // }
  370. /* * ************************************************* Vista Estandar ************************************************** */
  371. // - Contacto · Action del formulario (Post)
  372. /**
  373. * @Route("/contacto", name="app_contacto")
  374. */
  375. public function contacto(ParameterBagInterface $parameters, MailerInterface $mailer, Request $request, Connection $connection): Response {
  376. $paramsutils = new Paramsutils;
  377. $utils = new Utils;
  378. $data = $paramsutils->leerParametros();
  379. $paramsconf = $parameters->get("PARAMSCONF");
  380. $dbconf = $parameters->get("DBCONF");
  381. $service = $data["default_service"];
  382. $city = $data["servicios"][$service]["default_city"];
  383. // Si la petición incluye el nombre del formulario se toma ese, si no, se usa formulario1.
  384. if ($request->get("formulario")) {
  385. $formularioUsado = $dbconf[$request->get("formulario")];
  386. $form = array();
  387. foreach($formularioUsado as $itemKey => $itemValor) {
  388. $form[$itemKey] = $request->get($itemKey);
  389. }
  390. } else
  391. $form = $dbconf["formulario1"];
  392. $result = $utils->manageContact($mailer, $parameters, $request, $data, $connection, $paramsconf, $dbconf, $service, $city, $form);
  393. /* $result es true si el contacto no es spam (sólo si está activado el recaptcha se valida esto), si se insertó la petición en BBDD,
  394. * se envió el email al administrador y el email al cliente confirmando su petición. Es false en cualquier otro caso.
  395. */
  396. if ($request->isXmlHttpRequest()) { //Si cargamos el formulario por Ajax
  397. if($result){
  398. return $this->render("index/index.html.twig", $data);
  399. } else {
  400. return $this->render("admin/bundles/TwigBundle/Exception/error404.html", $data);
  401. }
  402. } else { //Redirección a la página correspondiente de gracias o error.
  403. $route = $utils->getContactRoute($result, $paramsconf);
  404. if ($paramsconf["level"] == 1) {
  405. return $this->redirectToRoute($route, ["form"=> $form["formulario"],"city" => $city] );
  406. } else if ($paramsconf["level"] == 2) {
  407. return $this->redirectToRoute($route, ["form"=> $form["formulario"], "service" => $service, "city" => $city]);
  408. }else{
  409. return $this->redirectToRoute($route, ["form"=> $form["formulario"]]);
  410. }
  411. }
  412. }
  413. // - Contacto Enviado Nivel 0 · Recarga la página tras enviar el contacto con su confirmación
  414. /**
  415. * @Route("/contacto-enviado/{form}", name="app_contacto-enviado")
  416. */
  417. public function contactoenviado(ParameterBagInterface $parameters, $form): Response {
  418. $paramsutils = new Paramsutils;
  419. $utils = new Utils;
  420. $data = $paramsutils->leerParametros();
  421. $paramsconf = $parameters->get("PARAMSCONF");
  422. $service = $data["default_service"];
  423. $city = $data["servicios"][$service]["default_city"];
  424. $renderParamsArray = $utils->renderParamsArray($data, $paramsconf, $service, $city, $form, true);
  425. if ($renderParamsArray != null) {
  426. return $this->render("index/index.html.twig",
  427. $renderParamsArray
  428. );
  429. } else
  430. return $this->redirectToRoute("error404.html", $data);
  431. }
  432. // - Contacto no enviado Nivel 0 · Recarga la página tras enviar el contacto con el mensaje de error
  433. /**
  434. * @Route("/error-al-enviar-contacto/{form}", name="app_error-al-enviar-contacto")
  435. */
  436. public function errorcontacto(ParameterBagInterface $parameters, $form): Response {
  437. $paramsutils = new Paramsutils;
  438. $utils = new Utils;
  439. $data = $paramsutils->leerParametros();
  440. $paramsconf = $parameters->get("PARAMSCONF");
  441. $service = $data["default_service"];
  442. $city = $data["servicios"][$service]["default_city"];
  443. $renderParamsArray = $utils->renderParamsArray($data, $paramsconf, $service, $city, $form, false);
  444. if ($renderParamsArray != null) {
  445. return $this->render("index/index.html.twig", $renderParamsArray);
  446. } else {
  447. return $this->redirectToRoute("error404.html", $data);
  448. }
  449. }
  450. // - Nivel 1 · Incluye redirecciones en caso de otros niveles
  451. /**
  452. * @Route("/{param1}", name="app_nivel1")
  453. */
  454. public function nivel1(ParameterBagInterface $parameters, Request $request, $param1): Response {
  455. $paramsutils = new Paramsutils;
  456. $utils = new Utils;
  457. $data = $paramsutils->leerParametros();
  458. $paramsconf = $parameters->get("PARAMSCONF");
  459. $session = $request->getSession();
  460. $session->set("route", "/" . $param1);
  461. if ($paramsconf["level"] == 0) {
  462. // Si es nivel 0 redirigimos a la raíz.
  463. return $this->redirectToRoute("app_index");
  464. } else if ($paramsconf["level"] == 1) {
  465. // Si es Nivel 1, renderizamos la landing de nivel 1 tomando el parámetro como la ciudad.
  466. $service = strtolower($data["default_service"]);
  467. $city = strtolower($param1);
  468. $renderParamsArray = $utils->renderParamsArray($data, $paramsconf, $service, $city);
  469. } else if ($paramsconf["level"] == 2) {
  470. // Si es Nivel 2, entendemos que el parámetro es el servicio y redirigimos.
  471. if (array_key_exists($param1, $data["servicios"])){
  472. $service = strtolower($param1);
  473. $city = reset($data["ciudades"]);
  474. $city = strtolower($city["name"]);
  475. } elseif (array_key_exists($param1, $data["ciudades"])){
  476. $city = strtolower($param1);
  477. $service = reset($data["servicios"]);
  478. $service = strtolower($service["name"]);
  479. }else{
  480. $city = reset($data["ciudades"]);
  481. $city = strtolower($city["name"]);
  482. $service = reset($data["servicios"]);
  483. $service = strtolower($service["name"]);
  484. }
  485. return $this->redirectToRoute( "app_nivel2", ["service" => $service, "city" => $city]);
  486. }
  487. if ($renderParamsArray != null) {
  488. return $this->render("index/index.html.twig", $renderParamsArray);
  489. } else {
  490. return $this->render("bundles\TwigBundle\Exception\error404.html.twig");
  491. }
  492. }
  493. // - Contacto Enviado Nivel 1
  494. /**
  495. * @Route("/{city}/contacto-enviado/{form}", name="app_contacto-enviado1")
  496. */
  497. public function contactoenviado1(ParameterBagInterface $parameters, $city, $form): Response {
  498. $utils = new Utils;
  499. $paramsutils = new Paramsutils;
  500. $data = $paramsutils->leerParametros();
  501. $paramsconf = $parameters->get("PARAMSCONF");
  502. $service = $data["default_service"];
  503. $renderParamsArray = $utils->renderParamsArray($data, $paramsconf, $service, $city, $form, true);
  504. if ($renderParamsArray != null) {
  505. return $this->render("index/index.html.twig",
  506. $renderParamsArray
  507. );
  508. } else {
  509. return $this->render("bundles\TwigBundle\Exception\error404.html.twig");
  510. }
  511. }
  512. // - Contacto No Enviado Nivel 1
  513. /**
  514. * @Route("/{city}/error-al-enviar-contacto/{form}", name="app_error-al-enviar-contacto1")
  515. */
  516. public function errorcontacto1(ParameterBagInterface $parameters, $city, $form): Response {
  517. $utils = new Utils;
  518. $paramsutils = new Paramsutils;
  519. $data = $paramsutils->leerParametros();
  520. $paramsconf = $parameters->get("PARAMSCONF");
  521. $service = $data["default_service"];
  522. $renderParamsArray = $utils->renderParamsArray($data, $paramsconf, $service, $city, $form, true);
  523. if ($renderParamsArray != null) {
  524. return $this->render("index/index.html.twig",
  525. $renderParamsArray
  526. );
  527. } else {
  528. return $this->render("bundles\TwigBundle\Exception\error404.html.twig");
  529. }
  530. }
  531. // - Nivel 2 · Incluye redirecciones en caso de otros niveles
  532. /**
  533. * @Route("/{service}/{city}", name="app_nivel2")
  534. */
  535. public function nivel2(ParameterBagInterface $parameters, $service, $city): Response {
  536. $utils = new Utils;
  537. $paramsutils = new Paramsutils;
  538. $data = $paramsutils->leerParametros();
  539. $paramsconf = $parameters->get("PARAMSCONF");
  540. if ($paramsconf["level"] == 0) {
  541. // Nivel 0 - Redirigimos a la raíz
  542. return $this->redirectToRoute("app_index");
  543. } else if ($paramsconf["level"] == 1) {
  544. // Nivel 1 - Redirigimos a la ciudad entendiendo que es el segundo parámetro
  545. return $this->redirectToRoute("app_nivel1", ["param1" => $city] );
  546. } else if ($paramsconf["level"] == 2) {
  547. // Nivel 2 - Renderizamos una landing de nivel 2
  548. $renderParamsArray = $utils->renderParamsArray($data, $paramsconf, $service, $city);
  549. }
  550. if ($renderParamsArray != null) {
  551. return $this->render("index/index.html.twig",
  552. $renderParamsArray
  553. );
  554. } else {
  555. return $this->render("bundles\TwigBundle\Exception\error404.html.twig");
  556. }
  557. }
  558. // - Contacto Enviado Nivel 2
  559. /**
  560. * @Route("/{service}/{city}/contacto-enviado/{form}", name="app_contacto-enviado2")
  561. */
  562. public function contactoenviado2(ParameterBagInterface $parameters, $city, $form, $service): Response {
  563. $utils = new Utils;
  564. $paramsutils = new Paramsutils;
  565. $data = $paramsutils->leerParametros();
  566. $paramsconf = $parameters->get("PARAMSCONF");
  567. $renderParamsArray = $utils->renderParamsArray($data, $paramsconf, $service, $city, $form, true);
  568. if ($renderParamsArray != null) {
  569. return $this->render("index/index.html.twig",
  570. $renderParamsArray
  571. );
  572. } else {
  573. return $this->render("bundles\TwigBundle\Exception\error404.html.twig");
  574. }
  575. }
  576. // - Contacto No Enviado Nivel 2
  577. /**
  578. * @Route("/{service}/{city}/error-al-enviar-contacto/{form}", name="app_error-al-enviar-contacto2")
  579. */
  580. public function errorcontacto2(ParameterBagInterface $parameters, $city, $form, $service): Response {
  581. $utils = new Utils;
  582. $paramsutils = new Paramsutils;
  583. $data = $paramsutils->leerParametros();
  584. $paramsconf = $parameters->get("PARAMSCONF");
  585. $renderParamsArray = $utils->renderParamsArray($data, $paramsconf, $service, $city, $form, false);
  586. if ($renderParamsArray != null) {
  587. return $this->render("index/index.html.twig",
  588. $renderParamsArray
  589. );
  590. } else {
  591. return $this->render("bundles\TwigBundle\Exception\error404.html.twig");
  592. }
  593. }
  594. }