src/Controller/MainController.php line 163

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Service\Utilities;
  4. use App\Entity\Main\ApiAgency;
  5. use App\Entity\Main\ApiAgencyNewsletter;
  6. use App\Entity\Main\ApiProperties;
  7. use App\Entity\Main\ApiAgencyLang;
  8. use App\Entity\Main\ApiMenu;
  9. use App\Entity\Main\ApiPages;
  10. use App\Entity\Main\Textos;
  11. use App\Entity\Main\ApiOrderPages;
  12. use App\Entity\Main\ApiAgencyDescription;
  13. use App\Entity\Main\TipusOperacio;
  14. use App\Entity\Main\ApiPropertiesSupertype;
  15. use App\Entity\Main\ApiProvinces;
  16. use App\Entity\Main\ApiLocations;
  17. use App\Entity\Main\ApiLocationsGps;
  18. use App\Entity\Main\ApiZones;
  19. use App\Entity\Main\ApiFeatures;
  20. use App\Entity\Main\ApiPropertiesCertificatesImages;
  21. use App\Entity\Main\ApiPropertiesSubtypes;
  22. use App\Entity\Main\ApiPropertiesSupertypeI18n;
  23. use App\Entity\Main\ApiPropertiesTypes;
  24. use App\Entity\Main\ApiPropertiesFeatures;
  25. use App\Entity\Main\ApiPropertiesI18n;
  26. use App\Entity\Main\ApiPropertiesTypesI18n;
  27. use App\Entity\Main\ApiAgencyHomeAgent;
  28. use App\Entity\Main\ApiAgencyHomeImage;
  29. use App\Entity\Main\ApiAgencyHomeOnepage;
  30. use App\Entity\Main\ApiAgencySlider;
  31. use App\Entity\Main\ApiAgencyPages;
  32. use App\Entity\Main\Tracking;
  33. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  34. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  35. use Symfony\Component\HttpFoundation\RedirectResponse;
  36. use Symfony\Component\HttpFoundation\Response;
  37. use Symfony\Component\HttpFoundation\Request;
  38. use Symfony\Component\HttpFoundation\JsonResponse;
  39. use Symfony\Component\Routing\Annotation\Route;
  40. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  41. use Doctrine\Persistence\ManagerRegistry;
  42. use PHPMailer\PHPMailer\PHPMailer;
  43. use App\Controller\ModulesController;
  44. use App\Entity\Admin\AgencyLicense;
  45. use App\Entity\Main\ApiPreferences;
  46. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  47. use Symfony\Component\Security\Core\Security;
  48. class MainController extends AbstractController implements PagesMiddlewareController
  49. {
  50.     private $array_links;
  51.     private $array_pages = [
  52.         "privacidad" => ['privacidad''Política de privacidad''<div class="container"><div class="module-front sections section-one" data-id="ik1tcbjp2g"><div class="row"><div class="col-12"><div class="row"><div class="col-12"><div class="section" data-id="ik1tcbjp2g"><div class="module-front section-title" data-id="1gtozw8mvxx"><div class="row"><div class="col-12"><div class="content-text"><h1>Política de privacidad</h1></div></div></div></div><div class="module-front section-text" data-id="px8y70jmf7r"><div class="row"><div class="col-12"><div class="content-text"><h1 style="margin-bottom: 24px; font-size: 30px; font-family: Roboto, sans-serif; line-height: 38px; color: rgb(0, 0, 0); text-transform: none; text-align: start;">Heading 9</h1><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ut lacinia ex. Curabitur iaculis elit lorem, vitae fringilla turpis ultricies vel. Mauris pretium fermentum est, eget tincidunt massa dignissim sed. Donec vulputate a augue at tincidunt. Fusce scelerisque quam arcu, vitae dictum leo volutpat tempor. Curabitur commodo vulputate ex id posuere. Phasellus at condimentum purus. Praesent et dictum ante. Proin sed ipsum non nisl pretium tempus quis et augue. Morbi ullamcorper, dolor eu accumsan aliquet, nibh nisl molestie odio, at lobortis sapien nisl interdum arcu.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Vestibulum vitae varius arcu. Nam mattis est ex, eu iaculis sem euismod nec. Nulla facilisis est vitae enim dictum posuere. Curabitur est tellus, consectetur vitae tellus eget, scelerisque convallis ipsum. Ut id nulla mauris. Proin placerat, mi eget cursus mollis, nulla ipsum venenatis nulla, a varius urna ante eget felis. Nullam tincidunt urna eu cursus sagittis. Aenean id sagittis enim. Aliquam at urna urna. Pellentesque dapibus velit ut ipsum semper lacinia. Etiam sit amet imperdiet diam, eget congue mi. Sed sagittis tortor dolor, a ultrices risus interdum ac. Pellentesque ac arcu malesuada, auctor est vitae, posuere nunc. Curabitur finibus vehicula turpis sit amet commodo. Sed pulvinar ipsum a tellus faucibus, nec mattis orci tempus. Sed fringilla eros efficitur, auctor tortor vel, facilisis justo.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Nulla vestibulum tempus odio, sed pulvinar odio sodales ut. Mauris eu ante nulla. Donec tortor ante, sodales sed nibh a, accumsan vestibulum nulla. Cras ut accumsan nibh, ut mollis dolor. Integer vitae sapien eget massa ullamcorper sodales eu et augue. Etiam sagittis rutrum sapien in feugiat. Nunc vitae mi urna. Vestibulum consectetur ornare dolor.</p><h2 style="margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 32px; color: rgb(0, 0, 0); font-size: 24px; text-transform: none; text-align: start;">Heading 2</h2><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Proin vitae molestie nibh, id varius purus. Ut ultricies, dui non pellentesque tempus, dolor lacus facilisis ex, in sodales quam lectus nec mi. Cras interdum massa eu libero efficitur, nec pellentesque ante laoreet. Praesent tristique pellentesque ligula vitae imperdiet. Mauris elementum augue tortor, vitae rhoncus justo ornare non. Pellentesque pharetra quam ac nibh iaculis, eu tincidunt nunc sollicitudin. Nunc dictum libero in feugiat feugiat. Phasellus semper augue et libero gravida, vitae tempus orci porttitor. Nunc lectus justo, condimentum eu libero semper, dictum vestibulum felis. Donec et tellus sed augue consectetur ultricies et ut felis. Sed sem odio, volutpat vitae neque ac, maximus posuere orci. Cras eu ultrices augue. Quisque vel felis eget orci tincidunt auctor volutpat in quam. Aliquam erat volutpat. In elementum quam non nunc accumsan, ut suscipit nibh rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Donec a nibh blandit, porttitor purus id, ornare metus. Donec quis fermentum nunc. Vivamus eget augue sem. Nam sodales eros augue, id sollicitudin urna commodo at. Aenean mauris risus, hendrerit nec metus quis, pharetra accumsan nunc. Suspendisse et luctus lectus. Duis ac condimentum sem, vitae laoreet justo. Vestibulum commodo, massa non dapibus interdum, nulla dui maximus sapien, semper rutrum mi tortor eu eros. Fusce vehicula enim vitae consectetur ultricies. Nunc tincidunt at ipsum eu sollicitudin. Nam et ornare est. Proin cursus metus quam, non faucibus dolor accumsan vitae. Mauris ipsum erat, sodales sit amet neque non, tristique cursus nisl. Sed nisi metus, efficitur eget accumsan semper, scelerisque eu ante.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Vivamus auctor mauris risus, sed viverra neque pellentesque ac. Phasellus vestibulum lacus nisl, a semper sem laoreet quis. Fusce nunc arcu, congue vel sodales eu, lacinia at erat. Phasellus finibus dolor lectus, vel tincidunt leo efficitur at. Nullam ut tellus in turpis blandit varius. Sed ut elit nec lectus pretium luctus vitae sit amet est. Etiam in maximus urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p><h3 style="margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 28px; color: rgb(0, 0, 0); font-size: 20px; text-transform: none; text-align: start;">Heading 3</h3><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Curabitur tristique nec ex eget posuere. Sed elit lacus, pulvinar eu leo vel, sodales eleifend diam. Nunc tincidunt libero id tellus luctus efficitur. Sed sodales dolor justo, eu ultrices ipsum suscipit non. Nullam eu dolor vitae felis pellentesque finibus. Morbi id imperdiet nunc, non commodo dolor. Quisque non tristique lacus. Ut faucibus, magna in dapibus vehicula, lectus mauris pellentesque metus, eu sagittis mi enim quis massa. Donec nunc urna, pulvinar a vestibulum nec, consequat sit amet urna. Duis augue nisi, rhoncus sed consequat eu, lobortis ut dui. Vivamus placerat auctor arcu eu tincidunt. Proin vel dolor sed lorem feugiat molestie nec et justo.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Donec mollis tortor ut est dapibus fermentum. Vestibulum convallis nisl et ipsum sagittis, vel finibus dui lacinia. Quisque ac mi et orci congue commodo in in erat. Suspendisse vulputate tristique neque, eget sollicitudin purus commodo id. Donec vel auctor nibh. Duis interdum lorem purus, eget viverra ipsum congue in. Aliquam erat volutpat. Sed bibendum venenatis pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et ultricies lectus. Praesent eu felis rutrum, placerat dolor eget, congue urna. Maecenas cursus mattis purus eu tincidunt. Cras pretium elementum elit a tempus.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Integer vitae libero eu eros gravida condimentum. Nullam tincidunt eu lectus in pharetra. Aenean consectetur nisi quis nulla condimentum, eget tristique ex pretium. Nunc sit amet convallis lorem. Maecenas eget est enim. Sed scelerisque posuere lacus et consequat. Ut ultrices ultrices maximus. Donec laoreet sagittis suscipit. Fusce vel lectus nibh. Nam vitae tristique ante.</p><p style="margin-bottom: 0px; text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Sed sodales ante ut lobortis interdum. Aenean at risus a est euismod feugiat. Pellentesque magna augue, sodales id cursus eu, varius eget massa. Mauris eros nulla, iaculis ac tellus ut, sagittis eleifend nisl. Aliquam ornare magna tincidunt urna dictum, vitae dignissim lectus malesuada. Nam dignissim lacinia orci eu blandit. Etiam in blandit lacus. Nunc quis aliquam felis. Proin id ligula bibendum, convallis nulla eu, porttitor massa. Mauris feugiat, magna sit amet iaculis tempor, erat dui suscipit nunc, ut pretium velit dui nec ante. Pellentesque feugiat dapibus neque et condimentum. Suspendisse eget eleifend massa. Donec cursus odio pharetra felis dignissim, vitae euismod ligula congue. Morbi sapien erat, convallis a magna id, facilisis congue justo. Donec nec mauris nulla. Sed dictum rhoncus nulla, in imperdiet enim dignissim non.</p></div></div></div></div></div></div></div></div></div></div></div>'"[{\"id\":\"sectionOne\",\"name\":\"1 columna\",\"className\":\"SectionOne\",\"img\":\"\/plugins\/sectionOne\/img\/column-1.png\",\"hash\":[\"ik1tcbjp2g\"],\"parent\":null,\"type\":\"droppable\",\"classType\":\"section\",\"value\":\"\",\"limit\":-1,\"order\":0},{\"id\":\"title\",\"name\":\"T\u00edtulo principal\",\"className\":\"Title\",\"icon\":\"fas fa-h1\",\"hash\":[\"1gtozw8mvxx\"],\"parent\":\"ik1tcbjp2g\",\"type\":\"draggable\",\"classType\":\"section-title\",\"value\":\"<h1>Pol\u00edtica de privacidad<\/h1>\",\"limit\":1,\"order\":50},{\"id\":\"text\",\"name\":\"Texto\",\"className\":\"Text\",\"icon\":\"fas fa-text\",\"hash\":[\"px8y70jmf7r\"],\"parent\":\"ik1tcbjp2g\",\"type\":\"draggable\",\"classType\":\"section-text\",\"value\":\"<h1 style=\\\"margin-bottom: 24px; font-size: 30px; font-family: Roboto, sans-serif; line-height: 38px; color: rgb(0, 0, 0); text-transform: none; text-align: start;\\\">Heading 9<\/h1><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ut lacinia ex. Curabitur iaculis elit lorem, vitae fringilla turpis ultricies vel. Mauris pretium fermentum est, eget tincidunt massa dignissim sed. Donec vulputate a augue at tincidunt. Fusce scelerisque quam arcu, vitae dictum leo volutpat tempor. Curabitur commodo vulputate ex id posuere. Phasellus at condimentum purus. Praesent et dictum ante. Proin sed ipsum non nisl pretium tempus quis et augue. Morbi ullamcorper, dolor eu accumsan aliquet, nibh nisl molestie odio, at lobortis sapien nisl interdum arcu.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Vestibulum vitae varius arcu. Nam mattis est ex, eu iaculis sem euismod nec. Nulla facilisis est vitae enim dictum posuere. Curabitur est tellus, consectetur vitae tellus eget, scelerisque convallis ipsum. Ut id nulla mauris. Proin placerat, mi eget cursus mollis, nulla ipsum venenatis nulla, a varius urna ante eget felis. Nullam tincidunt urna eu cursus sagittis. Aenean id sagittis enim. Aliquam at urna urna. Pellentesque dapibus velit ut ipsum semper lacinia. Etiam sit amet imperdiet diam, eget congue mi. Sed sagittis tortor dolor, a ultrices risus interdum ac. Pellentesque ac arcu malesuada, auctor est vitae, posuere nunc. Curabitur finibus vehicula turpis sit amet commodo. Sed pulvinar ipsum a tellus faucibus, nec mattis orci tempus. Sed fringilla eros efficitur, auctor tortor vel, facilisis justo.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Nulla vestibulum tempus odio, sed pulvinar odio sodales ut. Mauris eu ante nulla. Donec tortor ante, sodales sed nibh a, accumsan vestibulum nulla. Cras ut accumsan nibh, ut mollis dolor. Integer vitae sapien eget massa ullamcorper sodales eu et augue. Etiam sagittis rutrum sapien in feugiat. Nunc vitae mi urna. Vestibulum consectetur ornare dolor.<\/p><h2 style=\\\"margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 32px; color: rgb(0, 0, 0); font-size: 24px; text-transform: none; text-align: start;\\\">Heading 2<\/h2><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Proin vitae molestie nibh, id varius purus. Ut ultricies, dui non pellentesque tempus, dolor lacus facilisis ex, in sodales quam lectus nec mi. Cras interdum massa eu libero efficitur, nec pellentesque ante laoreet. Praesent tristique pellentesque ligula vitae imperdiet. Mauris elementum augue tortor, vitae rhoncus justo ornare non. Pellentesque pharetra quam ac nibh iaculis, eu tincidunt nunc sollicitudin. Nunc dictum libero in feugiat feugiat. Phasellus semper augue et libero gravida, vitae tempus orci porttitor. Nunc lectus justo, condimentum eu libero semper, dictum vestibulum felis. Donec et tellus sed augue consectetur ultricies et ut felis. Sed sem odio, volutpat vitae neque ac, maximus posuere orci. Cras eu ultrices augue. Quisque vel felis eget orci tincidunt auctor volutpat in quam. Aliquam erat volutpat. In elementum quam non nunc accumsan, ut suscipit nibh rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Donec a nibh blandit, porttitor purus id, ornare metus. Donec quis fermentum nunc. Vivamus eget augue sem. Nam sodales eros augue, id sollicitudin urna commodo at. Aenean mauris risus, hendrerit nec metus quis, pharetra accumsan nunc. Suspendisse et luctus lectus. Duis ac condimentum sem, vitae laoreet justo. Vestibulum commodo, massa non dapibus interdum, nulla dui maximus sapien, semper rutrum mi tortor eu eros. Fusce vehicula enim vitae consectetur ultricies. Nunc tincidunt at ipsum eu sollicitudin. Nam et ornare est. Proin cursus metus quam, non faucibus dolor accumsan vitae. Mauris ipsum erat, sodales sit amet neque non, tristique cursus nisl. Sed nisi metus, efficitur eget accumsan semper, scelerisque eu ante.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Vivamus auctor mauris risus, sed viverra neque pellentesque ac. Phasellus vestibulum lacus nisl, a semper sem laoreet quis. Fusce nunc arcu, congue vel sodales eu, lacinia at erat. Phasellus finibus dolor lectus, vel tincidunt leo efficitur at. Nullam ut tellus in turpis blandit varius. Sed ut elit nec lectus pretium luctus vitae sit amet est. Etiam in maximus urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<\/p><h3 style=\\\"margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 28px; color: rgb(0, 0, 0); font-size: 20px; text-transform: none; text-align: start;\\\">Heading 3<\/h3><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Curabitur tristique nec ex eget posuere. Sed elit lacus, pulvinar eu leo vel, sodales eleifend diam. Nunc tincidunt libero id tellus luctus efficitur. Sed sodales dolor justo, eu ultrices ipsum suscipit non. Nullam eu dolor vitae felis pellentesque finibus. Morbi id imperdiet nunc, non commodo dolor. Quisque non tristique lacus. Ut faucibus, magna in dapibus vehicula, lectus mauris pellentesque metus, eu sagittis mi enim quis massa. Donec nunc urna, pulvinar a vestibulum nec, consequat sit amet urna. Duis augue nisi, rhoncus sed consequat eu, lobortis ut dui. Vivamus placerat auctor arcu eu tincidunt. Proin vel dolor sed lorem feugiat molestie nec et justo.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Donec mollis tortor ut est dapibus fermentum. Vestibulum convallis nisl et ipsum sagittis, vel finibus dui lacinia. Quisque ac mi et orci congue commodo in in erat. Suspendisse vulputate tristique neque, eget sollicitudin purus commodo id. Donec vel auctor nibh. Duis interdum lorem purus, eget viverra ipsum congue in. Aliquam erat volutpat. Sed bibendum venenatis pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et ultricies lectus. Praesent eu felis rutrum, placerat dolor eget, congue urna. Maecenas cursus mattis purus eu tincidunt. Cras pretium elementum elit a tempus.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Integer vitae libero eu eros gravida condimentum. Nullam tincidunt eu lectus in pharetra. Aenean consectetur nisi quis nulla condimentum, eget tristique ex pretium. Nunc sit amet convallis lorem. Maecenas eget est enim. Sed scelerisque posuere lacus et consequat. Ut ultrices ultrices maximus. Donec laoreet sagittis suscipit. Fusce vel lectus nibh. Nam vitae tristique ante.<\/p><p style=\\\"margin-bottom: 0px; text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Sed sodales ante ut lobortis interdum. Aenean at risus a est euismod feugiat. Pellentesque magna augue, sodales id cursus eu, varius eget massa. Mauris eros nulla, iaculis ac tellus ut, sagittis eleifend nisl. Aliquam ornare magna tincidunt urna dictum, vitae dignissim lectus malesuada. Nam dignissim lacinia orci eu blandit. Etiam in blandit lacus. Nunc quis aliquam felis. Proin id ligula bibendum, convallis nulla eu, porttitor massa. Mauris feugiat, magna sit amet iaculis tempor, erat dui suscipit nunc, ut pretium velit dui nec ante. Pellentesque feugiat dapibus neque et condimentum. Suspendisse eget eleifend massa. Donec cursus odio pharetra felis dignissim, vitae euismod ligula congue. Morbi sapien erat, convallis a magna id, facilisis congue justo. Donec nec mauris nulla. Sed dictum rhoncus nulla, in imperdiet enim dignissim non.<\/p>\",\"limit\":-1,\"order\":40}]"],
  53.         "empresa" => ['empresa''Nosotros''<div class="container"><div class="module-front sections section-one" data-id="ik1tcbjp2g"><div class="row"><div class="col-12"><div class="row"><div class="col-12"><div class="section" data-id="ik1tcbjp2g"><div class="module-front section-title" data-id="1gtozw8mvxx"><div class="row"><div class="col-12"><div class="content-text"><h1>Nosotros</h1></div></div></div></div><div class="module-front section-text" data-id="px8y70jmf7r"><div class="row"><div class="col-12"><div class="content-text"><h1 style="margin-bottom: 24px; font-size: 30px; font-family: Roboto, sans-serif; line-height: 38px; color: rgb(0, 0, 0); text-transform: none; text-align: start;">Heading 9</h1><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ut lacinia ex. Curabitur iaculis elit lorem, vitae fringilla turpis ultricies vel. Mauris pretium fermentum est, eget tincidunt massa dignissim sed. Donec vulputate a augue at tincidunt. Fusce scelerisque quam arcu, vitae dictum leo volutpat tempor. Curabitur commodo vulputate ex id posuere. Phasellus at condimentum purus. Praesent et dictum ante. Proin sed ipsum non nisl pretium tempus quis et augue. Morbi ullamcorper, dolor eu accumsan aliquet, nibh nisl molestie odio, at lobortis sapien nisl interdum arcu.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Vestibulum vitae varius arcu. Nam mattis est ex, eu iaculis sem euismod nec. Nulla facilisis est vitae enim dictum posuere. Curabitur est tellus, consectetur vitae tellus eget, scelerisque convallis ipsum. Ut id nulla mauris. Proin placerat, mi eget cursus mollis, nulla ipsum venenatis nulla, a varius urna ante eget felis. Nullam tincidunt urna eu cursus sagittis. Aenean id sagittis enim. Aliquam at urna urna. Pellentesque dapibus velit ut ipsum semper lacinia. Etiam sit amet imperdiet diam, eget congue mi. Sed sagittis tortor dolor, a ultrices risus interdum ac. Pellentesque ac arcu malesuada, auctor est vitae, posuere nunc. Curabitur finibus vehicula turpis sit amet commodo. Sed pulvinar ipsum a tellus faucibus, nec mattis orci tempus. Sed fringilla eros efficitur, auctor tortor vel, facilisis justo.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Nulla vestibulum tempus odio, sed pulvinar odio sodales ut. Mauris eu ante nulla. Donec tortor ante, sodales sed nibh a, accumsan vestibulum nulla. Cras ut accumsan nibh, ut mollis dolor. Integer vitae sapien eget massa ullamcorper sodales eu et augue. Etiam sagittis rutrum sapien in feugiat. Nunc vitae mi urna. Vestibulum consectetur ornare dolor.</p><h2 style="margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 32px; color: rgb(0, 0, 0); font-size: 24px; text-transform: none; text-align: start;">Heading 2</h2><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Proin vitae molestie nibh, id varius purus. Ut ultricies, dui non pellentesque tempus, dolor lacus facilisis ex, in sodales quam lectus nec mi. Cras interdum massa eu libero efficitur, nec pellentesque ante laoreet. Praesent tristique pellentesque ligula vitae imperdiet. Mauris elementum augue tortor, vitae rhoncus justo ornare non. Pellentesque pharetra quam ac nibh iaculis, eu tincidunt nunc sollicitudin. Nunc dictum libero in feugiat feugiat. Phasellus semper augue et libero gravida, vitae tempus orci porttitor. Nunc lectus justo, condimentum eu libero semper, dictum vestibulum felis. Donec et tellus sed augue consectetur ultricies et ut felis. Sed sem odio, volutpat vitae neque ac, maximus posuere orci. Cras eu ultrices augue. Quisque vel felis eget orci tincidunt auctor volutpat in quam. Aliquam erat volutpat. In elementum quam non nunc accumsan, ut suscipit nibh rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Donec a nibh blandit, porttitor purus id, ornare metus. Donec quis fermentum nunc. Vivamus eget augue sem. Nam sodales eros augue, id sollicitudin urna commodo at. Aenean mauris risus, hendrerit nec metus quis, pharetra accumsan nunc. Suspendisse et luctus lectus. Duis ac condimentum sem, vitae laoreet justo. Vestibulum commodo, massa non dapibus interdum, nulla dui maximus sapien, semper rutrum mi tortor eu eros. Fusce vehicula enim vitae consectetur ultricies. Nunc tincidunt at ipsum eu sollicitudin. Nam et ornare est. Proin cursus metus quam, non faucibus dolor accumsan vitae. Mauris ipsum erat, sodales sit amet neque non, tristique cursus nisl. Sed nisi metus, efficitur eget accumsan semper, scelerisque eu ante.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Vivamus auctor mauris risus, sed viverra neque pellentesque ac. Phasellus vestibulum lacus nisl, a semper sem laoreet quis. Fusce nunc arcu, congue vel sodales eu, lacinia at erat. Phasellus finibus dolor lectus, vel tincidunt leo efficitur at. Nullam ut tellus in turpis blandit varius. Sed ut elit nec lectus pretium luctus vitae sit amet est. Etiam in maximus urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p><h3 style="margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 28px; color: rgb(0, 0, 0); font-size: 20px; text-transform: none; text-align: start;">Heading 3</h3><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Curabitur tristique nec ex eget posuere. Sed elit lacus, pulvinar eu leo vel, sodales eleifend diam. Nunc tincidunt libero id tellus luctus efficitur. Sed sodales dolor justo, eu ultrices ipsum suscipit non. Nullam eu dolor vitae felis pellentesque finibus. Morbi id imperdiet nunc, non commodo dolor. Quisque non tristique lacus. Ut faucibus, magna in dapibus vehicula, lectus mauris pellentesque metus, eu sagittis mi enim quis massa. Donec nunc urna, pulvinar a vestibulum nec, consequat sit amet urna. Duis augue nisi, rhoncus sed consequat eu, lobortis ut dui. Vivamus placerat auctor arcu eu tincidunt. Proin vel dolor sed lorem feugiat molestie nec et justo.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Donec mollis tortor ut est dapibus fermentum. Vestibulum convallis nisl et ipsum sagittis, vel finibus dui lacinia. Quisque ac mi et orci congue commodo in in erat. Suspendisse vulputate tristique neque, eget sollicitudin purus commodo id. Donec vel auctor nibh. Duis interdum lorem purus, eget viverra ipsum congue in. Aliquam erat volutpat. Sed bibendum venenatis pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et ultricies lectus. Praesent eu felis rutrum, placerat dolor eget, congue urna. Maecenas cursus mattis purus eu tincidunt. Cras pretium elementum elit a tempus.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Integer vitae libero eu eros gravida condimentum. Nullam tincidunt eu lectus in pharetra. Aenean consectetur nisi quis nulla condimentum, eget tristique ex pretium. Nunc sit amet convallis lorem. Maecenas eget est enim. Sed scelerisque posuere lacus et consequat. Ut ultrices ultrices maximus. Donec laoreet sagittis suscipit. Fusce vel lectus nibh. Nam vitae tristique ante.</p><p style="margin-bottom: 0px; text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Sed sodales ante ut lobortis interdum. Aenean at risus a est euismod feugiat. Pellentesque magna augue, sodales id cursus eu, varius eget massa. Mauris eros nulla, iaculis ac tellus ut, sagittis eleifend nisl. Aliquam ornare magna tincidunt urna dictum, vitae dignissim lectus malesuada. Nam dignissim lacinia orci eu blandit. Etiam in blandit lacus. Nunc quis aliquam felis. Proin id ligula bibendum, convallis nulla eu, porttitor massa. Mauris feugiat, magna sit amet iaculis tempor, erat dui suscipit nunc, ut pretium velit dui nec ante. Pellentesque feugiat dapibus neque et condimentum. Suspendisse eget eleifend massa. Donec cursus odio pharetra felis dignissim, vitae euismod ligula congue. Morbi sapien erat, convallis a magna id, facilisis congue justo. Donec nec mauris nulla. Sed dictum rhoncus nulla, in imperdiet enim dignissim non.</p></div></div></div></div></div></div></div></div></div></div></div>'"[{\"id\":\"sectionOne\",\"name\":\"1 columna\",\"className\":\"SectionOne\",\"img\":\"\/plugins\/sectionOne\/img\/column-1.png\",\"hash\":[\"ik1tcbjp2g\"],\"parent\":null,\"type\":\"droppable\",\"classType\":\"section\",\"value\":\"\",\"limit\":-1,\"order\":0},{\"id\":\"title\",\"name\":\"T\u00edtulo principal\",\"className\":\"Title\",\"icon\":\"fas fa-h1\",\"hash\":[\"1gtozw8mvxx\"],\"parent\":\"ik1tcbjp2g\",\"type\":\"draggable\",\"classType\":\"section-title\",\"value\":\"<h1>Nosotros<\/h1>\",\"limit\":1,\"order\":50},{\"id\":\"text\",\"name\":\"Texto\",\"className\":\"Text\",\"icon\":\"fas fa-text\",\"hash\":[\"px8y70jmf7r\"],\"parent\":\"ik1tcbjp2g\",\"type\":\"draggable\",\"classType\":\"section-text\",\"value\":\"<h1 style=\\\"margin-bottom: 24px; font-size: 30px; font-family: Roboto, sans-serif; line-height: 38px; color: rgb(0, 0, 0); text-transform: none; text-align: start;\\\">Heading 9<\/h1><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ut lacinia ex. Curabitur iaculis elit lorem, vitae fringilla turpis ultricies vel. Mauris pretium fermentum est, eget tincidunt massa dignissim sed. Donec vulputate a augue at tincidunt. Fusce scelerisque quam arcu, vitae dictum leo volutpat tempor. Curabitur commodo vulputate ex id posuere. Phasellus at condimentum purus. Praesent et dictum ante. Proin sed ipsum non nisl pretium tempus quis et augue. Morbi ullamcorper, dolor eu accumsan aliquet, nibh nisl molestie odio, at lobortis sapien nisl interdum arcu.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Vestibulum vitae varius arcu. Nam mattis est ex, eu iaculis sem euismod nec. Nulla facilisis est vitae enim dictum posuere. Curabitur est tellus, consectetur vitae tellus eget, scelerisque convallis ipsum. Ut id nulla mauris. Proin placerat, mi eget cursus mollis, nulla ipsum venenatis nulla, a varius urna ante eget felis. Nullam tincidunt urna eu cursus sagittis. Aenean id sagittis enim. Aliquam at urna urna. Pellentesque dapibus velit ut ipsum semper lacinia. Etiam sit amet imperdiet diam, eget congue mi. Sed sagittis tortor dolor, a ultrices risus interdum ac. Pellentesque ac arcu malesuada, auctor est vitae, posuere nunc. Curabitur finibus vehicula turpis sit amet commodo. Sed pulvinar ipsum a tellus faucibus, nec mattis orci tempus. Sed fringilla eros efficitur, auctor tortor vel, facilisis justo.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Nulla vestibulum tempus odio, sed pulvinar odio sodales ut. Mauris eu ante nulla. Donec tortor ante, sodales sed nibh a, accumsan vestibulum nulla. Cras ut accumsan nibh, ut mollis dolor. Integer vitae sapien eget massa ullamcorper sodales eu et augue. Etiam sagittis rutrum sapien in feugiat. Nunc vitae mi urna. Vestibulum consectetur ornare dolor.<\/p><h2 style=\\\"margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 32px; color: rgb(0, 0, 0); font-size: 24px; text-transform: none; text-align: start;\\\">Heading 2<\/h2><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Proin vitae molestie nibh, id varius purus. Ut ultricies, dui non pellentesque tempus, dolor lacus facilisis ex, in sodales quam lectus nec mi. Cras interdum massa eu libero efficitur, nec pellentesque ante laoreet. Praesent tristique pellentesque ligula vitae imperdiet. Mauris elementum augue tortor, vitae rhoncus justo ornare non. Pellentesque pharetra quam ac nibh iaculis, eu tincidunt nunc sollicitudin. Nunc dictum libero in feugiat feugiat. Phasellus semper augue et libero gravida, vitae tempus orci porttitor. Nunc lectus justo, condimentum eu libero semper, dictum vestibulum felis. Donec et tellus sed augue consectetur ultricies et ut felis. Sed sem odio, volutpat vitae neque ac, maximus posuere orci. Cras eu ultrices augue. Quisque vel felis eget orci tincidunt auctor volutpat in quam. Aliquam erat volutpat. In elementum quam non nunc accumsan, ut suscipit nibh rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Donec a nibh blandit, porttitor purus id, ornare metus. Donec quis fermentum nunc. Vivamus eget augue sem. Nam sodales eros augue, id sollicitudin urna commodo at. Aenean mauris risus, hendrerit nec metus quis, pharetra accumsan nunc. Suspendisse et luctus lectus. Duis ac condimentum sem, vitae laoreet justo. Vestibulum commodo, massa non dapibus interdum, nulla dui maximus sapien, semper rutrum mi tortor eu eros. Fusce vehicula enim vitae consectetur ultricies. Nunc tincidunt at ipsum eu sollicitudin. Nam et ornare est. Proin cursus metus quam, non faucibus dolor accumsan vitae. Mauris ipsum erat, sodales sit amet neque non, tristique cursus nisl. Sed nisi metus, efficitur eget accumsan semper, scelerisque eu ante.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Vivamus auctor mauris risus, sed viverra neque pellentesque ac. Phasellus vestibulum lacus nisl, a semper sem laoreet quis. Fusce nunc arcu, congue vel sodales eu, lacinia at erat. Phasellus finibus dolor lectus, vel tincidunt leo efficitur at. Nullam ut tellus in turpis blandit varius. Sed ut elit nec lectus pretium luctus vitae sit amet est. Etiam in maximus urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<\/p><h3 style=\\\"margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 28px; color: rgb(0, 0, 0); font-size: 20px; text-transform: none; text-align: start;\\\">Heading 3<\/h3><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Curabitur tristique nec ex eget posuere. Sed elit lacus, pulvinar eu leo vel, sodales eleifend diam. Nunc tincidunt libero id tellus luctus efficitur. Sed sodales dolor justo, eu ultrices ipsum suscipit non. Nullam eu dolor vitae felis pellentesque finibus. Morbi id imperdiet nunc, non commodo dolor. Quisque non tristique lacus. Ut faucibus, magna in dapibus vehicula, lectus mauris pellentesque metus, eu sagittis mi enim quis massa. Donec nunc urna, pulvinar a vestibulum nec, consequat sit amet urna. Duis augue nisi, rhoncus sed consequat eu, lobortis ut dui. Vivamus placerat auctor arcu eu tincidunt. Proin vel dolor sed lorem feugiat molestie nec et justo.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Donec mollis tortor ut est dapibus fermentum. Vestibulum convallis nisl et ipsum sagittis, vel finibus dui lacinia. Quisque ac mi et orci congue commodo in in erat. Suspendisse vulputate tristique neque, eget sollicitudin purus commodo id. Donec vel auctor nibh. Duis interdum lorem purus, eget viverra ipsum congue in. Aliquam erat volutpat. Sed bibendum venenatis pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et ultricies lectus. Praesent eu felis rutrum, placerat dolor eget, congue urna. Maecenas cursus mattis purus eu tincidunt. Cras pretium elementum elit a tempus.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Integer vitae libero eu eros gravida condimentum. Nullam tincidunt eu lectus in pharetra. Aenean consectetur nisi quis nulla condimentum, eget tristique ex pretium. Nunc sit amet convallis lorem. Maecenas eget est enim. Sed scelerisque posuere lacus et consequat. Ut ultrices ultrices maximus. Donec laoreet sagittis suscipit. Fusce vel lectus nibh. Nam vitae tristique ante.<\/p><p style=\\\"margin-bottom: 0px; text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Sed sodales ante ut lobortis interdum. Aenean at risus a est euismod feugiat. Pellentesque magna augue, sodales id cursus eu, varius eget massa. Mauris eros nulla, iaculis ac tellus ut, sagittis eleifend nisl. Aliquam ornare magna tincidunt urna dictum, vitae dignissim lectus malesuada. Nam dignissim lacinia orci eu blandit. Etiam in blandit lacus. Nunc quis aliquam felis. Proin id ligula bibendum, convallis nulla eu, porttitor massa. Mauris feugiat, magna sit amet iaculis tempor, erat dui suscipit nunc, ut pretium velit dui nec ante. Pellentesque feugiat dapibus neque et condimentum. Suspendisse eget eleifend massa. Donec cursus odio pharetra felis dignissim, vitae euismod ligula congue. Morbi sapien erat, convallis a magna id, facilisis congue justo. Donec nec mauris nulla. Sed dictum rhoncus nulla, in imperdiet enim dignissim non.<\/p>\",\"limit\":-1,\"order\":40}]"],
  54.         "contacto" => ['contacto''Contacto''<div class="container"><div class="module-front sections section-one" data-id="mby6fc2ppep"><div class="row"><div class="col-12"><div class="row"><div class="col-12"><div class="section" data-id="mby6fc2ppep"><div class="module-front section-formPlugin" data-id="2okceyx980h"><div class="row"><div class="col-12"><div class="content-formPlugin-preview"><h2 id="title-2okceyx980h" class="text-center">Contacto</h2><h5 id="subtitle-2okceyx980h" class="text-center mb-4">Contacta con nosotros para cualquier consulta</h5><form class="formPlugin-form justify-content-around" data-id="2okceyx980h" id="formulario-contacto-2okceyx980h"><div class="col-12 col-lg-6 d-inline-block order-0 order-lg-1"><div class="col-12 mb-2"><label class="form-label" for="nombre">Nombre:</label><input class="form-control" type="text" id="nombre-2okceyx980h" placeholder="" required=""></div><div class="col-12 mb-2"><label class="form-label" for="apellidos">Apellidos:</label><input class="form-control" type="text" id="apellidos-2okceyx980h" placeholder="" required=""></div><div class="col-12 mb-2"><label class="form-label" for="email">E-mail:</label><input class="form-control" type="email" id="email-2okceyx980h" placeholder="" required=""></div><div class="col-12 mb-2"><label class="form-label" for="telefono">Teléfono:</label><input class="form-control" type="tel" id="telefono-2okceyx980h" placeholder="" pattern="[0-9]{9}" required=""></div></div><div class="col-12 col-lg-6 d-inline-block order-1 order-lg-0"><div class="col-12 mb-2"><label class="form-label" for="comentarios">Comentarios:</label><textarea class="form-control form-comment-preview" id="comentarios-2okceyx980h" required=""></textarea></div><div class="mb-3 form-check col-12"><input class="mr-1" type="checkbox" id="politica-privacidad-2okceyx980h" required=""><label class="form-check-label p-0" for="politica-privacidad">Acepto la <a data-id="2okceyx980h" class="abrir-politicas-priv" id="abrir-modal-2okceyx980h">Política de privacidad</a></label></div></div><div class="mb-3 mt-3 col-12 order-2"><button class="btn btn-primary" type="submit">Enviar</button></div></form><div class="modal" id="modal-2okceyx980h" tabindex="-1" role="dialog"><div class="modal-dialog modal-dialog-scrollable" role="document"><div class="modal-content"><div class="modal-header"><h5 class="modal-title">Política de privacidad</h5><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button></div><div class="modal-body"><div class="row justify-content-center mb-4"><div class="col-12 privacy-container" id="privacy-container-2okceyx980h"><p style="margin-bottom: 15px; text-align: justify; color: rgb(0, 0, 0); font-family: &quot;Open Sans&quot;, Arial, sans-serif; font-size: 14px; text-transform: none;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vitae nulla leo. Maecenas fringilla lorem elit, quis faucibus diam pharetra eu. Sed quis mattis dolor, nec bibendum massa. Quisque aliquet dolor ultricies, fermentum metus sodales, tristique dolor. In mattis purus pretium pellentesque rutrum. Vestibulum consequat ut magna vitae feugiat. Proin convallis, leo a ullamcorper pretium, metus nibh sollicitudin metus, sit amet dignissim ex ligula id dui. Donec sit amet massa a eros auctor interdum at vitae ipsum. Nam posuere molestie congue. Donec quam ante, convallis at fermentum quis, tincidunt ac erat. Donec venenatis tellus mauris, tempor varius felis mollis eu. Aenean in tortor metus.</p><p style="margin-bottom: 15px; text-align: justify; color: rgb(0, 0, 0); font-family: &quot;Open Sans&quot;, Arial, sans-serif; font-size: 14px; text-transform: none;">Nunc non massa auctor, aliquam nulla at, accumsan lacus. Fusce finibus luctus enim, nec dignissim erat commodo id. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed egestas consectetur sem at pulvinar. Aliquam faucibus a eros id convallis. Pellentesque eu urna ullamcorper, lacinia tortor quis, viverra risus. Vivamus vitae hendrerit leo. Fusce in convallis eros, viverra efficitur eros. Nulla ut tellus quis metus lobortis viverra ac vel orci. Vivamus ac felis nunc. Etiam efficitur dui a dolor tincidunt, id accumsan mi imperdiet. Nullam sodales euismod sagittis. Donec vitae nunc sit amet neque rhoncus tincidunt.</p></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>'"[{\"id\":\"sectionOne\",\"name\":\"1 columna\",\"className\":\"SectionOne\",\"img\":\"\/plugins\/sectionOne\/img\/column-1.png\",\"hash\":[\"mby6fc2ppep\"],\"parent\":null,\"type\":\"droppable\",\"classType\":\"section\",\"value\":\"\",\"limit\":-1,\"order\":0},{\"id\":\"formPlugin\",\"name\":\"Formulario\",\"className\":\"FormPlugin\",\"icon\":\"fab fa-wpforms\",\"hash\":[\"2okceyx980h\"],\"parent\":\"mby6fc2ppep\",\"type\":\"draggable\",\"classType\":\"section-formPlugin\",\"value\":\"{\\\"subtitle\\\":\\\"Contacta con nosotros para cualquier consulta\\\",\\\"emailRecepcion\\\":\\\"api@api.cat\\\",\\\"title\\\":\\\"Contacto\\\",\\\"name\\\":true,\\\"surname\\\":true,\\\"email\\\":true,\\\"phone\\\":true,\\\"comments\\\":true,\\\"privacy\\\":\\\"<p style='margin-bottom: 15px; text-align: justify; color: rgb(0, 0, 0); font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; text-transform: none;'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque vitae nulla leo. Maecenas fringilla lorem elit, quis faucibus diam pharetra eu. Sed quis mattis dolor, nec bibendum massa. Quisque aliquet dolor ultricies, fermentum metus sodales, tristique dolor. In mattis purus pretium pellentesque rutrum. Vestibulum consequat ut magna vitae feugiat. Proin convallis, leo a ullamcorper pretium, metus nibh sollicitudin metus, sit amet dignissim ex ligula id dui. Donec sit amet massa a eros auctor interdum at vitae ipsum. Nam posuere molestie congue. Donec quam ante, convallis at fermentum quis, tincidunt ac erat. Donec venenatis tellus mauris, tempor varius felis mollis eu. Aenean in tortor metus.<\/p><p style='margin-bottom: 15px; text-align: justify; color: rgb(0, 0, 0); font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; text-transform: none;'>Nunc non massa auctor, aliquam nulla at, accumsan lacus. Fusce finibus luctus enim, nec dignissim erat commodo id. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed egestas consectetur sem at pulvinar. Aliquam faucibus a eros id convallis. Pellentesque eu urna ullamcorper, lacinia tortor quis, viverra risus. Vivamus vitae hendrerit leo. Fusce in convallis eros, viverra efficitur eros. Nulla ut tellus quis metus lobortis viverra ac vel orci. Vivamus ac felis nunc. Etiam efficitur dui a dolor tincidunt, id accumsan mi imperdiet. Nullam sodales euismod sagittis. Donec vitae nunc sit amet neque rhoncus tincidunt.<\/p>\\\"}\",\"limit\":-1,\"order\":78}]"],
  55.         "home" => ['home''Home''''[]'],
  56.         "cookies" => ['cookies''Cookies''<div class="container"><div class="module-front sections section-one" data-id="u2ocez1wb4f"><div class="row"><div class="col-12"><div class="row"><div class="col-12"><div class="section" data-id="u2ocez1wb4f"><div class="module-front section-title" data-id="0b4juf6wqjzf"><div class="row"><div class="col-12"><div class="content-text"><h1>Política de Cookies</h1></div></div></div></div><div class="module-front section-text" data-id="j9mz6nmur3"><div class="row"><div class="col-12"><div class="content-text"><h1 style="margin-bottom: 24px; font-size: 30px; font-family: Roboto, sans-serif; line-height: 38px; color: rgb(0, 0, 0); text-transform: none; text-align: start;">Heading 7</h1><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ut lacinia ex. Curabitur iaculis elit lorem, vitae fringilla turpis ultricies vel. Mauris pretium fermentum est, eget tincidunt massa dignissim sed. Donec vulputate a augue at tincidunt. Fusce scelerisque quam arcu, vitae dictum leo volutpat tempor. Curabitur commodo vulputate ex id posuere. Phasellus at condimentum purus. Praesent et dictum ante. Proin sed ipsum non nisl pretium tempus quis et augue. Morbi ullamcorper, dolor eu accumsan aliquet, nibh nisl molestie odio, at lobortis sapien nisl interdum arcu.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Vestibulum vitae varius arcu. Nam mattis est ex, eu iaculis sem euismod nec. Nulla facilisis est vitae enim dictum posuere. Curabitur est tellus, consectetur vitae tellus eget, scelerisque convallis ipsum. Ut id nulla mauris. Proin placerat, mi eget cursus mollis, nulla ipsum venenatis nulla, a varius urna ante eget felis. Nullam tincidunt urna eu cursus sagittis. Aenean id sagittis enim. Aliquam at urna urna. Pellentesque dapibus velit ut ipsum semper lacinia. Etiam sit amet imperdiet diam, eget congue mi. Sed sagittis tortor dolor, a ultrices risus interdum ac. Pellentesque ac arcu malesuada, auctor est vitae, posuere nunc. Curabitur finibus vehicula turpis sit amet commodo. Sed pulvinar ipsum a tellus faucibus, nec mattis orci tempus. Sed fringilla eros efficitur, auctor tortor vel, facilisis justo.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Nulla vestibulum tempus odio, sed pulvinar odio sodales ut. Mauris eu ante nulla. Donec tortor ante, sodales sed nibh a, accumsan vestibulum nulla. Cras ut accumsan nibh, ut mollis dolor. Integer vitae sapien eget massa ullamcorper sodales eu et augue. Etiam sagittis rutrum sapien in feugiat. Nunc vitae mi urna. Vestibulum consectetur ornare dolor.</p><h2 style="margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 32px; color: rgb(0, 0, 0); font-size: 24px; text-transform: none; text-align: start;">Heading 2</h2><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Proin vitae molestie nibh, id varius purus. Ut ultricies, dui non pellentesque tempus, dolor lacus facilisis ex, in sodales quam lectus nec mi. Cras interdum massa eu libero efficitur, nec pellentesque ante laoreet. Praesent tristique pellentesque ligula vitae imperdiet. Mauris elementum augue tortor, vitae rhoncus justo ornare non. Pellentesque pharetra quam ac nibh iaculis, eu tincidunt nunc sollicitudin. Nunc dictum libero in feugiat feugiat. Phasellus semper augue et libero gravida, vitae tempus orci porttitor. Nunc lectus justo, condimentum eu libero semper, dictum vestibulum felis. Donec et tellus sed augue consectetur ultricies et ut felis. Sed sem odio, volutpat vitae neque ac, maximus posuere orci. Cras eu ultrices augue. Quisque vel felis eget orci tincidunt auctor volutpat in quam. Aliquam erat volutpat. In elementum quam non nunc accumsan, ut suscipit nibh rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Donec a nibh blandit, porttitor purus id, ornare metus. Donec quis fermentum nunc. Vivamus eget augue sem. Nam sodales eros augue, id sollicitudin urna commodo at. Aenean mauris risus, hendrerit nec metus quis, pharetra accumsan nunc. Suspendisse et luctus lectus. Duis ac condimentum sem, vitae laoreet justo. Vestibulum commodo, massa non dapibus interdum, nulla dui maximus sapien, semper rutrum mi tortor eu eros. Fusce vehicula enim vitae consectetur ultricies. Nunc tincidunt at ipsum eu sollicitudin. Nam et ornare est. Proin cursus metus quam, non faucibus dolor accumsan vitae. Mauris ipsum erat, sodales sit amet neque non, tristique cursus nisl. Sed nisi metus, efficitur eget accumsan semper, scelerisque eu ante.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Vivamus auctor mauris risus, sed viverra neque pellentesque ac. Phasellus vestibulum lacus nisl, a semper sem laoreet quis. Fusce nunc arcu, congue vel sodales eu, lacinia at erat. Phasellus finibus dolor lectus, vel tincidunt leo efficitur at. Nullam ut tellus in turpis blandit varius. Sed ut elit nec lectus pretium luctus vitae sit amet est. Etiam in maximus urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p><h3 style="margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 28px; color: rgb(0, 0, 0); font-size: 20px; text-transform: none; text-align: start;">Heading 3</h3><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Curabitur tristique nec ex eget posuere. Sed elit lacus, pulvinar eu leo vel, sodales eleifend diam. Nunc tincidunt libero id tellus luctus efficitur. Sed sodales dolor justo, eu ultrices ipsum suscipit non. Nullam eu dolor vitae felis pellentesque finibus. Morbi id imperdiet nunc, non commodo dolor. Quisque non tristique lacus. Ut faucibus, magna in dapibus vehicula, lectus mauris pellentesque metus, eu sagittis mi enim quis massa. Donec nunc urna, pulvinar a vestibulum nec, consequat sit amet urna. Duis augue nisi, rhoncus sed consequat eu, lobortis ut dui. Vivamus placerat auctor arcu eu tincidunt. Proin vel dolor sed lorem feugiat molestie nec et justo.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Donec mollis tortor ut est dapibus fermentum. Vestibulum convallis nisl et ipsum sagittis, vel finibus dui lacinia. Quisque ac mi et orci congue commodo in in erat. Suspendisse vulputate tristique neque, eget sollicitudin purus commodo id. Donec vel auctor nibh. Duis interdum lorem purus, eget viverra ipsum congue in. Aliquam erat volutpat. Sed bibendum venenatis pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et ultricies lectus. Praesent eu felis rutrum, placerat dolor eget, congue urna. Maecenas cursus mattis purus eu tincidunt. Cras pretium elementum elit a tempus.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Integer vitae libero eu eros gravida condimentum. Nullam tincidunt eu lectus in pharetra. Aenean consectetur nisi quis nulla condimentum, eget tristique ex pretium. Nunc sit amet convallis lorem. Maecenas eget est enim. Sed scelerisque posuere lacus et consequat. Ut ultrices ultrices maximus. Donec laoreet sagittis suscipit. Fusce vel lectus nibh. Nam vitae tristique ante.</p><p style="margin-bottom: 0px; text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Sed sodales ante ut lobortis interdum. Aenean at risus a est euismod feugiat. Pellentesque magna augue, sodales id cursus eu, varius eget massa. Mauris eros nulla, iaculis ac tellus ut, sagittis eleifend nisl. Aliquam ornare magna tincidunt urna dictum, vitae dignissim lectus malesuada. Nam dignissim lacinia orci eu blandit. Etiam in blandit lacus. Nunc quis aliquam felis. Proin id ligula bibendum, convallis nulla eu, porttitor massa. Mauris feugiat, magna sit amet iaculis tempor, erat dui suscipit nunc, ut pretium velit dui nec ante. Pellentesque feugiat dapibus neque et condimentum. Suspendisse eget eleifend massa. Donec cursus odio pharetra felis dignissim, vitae euismod ligula congue. Morbi sapien erat, convallis a magna id, facilisis congue justo. Donec nec mauris nulla. Sed dictum rhoncus nulla, in imperdiet enim dignissim non.</p></div></div></div></div></div></div></div></div></div></div></div>',"[{\"id\":\"sectionOne\",\"name\":\"1 columna\",\"className\":\"SectionOne\",\"img\":\"\/plugins\/sectionOne\/img\/column-1.png\",\"hash\":[\"u2ocez1wb4f\"],\"parent\":null,\"type\":\"droppable\",\"classType\":\"section\",\"value\":\"\",\"limit\":-1,\"order\":0},{\"id\":\"title\",\"name\":\"T\u00edtulo principal\",\"className\":\"Title\",\"icon\":\"fas fa-h1\",\"hash\":[\"0b4juf6wqjzf\"],\"parent\":\"u2ocez1wb4f\",\"type\":\"draggable\",\"classType\":\"section-title\",\"value\":\"<h1>Pol\u00edtica de cookies<\/h1>\",\"limit\":1,\"order\":50},{\"id\":\"text\",\"name\":\"Texto\",\"className\":\"Text\",\"icon\":\"fas fa-text\",\"hash\":[\"j9mz6nmur3\"],\"parent\":\"u2ocez1wb4f\",\"type\":\"draggable\",\"classType\":\"section-text\",\"value\":\"<h1 style=\\\"margin-bottom: 24px; font-size: 30px; font-family: Roboto, sans-serif; line-height: 38px; color: rgb(0, 0, 0); text-transform: none; text-align: start;\\\">Heading 7<\/h1><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ut lacinia ex. Curabitur iaculis elit lorem, vitae fringilla turpis ultricies vel. Mauris pretium fermentum est, eget tincidunt massa dignissim sed. Donec vulputate a augue at tincidunt. Fusce scelerisque quam arcu, vitae dictum leo volutpat tempor. Curabitur commodo vulputate ex id posuere. Phasellus at condimentum purus. Praesent et dictum ante. Proin sed ipsum non nisl pretium tempus quis et augue. Morbi ullamcorper, dolor eu accumsan aliquet, nibh nisl molestie odio, at lobortis sapien nisl interdum arcu.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Vestibulum vitae varius arcu. Nam mattis est ex, eu iaculis sem euismod nec. Nulla facilisis est vitae enim dictum posuere. Curabitur est tellus, consectetur vitae tellus eget, scelerisque convallis ipsum. Ut id nulla mauris. Proin placerat, mi eget cursus mollis, nulla ipsum venenatis nulla, a varius urna ante eget felis. Nullam tincidunt urna eu cursus sagittis. Aenean id sagittis enim. Aliquam at urna urna. Pellentesque dapibus velit ut ipsum semper lacinia. Etiam sit amet imperdiet diam, eget congue mi. Sed sagittis tortor dolor, a ultrices risus interdum ac. Pellentesque ac arcu malesuada, auctor est vitae, posuere nunc. Curabitur finibus vehicula turpis sit amet commodo. Sed pulvinar ipsum a tellus faucibus, nec mattis orci tempus. Sed fringilla eros efficitur, auctor tortor vel, facilisis justo.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Nulla vestibulum tempus odio, sed pulvinar odio sodales ut. Mauris eu ante nulla. Donec tortor ante, sodales sed nibh a, accumsan vestibulum nulla. Cras ut accumsan nibh, ut mollis dolor. Integer vitae sapien eget massa ullamcorper sodales eu et augue. Etiam sagittis rutrum sapien in feugiat. Nunc vitae mi urna. Vestibulum consectetur ornare dolor.<\/p><h2 style=\\\"margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 32px; color: rgb(0, 0, 0); font-size: 24px; text-transform: none; text-align: start;\\\">Heading 2<\/h2><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Proin vitae molestie nibh, id varius purus. Ut ultricies, dui non pellentesque tempus, dolor lacus facilisis ex, in sodales quam lectus nec mi. Cras interdum massa eu libero efficitur, nec pellentesque ante laoreet. Praesent tristique pellentesque ligula vitae imperdiet. Mauris elementum augue tortor, vitae rhoncus justo ornare non. Pellentesque pharetra quam ac nibh iaculis, eu tincidunt nunc sollicitudin. Nunc dictum libero in feugiat feugiat. Phasellus semper augue et libero gravida, vitae tempus orci porttitor. Nunc lectus justo, condimentum eu libero semper, dictum vestibulum felis. Donec et tellus sed augue consectetur ultricies et ut felis. Sed sem odio, volutpat vitae neque ac, maximus posuere orci. Cras eu ultrices augue. Quisque vel felis eget orci tincidunt auctor volutpat in quam. Aliquam erat volutpat. In elementum quam non nunc accumsan, ut suscipit nibh rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Donec a nibh blandit, porttitor purus id, ornare metus. Donec quis fermentum nunc. Vivamus eget augue sem. Nam sodales eros augue, id sollicitudin urna commodo at. Aenean mauris risus, hendrerit nec metus quis, pharetra accumsan nunc. Suspendisse et luctus lectus. Duis ac condimentum sem, vitae laoreet justo. Vestibulum commodo, massa non dapibus interdum, nulla dui maximus sapien, semper rutrum mi tortor eu eros. Fusce vehicula enim vitae consectetur ultricies. Nunc tincidunt at ipsum eu sollicitudin. Nam et ornare est. Proin cursus metus quam, non faucibus dolor accumsan vitae. Mauris ipsum erat, sodales sit amet neque non, tristique cursus nisl. Sed nisi metus, efficitur eget accumsan semper, scelerisque eu ante.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Vivamus auctor mauris risus, sed viverra neque pellentesque ac. Phasellus vestibulum lacus nisl, a semper sem laoreet quis. Fusce nunc arcu, congue vel sodales eu, lacinia at erat. Phasellus finibus dolor lectus, vel tincidunt leo efficitur at. Nullam ut tellus in turpis blandit varius. Sed ut elit nec lectus pretium luctus vitae sit amet est. Etiam in maximus urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<\/p><h3 style=\\\"margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 28px; color: rgb(0, 0, 0); font-size: 20px; text-transform: none; text-align: start;\\\">Heading 3<\/h3><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Curabitur tristique nec ex eget posuere. Sed elit lacus, pulvinar eu leo vel, sodales eleifend diam. Nunc tincidunt libero id tellus luctus efficitur. Sed sodales dolor justo, eu ultrices ipsum suscipit non. Nullam eu dolor vitae felis pellentesque finibus. Morbi id imperdiet nunc, non commodo dolor. Quisque non tristique lacus. Ut faucibus, magna in dapibus vehicula, lectus mauris pellentesque metus, eu sagittis mi enim quis massa. Donec nunc urna, pulvinar a vestibulum nec, consequat sit amet urna. Duis augue nisi, rhoncus sed consequat eu, lobortis ut dui. Vivamus placerat auctor arcu eu tincidunt. Proin vel dolor sed lorem feugiat molestie nec et justo.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Donec mollis tortor ut est dapibus fermentum. Vestibulum convallis nisl et ipsum sagittis, vel finibus dui lacinia. Quisque ac mi et orci congue commodo in in erat. Suspendisse vulputate tristique neque, eget sollicitudin purus commodo id. Donec vel auctor nibh. Duis interdum lorem purus, eget viverra ipsum congue in. Aliquam erat volutpat. Sed bibendum venenatis pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et ultricies lectus. Praesent eu felis rutrum, placerat dolor eget, congue urna. Maecenas cursus mattis purus eu tincidunt. Cras pretium elementum elit a tempus.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Integer vitae libero eu eros gravida condimentum. Nullam tincidunt eu lectus in pharetra. Aenean consectetur nisi quis nulla condimentum, eget tristique ex pretium. Nunc sit amet convallis lorem. Maecenas eget est enim. Sed scelerisque posuere lacus et consequat. Ut ultrices ultrices maximus. Donec laoreet sagittis suscipit. Fusce vel lectus nibh. Nam vitae tristique ante.<\/p><p style=\\\"margin-bottom: 0px; text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Sed sodales ante ut lobortis interdum. Aenean at risus a est euismod feugiat. Pellentesque magna augue, sodales id cursus eu, varius eget massa. Mauris eros nulla, iaculis ac tellus ut, sagittis eleifend nisl. Aliquam ornare magna tincidunt urna dictum, vitae dignissim lectus malesuada. Nam dignissim lacinia orci eu blandit. Etiam in blandit lacus. Nunc quis aliquam felis. Proin id ligula bibendum, convallis nulla eu, porttitor massa. Mauris feugiat, magna sit amet iaculis tempor, erat dui suscipit nunc, ut pretium velit dui nec ante. Pellentesque feugiat dapibus neque et condimentum. Suspendisse eget eleifend massa. Donec cursus odio pharetra felis dignissim, vitae euismod ligula congue. Morbi sapien erat, convallis a magna id, facilisis congue justo. Donec nec mauris nulla. Sed dictum rhoncus nulla, in imperdiet enim dignissim non.<\/p>\",\"limit\":-1,\"order\":40}]"],
  57.         "condiciones" => ['condiciones''Términos y Condiciones','<div class="container"><div class="module-front sections section-one" data-id="u2ocez1wb4f"><div class="row"><div class="col-12"><div class="row"><div class="col-12"><div class="section" data-id="u2ocez1wb4f"><div class="module-front section-title" data-id="0b4juf6wqjzf"><div class="row"><div class="col-12"><div class="content-text"><h1>Términos y condiciones</h1></div></div></div></div><div class="module-front section-text" data-id="j9mz6nmur3"><div class="row"><div class="col-12"><div class="content-text"><h1 style="margin-bottom: 24px; font-size: 30px; font-family: Roboto, sans-serif; line-height: 38px; color: rgb(0, 0, 0); text-transform: none; text-align: start;">Heading 7</h1><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ut lacinia ex. Curabitur iaculis elit lorem, vitae fringilla turpis ultricies vel. Mauris pretium fermentum est, eget tincidunt massa dignissim sed. Donec vulputate a augue at tincidunt. Fusce scelerisque quam arcu, vitae dictum leo volutpat tempor. Curabitur commodo vulputate ex id posuere. Phasellus at condimentum purus. Praesent et dictum ante. Proin sed ipsum non nisl pretium tempus quis et augue. Morbi ullamcorper, dolor eu accumsan aliquet, nibh nisl molestie odio, at lobortis sapien nisl interdum arcu.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Vestibulum vitae varius arcu. Nam mattis est ex, eu iaculis sem euismod nec. Nulla facilisis est vitae enim dictum posuere. Curabitur est tellus, consectetur vitae tellus eget, scelerisque convallis ipsum. Ut id nulla mauris. Proin placerat, mi eget cursus mollis, nulla ipsum venenatis nulla, a varius urna ante eget felis. Nullam tincidunt urna eu cursus sagittis. Aenean id sagittis enim. Aliquam at urna urna. Pellentesque dapibus velit ut ipsum semper lacinia. Etiam sit amet imperdiet diam, eget congue mi. Sed sagittis tortor dolor, a ultrices risus interdum ac. Pellentesque ac arcu malesuada, auctor est vitae, posuere nunc. Curabitur finibus vehicula turpis sit amet commodo. Sed pulvinar ipsum a tellus faucibus, nec mattis orci tempus. Sed fringilla eros efficitur, auctor tortor vel, facilisis justo.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Nulla vestibulum tempus odio, sed pulvinar odio sodales ut. Mauris eu ante nulla. Donec tortor ante, sodales sed nibh a, accumsan vestibulum nulla. Cras ut accumsan nibh, ut mollis dolor. Integer vitae sapien eget massa ullamcorper sodales eu et augue. Etiam sagittis rutrum sapien in feugiat. Nunc vitae mi urna. Vestibulum consectetur ornare dolor.</p><h2 style="margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 32px; color: rgb(0, 0, 0); font-size: 24px; text-transform: none; text-align: start;">Heading 2</h2><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Proin vitae molestie nibh, id varius purus. Ut ultricies, dui non pellentesque tempus, dolor lacus facilisis ex, in sodales quam lectus nec mi. Cras interdum massa eu libero efficitur, nec pellentesque ante laoreet. Praesent tristique pellentesque ligula vitae imperdiet. Mauris elementum augue tortor, vitae rhoncus justo ornare non. Pellentesque pharetra quam ac nibh iaculis, eu tincidunt nunc sollicitudin. Nunc dictum libero in feugiat feugiat. Phasellus semper augue et libero gravida, vitae tempus orci porttitor. Nunc lectus justo, condimentum eu libero semper, dictum vestibulum felis. Donec et tellus sed augue consectetur ultricies et ut felis. Sed sem odio, volutpat vitae neque ac, maximus posuere orci. Cras eu ultrices augue. Quisque vel felis eget orci tincidunt auctor volutpat in quam. Aliquam erat volutpat. In elementum quam non nunc accumsan, ut suscipit nibh rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Donec a nibh blandit, porttitor purus id, ornare metus. Donec quis fermentum nunc. Vivamus eget augue sem. Nam sodales eros augue, id sollicitudin urna commodo at. Aenean mauris risus, hendrerit nec metus quis, pharetra accumsan nunc. Suspendisse et luctus lectus. Duis ac condimentum sem, vitae laoreet justo. Vestibulum commodo, massa non dapibus interdum, nulla dui maximus sapien, semper rutrum mi tortor eu eros. Fusce vehicula enim vitae consectetur ultricies. Nunc tincidunt at ipsum eu sollicitudin. Nam et ornare est. Proin cursus metus quam, non faucibus dolor accumsan vitae. Mauris ipsum erat, sodales sit amet neque non, tristique cursus nisl. Sed nisi metus, efficitur eget accumsan semper, scelerisque eu ante.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Vivamus auctor mauris risus, sed viverra neque pellentesque ac. Phasellus vestibulum lacus nisl, a semper sem laoreet quis. Fusce nunc arcu, congue vel sodales eu, lacinia at erat. Phasellus finibus dolor lectus, vel tincidunt leo efficitur at. Nullam ut tellus in turpis blandit varius. Sed ut elit nec lectus pretium luctus vitae sit amet est. Etiam in maximus urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p><h3 style="margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 28px; color: rgb(0, 0, 0); font-size: 20px; text-transform: none; text-align: start;">Heading 3</h3><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Curabitur tristique nec ex eget posuere. Sed elit lacus, pulvinar eu leo vel, sodales eleifend diam. Nunc tincidunt libero id tellus luctus efficitur. Sed sodales dolor justo, eu ultrices ipsum suscipit non. Nullam eu dolor vitae felis pellentesque finibus. Morbi id imperdiet nunc, non commodo dolor. Quisque non tristique lacus. Ut faucibus, magna in dapibus vehicula, lectus mauris pellentesque metus, eu sagittis mi enim quis massa. Donec nunc urna, pulvinar a vestibulum nec, consequat sit amet urna. Duis augue nisi, rhoncus sed consequat eu, lobortis ut dui. Vivamus placerat auctor arcu eu tincidunt. Proin vel dolor sed lorem feugiat molestie nec et justo.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Donec mollis tortor ut est dapibus fermentum. Vestibulum convallis nisl et ipsum sagittis, vel finibus dui lacinia. Quisque ac mi et orci congue commodo in in erat. Suspendisse vulputate tristique neque, eget sollicitudin purus commodo id. Donec vel auctor nibh. Duis interdum lorem purus, eget viverra ipsum congue in. Aliquam erat volutpat. Sed bibendum venenatis pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et ultricies lectus. Praesent eu felis rutrum, placerat dolor eget, congue urna. Maecenas cursus mattis purus eu tincidunt. Cras pretium elementum elit a tempus.</p><p style="text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Integer vitae libero eu eros gravida condimentum. Nullam tincidunt eu lectus in pharetra. Aenean consectetur nisi quis nulla condimentum, eget tristique ex pretium. Nunc sit amet convallis lorem. Maecenas eget est enim. Sed scelerisque posuere lacus et consequat. Ut ultrices ultrices maximus. Donec laoreet sagittis suscipit. Fusce vel lectus nibh. Nam vitae tristique ante.</p><p style="margin-bottom: 0px; text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;">Sed sodales ante ut lobortis interdum. Aenean at risus a est euismod feugiat. Pellentesque magna augue, sodales id cursus eu, varius eget massa. Mauris eros nulla, iaculis ac tellus ut, sagittis eleifend nisl. Aliquam ornare magna tincidunt urna dictum, vitae dignissim lectus malesuada. Nam dignissim lacinia orci eu blandit. Etiam in blandit lacus. Nunc quis aliquam felis. Proin id ligula bibendum, convallis nulla eu, porttitor massa. Mauris feugiat, magna sit amet iaculis tempor, erat dui suscipit nunc, ut pretium velit dui nec ante. Pellentesque feugiat dapibus neque et condimentum. Suspendisse eget eleifend massa. Donec cursus odio pharetra felis dignissim, vitae euismod ligula congue. Morbi sapien erat, convallis a magna id, facilisis congue justo. Donec nec mauris nulla. Sed dictum rhoncus nulla, in imperdiet enim dignissim non.</p></div></div></div></div></div></div></div></div></div></div></div>',"[{\"id\":\"sectionOne\",\"name\":\"1 columna\",\"className\":\"SectionOne\",\"img\":\"\/plugins\/sectionOne\/img\/column-1.png\",\"hash\":[\"u2ocez1wb4f\"],\"parent\":null,\"type\":\"droppable\",\"classType\":\"section\",\"value\":\"\",\"limit\":-1,\"order\":0},{\"id\":\"title\",\"name\":\"T\u00edtulo principal\",\"className\":\"Title\",\"icon\":\"fas fa-h1\",\"hash\":[\"0b4juf6wqjzf\"],\"parent\":\"u2ocez1wb4f\",\"type\":\"draggable\",\"classType\":\"section-title\",\"value\":\"<h1>T\u00e9rminos y condiciones<\/h1>\",\"limit\":1,\"order\":50},{\"id\":\"text\",\"name\":\"Texto\",\"className\":\"Text\",\"icon\":\"fas fa-text\",\"hash\":[\"j9mz6nmur3\"],\"parent\":\"u2ocez1wb4f\",\"type\":\"draggable\",\"classType\":\"section-text\",\"value\":\"<h1 style=\\\"margin-bottom: 24px; font-size: 30px; font-family: Roboto, sans-serif; line-height: 38px; color: rgb(0, 0, 0); text-transform: none; text-align: start;\\\">Heading 7<\/h1><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ut lacinia ex. Curabitur iaculis elit lorem, vitae fringilla turpis ultricies vel. Mauris pretium fermentum est, eget tincidunt massa dignissim sed. Donec vulputate a augue at tincidunt. Fusce scelerisque quam arcu, vitae dictum leo volutpat tempor. Curabitur commodo vulputate ex id posuere. Phasellus at condimentum purus. Praesent et dictum ante. Proin sed ipsum non nisl pretium tempus quis et augue. Morbi ullamcorper, dolor eu accumsan aliquet, nibh nisl molestie odio, at lobortis sapien nisl interdum arcu.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Vestibulum vitae varius arcu. Nam mattis est ex, eu iaculis sem euismod nec. Nulla facilisis est vitae enim dictum posuere. Curabitur est tellus, consectetur vitae tellus eget, scelerisque convallis ipsum. Ut id nulla mauris. Proin placerat, mi eget cursus mollis, nulla ipsum venenatis nulla, a varius urna ante eget felis. Nullam tincidunt urna eu cursus sagittis. Aenean id sagittis enim. Aliquam at urna urna. Pellentesque dapibus velit ut ipsum semper lacinia. Etiam sit amet imperdiet diam, eget congue mi. Sed sagittis tortor dolor, a ultrices risus interdum ac. Pellentesque ac arcu malesuada, auctor est vitae, posuere nunc. Curabitur finibus vehicula turpis sit amet commodo. Sed pulvinar ipsum a tellus faucibus, nec mattis orci tempus. Sed fringilla eros efficitur, auctor tortor vel, facilisis justo.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Nulla vestibulum tempus odio, sed pulvinar odio sodales ut. Mauris eu ante nulla. Donec tortor ante, sodales sed nibh a, accumsan vestibulum nulla. Cras ut accumsan nibh, ut mollis dolor. Integer vitae sapien eget massa ullamcorper sodales eu et augue. Etiam sagittis rutrum sapien in feugiat. Nunc vitae mi urna. Vestibulum consectetur ornare dolor.<\/p><h2 style=\\\"margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 32px; color: rgb(0, 0, 0); font-size: 24px; text-transform: none; text-align: start;\\\">Heading 2<\/h2><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Proin vitae molestie nibh, id varius purus. Ut ultricies, dui non pellentesque tempus, dolor lacus facilisis ex, in sodales quam lectus nec mi. Cras interdum massa eu libero efficitur, nec pellentesque ante laoreet. Praesent tristique pellentesque ligula vitae imperdiet. Mauris elementum augue tortor, vitae rhoncus justo ornare non. Pellentesque pharetra quam ac nibh iaculis, eu tincidunt nunc sollicitudin. Nunc dictum libero in feugiat feugiat. Phasellus semper augue et libero gravida, vitae tempus orci porttitor. Nunc lectus justo, condimentum eu libero semper, dictum vestibulum felis. Donec et tellus sed augue consectetur ultricies et ut felis. Sed sem odio, volutpat vitae neque ac, maximus posuere orci. Cras eu ultrices augue. Quisque vel felis eget orci tincidunt auctor volutpat in quam. Aliquam erat volutpat. In elementum quam non nunc accumsan, ut suscipit nibh rutrum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Donec a nibh blandit, porttitor purus id, ornare metus. Donec quis fermentum nunc. Vivamus eget augue sem. Nam sodales eros augue, id sollicitudin urna commodo at. Aenean mauris risus, hendrerit nec metus quis, pharetra accumsan nunc. Suspendisse et luctus lectus. Duis ac condimentum sem, vitae laoreet justo. Vestibulum commodo, massa non dapibus interdum, nulla dui maximus sapien, semper rutrum mi tortor eu eros. Fusce vehicula enim vitae consectetur ultricies. Nunc tincidunt at ipsum eu sollicitudin. Nam et ornare est. Proin cursus metus quam, non faucibus dolor accumsan vitae. Mauris ipsum erat, sodales sit amet neque non, tristique cursus nisl. Sed nisi metus, efficitur eget accumsan semper, scelerisque eu ante.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Vivamus auctor mauris risus, sed viverra neque pellentesque ac. Phasellus vestibulum lacus nisl, a semper sem laoreet quis. Fusce nunc arcu, congue vel sodales eu, lacinia at erat. Phasellus finibus dolor lectus, vel tincidunt leo efficitur at. Nullam ut tellus in turpis blandit varius. Sed ut elit nec lectus pretium luctus vitae sit amet est. Etiam in maximus urna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.<\/p><h3 style=\\\"margin-bottom: 18px; font-family: Roboto, sans-serif; line-height: 28px; color: rgb(0, 0, 0); font-size: 20px; text-transform: none; text-align: start;\\\">Heading 3<\/h3><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Curabitur tristique nec ex eget posuere. Sed elit lacus, pulvinar eu leo vel, sodales eleifend diam. Nunc tincidunt libero id tellus luctus efficitur. Sed sodales dolor justo, eu ultrices ipsum suscipit non. Nullam eu dolor vitae felis pellentesque finibus. Morbi id imperdiet nunc, non commodo dolor. Quisque non tristique lacus. Ut faucibus, magna in dapibus vehicula, lectus mauris pellentesque metus, eu sagittis mi enim quis massa. Donec nunc urna, pulvinar a vestibulum nec, consequat sit amet urna. Duis augue nisi, rhoncus sed consequat eu, lobortis ut dui. Vivamus placerat auctor arcu eu tincidunt. Proin vel dolor sed lorem feugiat molestie nec et justo.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Donec mollis tortor ut est dapibus fermentum. Vestibulum convallis nisl et ipsum sagittis, vel finibus dui lacinia. Quisque ac mi et orci congue commodo in in erat. Suspendisse vulputate tristique neque, eget sollicitudin purus commodo id. Donec vel auctor nibh. Duis interdum lorem purus, eget viverra ipsum congue in. Aliquam erat volutpat. Sed bibendum venenatis pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et ultricies lectus. Praesent eu felis rutrum, placerat dolor eget, congue urna. Maecenas cursus mattis purus eu tincidunt. Cras pretium elementum elit a tempus.<\/p><p style=\\\"text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Integer vitae libero eu eros gravida condimentum. Nullam tincidunt eu lectus in pharetra. Aenean consectetur nisi quis nulla condimentum, eget tristique ex pretium. Nunc sit amet convallis lorem. Maecenas eget est enim. Sed scelerisque posuere lacus et consequat. Ut ultrices ultrices maximus. Donec laoreet sagittis suscipit. Fusce vel lectus nibh. Nam vitae tristique ante.<\/p><p style=\\\"margin-bottom: 0px; text-transform: none; text-align: start; color: rgb(0, 0, 0); font-family: Roboto, sans-serif;\\\">Sed sodales ante ut lobortis interdum. Aenean at risus a est euismod feugiat. Pellentesque magna augue, sodales id cursus eu, varius eget massa. Mauris eros nulla, iaculis ac tellus ut, sagittis eleifend nisl. Aliquam ornare magna tincidunt urna dictum, vitae dignissim lectus malesuada. Nam dignissim lacinia orci eu blandit. Etiam in blandit lacus. Nunc quis aliquam felis. Proin id ligula bibendum, convallis nulla eu, porttitor massa. Mauris feugiat, magna sit amet iaculis tempor, erat dui suscipit nunc, ut pretium velit dui nec ante. Pellentesque feugiat dapibus neque et condimentum. Suspendisse eget eleifend massa. Donec cursus odio pharetra felis dignissim, vitae euismod ligula congue. Morbi sapien erat, convallis a magna id, facilisis congue justo. Donec nec mauris nulla. Sed dictum rhoncus nulla, in imperdiet enim dignissim non.<\/p>\",\"limit\":-1,\"order\":40}]"],
  58.         "resultatCerca" => ['resultatCerca''Listado inmuebles''''[]']
  59.     ];
  60.     private $array_slug_page = [
  61.         "privacidad" => [
  62.             "es" => 'privacidad',
  63.             "en" => 'privacy',
  64.             "ca" => 'privacitat',
  65.             "fr" => 'confidentalite'
  66.         ],
  67.         "empresa" => [
  68.             "es" => 'empresa',
  69.             "en" => 'enterprise',
  70.             "ca" => 'empresa',
  71.             "fr" => 'enterprise'
  72.         ],
  73.         "contacto" => [
  74.             "es" => 'contacto',
  75.             "en" => 'contact',
  76.             "ca" => 'contacte',
  77.             "fr" => 'contact'
  78.         ],
  79.         "home" => [
  80.             "es" => '',
  81.             "en" => '',
  82.             "ca" => '',
  83.             "fr" => ''
  84.         ],
  85.         "cookies" => [
  86.             "es" => 'cookies',
  87.             "en" => 'cookies',
  88.             "ca" => 'cookies',
  89.             "fr" => 'cookies'
  90.         ],
  91.         "condiciones" => [
  92.             "es" => 'condiciones',
  93.             "en" => 'conditions',
  94.             "ca" => 'condicions',
  95.             "fr" => 'conditions'
  96.         ],
  97.         "resultatCerca" => [
  98.             "es" => 'resultatCerca',
  99.             "en" => 'resultatCerca',
  100.             "ca" => 'resultatCerca',
  101.             "fr" => 'resultatCerca'
  102.         ]
  103.     ];
  104.     private $array_title_page = [
  105.         "privacidad" => [
  106.             "es" => 'Política de privacidad',
  107.             "en" => 'Privacy policy',
  108.             "ca" => 'Política de privacitat',
  109.             "fr" => 'Politique de confidentalité'
  110.         ],
  111.         "empresa" => [
  112.             "es" => 'Nosotros',
  113.             "en" => 'About us',
  114.             "ca" => 'Nosaltres',
  115.             "fr" => 'Nous'
  116.         ],
  117.         "contacto" => [
  118.             "es" => 'Contacto',
  119.             "en" => 'Contact',
  120.             "ca" => 'Contacte',
  121.             "fr" => 'Contact'
  122.         ],
  123.         "home" => [
  124.             "es" => 'Inicio',
  125.             "en" => 'Home',
  126.             "ca" => 'Inici',
  127.             "fr" => 'Home'
  128.         ],
  129.         "cookies" => [
  130.             "es" => 'Política de cookies',
  131.             "en" => 'Cookies policy',
  132.             "ca" => 'Política de cookies',
  133.             "fr" => 'Politique de cookies'
  134.         ],
  135.         "condiciones" => [
  136.             "es" => 'Términos y condiciones',
  137.             "en" => 'Terms and conditions',
  138.             "ca" => 'Termes i condicions',
  139.             "fr" => 'Termes et conditions'
  140.         ],
  141.         "resultatCerca" => [
  142.             "es" => 'Listado inmuebles',
  143.             "en" => 'List of properties',
  144.             "ca" => 'Llistat immobles',
  145.             "fr" => 'Annonce immobilière'
  146.         ]
  147.     ];
  148.     private $tradTexts "";
  149.     public function __construct(){
  150.         $this->array_links = array();
  151.     }
  152.     /**
  153.      * @Route("/", name="main_page", methods={"GET"})
  154.      * @Route("/{lang}", name="main_page_lang", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)"})
  155.      * 
  156.      */
  157.     public function mainPage(Request $requestManagerRegistry $doctrine$lang ""): Response
  158.     {
  159.         $em $this->getDoctrine()->getManager();
  160.         if($request->get('tologin')){
  161.             return $this->redirect("/private");
  162.         }
  163.         
  164.         $agency $em->getRepository(ApiAgency::class)->findOneBy(array());
  165.         if(!$agency->getFirstTime()){
  166.             $langs $em->getRepository(ApiAgencyLang::class)->findAll();
  167.             foreach($this->array_pages as $key => $pages){
  168.                 $groupPage rand(6000099999);
  169.                 
  170.                 foreach($langs as $lang){
  171.                     $slug $this->array_slug_page[$key][$lang->getCod()];
  172.                     $page = new ApiPages();
  173.                     $page->setLang($lang->getCod());
  174.                     $page->setSlug($slug);
  175.                     $page->setTitle($this->array_title_page[$key][$lang->getCod()]);
  176.                     $page->setStrHtml($pages[2]);
  177.                     $page->setStatus(1);
  178.                     $page->setJsonBack($pages[3]);
  179.                     $page->setDateCreated(new \DateTime());
  180.                     $page->setDefaultPage(1);
  181.                     $page->setGroupPage($groupPage);
  182.                     $em->persist($page);
  183.                 }
  184.             }
  185.             $em->flush();
  186.             $strHTML '<div class="container"><div class="module-front sections section-one" data-id="u2ocez1wb4f"><div class="row"><div class="col-12"><div class="row"><div class="col-12"><div class="section" data-id="u2ocez1wb4f"><div class="module-front section-htmlPlugin" data-id="urggnca4ais"><div class="row"><div class="col-12"><div class="content-htmlPlugin">{{html}}</div></div></div></div></div></div></div></div></div></div></div>';
  187.             $jsonBack = array(
  188.                 array(
  189.                     "id" => "sectionOne",
  190.                     "name" => "1 columna",
  191.                     "className" => "SectionOne",
  192.                     "img" => "/plugins/sectionOne/img/column-1.png",
  193.                     "hash" => array("u2ocez1wb4f"),
  194.                     "parent" => null,
  195.                     "type" => "droppable",
  196.                     "classType" => "section",
  197.                     "value" => "",
  198.                     "limit" => -1,
  199.                     "order" => 0
  200.                 ),
  201.                 array(
  202.                     "id" => "html",
  203.                     "name" => "Html",
  204.                     "className" => "HtmlPlugin",
  205.                     "icon" => "fas fa-code",
  206.                     "hash" => array("urggnca4ais"),
  207.                     "parent" => "u2ocez1wb4f",
  208.                     "type" => "draggable",
  209.                     "classType" => "section-htmlPlugin",
  210.                     "value" => "",
  211.                     "limit" => -1,
  212.                     "order" => 101
  213.                 )
  214.             );
  215.     
  216.             $langDefault $em->getRepository(ApiAgencyLang::class)->findOneBy(array("predeterminado" => 1));
  217.             $agencyPages $em->getRepository(ApiAgencyPages::class)->findBy(array("lang" => $langDefault->getCod()));
  218.             $langs $em->getRepository(ApiAgencyLang::class)->findAll();
  219.             $menu $em->getRepository(ApiMenu::class)->findOneBy(array());
  220.             if(!$menu){
  221.                 $menu = new ApiMenu();
  222.                 $menu->setName("Menu");
  223.                 $menu->setDateCreated(new \DateTime());
  224.                 $em->persist($menu);
  225.                 $em->flush();
  226.             }
  227.             
  228.             if($agencyPages){
  229.                 foreach($agencyPages as $ap){
  230.                     $apiPages $em->getRepository(ApiPages::class)->findOneBy(array("slug" => $ap->getSlug()));
  231.                     if($apiPages){
  232.                         if($ap->getSlug() == "resultatCerca"){
  233.                             $orderPage = new ApiOrderPages();
  234.                             $orderPage->setMenu($menu);
  235.                             $orderPage->setPage($apiPages);
  236.                             $orderPage->setOrder($ap->getOrder());
  237.                             $em->persist($orderPage);
  238.                             $em->flush();
  239.                             
  240.                             continue;
  241.                         }else{
  242.                             if($ap->getOrder()){
  243.                                 $orderPage = new ApiOrderPages();
  244.                                 $orderPage->setMenu($menu);
  245.                                 $orderPage->setPage($apiPages);
  246.                                 $orderPage->setOrder($ap->getOrder());
  247.                                 $em->persist($orderPage);
  248.                                 $em->flush();
  249.                             }
  250.                         }
  251.                         foreach($langs as $lang){
  252.                             $apiPages $em->getRepository(ApiPages::class)->findOneBy(array("groupPage" => $apiPages->getGroupPage(),"lang" => $lang->getCod()));
  253.                             $agencyPage $em->getRepository(ApiAgencyPages::class)->findOneBy(array("lang" => $lang->getCod(), "slug" => $ap->getSlug()));
  254.     
  255.                             $html "";
  256.                             $json "[]";
  257.                             if($agencyPage){
  258.                                 if($agencyPage->getText() != ""){
  259.                                     $html str_replace("{{html}}"str_replace('"',"'",$agencyPage->getText()), $strHTML);
  260.                                     $jsonBack[1]["value"] = $agencyPage->getText();
  261.                                     $json json_encode($jsonBack);
  262.                                 }
  263.                             }else{
  264.                                 if($ap->getText() != ""){
  265.                                     $html str_replace("{{html}}"str_replace('"',"'",$ap->getText()), $strHTML);
  266.                                     $jsonBack[1]["value"] = $ap->getText();
  267.                                     $json json_encode($jsonBack);
  268.                                 }
  269.                             }
  270.     
  271.                             $apiPages->setStrHtml($html);
  272.                             $apiPages->setJsonBack($json);
  273.                             $em->persist($apiPages);
  274.                             $em->flush();
  275.                         }
  276.                     }else{
  277.                         $groupPage rand(6000099999);
  278.     
  279.                         foreach($langs as $lang){
  280.     
  281.                             $agencyPage $em->getRepository(ApiAgencyPages::class)->findOneBy(array("lang" => $lang->getCod(), "slug" => $ap->getSlug()));
  282.     
  283.                             $html "";
  284.                             $json "[]";
  285.                             $title "";
  286.                             if($agencyPage){
  287.                                 $title $agencyPage->getTitle();
  288.                                 if($agencyPage->getText() != ""){
  289.                                     $html str_replace("{{html}}"str_replace('"',"'",$agencyPage->getText()), $strHTML);
  290.                                     $jsonBack[1]["value"] = $agencyPage->getText();
  291.                                     $json json_encode($jsonBack);
  292.                                 }
  293.                             }else{
  294.                                 $title $ap->getTitle();
  295.                                 if($ap->getText() != ""){
  296.                                     $html str_replace("{{html}}"str_replace('"',"'",$ap->getText()), $strHTML);
  297.                                     $jsonBack[1]["value"] = $ap->getText();
  298.                                     $json json_encode($jsonBack);
  299.                                 }
  300.                             }
  301.                             $page = new ApiPages();
  302.                             $page->setLang($lang->getCod());
  303.                             $page->setSlug($ap->getSlug());
  304.                             $page->setTitle($title);
  305.                             $page->setStrHtml($html);
  306.                             $page->setStatus(1);
  307.                             $page->setJsonBack($json);
  308.                             $page->setDateCreated(new \DateTime());
  309.                             $page->setDefaultPage(0);
  310.                             $page->setGroupPage($groupPage);
  311.                             $em->persist($page);
  312.                             $em->flush();
  313.                             if($ap->getOrder() && $langDefault->getCod() == $lang->getCod()){
  314.                                 $orderPage = new ApiOrderPages();
  315.                                 $orderPage->setMenu($menu);
  316.                                 $orderPage->setPage($page);
  317.                                 $orderPage->setOrder($ap->getOrder());
  318.                                 $em->persist($orderPage);
  319.                                 $em->flush();
  320.                             }
  321.                         }
  322.                     }
  323.                 }
  324.                 
  325.             }
  326.             
  327.             $agency->setFirstTime(1);
  328.             $em->persist($agency);
  329.             $em->flush();
  330.         }
  331.         if(!$request->getSession()->get("session_id")){
  332.             $request->getSession()->set("session_id"sha1(date_format(new \DateTime("now"), "Y-m-d")));
  333.         }
  334.         return $this->goPage($request$doctrine$lang"""");
  335.     }
  336.     /**
  337.      * @Route("/{lang}/{slug}", name="slug_page", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)"})
  338.      */
  339.     public function slugPage(Request $requestManagerRegistry $doctrine$lang$slug): Response
  340.     {
  341.         $em $this->getDoctrine()->getManager();
  342.         $page $em->getRepository(ApiPages::class)->findOneBy(array("slug" => $slug));
  343.         // dd($page);
  344.         $slugPreview $slug;
  345.         if($request->get("preview") && !$page && $slug){
  346.             $slugPreview $slug;
  347.             $slug "";
  348.         }
  349.         if($request->get("preview") && !$page && !$slugPreview){
  350.             $slugPreview "";
  351.             $slug "";
  352.         }
  353.         if($page && $page->getStatus() != 1){
  354.             throw $this->createNotFoundException('Contenido no encontrado');
  355.         }
  356.         
  357.         if($page && !$page->getDefaultPage() ){
  358.             if($_SERVER['QUERY_STRING']) return $this->redirect('content/'.$slugPreview.'?'.$_SERVER['QUERY_STRING']);
  359.             
  360.             return $this->redirect('content/'.$slugPreview);
  361.         }
  362.         return $this->goPage($request$doctrine$lang$slug$slugPreview);
  363.     }
  364.     /**
  365.      * @Route("/{lang}/content/{slug}", name="slug_content_page_lang", methods={"GET"},requirements={"lang" = "(es|ca|fr|en)"})
  366.      * @Route("/{lang}/seccion/{slug}", name="slug_seccion_page", methods={"GET"},requirements={"lang" = "(es|ca|fr|en)"})
  367.      * 
  368.      */
  369.     public function slugContentPage(Request $requestManagerRegistry $doctrine$lang$slug): Response
  370.     {
  371.         $em $this->getDoctrine()->getManager();
  372.         $page $em->getRepository(ApiPages::class)->findOneBy(array("slug" => $slug));
  373.         $slugPreview $slug;
  374.         if(!$page || $page->getStatus() != 1){
  375.             throw $this->createNotFoundException('Contenido no encontrado');
  376.         }
  377.         return $this->goPage($request$doctrine$lang$slug$slugPreview);
  378.     }
  379.     public function goPage($request$doctrine$lang$slug$slugPreview){
  380.         $preview $request->get("preview");
  381.         $em $this->getDoctrine()->getManager();
  382.         
  383.         $apiMenuRepo $em->getRepository(ApiMenu::class);
  384.         $apiOrderPages $em->getRepository(ApiOrderPages::class);
  385.         $apiAgency $em->getRepository(ApiAgency::class);
  386.         $apiAgencyLang $em->getRepository(ApiAgencyLang::class);
  387.         $apiPages $em->getRepository(ApiPages::class);
  388.         $textosRepo $em->getRepository(Textos::class);
  389.         $agencyDescriptionsRepo $em->getRepository(ApiAgencyDescription::class);
  390.         $menuGroup $apiMenuRepo->findOneBy(array());
  391.         $agency $apiAgency->findOneBy(array());
  392.         $langs $apiAgencyLang->findBy([]);
  393.         $langDefault $apiAgencyLang->findOneBy(array("predeterminado" => 1));
  394.     
  395.         if(!$langDefault){
  396.             $langDefault $apiAgencyLang->findOneBy(array("cod" => "es"));
  397.         }
  398.         $langSelect $langDefault;
  399.         if($lang != ""){
  400.             $langSelect $apiAgencyLang->findOneBy(array("cod" => $lang));
  401.             if(!$langSelect) return $this->redirectToRoute('main_page');
  402.         }
  403.         $request->setLocale($langDefault->getCod());
  404.         $menus = array();
  405.         if($menuGroup){
  406.             $menus $apiOrderPages->findBy(array("menu" => $menuGroup->getId()), array("order" => "ASC"));
  407.             foreach($menus as $key => $ma){
  408.                 $menus[$key]->setPage($apiPages->findOneBy(array("lang" => $langSelect->getCod(), "groupPage" => $ma->getPage()->getGroupPage(), "status" => 1)));
  409.             }
  410.         }
  411.         
  412.         $page $apiPages->findOneBy(array("slug" => $slug));
  413.         $texts $textosRepo->getTextosByLang($langSelect->getCod());
  414.         $descriptions $agencyDescriptionsRepo->getDescriptionsByLang($langSelect->getCod());
  415.         
  416.         // dd($slug);
  417.         if(!$page){
  418.             if($langSelect->getCod() != $langDefault->getCod()){
  419.                 $page $apiPages->findOneBy(array("lang" => $langSelect->getCod(), "groupPage" => $page->getGroupPage()));
  420.             }
  421.         }
  422.         $pagesGroup null;
  423.         if($page){
  424.             $pagesGroup $apiPages->findBy(array("groupPage" => $page->getGroupPage(), "status" => 1));
  425.             $page $apiPages->findOneBy(array("groupPage" => $page->getGroupPage(), "status" => 1"lang" => $langSelect->getCod()));
  426.             
  427.             if($preview == && $this->getUser()){
  428.                 if($page->getSlug() == ""){
  429.                     if($slugPreview){
  430.                         $page->setStrHtml($request->getSession()->get("urlPagePreview-".$slugPreview));
  431.                         $page->setJsonBack($request->getSession()->get("urlPagePreviewJson-".$slugPreview));
  432.                     }else{
  433.                         $page->setStrHtml($request->getSession()->get("urlPagePreview-"));
  434.                         $page->setJsonBack($request->getSession()->get("urlPagePreviewJson-"));
  435.                     }
  436.                 }else{
  437.                     $page->setStrHtml($request->getSession()->get("urlPagePreview-".$page->getId()));
  438.                     $page->setJsonBack($request->getSession()->get("urlPagePreviewJson-".$page->getId()));
  439.                 }
  440.             }
  441.             
  442.             //highlights
  443.             if(strpos($page->getStrHtml(), "[section-highlights]") !== false){
  444.     
  445.                 $curl curl_init();
  446.     
  447.                 curl_setopt_array($curl, array(
  448.                 CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/highlights/'.$langSelect->getCod().'/4',
  449.                 CURLOPT_RETURNTRANSFER => true,
  450.                 CURLOPT_ENCODING => '',
  451.                 CURLOPT_MAXREDIRS => 10,
  452.                 CURLOPT_TIMEOUT => 0,
  453.                 CURLOPT_FOLLOWLOCATION => true,
  454.                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  455.                 CURLOPT_CUSTOMREQUEST => 'GET',
  456.                 ));
  457.     
  458.                 $response curl_exec($curl);
  459.     
  460.                 curl_close($curl);
  461.                 if($response){
  462.                     $response json_decode($response);
  463.                     $page->setStrHtml(str_replace("[section-highlights]"$response$page->getStrHtml()));
  464.                 }
  465.             }
  466.     
  467.             //searcher
  468.             if(strpos($page->getStrHtml(), "[section-searcher]") !== false){
  469.     
  470.                 $curl curl_init();
  471.     
  472.                 curl_setopt_array($curl, array(
  473.                 CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
  474.                 CURLOPT_RETURNTRANSFER => true,
  475.                 CURLOPT_ENCODING => '',
  476.                 CURLOPT_MAXREDIRS => 10,
  477.                 CURLOPT_TIMEOUT => 0,
  478.                 CURLOPT_FOLLOWLOCATION => true,
  479.                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  480.                 CURLOPT_CUSTOMREQUEST => 'GET',
  481.                 ));
  482.     
  483.                 $response curl_exec($curl);
  484.     
  485.                 curl_close($curl);
  486.                 if($response){
  487.                     $response json_decode($response);
  488.                     $page->setStrHtml(str_replace("[section-searcher]"$response$page->getStrHtml()));
  489.                 }
  490.             }
  491.     
  492.             //last-properties
  493.             if(strpos($page->getStrHtml(), "[section-last-properties]") !== false){
  494.     
  495.                 $curl curl_init();
  496.     
  497.                 curl_setopt_array($curl, array(
  498.                 CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/lastProperties/'.$langSelect->getCod().'/4',
  499.                 CURLOPT_RETURNTRANSFER => true,
  500.                 CURLOPT_ENCODING => '',
  501.                 CURLOPT_MAXREDIRS => 10,
  502.                 CURLOPT_TIMEOUT => 0,
  503.                 CURLOPT_FOLLOWLOCATION => true,
  504.                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  505.                 CURLOPT_CUSTOMREQUEST => 'GET',
  506.                 ));
  507.     
  508.                 $response curl_exec($curl);
  509.                 curl_close($curl);
  510.                 if($response){
  511.                     $response json_decode($response);
  512.                     $page->setStrHtml(str_replace("[section-last-properties]"$response$page->getStrHtml()));
  513.                 }
  514.             }
  515.     
  516.             //last-properties
  517.             if(strpos($page->getStrHtml(), "[section-last-properties-rent]") !== false){
  518.     
  519.                 $curl curl_init();
  520.     
  521.                 curl_setopt_array($curl, array(
  522.                 CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/lastPropertiesRent/'.$langSelect->getCod().'/4',
  523.                 CURLOPT_RETURNTRANSFER => true,
  524.                 CURLOPT_ENCODING => '',
  525.                 CURLOPT_MAXREDIRS => 10,
  526.                 CURLOPT_TIMEOUT => 0,
  527.                 CURLOPT_FOLLOWLOCATION => true,
  528.                 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  529.                 CURLOPT_CUSTOMREQUEST => 'GET',
  530.                 ));
  531.     
  532.                 $response curl_exec($curl);
  533.                 curl_close($curl);
  534.                 if($response){
  535.                     $response json_decode($response);
  536.                     $page->setStrHtml(str_replace("[section-last-properties-rent]"$response$page->getStrHtml()));
  537.                 }
  538.             }
  539.             
  540.             //home
  541.             if(strpos($page->getStrHtml(), "[section-home]") !== false){
  542.                 $jsonBack json_decode($page->getJsonBack());
  543.                 $page->setStrHtml(str_replace("[section-home]"""$page->getStrHtml()));
  544.                 foreach($jsonBack as $object){
  545.                     if($object->id == "home"){
  546.                         if(property_exists($object"valueJSON")){
  547.                             $valueJSON = (array) $object->valueJSON;
  548.                             $modulesController = new ModulesController;
  549.                             switch($valueJSON["theme"]){
  550.                                 case 'homemap':
  551.                                     $properties null;
  552.                                     $curl curl_init();
  553.                                     curl_setopt_array($curl, array(
  554.                                         CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/homemap/'.$langSelect->getCod(),
  555.                                         CURLOPT_RETURNTRANSFER => true,
  556.                                         CURLOPT_ENCODING => '',
  557.                                         CURLOPT_MAXREDIRS => 10,
  558.                                         CURLOPT_TIMEOUT => 0,
  559.                                         CURLOPT_FOLLOWLOCATION => true,
  560.                                         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  561.                                         CURLOPT_CUSTOMREQUEST => 'GET',
  562.                                     ));
  563.                         
  564.                                     $response curl_exec($curl);
  565.                                     curl_close($curl);
  566.                                     if($response){
  567.                                         $response json_decode($response);
  568.                                         $properties = (array) $response->data;
  569.                                     }
  570.                                     $curl curl_init();
  571.                                     $searchHtml "";
  572.                                     curl_setopt_array($curl, array(
  573.                                     CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
  574.                                     CURLOPT_RETURNTRANSFER => true,
  575.                                     CURLOPT_ENCODING => '',
  576.                                     CURLOPT_MAXREDIRS => 10,
  577.                                     CURLOPT_TIMEOUT => 0,
  578.                                     CURLOPT_FOLLOWLOCATION => true,
  579.                                     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  580.                                     CURLOPT_CUSTOMREQUEST => 'GET',
  581.                                     ));
  582.                         
  583.                                     $response curl_exec($curl);
  584.                         
  585.                                     curl_close($curl);
  586.                                     if($response){
  587.                                         $response json_decode($response);
  588.                                         $searchHtml $response;
  589.                                     }
  590.                                     
  591.                                     return $this->render('main/front/themes/homemap.html.twig', [
  592.                                         "theme" => "homemap",
  593.                                         "searchHtml" => $searchHtml,
  594.                                         "result_compra" => $properties["result_compra"],
  595.                                         "result_destacats" => $properties["result_destacats"],
  596.                                         "result_alquiler" => $properties["result_alquiler"],
  597.                                         "array_json" => json_encode($properties["array_json"]),
  598.                                         "menus" => $menus,
  599.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  600.                                         "langs" => $langs,
  601.                                         "lang" => $langSelect,
  602.                                         "agency" => $agency,
  603.                                         "page" => $page,
  604.                                         "texts" => $texts,
  605.                                         "key_maps" => $_ENV["KEY_GOOGLEMAPS"],
  606.                                         "descriptions" =>  $descriptions,
  607.                                         "pagesGroup" => $pagesGroup,
  608.                                         "actualPage" => ($slug != "")?$slug "",
  609.                                         "slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
  610.                                     ]);
  611.                                     break;
  612.                                 case 'superprop':
  613.                                     $properties null;
  614.                                     $curl curl_init();
  615.                                     curl_setopt_array($curl, array(
  616.                                         CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/superprop/'.$langSelect->getCod(),
  617.                                         CURLOPT_RETURNTRANSFER => true,
  618.                                         CURLOPT_ENCODING => '',
  619.                                         CURLOPT_MAXREDIRS => 10,
  620.                                         CURLOPT_TIMEOUT => 0,
  621.                                         CURLOPT_FOLLOWLOCATION => true,
  622.                                         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  623.                                         CURLOPT_CUSTOMREQUEST => 'GET',
  624.                                     ));
  625.                         
  626.                                     $response curl_exec($curl);
  627.                                     curl_close($curl);
  628.                                     if($response){
  629.                                         $response json_decode($response);
  630.                                         $properties = (array) $response->data;
  631.                                     }
  632.                                     $curl curl_init();
  633.                                     $searchHtml "";
  634.                                     curl_setopt_array($curl, array(
  635.                                     CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
  636.                                     CURLOPT_RETURNTRANSFER => true,
  637.                                     CURLOPT_ENCODING => '',
  638.                                     CURLOPT_MAXREDIRS => 10,
  639.                                     CURLOPT_TIMEOUT => 0,
  640.                                     CURLOPT_FOLLOWLOCATION => true,
  641.                                     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  642.                                     CURLOPT_CUSTOMREQUEST => 'GET',
  643.                                     ));
  644.                         
  645.                                     $response curl_exec($curl);
  646.                         
  647.                                     curl_close($curl);
  648.                                     if($response){
  649.                                         $response json_decode($response);
  650.                                         $searchHtml $response;
  651.                                     }
  652.                                     
  653.                                     return $this->render('main/front/themes/superprop.html.twig', [
  654.                                         "theme" => "superprop",
  655.                                         "result_compra" => $properties["result_compra"],
  656.                                         "result_random" => $properties["result_random"],
  657.                                         "result_alquiler" => $properties["result_alquiler"],
  658.                                         "menus" => $menus,
  659.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  660.                                         "langs" => $langs,
  661.                                         "lang" => $langSelect,
  662.                                         "agency" => $agency,
  663.                                         "page" => $page,
  664.                                         "texts" => $texts,
  665.                                         "searchHtml" => $searchHtml,
  666.                                         "descriptions" =>  $descriptions,
  667.                                         "pagesGroup" => $pagesGroup,
  668.                                         "actualPage" => ($slug != "")?$slug ""
  669.                                     ]);
  670.                                     break;
  671.                                 case 'agency':
  672.                                     $properties null;
  673.                                     $curl curl_init();
  674.                                     curl_setopt_array($curl, array(
  675.                                         CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/agency/'.$langSelect->getCod(),
  676.                                         CURLOPT_RETURNTRANSFER => true,
  677.                                         CURLOPT_ENCODING => '',
  678.                                         CURLOPT_MAXREDIRS => 10,
  679.                                         CURLOPT_TIMEOUT => 0,
  680.                                         CURLOPT_FOLLOWLOCATION => true,
  681.                                         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  682.                                         CURLOPT_CUSTOMREQUEST => 'GET',
  683.                                     ));
  684.                         
  685.                                     $response curl_exec($curl);
  686.                                     curl_close($curl);
  687.                                     if($response){
  688.                                         $response json_decode($response);
  689.                                         $properties = (array) $response->data;
  690.                                     }
  691.                                     
  692.                                     return $this->render('main/front/themes/agency.html.twig', [
  693.                                         "theme" => "agency",
  694.                                         "result" => $properties["result"],
  695.                                         "result_compra" => $properties["result_compra"],
  696.                                         "result_destacats" => $properties["result_destacats"],
  697.                                         "result_alquiler" => $properties["result_alquiler"],
  698.                                         "menus" => $menus,
  699.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  700.                                         "langs" => $langs,
  701.                                         "lang" => $langSelect,
  702.                                         "agency" => $agency,
  703.                                         "page" => $page,
  704.                                         "texts" => $texts,
  705.                                         "descriptions" =>  $descriptions,
  706.                                         "pagesGroup" => $pagesGroup,
  707.                                         "actualPage" => ($slug != "")?$slug "",
  708.                                         "slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findBy(array(), array("norder" => "ASC")))
  709.                                     ]);
  710.                                     break;
  711.                                 case 'portal':
  712.                                     $properties null;
  713.                                     $curl curl_init();
  714.                                     curl_setopt_array($curl, array(
  715.                                         CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/portal/'.$langSelect->getCod(),
  716.                                         CURLOPT_RETURNTRANSFER => true,
  717.                                         CURLOPT_ENCODING => '',
  718.                                         CURLOPT_MAXREDIRS => 10,
  719.                                         CURLOPT_TIMEOUT => 0,
  720.                                         CURLOPT_FOLLOWLOCATION => true,
  721.                                         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  722.                                         CURLOPT_CUSTOMREQUEST => 'GET',
  723.                                     ));
  724.                         
  725.                                     $response curl_exec($curl);
  726.                                     curl_close($curl);
  727.                                     if($response){
  728.                                         $response json_decode($response);
  729.                                         $properties = (array) $response->data;
  730.                                     }
  731.                                     $curl curl_init();
  732.                                     $searchHtml "";
  733.                                     curl_setopt_array($curl, array(
  734.                                     CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
  735.                                     CURLOPT_RETURNTRANSFER => true,
  736.                                     CURLOPT_ENCODING => '',
  737.                                     CURLOPT_MAXREDIRS => 10,
  738.                                     CURLOPT_TIMEOUT => 0,
  739.                                     CURLOPT_FOLLOWLOCATION => true,
  740.                                     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  741.                                     CURLOPT_CUSTOMREQUEST => 'GET',
  742.                                     ));
  743.                         
  744.                                     $response curl_exec($curl);
  745.                         
  746.                                     curl_close($curl);
  747.                                     if($response){
  748.                                         $response json_decode($response);
  749.                                         $searchHtml $response;
  750.                                     }
  751.                                     
  752.                                     return $this->render('main/front/themes/portal.html.twig', [
  753.                                         "theme" => "portal",
  754.                                         "result" => $properties["result"],
  755.                                         "result_compra" => $properties["result_compra"],
  756.                                         "result_destacats" => $properties["result_destacats"],
  757.                                         "result_alquiler" => $properties["result_alquiler"],
  758.                                         "menus" => $menus,
  759.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  760.                                         "langs" => $langs,
  761.                                         "lang" => $langSelect,
  762.                                         "agency" => $agency,
  763.                                         "page" => $page,
  764.                                         "texts" => $texts,
  765.                                         "searchHtml" => $searchHtml,
  766.                                         "descriptions" =>  $descriptions,
  767.                                         "pagesGroup" => $pagesGroup,
  768.                                         "actualPage" => ($slug != "")?$slug "",
  769.                                         "slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findBy(array(), array("norder" => "ASC")))
  770.                                     ]);
  771.                                     break;
  772.                                 case 'agent':
  773.                                     return $this->render('main/front/themes/agent.html.twig', [
  774.                                         "theme" => "agent",
  775.                                         "menus" => $menus,
  776.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  777.                                         "langs" => $langs,
  778.                                         "lang" => $langSelect,
  779.                                         "agency" => $agency,
  780.                                         "page" => $page,
  781.                                         "texts" => $texts,
  782.                                         "descriptions" =>  $descriptions,
  783.                                         "pagesGroup" => $pagesGroup,
  784.                                         "actualPage" => ($slug != "")?$slug "",
  785.                                         "agent" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencyHomeAgent::class)->findOneBy(array("lang" => $langSelect->getCod())))
  786.                                     ]);
  787.                                     break;
  788.                                 case 'corporate':
  789.                                     $pages $this->container->get('serializer')->normalize($em->getRepository(ApiPages::class)->findBy(array("lang" => $langSelect->getCod())));
  790.                                     $listPages = array();
  791.                                     foreach($pages as $p){
  792.                                         $listPages[$p["slug"]] = $p["title"];
  793.                                     }
  794.                                     return $this->render('main/front/themes/corporate.html.twig', [
  795.                                         "menus" => $menus,
  796.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  797.                                         "langs" => $langs,
  798.                                         "lang" => $langSelect,
  799.                                         "agency" => $agency,
  800.                                         "page" => $page,
  801.                                         "texts" => $texts,
  802.                                         "descriptions" =>  $descriptions,
  803.                                         "pagesGroup" => $pagesGroup,
  804.                                         "actualPage" => ($slug != "")?$slug "",
  805.                                         "corporate" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencyHomeImage::class)->findOneBy(array())),
  806.                                         "listPages" => $listPages
  807.                                     ]);
  808.                                     break;
  809.                                 case 'geoloc':
  810.                                     $properties null;
  811.                                     $curl curl_init();
  812.                                     curl_setopt_array($curl, array(
  813.                                         CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/geoloc/'.$langSelect->getCod(),
  814.                                         CURLOPT_RETURNTRANSFER => true,
  815.                                         CURLOPT_ENCODING => '',
  816.                                         CURLOPT_MAXREDIRS => 10,
  817.                                         CURLOPT_TIMEOUT => 0,
  818.                                         CURLOPT_FOLLOWLOCATION => true,
  819.                                         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  820.                                         CURLOPT_CUSTOMREQUEST => 'GET',
  821.                                     ));
  822.                         
  823.                                     $response curl_exec($curl);
  824.                                     curl_close($curl);
  825.                                     if($response){
  826.                                         $response json_decode($response);
  827.                                         $properties = (array) $response->data;
  828.                                     }
  829.                                     $curl curl_init();
  830.                                     $searchHtml "";
  831.                                     curl_setopt_array($curl, array(
  832.                                     CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher2/'.$langSelect->getCod(),
  833.                                     CURLOPT_RETURNTRANSFER => true,
  834.                                     CURLOPT_ENCODING => '',
  835.                                     CURLOPT_MAXREDIRS => 10,
  836.                                     CURLOPT_TIMEOUT => 0,
  837.                                     CURLOPT_FOLLOWLOCATION => true,
  838.                                     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  839.                                     CURLOPT_CUSTOMREQUEST => 'GET',
  840.                                     ));
  841.                         
  842.                                     $response curl_exec($curl);
  843.                         
  844.                                     curl_close($curl);
  845.                                     if($response){
  846.                                         $response json_decode($response);
  847.                                         $searchHtml $response;
  848.                                     }
  849.                                     
  850.                                     return $this->render('main/front/themes/geoloc.html.twig', [
  851.                                         "theme" => "geoloc",
  852.                                         "result" => $properties["result"],
  853.                                         "result_random" => $properties["result_random"],
  854.                                         "searchHtml" => $searchHtml,
  855.                                         "menus" => $menus,
  856.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  857.                                         "langs" => $langs,
  858.                                         "lang" => $langSelect,
  859.                                         "agency" => $agency,
  860.                                         "page" => $page,
  861.                                         "texts" => $texts,
  862.                                         "descriptions" =>  $descriptions,
  863.                                         "pagesGroup" => $pagesGroup,
  864.                                         "actualPage" => ($slug != "")?$slug "",
  865.                                         "slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
  866.                                     ]);
  867.                                     break;
  868.                                 case 'lateralscroll':
  869.                                     $properties null;
  870.                                     $curl curl_init();
  871.                                     
  872.                                     curl_setopt_array($curl, array(
  873.                                         CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/lateralscroll/'.$langSelect->getCod(),
  874.                                         CURLOPT_RETURNTRANSFER => true,
  875.                                         CURLOPT_ENCODING => '',
  876.                                         CURLOPT_MAXREDIRS => 10,
  877.                                         CURLOPT_TIMEOUT => 0,
  878.                                         CURLOPT_FOLLOWLOCATION => true,
  879.                                         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  880.                                         CURLOPT_CUSTOMREQUEST => 'GET',
  881.                                     ));
  882.                         
  883.                                     $response curl_exec($curl);
  884.                                     curl_close($curl);
  885.                                     if($response){
  886.                                         $response json_decode($response);
  887.                                         $properties = (array) $response->data;
  888.                                     }
  889.                                     $curl curl_init();
  890.                                     $searchHtml "";
  891.                                     curl_setopt_array($curl, array(
  892.                                     CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher3/'.$langSelect->getCod(),
  893.                                     CURLOPT_RETURNTRANSFER => true,
  894.                                     CURLOPT_ENCODING => '',
  895.                                     CURLOPT_MAXREDIRS => 10,
  896.                                     CURLOPT_TIMEOUT => 0,
  897.                                     CURLOPT_FOLLOWLOCATION => true,
  898.                                     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  899.                                     CURLOPT_CUSTOMREQUEST => 'GET',
  900.                                     ));
  901.                         
  902.                                     $response curl_exec($curl);
  903.                         
  904.                                     curl_close($curl);
  905.                                     if($response){
  906.                                         $response json_decode($response);
  907.                                         $searchHtml $response;
  908.                                     }
  909.                                     
  910.                                     return $this->render('main/front/themes/lateralscroll.html.twig', [
  911.                                         "theme" => "lateralscroll",
  912.                                         "result_destacats" => $properties["result_destacats"],
  913.                                         "result_random" => $properties["result_random"],
  914.                                         "searchHtml" => $searchHtml,
  915.                                         "menus" => $menus,
  916.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  917.                                         "langs" => $langs,
  918.                                         "lang" => $langSelect,
  919.                                         "agency" => $agency,
  920.                                         "page" => $page,
  921.                                         "texts" => $texts,
  922.                                         "descriptions" =>  $descriptions,
  923.                                         "pagesGroup" => $pagesGroup,
  924.                                         "actualPage" => ($slug != "")?$slug "",
  925.                                         "slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
  926.                                     ]);
  927.                                     break;
  928.                                 case 'megaimage':
  929.                                     $curl curl_init();
  930.                                     $searchHtml "";
  931.                                     curl_setopt_array($curl, array(
  932.                                     CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
  933.                                     CURLOPT_RETURNTRANSFER => true,
  934.                                     CURLOPT_ENCODING => '',
  935.                                     CURLOPT_MAXREDIRS => 10,
  936.                                     CURLOPT_TIMEOUT => 0,
  937.                                     CURLOPT_FOLLOWLOCATION => true,
  938.                                     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  939.                                     CURLOPT_CUSTOMREQUEST => 'GET',
  940.                                     ));
  941.                         
  942.                                     $response curl_exec($curl);
  943.                         
  944.                                     curl_close($curl);
  945.                                     if($response){
  946.                                         $response json_decode($response);
  947.                                         $searchHtml $response;
  948.                                     }
  949.                                     
  950.                                     return $this->render('main/front/themes/megaimage.html.twig', [
  951.                                         "theme" => "megaimage",
  952.                                         "searchHtml" => $searchHtml,
  953.                                         "menus" => $menus,
  954.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  955.                                         "langs" => $langs,
  956.                                         "lang" => $langSelect,
  957.                                         "agency" => $agency,
  958.                                         "page" => $page,
  959.                                         "texts" => $texts,
  960.                                         "descriptions" =>  $descriptions,
  961.                                         "pagesGroup" => $pagesGroup,
  962.                                         "actualPage" => ($slug != "")?$slug "",
  963.                                         "slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
  964.                                     ]);
  965.                                     break;
  966.                                 case 'megascroll':
  967.                                     $properties null;
  968.                                     $curl curl_init();
  969.                                     curl_setopt_array($curl, array(
  970.                                         CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/megascroll/'.$langSelect->getCod(),
  971.                                         CURLOPT_RETURNTRANSFER => true,
  972.                                         CURLOPT_ENCODING => '',
  973.                                         CURLOPT_MAXREDIRS => 10,
  974.                                         CURLOPT_TIMEOUT => 0,
  975.                                         CURLOPT_FOLLOWLOCATION => true,
  976.                                         CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  977.                                         CURLOPT_CUSTOMREQUEST => 'GET',
  978.                                     ));
  979.                         
  980.                                     $response curl_exec($curl);
  981.                                     curl_close($curl);
  982.                                     if($response){
  983.                                         $response json_decode($response);
  984.                                         $properties = (array) $response->data;
  985.                                     }
  986.                                     $curl curl_init();
  987.                                     $searchHtml "";
  988.                                     curl_setopt_array($curl, array(
  989.                                     CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
  990.                                     CURLOPT_RETURNTRANSFER => true,
  991.                                     CURLOPT_ENCODING => '',
  992.                                     CURLOPT_MAXREDIRS => 10,
  993.                                     CURLOPT_TIMEOUT => 0,
  994.                                     CURLOPT_FOLLOWLOCATION => true,
  995.                                     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  996.                                     CURLOPT_CUSTOMREQUEST => 'GET',
  997.                                     ));
  998.                         
  999.                                     $response curl_exec($curl);
  1000.                         
  1001.                                     curl_close($curl);
  1002.                                     if($response){
  1003.                                         $response json_decode($response);
  1004.                                         $searchHtml $response;
  1005.                                     }
  1006.                                     
  1007.                                     return $this->render('main/front/themes/megascroll.html.twig', [
  1008.                                         "theme" => "megascroll",
  1009.                                         "result_compra" => $properties["result_compra"],
  1010.                                         "result_destacats" => $properties["result_destacats"],
  1011.                                         "result_alquiler" => $properties["result_alquiler"],
  1012.                                         "searchHtml" => $searchHtml,
  1013.                                         "menus" => $menus,
  1014.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  1015.                                         "langs" => $langs,
  1016.                                         "lang" => $langSelect,
  1017.                                         "agency" => $agency,
  1018.                                         "page" => $page,
  1019.                                         "texts" => $texts,
  1020.                                         "descriptions" =>  $descriptions,
  1021.                                         "pagesGroup" => $pagesGroup,
  1022.                                         "actualPage" => ($slug != "")?$slug "",
  1023.                                         "slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
  1024.                                     ]);
  1025.                                     break;
  1026.                                 case 'onepage':
  1027.                                     return $this->render('main/front/themes/onepage.html.twig', [
  1028.                                         "theme" => "onepage",
  1029.                                         "menus" => $menus,
  1030.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  1031.                                         "langs" => $langs,
  1032.                                         "lang" => $langSelect,
  1033.                                         "agency" => $agency,
  1034.                                         "page" => $page,
  1035.                                         "texts" => $texts,
  1036.                                         "descriptions" =>  $descriptions,
  1037.                                         "pagesGroup" => $pagesGroup,
  1038.                                         "actualPage" => ($slug != "")?$slug "",
  1039.                                         "onepage" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencyHomeOnepage::class)->findOneBy(array("lang" => $langSelect->getCod())))
  1040.                                     ]);
  1041.                                     break;
  1042.                                 case 'tabbuscador':
  1043.                                     $curl curl_init();
  1044.                                     $searchHtml "";
  1045.                                     curl_setopt_array($curl, array(
  1046.                                     CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher3/'.$langSelect->getCod(),
  1047.                                     CURLOPT_RETURNTRANSFER => true,
  1048.                                     CURLOPT_ENCODING => '',
  1049.                                     CURLOPT_MAXREDIRS => 10,
  1050.                                     CURLOPT_TIMEOUT => 0,
  1051.                                     CURLOPT_FOLLOWLOCATION => true,
  1052.                                     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  1053.                                     CURLOPT_CUSTOMREQUEST => 'GET',
  1054.                                     ));
  1055.                         
  1056.                                     $response curl_exec($curl);
  1057.                         
  1058.                                     curl_close($curl);
  1059.                                     if($response){
  1060.                                         $response json_decode($response);
  1061.                                         $searchHtml $response;
  1062.                                     }
  1063.                                     
  1064.                                     return $this->render('main/front/themes/tabbuscador.html.twig', [
  1065.                                         "theme" => "tabbuscador",
  1066.                                         "searchHtml" => $searchHtml,
  1067.                                         "menus" => $menus,
  1068.                                         "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  1069.                                         "langs" => $langs,
  1070.                                         "lang" => $langSelect,
  1071.                                         "agency" => $agency,
  1072.                                         "page" => $page,
  1073.                                         "texts" => $texts,
  1074.                                         "descriptions" =>  $descriptions,
  1075.                                         "pagesGroup" => $pagesGroup,
  1076.                                         "actualPage" => ($slug != "")?$slug "",
  1077.                                         "slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
  1078.                                     ]);
  1079.                                     break;
  1080.                             }
  1081.                         }
  1082.                         break;
  1083.                     }
  1084.                 }
  1085.             }
  1086.         }
  1087.         // $strHtml = '';
  1088.         // if($preview){
  1089.         //     $strHtml = $request->getSession()->get("previewContent");
  1090.         // }
  1091.             // dd($menus);
  1092.             // dd($descriptions);
  1093.         return $this->render('main/front/index.html.twig', [
  1094.             "menus" => $menus,
  1095.             "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  1096.             "langs" => $langs,
  1097.             "lang" => $langSelect,
  1098.             "agency" => $agency,
  1099.             "page" => $page,
  1100.             "texts" => $texts,
  1101.             "textsEncoded" => json_encode($texts),
  1102.             "descriptions" =>  $descriptions,
  1103.             "pagesGroup" => $pagesGroup,
  1104.             "actualPage" => ($slug != "")?$slug "",
  1105.             // "preview" => $preview,
  1106.             // "strHtml" => $strHtml
  1107.         ]);
  1108.     }
  1109.     /**
  1110.      * @Route("/newsletter/add", name="add_newsletter", methods={"POST"})
  1111.      * 
  1112.      */
  1113.     public function newsletterAdd(Request $requestManagerRegistry $doctrine): Response
  1114.     {
  1115.         $result 0;
  1116.         $message "";
  1117.         if (!empty($request->getContent())) {
  1118.             $post = (array) json_decode($request->getContent());
  1119.             if (count($post) == 0) {
  1120.                 $post = (array) $request->request->all();
  1121.             }
  1122.         } else {
  1123.             $post = (array) $request->request->all();
  1124.         }
  1125.         if (isset($post["email"])) {
  1126.             $em $this->getDoctrine()->getManager();
  1127.             $apiAgencyNewsletterRepo $em->getRepository(ApiAgencyNewsletter::class);
  1128.             $an $apiAgencyNewsletterRepo->findBy(array("mail" => $post["email"]));
  1129.             if($an){
  1130.                 $result 2;
  1131.             }else{
  1132.                 try{
  1133.                     $an = new ApiAgencyNewsletter();
  1134.                     $an->setMail($post["email"]);
  1135.                     $an->setActive(1);
  1136.                     $em->persist($an);
  1137.                     $em->flush();
  1138.                     $result 1;
  1139.                 }catch(\Exception $e){
  1140.                     $result 3;
  1141.                     $message $e->getMessage(). " -- ".$e->getLine();
  1142.                 }
  1143.             }
  1144.         }else{
  1145.             $result 4;
  1146.         }
  1147.         return new JsonResponse([
  1148.             "status" => "success",
  1149.             "data" => $result,
  1150.             "message" => $message
  1151.         ] , Response::HTTP_OK);
  1152.     }
  1153.     /**
  1154.      * @Route("/poblaciones", name="get_poblaciones", methods={"POST"})
  1155.      * 
  1156.      */
  1157.     public function poblaciones(Request $requestManagerRegistry $doctrine): Response
  1158.     {
  1159.         $result "";
  1160.         if (!empty($request->getContent())) {
  1161.             $post = (array) json_decode($request->getContent());
  1162.             if (count($post) == 0) {
  1163.                 $post = (array) $request->request->all();
  1164.             }
  1165.         } else {
  1166.             $post = (array) $request->request->all();
  1167.         }
  1168.         $em $this->getDoctrine()->getManager();
  1169.         $tipusOperacioRepo $em->getRepository(TipusOperacio::class);
  1170.         $apiPropertySuperTypeRepo $em->getRepository(ApiPropertiesSupertype::class);
  1171.         $apiPropertiesRepo $em->getRepository(ApiProperties::class);
  1172.         $apiAgencyRepo $em->getRepository(ApiAgency::class);
  1173.         $apiProvincesRepo $em->getRepository(ApiProvinces::class);
  1174.         $apiLocationsRepo $em->getRepository(ApiLocations::class);
  1175.         $codeLang $this->getCodLang($post["lang"]);
  1176.         $texts $em->getRepository(Textos::class)->getTextosByLang($post["lang"]);
  1177.         $provincia stripslashes($post["provincia"]);
  1178.         $operacio $tipusOperacioRepo->get_by_name($post["lang"], $post["operacion"]);
  1179.         $supertipo $apiPropertySuperTypeRepo->get_by_name($post["supertipus"], $codeLang );
  1180.         $agency $apiAgencyRepo->findOneBy(array());
  1181.         $default_list_properties explode('/',$agency->getDefaultListProperties());
  1182.         if (!empty($provincia)) {
  1183.             $id_provincia $apiProvincesRepo->get_by_name($provincia);
  1184.             $poblacions_order_1 $apiLocationsRepo->get_by_province_by_order($id_provincia1);
  1185.             $poblacions_order_0 $apiLocationsRepo->get_by_province_by_order($id_provincia0);
  1186.             $apiPropertiesRepo->operacio      $operacio;
  1187.             $apiPropertiesRepo->supertipus     $supertipo;
  1188.             $apiPropertiesRepo->provincia     $id_provincia;
  1189.             $apiPropertiesRepo->addCensados true;
  1190.             $apiPropertiesRepo->lang $codeLang;
  1191.             $zona1 '';
  1192.             $firstloop  true;
  1193.             foreach ($poblacions_order_1 as $poblacio) {
  1194.                 $apiPropertiesRepo->localitat $poblacio['id'];                    
  1195.                 $total_immobles $apiPropertiesRepo->get_all_count();
  1196.                 if($total_immobles 0) {
  1197.                     $selected = ( ( $firstloop == true && !isset($default_list_properties[3])) || ( isset($default_list_properties[3]) && $default_list_properties[3] == $poblacio['friendly']))
  1198.                         ? 'selected="selected"'
  1199.                         '';
  1200.                     $zona1 .= '<option value="' $poblacio['friendly'] . '" ' $selected ' >' ucfirst(mb_strtolower($poblacio['name'], 'UTF-8')) . ' (' number_format($total_immobles0',''.') . ') </option>';
  1201.                     $firstloop  false;
  1202.                 }
  1203.             }
  1204.             $zona0 '';
  1205.             foreach ($poblacions_order_0 as $poblacio) {
  1206.                 $apiPropertiesRepo->localitat $poblacio['id'];        
  1207.                 $total_immobles     $apiPropertiesRepo->get_all_count();
  1208.                 if($total_immobles 0) {
  1209.                     $selected = ( ( $firstloop == true && !isset($default_list_properties[3])) || ( isset($default_list_properties[3]) && $default_list_properties[3] == $poblacio['friendly']))
  1210.                         ? 'selected="selected"'
  1211.                         '';
  1212.                     $zona0 .= '<option value="' $poblacio['friendly'] . '" ' $selected ' >' ucfirst(mb_strtolower($poblacio['name'], 'UTF-8')) . ' (' number_format($total_immobles0',''.') . ') </option>';
  1213.                     $firstloop  false;
  1214.                 }
  1215.             }
  1216.             if($zona1 && $zona0)
  1217.                 $result .= '<optgroup>'.$zona1.'</optgroup><optgroup>'.$zona0.'</optgroup>';
  1218.             else if(!$zona1 && !$zona0)
  1219.                 $result .=  '<option value="">'.$texts['no_result'].'</option>';
  1220.             else
  1221.                 $result .=  $zona1.$zona0;
  1222.         }
  1223.         return new JsonResponse([
  1224.             "status" => "success",
  1225.             "data" => $result,
  1226.         ] , Response::HTTP_OK);
  1227.     }
  1228.     /**
  1229.      * RECUPERAMOS EL CODIGO DEL IDIOMA A TRAVÉS DE LA VARIABLE LANG (SHORT)
  1230.      */
  1231.     public function getCodLang($lang)
  1232.     {
  1233.         switch($lang):
  1234.             case 'ca':
  1235.                 $cod_lang 'ca_ES';
  1236.                 break;
  1237.             case 'es':
  1238.                 $cod_lang 'es_ES';
  1239.                 break;
  1240.             case 'en':
  1241.                 $cod_lang 'en_US';
  1242.                 break;
  1243.             case 'ru':
  1244.                 $cod_lang 'ru_RU';
  1245.                 break;
  1246.             case 'fr':
  1247.                 $cod_lang 'fr_FR';
  1248.                 break;
  1249.             case 'de':
  1250.                 $cod_lang 'de_DE';
  1251.                 break;
  1252.             case 'ch':
  1253.                 $cod_lang 'ch_CH';
  1254.                 break;
  1255.             case 'ar':
  1256.                 $cod_lang 'ar_AR';
  1257.                 break;
  1258.             default:
  1259.                 $cod_lang 'ca_ES';
  1260.         endswitch;
  1261.         return $cod_lang;
  1262.     }
  1263.     /**
  1264.      * @Route("/alert/save", name="alert_save", methods={"POST"})
  1265.      * 
  1266.      */
  1267.     public function alertSave(Request $requestManagerRegistry $doctrineSessionInterface $session): Response
  1268.     {
  1269.         $em $this->getDoctrine()->getManager();
  1270.         if (!empty($request->getContent())) {
  1271.             $post = (array) json_decode($request->getContent());
  1272.             if (count($post) == 0) {
  1273.                 $post = (array) $request->request->all();
  1274.             }
  1275.         } else {
  1276.             $post = (array) $request->request->all();
  1277.         }
  1278.         dd($post);
  1279.     }
  1280.     /**
  1281.      * @Route("/search/session", name="set_search_session", methods={"POST"})
  1282.      * 
  1283.      */
  1284.     public function searchSession(Request $requestManagerRegistry $doctrineSessionInterface $session): Response
  1285.     {   
  1286.         $em $this->getDoctrine()->getManager();
  1287.         if (!empty($request->getContent())) {
  1288.             $post = (array) json_decode($request->getContent());
  1289.             if (count($post) == 0) {
  1290.                 $post = (array) $request->request->all();
  1291.             }
  1292.         } else {
  1293.             $post = (array) $request->request->all();
  1294.         }
  1295.         $session->set("filters"$post["filters"]);
  1296.         $filters json_decode(base64_decode($post["filters"]));
  1297.         
  1298.         $filtres = array();
  1299.         if(count($filters) > 0){
  1300.             foreach($filters as $filter){
  1301.                 $filtres[$filter->name] = $filter->value;
  1302.             }
  1303.         }
  1304.         $url $this->validate_url($filtres'');
  1305.         return new JsonResponse([
  1306.             "status" => "success",
  1307.             "data" => $url
  1308.         ] , Response::HTTP_OK);
  1309.     }
  1310.     /**
  1311.      * @Route("/{lang}/{operacio}/{supertipus}/{province}/{locality}/{id}", name="detail_page", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)", "id" = "\d+" })
  1312.      * @Route("/{operacio}/{supertipus}/{province}/{locality}/{id}", name="detail_page_default", methods={"GET"}, requirements={"id" = "\d+", "operacio" = "^(?!modules)"})
  1313.      * 
  1314.      */
  1315.     public function detailPage(Request $requestManagerRegistry $doctrineSessionInterface $session$operacio$supertipus$province$locality$id$lang ""): Response
  1316.     {
  1317.         $em $doctrine->getManager();
  1318.         
  1319.         $textosRepo $em->getRepository(Textos::class);
  1320.         $apiAgencyLangRepo $em->getRepository(ApiAgencyLang::class);
  1321.         $apiPropertiesRepo $em->getRepository(ApiProperties::class);
  1322.         $apiPropertiesTypesI18nRepo $em->getRepository(ApiPropertiesTypesI18n::class);
  1323.         $apiPropertiesCertificatesImagesRepo $em->getRepository(ApiPropertiesCertificatesImages::class);
  1324.         $apiTipusOperacioRepo $em->getRepository(TipusOperacio::class);
  1325.         $apiLocationsGps $em->getRepository(ApiLocationsGps::class);
  1326.         $apiFeaturesRepo $em->getRepository(ApiFeatures::class);
  1327.         $apiZonesRepo $em->getRepository(ApiZones::class);
  1328.         $apiLocationsRepo $em->getRepository(ApiLocations::class);
  1329.         $apiProvincesRepo $em->getRepository(ApiProvinces::class);
  1330.         $apiAgencyRepo $em->getRepository(ApiAgency::class);
  1331.         $apiPropertiesI18nRepo $em->getRepository(ApiPropertiesI18n::class);
  1332.         $apiMenuRepo $em->getRepository(ApiMenu::class);
  1333.         $apiOrderPagesRepo $em->getRepository(ApiOrderpages::class);
  1334.         $apiPagesRepo $em->getRepository(ApiPages::class);
  1335.         $apiAgencyDescriptionsRepo $em->getRepository(ApiAgencyDescription::class);
  1336.         $menuGroup $apiMenuRepo->findOneBy(array());
  1337.         $menus = array();
  1338.         // $pagesGroup = $apiPagesRepo->findBy(array("groupPage" => $page->getGroupPage(), "status" => 1));
  1339.         $agency $apiAgencyRepo->findOneBy(array());
  1340.         $property $apiPropertiesRepo->findOneBy(array("id" => $id));
  1341.         $langs $apiAgencyLangRepo->findAll();
  1342.         $langPredeterminado $apiAgencyLangRepo->findOneBy(array("predeterminado" => 1));
  1343.         $lang $apiAgencyLangRepo->findOneBy(array("cod" => $lang));
  1344.         if(!$lang$lang $langPredeterminado;
  1345.         if($menuGroup){
  1346.             $menus $apiOrderPagesRepo->findBy(array("menu" => $menuGroup->getId()), array("order" => "ASC"));
  1347.             foreach($menus as $key => $ma){
  1348.                 $menus[$key]->setPage($apiPagesRepo->findOneBy(array("lang" => $lang->getCod(), "groupPage" => $ma->getPage()->getGroupPage())));
  1349.             }
  1350.         }
  1351.         // dd($menus);
  1352.         $texts $textosRepo->getTextosByLang($lang->getCod());
  1353.         
  1354.         $descriptionAgency $apiAgencyDescriptionsRepo->getDescriptionsByLang($lang->getCod());
  1355.         if($property){ //Comprovar la info
  1356.             //
  1357.             $traducciones $textosRepo->getBulkTextsByIdLang(array("hipoteca_en","fitxa_de""text_a""en_tramite"), $lang->getCod());
  1358.             //Imagen certificado
  1359.             $imagenCertificado $apiPropertiesCertificatesImagesRepo->getImageCertificate($property->getId());
  1360.             //Numero de fotos
  1361.             $total_fotos = array();
  1362.             for($i 1$i <= $property->getNumFotos(); $i++) {
  1363.                 $total_fotos[] = $_ENV["DOMINI_APIBCN_FOTOS"] . "fotos" round($property->getId() / 20000) . "/" $property->getId() . "/foto_" $i ".jpg";
  1364.             }
  1365.             //Geolocalizacion
  1366.             $geolocation $apiLocationsGps->findOneBy(array("glat" => $property->getGlat(), "glon" => $property->getGlon()));
  1367.             
  1368.             //Features
  1369.             $features $apiFeaturesRepo->get_name($property->getId(),$lang->getCod().'_'.mb_strtoupper($lang->getCod()));
  1370.             
  1371.             $certificadoFeatures $apiFeaturesRepo->get_certificate_value($property->getId(),$lang->getCod().'_'.mb_strtoupper($lang->getCod()));
  1372.             foreach($certificadoFeatures as $key => $feature){
  1373.                 if(!isset($certificadoFeatures[$key]["value"]) || empty($certificadoFeatures[$key]["value"]) || !$certificadoFeatures[$key]["value"]){
  1374.                     $certificadoFeatures[$key]["value"] = $traducciones['en_tramite'];
  1375.                 } 
  1376.             }
  1377.             // dd($features);
  1378.             //Zona
  1379.             $zona $apiZonesRepo->findOneBy(array("id" => $property->getZona()));
  1380.             //Localidad
  1381.             $location $apiLocationsRepo->findOneBy(array("id" => $property->getLocalidad()));
  1382.             //Provincia
  1383.             $provincia $apiProvincesRepo->findOneBy(array("id" => $property->getProvincia()));
  1384.             $textAddress = ($property->getCodPostal() ? $property->getCodPostal() : '').', '.($location $location->getName() : '').', '.($provincia $provincia->getName() : '');
  1385.             $type $apiPropertiesTypesI18nRepo->findOneBy(array("id" => $property->getIdPropertiesType(), "codLang" => $lang->getCodComplete()));
  1386.     
  1387.             //Tipo Operacion
  1388.             if($property->isEsLloguerTemporada())
  1389.                 $codiTipu 7;
  1390.             elseif($property->isEsBanc())
  1391.                 $codiTipu 4;
  1392.             elseif($property->isObraNueva())
  1393.                 $codiTipu 3;
  1394.             elseif($property->isAlquiler())
  1395.                 $codiTipu 1;
  1396.             else
  1397.                 $codiTipu 2;
  1398.             //Tipo Operacion
  1399.             $tipusOp $apiTipusOperacioRepo->get_friendly_by_codi(mb_strtoupper($lang->getCod()), $codiTipu);
  1400.             //Superficie
  1401.             $m2 '';
  1402.             $metros $property->getSuperfConstr() ? $property->getSuperfConstr() : $property->getSuperfUtil();
  1403.             $metrosm2 Utilities::formatPropertyNumbers($metros,"m<sup>2</sup>");
  1404.             $m2 $traducciones["fitxa_de"]." ".$metrosm2;
  1405.     
  1406.             $texto_localidad '';
  1407.             $texto_provincia '';
  1408.             $texto_situacion ' ';
  1409.             if($location){
  1410.                 $texto_localidad ", ".$traducciones["hipoteca_en"]." ".$location->getName();
  1411.             }
  1412.             if($zona){
  1413.                 $texto_localidad .= ", ".$zona->getName();
  1414.             }
  1415.             if($provincia){
  1416.                 $texto_provincia ", ".$provincia->getName();
  1417.             }
  1418.             if($property->getSituacionConcreta()){
  1419.                 $texto_situacion $texto_situacion.$traducciones["hipoteca_en"].$texto_situacion.mb_strtolower($property->getSituacionConcreta());
  1420.             }
  1421.             //Titulo
  1422.             $title $type->getText()." ".$traducciones["hipoteca_en"]." ".$tipusOp." ".$m2.$texto_situacion.$texto_localidad.$texto_provincia;
  1423.             //Referencia
  1424.             $reference $property->getReferencia() ? $property->getReferencia() : $property->getId();
  1425.             //Precio
  1426.             $price 0;
  1427.             $priceM2 0;
  1428.             if($property->isEsSubhasta()){
  1429.                 $price Utilities::formatPropertyNumbers$property->getPrecioSubhasta(), '&euro;');
  1430.                 $priceM2 Utilities::formatPropertyNumbersround($property->getPrecioSubhasta()/ $metros), '&euro;/m<sup>2</sup>');
  1431.             }else {
  1432.                 if($property->isAlquiler() && $property->getPrecioAlquiler() > 0){
  1433.                     $price Utilities::formatPropertyNumbers$property->getPrecioAlquiler(), '&euro;');
  1434.                     $priceM2 Utilities::formatPropertyNumbersround($property->getPrecioAlquiler()/ $metros), '&euro;/m<sup>2</sup>');
  1435.                 }else{
  1436.                     $price Utilities::formatPropertyNumbers$property->getPrecio(), '&euro;');
  1437.                     $priceM2 Utilities::formatPropertyNumbersround($property->getPrecio()/ $metros), '&euro;/m<sup>2</sup>');
  1438.                 }
  1439.             }
  1440.             if($property->isEsBanc()){
  1441.                 $price Utilities::formatPropertyNumbers$property->getPrecio(), '&euro;');
  1442.                 $priceM2 Utilities::formatPropertyNumbersround($property->getPrecio()/ $metros), '&euro;/m<sup>2</sup>');
  1443.             }
  1444.             if($property->isEsLloguerTemporada()){
  1445.                 $price Utilities::formatPropertyNumbers$property->getPrecioLloguerTemporada(), '&euro;');
  1446.                 $priceM2 Utilities::formatPropertyNumbersround($property->getPrecioLloguerTemporada()/ $metros), '&euro;/m<sup>2</sup>');
  1447.             }
  1448.             //Descripcion
  1449.             $description $apiPropertiesI18nRepo->findOneBy(array("id" => $property->getId(), "codLang" => $lang->getCodComplete()));
  1450.             //SIMILARS
  1451.             $similars $apiPropertiesRepo->get_similars($property->getId(), 5);
  1452.             //banner
  1453.             $banner $apiAgencyRepo->banner();
  1454.             //Video
  1455.             $video_link $apiPropertiesRepo->get_video_link($property->getId());
  1456.             $filters["e_operacio"] = $operacio;
  1457.             $filters["e_supertipus"] = $supertipus;
  1458.             $filters["e_province"] = $province;
  1459.             $filters["e_locality"] = $locality;
  1460.             $filters["e_zona"] = $id;
  1461.             $pagesGroup = array();
  1462.             foreach($langs as $l){
  1463.                 $filters["e_lang"] = $l->getCod();
  1464.                 $pagesGroup[] = array(
  1465.                     "lang" => $l->getCod(),
  1466.                     "status" => 1,
  1467.                     "visible" => 1,
  1468.                     "slug" => $this->validate_url($filters''falsefalse)
  1469.                 );
  1470.             }
  1471.             $filters["e_lang"] = $lang->getCod();
  1472.             $filters["e_zona"] = "";
  1473.             $url_volver "/".$lang->getCod()."/".$this->validate_url($filters''falsefalse);
  1474.             // dd($similars);
  1475.             return $this->render('main/front/detail.html.twig', [
  1476.                 "descriptions" => $descriptionAgency,
  1477.                 "texts" => $texts,
  1478.                 "pagesGroup" => $pagesGroup,
  1479.                 "menus" => $menus,
  1480.                 "agency" => $agency,
  1481.                 "traducciones" =>$traducciones,
  1482.                 "page_active" => "detail",
  1483.                 "lang" => $lang,
  1484.                 "langs" => $langs,
  1485.                 "title" => $title,
  1486.                 "tipusOp" => $tipusOp,
  1487.                 "m2" => $metrosm2,
  1488.                 "price" => $price,
  1489.                 "priceM2" => $priceM2,
  1490.                 "province" => $province,
  1491.                 "location" => $location,
  1492.                 "textAddress" => $textAddress,
  1493.                 "reference" => $reference,
  1494.                 "anuncio" => $description->getAnuncio(),
  1495.                 "imageCertificate" => $imagenCertificado,
  1496.                 "geolocation" => $geolocation,
  1497.                 "operation" => $tipusOp,
  1498.                 "fotos" => $total_fotos,
  1499.                 "certificadoFeatures" => $certificadoFeatures,
  1500.                 "features" => $features,
  1501.                 "property" => $property,
  1502.                 "KEY_GOOGLEMAPS"=>$_ENV["KEY_GOOGLEMAPS"],
  1503.                 "url" => $_SERVER['REQUEST_URI'],
  1504.                 "url_volver" => $url_volver,
  1505.                 "similares" => $similars,
  1506.                 "banner" => $banner,
  1507.                 "video_tour" => $video_link
  1508.             ]);
  1509.         }
  1510.     }
  1511.     /**
  1512.      * @Route("/sendMail/{id}", name="detail_send_mail_page", methods={"POST"})
  1513.      * 
  1514.      */
  1515.     public function sendMailDetail(Request $requestManagerRegistry $doctrine$id){
  1516.         $em $this->getDoctrine()->getManager();
  1517.         $apiPropertiesRepo $em->getRepository(ApiProperties::class);
  1518.         if($id){
  1519.             try{
  1520.                 $property $apiPropertiesRepo->findOneBy(array("id" => $id));
  1521.                 $result =  $apiPropertiesRepo->get_agencia_by_property($id);
  1522.         
  1523.                 $mystring $result;
  1524.                 $findme   'inmo_';
  1525.                 $pos strpos($mystring$findme);
  1526.         
  1527.                 if ($pos !== false) {
  1528.                     $res explode('_'$result);
  1529.                     if(! isset($res[2])) {
  1530.                         return false;
  1531.                     }
  1532.                 } else {
  1533.                     return false;
  1534.                 }
  1535.             
  1536.                 $company ltrim($res[1], "0");
  1537.         
  1538.                 $url 'https://gestor.ghestia.cat/endpoints/endpoint?token='.$_ENV["TOKEN_CONTACT_MAIL"];
  1539.         
  1540.                 $fields = array(
  1541.                     'company'   => $company,
  1542.                     'property'  => $res[2],
  1543.                     'client'    => $_POST['name'],
  1544.                     'phone'     => $_POST['phone'],
  1545.                     'mail'      => $_POST['email'],
  1546.                     'portal'    => 2,
  1547.                     'comment'   => $_POST['message']
  1548.                 );  
  1549.     
  1550.                 $this->sendMail($_POST['email'], $_POST['phone'], $_POST['name'], $_POST['message'], $property->getReferencia());
  1551.         
  1552.                 $field_string   http_build_query($fields);
  1553.         
  1554.                 $ch             curl_init();      
  1555.         
  1556.                 curl_setopt($chCURLOPT_URL$url.'&endpoint=create_opportunity&'.$field_string);
  1557.                 curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  1558.                 curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
  1559.                 curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse);
  1560.         
  1561.                 $result         curl_exec($ch);       
  1562.                 $result         json_decode($resulttrue);
  1563.                 curl_close($ch);
  1564.             }catch(\Exception $e){
  1565.                 return new JsonResponse([
  1566.                     "status" => "success",
  1567.                     "error" => $e->getMessage()
  1568.                 ]);
  1569.             }
  1570.         }
  1571.         return new JsonResponse([
  1572.             "status" => "success"
  1573.         ]);
  1574.     }
  1575.     public function sendMail($email$phone$name$message$ref)
  1576.     {
  1577.         $mail = new PHPMailer();
  1578.         $mail->IsSMTP();
  1579.         $mail->IsHTML(true);
  1580.         $mail->SMTPAuth true;
  1581.         $mail->CharSet  "UTF-8";
  1582.         $mail->Host     $_ENV["MAIL_HOST"];
  1583.         $mail->Port     $_ENV["MAIL_PORT"];
  1584.         $mail->Username $_ENV["MAIL_USER"];
  1585.         $mail->Password $_ENV["MAIL_PASSWORD"];
  1586.         $mail->SetFrom($_ENV["MAIL_FROM"]);
  1587.         // $mail->AddAddress($_ENV["MAIL_FROM"]);
  1588.         $mail->AddAddress($_ENV["MAIL_TO"]);
  1589.         
  1590.         $mail->Subject  $ref." - ".$name." - ".$email;
  1591.         $mail->Body     $phone." - ".$name." - ".$message;
  1592.         return $mail->Send();
  1593.     }
  1594.     
  1595.     /**
  1596.      * @Route("/{lang}/{operacio}/{supertipus}/{province}/{locality}", name="search_page", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)"})
  1597.      * @Route("/{lang}/{operacio}/{supertipus}/{province}/{locality}/{extra}", name="search_page_page", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)", "extra" = ".*"})
  1598.      * @Route("/{operacio}/{supertipus}/{province}/{locality}", name="search_page_default", methods={"GET"}, requirements={"operacio" = "^(?!modules)"})
  1599.      * @Route("/{operacio}/{supertipus}/{province}/{locality}/{extra}", name="search_page_default_sortby", methods={"GET"}, requirements={"extra" = ".*", "operacio" = "^(?!modules)"})
  1600.      * 
  1601.      */
  1602.     public function searchPage(Request $requestManagerRegistry $doctrineSessionInterface $session$operacio$supertipus$province$locality$lang ""$extra ""): Response
  1603.     {
  1604.         $cerca_url_zona "";
  1605.         $features "";
  1606.         $subtipus "";
  1607.         $sortby "";
  1608.         $page "";
  1609.         $extras explode("/"$extra);
  1610.         foreach($extras as $ext){
  1611.             if(strpos($ext"zona-") !== false){
  1612.                 $cerca_url_zona $ext;
  1613.                 continue;
  1614.             }
  1615.             if(strpos($ext"page-") !== false){
  1616.                 $page $ext;
  1617.                 continue;
  1618.             }
  1619.             if(strpos($ext"equipament-") !== false || strpos($ext"equipamiento-") !== false){
  1620.                 $features $ext;
  1621.                 continue;
  1622.             }
  1623.             if(strpos($ext"ordenado-por") !== false || strpos($ext"ordenat-per") !== false){
  1624.                 $sortby $ext;
  1625.                 continue;
  1626.             }
  1627.             $subtipus $ext;
  1628.         }
  1629.         // dd("Search Page: (".$request->get('_route').")". " operacio: ". $operacio." | supertipus: ".$supertipus." | province: ".$province." | locality: ".$locality." | lang: ".$lang." | extra : ".$extra." | zona: ".$cerca_url_zona ." | features: ".$features ." | subtipus: ".$subtipus." | sortby: ".$sortby." | page: ".$page);
  1630.         $em $this->getDoctrine()->getManager();
  1631.         $apiMenuRepo $em->getRepository(ApiMenu::class);
  1632.         $apiOrderPages $em->getRepository(ApiOrderPages::class);
  1633.         $apiPages $em->getRepository(ApiPages::class);
  1634.         $apiAgency $em->getRepository(ApiAgency::class);
  1635.         $apiAgencyLang $em->getRepository(ApiAgencyLang::class);
  1636.         $apiProvincesRepo $em->getRepository(ApiProvinces::class);
  1637.         $apiAgencyLang $em->getRepository(ApiAgencyLang::class);
  1638.         $apiPropertySuperTypeRepo $em->getRepository(ApiPropertiesSupertype::class);
  1639.         $apiLocationsRepo $em->getRepository(ApiLocations::class);
  1640.         $apiPropertiesRepo $em->getRepository(ApiProperties::class);
  1641.         $tipusOperacioRepo $em->getRepository(TipusOperacio::class);
  1642.         $agencyDescriptionsRepo $em->getRepository(ApiAgencyDescription::class);
  1643.         $apiZonesRepo $em->getRepository(ApiZones::class);
  1644.         $apiPropertiesSubtypesRepo $em->getRepository(ApiPropertiesSubtypes::class);
  1645.         
  1646.         $menuGroup $apiMenuRepo->findOneBy(array());
  1647.         $agency $apiAgency->findOneBy(array());
  1648.         $langs $apiAgencyLang->findBy([]);
  1649.         $menus = array();
  1650.         
  1651.         if($lang == ""){
  1652.             $langDefault $apiAgencyLang->findOneBy(array("predeterminado" => 1));
  1653.             $lang $langDefault->getCod();
  1654.         }
  1655.         $langSelect $apiAgencyLang->findOneBy(array("cod" => $lang));
  1656.         if($menuGroup){
  1657.             $menus $apiOrderPages->findBy(array("menu" => $menuGroup->getId()), array("order" => "ASC"));
  1658.             foreach($menus as $key => $ma){
  1659.                 $menus[$key]->setPage($apiPages->findOneBy(array("lang" => $langSelect->getCod(), "groupPage" => $ma->getPage()->getGroupPage())));
  1660.             }
  1661.         }
  1662.         
  1663.         $codeLang $this->getCodLang($lang);
  1664.         
  1665.         $texts $em->getRepository(Textos::class)->getTextosByLang($lang);
  1666.         $provincies_cat $apiProvincesRepo->get_all(1);
  1667.         $provincies $apiProvincesRepo->get_all();
  1668.         $firstloop true;
  1669.         $array_provinces_ca = array();
  1670.         $filters = ($session->get("filters"))? json_decode(base64_decode($session->get("filters"))) : array();
  1671.         
  1672.         $filtres = array();
  1673.         $filtresRaw = array();
  1674.         if(count($filters) > 0){
  1675.             foreach($filters as $filter){
  1676.                 $filtresRaw[$filter->name] = $filter->value;
  1677.                 if($filter->value != ""$filtres[str_replace("h_""",$filter->name)] = $filter->value;
  1678.             }
  1679.         }
  1680.         $idprovincia $apiProvincesRepo->get_by_name($province);
  1681.         if (is_array($provincies_cat)) {
  1682.             foreach ($provincies_cat as $item) {
  1683.                 $selected = ($province == $item['friendly'] && $firstloop == true) ? 'selected="selected"' '';
  1684.                 $array_provinces_ca[] = array(
  1685.                     'selected'  => $selected,
  1686.                     'value'     => "/".$lang."/".$operacio."/".$supertipus."/".$item['friendly']."/".$locality,
  1687.                     'text'      => ucfirst(mb_strtolower($item['name'], 'UTF-8'))
  1688.                 );
  1689.                 $firstloop false;
  1690.             }
  1691.         }
  1692.         $array_provinces = array();
  1693.         if (is_array($provincies)) {
  1694.             foreach ($provincies as $item) {
  1695.                 $total_immobles_prov $apiProvincesRepo->properties_count($item['id']);
  1696.                 if($total_immobles_prov 0) {
  1697.                     $selected = ($province == $item['friendly']) ? 'selected="selected"' '';
  1698.                     $array_provinces[] = array(
  1699.                         'selected'  => $selected,
  1700.                         'value'     => "/".$lang."/".$operacio."/".$supertipus."/".$item['friendly']."/".$locality,
  1701.                         'text'      => ucfirst(mb_strtolower($item['name'], 'UTF-8'))
  1702.                     );
  1703.                 }
  1704.             }
  1705.         }
  1706.         if($sortby != ""){
  1707.             $filtres["sortby"] = str_replace("ordenado-por=",""str_replace("ordenat-per=",""$sortby));
  1708.         }
  1709.         /**
  1710.          * Cargamos el combo de supertipos
  1711.          */
  1712.         $arr_supertipus $apiPropertySuperTypeRepo->get_all_supertipus($codeLang);
  1713.         $array_supertipos = array();
  1714.         foreach($arr_supertipus as $stipu) {
  1715.             $array['selected'] = ($supertipus == $stipu['friendly']) ? 'selected="selected"' '';
  1716.             $array['value'] = "/".$lang."/".$operacio."/".$stipu['friendly']."/".$province."/".$locality;//WEBSITE_URL.$temp_arr[0];
  1717.             $array['name']  = $stipu['nom'];
  1718.             $array_supertipos[] = $array;
  1719.         }
  1720.         /**
  1721.          * Cargamos las localidades
  1722.          */
  1723.         $nom_localitat $locality;
  1724.         $idlocalitat   $apiLocationsRepo->get_by_name($nom_localitat,$idprovincia);
  1725.         $idOperacio $tipusOperacioRepo->get_by_name($lang$operacio);
  1726.         $idSuperTipus $apiPropertySuperTypeRepo->get_by_name($supertipus$codeLang);
  1727.         $localitats null;
  1728.         $localitats_order_0 null;
  1729.         
  1730.         $apiPropertiesRepo->lang $codeLang;
  1731.         if ($idprovincia 0) {
  1732.             $order 1;
  1733.             $localitats_pre $apiLocationsRepo->get_by_province_by_order($idprovincia,$order);
  1734.             
  1735.             $apiPropertiesRepo->operacio $idOperacio;
  1736.             $apiPropertiesRepo->supertipus $idSuperTipus ;
  1737.             $apiPropertiesRepo->provincia $idprovincia;
  1738.             $apiPropertiesRepo->addCensados true;
  1739.             $arr_localidades = array();
  1740.             $cont 0;
  1741.             if (!empty($localitats_pre)) {
  1742.                 foreach ($localitats_pre as $localitat_pre) {
  1743.                     $total_i 0;
  1744.                     $apiPropertiesRepo->localitat $localitat_pre['id'];
  1745.                     $total_i $apiPropertiesRepo->get_all_count();
  1746.                     if ( $total_i ){
  1747.                         $arr_localidades[$cont] = $localitat_pre;
  1748.                         $arr_localidades[$cont]['total_immobles'] = $total_i;
  1749.                         $cont++;
  1750.                     }
  1751.                 }
  1752.             }
  1753.             $localitats $arr_localidades;
  1754.             $order 0;
  1755.             $localitats_pre_order_0 $apiLocationsRepo->get_by_province_by_order($idprovincia,$order);
  1756.             $cont 0;
  1757.             if (!empty($localitats_pre_order_0)) {
  1758.                 foreach ($localitats_pre_order_0 as $localitat_pre_order_0) {
  1759.                     $total_i 0;
  1760.                     $apiPropertiesRepo->localitat $localitat_pre_order_0['id'];
  1761.                     $total_i $apiPropertiesRepo->get_all_count();
  1762.                     if ( $total_i ){
  1763.                         $arr_localidades[$cont] = $localitat_pre_order_0;
  1764.                         $arr_localidades[$cont]['total_immobles'] = $total_i;
  1765.                         $cont++;
  1766.                     }
  1767.                 }
  1768.             }
  1769.             $localitats_order_0 $arr_localidades;
  1770.         }
  1771.         $url "/".$lang."/".$operacio."/".$supertipus."/".$province."/";
  1772.         $array_localidades1 = array();
  1773.         $array_localidades2 = array();
  1774.         $features str_replace("equipamiento-"""str_replace("equipament-"""$features)); //TO DO
  1775.         $sortBy = (!isset($filtres["sortby"]))? "pdata" $filtres["sortby"]; //TO DO
  1776.         $idcensat ''//TO DO
  1777.         $mosaic 0//TO DO
  1778.         $equipament '';
  1779.         
  1780.         if (is_array($localitats)) {
  1781.             
  1782.             if ($features && $features != '') {
  1783.                 if($lang == 'ca')
  1784.                     $equipament '/equipament-'.$features;
  1785.                 else 
  1786.                     $equipament '/equipamiento-'.$features;
  1787.             }
  1788.             if ($sortBy && $sortBy != 'pdata') {
  1789.                 if($lang == 'ca')
  1790.                     $equipament .= '/ordenat-per='.$sortBy;
  1791.                 else 
  1792.                     $equipament .= '/ordenado-por='.$sortBy;
  1793.             }
  1794.             foreach ($localitats as $loc) {
  1795.                 $selected "";
  1796.                 if ($idlocalitat == $loc['id'])
  1797.                     $selected 'selected="selected"';
  1798.                 $ulr_loc $url.$loc['friendly'].$subtipus.$equipament;
  1799.                 $array_localidades1[] = array(
  1800.                     'value'     => $ulr_loc,
  1801.                     'selected'  => $selected,
  1802.                     'text'      => ucfirst(mb_strtolower($loc['name'], 'UTF-8')) ." (".number_format($loc['total_immobles'], 0',''.').")"
  1803.                 );
  1804.             }
  1805.             if (is_array($localitats_order_0)) {
  1806.                 foreach ($localitats_order_0 as $loc) {
  1807.                     $selected "";
  1808.                     if ($idlocalitat == $loc['id'])
  1809.                         $selected 'selected="selected"';
  1810.                     $ulr_loc $url.$loc['friendly'].$subtipus.$equipament;
  1811.                     $array_localidades2[] = array(
  1812.                         'value'     => $ulr_loc,
  1813.                         'selected'  => $selected,
  1814.                         'text'      => ucfirst(mb_strtolower($loc['name'], 'UTF-8')) ." (".number_format($loc['total_immobles'], 0',''.').")"
  1815.                     );
  1816.                 }
  1817.             }
  1818.         }
  1819.         /**
  1820.          * INICIO ZONAS
  1821.          */
  1822.         $url_zona "/".$lang."/".$operacio."/".$supertipus."/".$province."/".$locality;
  1823.         $apiPropertiesRepo->localitat $idlocalitat;
  1824.         $zona_resultados $apiZonesRepo->get_location_zones($idlocalitat);
  1825.         $array_zonas = array();
  1826.         $zona "";
  1827.         $idzona "";
  1828.         if($cerca_url_zona != ""){
  1829.             $zona str_replace("zona-"""$cerca_url_zona);
  1830.             $idzona $apiZonesRepo->get_by_name($zona);
  1831.         }
  1832.         $cerca_query_zona "";
  1833.         $result_zona $apiZonesRepo->get_all_by_name($zona);
  1834.         if (is_array($result_zona)){
  1835.             $query_zona  implode(","$result_zona);
  1836.             $cerca_query_zona $query_zona;
  1837.         }      
  1838.         foreach ( $zona_resultados as $zone ) {
  1839.             if ( $zone['id'] != '' && $zone['id'] > 0$apiPropertiesRepo->query_zona $zone['id'];
  1840.             $apiPropertiesRepo->operacio $idOperacio;
  1841.             if ($idSuperTipus != '')
  1842.                 $apiPropertiesRepo->supertipus $idSuperTipus;
  1843.             
  1844.             $countProperties $apiPropertiesRepo->get_all_count();
  1845.             $selected = ($zone['friendly'] == $zona) ? "selected='selected'" '';
  1846.             $array_zonas[] = array(
  1847.                 'value'     => $url_zona "/zona-" $zone['friendly']. $subtipus $equipament,
  1848.                 'selected'  => $selected,
  1849.                 'text'      => $zone['name'] . ' (' $countProperties ')'
  1850.             );
  1851.         }
  1852.         /**
  1853.          * CARGAR PRECIOS
  1854.          */
  1855.         $preus = array();
  1856.         /**
  1857.          * alquiler temporada
  1858.          */
  1859.         if ($idOperacio == || $idOperacio == 7) {
  1860.             $preus_array $apiPropertiesRepo->preus_lloguer_cerca();
  1861.             for($ii=0;$ii<count($preus_array);$ii++)
  1862.                 $preus[$ii] = (object)$preus_array[$ii];
  1863.         } else { // Venda
  1864.             $preus_array $apiPropertiesRepo->preus_compra_cerca();
  1865.             for($ii=0;$ii<count($preus_array);$ii++)
  1866.                 $preus[$ii] = (object)$preus_array[$ii];
  1867.         }
  1868.         // dd($filtres);
  1869.         $array_precios_1 = array();
  1870.         $array_precios_2 = array();
  1871.         foreach ($preus as $row_preu) {
  1872.             $selected_min  =
  1873.             $selected_max  =
  1874.             $text_preu_min =
  1875.             $text_preu_max "";
  1876.             if (isset($filtres['preu_min']) && $filtres['preu_min'] == $row_preu->id$selected_min 'selected="selected"';
  1877.             if ($row_preu->signe_min == ">"$text_preu_min $texts['cercador_mes_de'];
  1878.             if (isset($filtres['preu_max']) && $filtres['preu_max'] == $row_preu->id$selected_max 'selected="selected"';
  1879.             if ($row_preu->signe_max == ">"$text_preu_max $texts['cercador_mes_de'];
  1880.             $array_precios_1[] = array(
  1881.                 'value'     => $row_preu->id,
  1882.                 'selected'  => $selected_min,
  1883.                 'text'      => $text_preu_min " " number_format($row_preu->preu0',''.') . "€"
  1884.             );
  1885.             $array_precios_2[] = array(
  1886.                 'value'     => $row_preu->id,
  1887.                 'selected'  => $selected_max,
  1888.                 'text'      => $text_preu_max " " number_format($row_preu->preu0',''.') . "€"
  1889.             );
  1890.         }
  1891.         /**
  1892.          * INICIO SELECT HABITACIONES BAÑOS
  1893.          */
  1894.         $idtipus $idSuperTipus;
  1895.         $vars array_merge($_GET$_POST);
  1896.         // if ( $subtipus != '' ) {
  1897.         //     $aux = explode("|", $subtipus);
  1898.         //     $aux = implode('","', $aux);
  1899.         // }
  1900.         $array_frase $this->contenido_frase($lang);
  1901.         $breadcrumbs "";
  1902.         // if ($idcensat == "" && ($idprovincia == "33" || $idprovincia == "34" || $idprovincia == "35" || $idprovincia == "36"))
  1903.             // $breadcrumbs = $model_content->get_breadcrumbs($lang,$pagina,$idOperacio,$supertipus,$province,$locality); // TO DO
  1904.         $localitat_nom $apiLocationsRepo->obtenirLocalitat($idlocalitat);
  1905.         $loc = ($zona != "")? ucwords($zona) : $localitat_nom ;
  1906.         $text_seo_operacio $tipusOperacioRepo->get_text_seo_by_codi($lang,$idOperacio);
  1907.         $sortby_list = array(
  1908.             "preu"          => $texts['signia_resultats_preu'],
  1909.             "preugran"      => $texts['signia_resultats_preugran'],
  1910.             "m2"            => $texts['signia_superficie'],
  1911.             "m2gran"        => $texts['signia_superficiegran'],
  1912.             "preum2"        => $texts['signia_resultats_preum2'],
  1913.             "preum2gran"    => $texts['signia_resultats_preum2gran'],
  1914.             "dorm"          => $texts['signia_habitacions'],
  1915.             "dormgran"      => $texts['signia_habitacionsgran'],
  1916.             "pdata"         => $texts['signia_actualitzacio'],
  1917.             "pdatagran"     => $texts['signia_actualitzaciogran']
  1918.         );
  1919.         $apiPropertiesRepo->idcensat          $idcensat;
  1920.         $apiPropertiesRepo->operacio          $idOperacio;
  1921.         $apiPropertiesRepo->tipus             "";
  1922.         $apiPropertiesRepo->provincia         $idprovincia;
  1923.         $apiPropertiesRepo->localitat         $idlocalitat;
  1924.         $apiPropertiesRepo->zona              $idzona;
  1925.         $apiPropertiesRepo->favorits          "";//TO DO $_SESSION['favorits'];
  1926.         $apiPropertiesRepo->query_zona        $cerca_query_zona;
  1927.         $apiPropertiesRepo->lang                $codeLang;
  1928.         $apiPropertiesRepo->data_publicacio   = isset($filtres['publicacio']) ? $filtres['publicacio'] : ;
  1929.         if(isset($filtres['preu_min']))
  1930.             $apiPropertiesRepo->preu_min $filtres['preu_min'];
  1931.         if(isset($filtres['preu_max']))
  1932.             $apiPropertiesRepo->preu_max $filtres['preu_max'];
  1933.         if(isset($filtres['mmin']))
  1934.             $apiPropertiesRepo->mmin $filtres['mmin'];
  1935.         if(isset($filtres['mmax']))
  1936.             $apiPropertiesRepo->mmax $filtres['mmax'];
  1937.         $idSubtipus '';
  1938.         $cerca_fre_subtipus '';
  1939.         $palo ''$coma ''$tipo 0;
  1940.     
  1941.         $type_value 0;
  1942.         switch ( intval($idSuperTipus) ) {
  1943.             //oficinas
  1944.             case 2:
  1945.                 $type_value 4;
  1946.                 break;
  1947.             //local
  1948.             case 3:
  1949.                 $type_value 3;
  1950.                 break;
  1951.             //parking
  1952.             case 4:
  1953.                 $type_value 8;
  1954.                 break;
  1955.             //edificios
  1956.             case 5:
  1957.                 $type_value 5;
  1958.                 break;
  1959.             //Terrenos
  1960.             case 6:
  1961.                 $type_value 6;
  1962.                 break;
  1963.             //Industrial
  1964.             case 7:
  1965.                 $type_value 7;
  1966.                 break;
  1967.     
  1968.         }
  1969.     
  1970.         $arr_explodeexplode(","$subtipus);
  1971.         foreach ($arr_explode as $item) {
  1972.     
  1973.             $the_id $apiPropertiesSubtypesRepo->get_by_friendly_name($item$codeLang$type_value);
  1974.     
  1975.     
  1976.             $idSubtipus .= $palo $the_id;
  1977.             $cerca_fre_subtipus .= $coma $item;
  1978.     
  1979.             if ( $the_id == $idSubtipus .= '|' "28" '|' "32"'|' "10" ;
  1980.             if ( $the_id == $idSubtipus .= '|' "11" '|' "20" '|' "29" '|' "33" '|' "36";
  1981.     
  1982.             if ( $tipo == $tipo $apiPropertiesSubtypesRepo->get_type_by_id($the_id);
  1983.     
  1984.             $palo '|'$coma ',';
  1985.         }
  1986.     
  1987.         if ( $tipo == $tipo 1;
  1988.         // $_SESSION['cerca_subtipus'] =  $tipo;
  1989.         $apiPropertiesRepo->subtipus $idSubtipus;
  1990.         if($features != ""){
  1991.         
  1992.             $cadena $features;
  1993.             $array explode(","$cadena);        
  1994.             if(count($array) == "1"){
  1995.         
  1996.                 switch ($features) {
  1997.                     case 'ascensor':
  1998.                         $filtres['ascensor'] = 1;
  1999.                         break;
  2000.                     case 'terrassa':
  2001.                         $filtres['terrassa'] = 1;
  2002.                         break;
  2003.                     case 'piscina':
  2004.                         $filtres['piscina'] = 1;
  2005.                         break;
  2006.                     case 'parkings':
  2007.                         $filtres['parkings'] = 1;
  2008.                         break;
  2009.                     case 'traster':
  2010.                         $filtres['traster'] = 1;
  2011.                         break;
  2012.                     case 'calefaccio':
  2013.                         $filtres['calefaccio'] = 1;
  2014.                         break;
  2015.                     case 'aire':
  2016.                         $filtres['aire'] = 1;
  2017.                         break;
  2018.                     case 'balco':
  2019.                         $filtres['balco'] = 1;
  2020.                         break;
  2021.                 }
  2022.             }else{
  2023.                 foreach($array as $a){
  2024.                     switch ($a) {
  2025.                         case 'ascensor':
  2026.                             $filtres['ascensor'] = 1;
  2027.                             break;
  2028.                         case 'terrassa':
  2029.                             $filtres['terrassa'] = 1;
  2030.                             break;
  2031.                         case 'piscina':
  2032.                             $filtres['piscina'] = 1;
  2033.                             break;
  2034.                         case 'parkings':
  2035.                             $filtres['parkings'] = 1;
  2036.                             break;
  2037.                         case 'traster':
  2038.                             $filtres['traster'] = 1;
  2039.                             break;
  2040.                         case 'calefaccio':
  2041.                             $filtres['calefaccio'] = 1;
  2042.                             break;
  2043.                         case 'aire':
  2044.                             $filtres['aire'] = 1;
  2045.                             break;
  2046.                         case 'balco':
  2047.                             $filtres['balco'] = 1;
  2048.                             break;
  2049.                     }
  2050.                 }
  2051.             }
  2052.         }
  2053.         $apiPropertiesRepo->caracteristiques  $filtres;
  2054.         //TO DO $apiPropertiesRepo->showcoordinates   = ($_SESSION['mapa'] > 0);
  2055.         if (isset($filtres["dorm"]))
  2056.             $apiPropertiesRepo->dorm  $filtres["dorm"];
  2057.         if (isset($filtres["banos"]))
  2058.             $apiPropertiesRepo->banos $filtres["banos"];
  2059.         if (isset($filtres["idmetres"]))
  2060.             $apiPropertiesRepo->setHaving($filtres["idmetres"]);
  2061.         if ($idSuperTipus != '')
  2062.             $apiPropertiesRepo->supertipus $idSuperTipus;
  2063.         $apiPropertiesRepo->ordenacio($sortBy);
  2064.         $coords null;
  2065.         $immobles['mosaic'] = '0';
  2066.         $apiPropertiesRepo->addCensados true;
  2067.         $fromMapa false;//TO DO($_SESSION['mapa'] == 1);
  2068.         //TO DO
  2069.         // if (isset($_SESSION['immobles_ids']) && $_SESSION['immobles_ids'] != '') {
  2070.         //     if(isset($_SESSION["immobles_ids"])){
  2071.         //         $immoble->whereIDS = $_SESSION['immobles_ids'];
  2072.         //     }
  2073.         //     $immobles['immobles']['recordset'] = $immoble->get_all();
  2074.         //     $immobles['immobles']['rowcount']  = count($immobles['immobles']['recordset']);
  2075.         // } else {
  2076.         //     if( $_SESSION['mapa'] > 0 ) {
  2077.         //         $immobles['immobles']['recordset'] = $immoble->get_all();
  2078.         //         $immobles['immobles']['rowcount']  = count($immobles['immobles']['recordset']);
  2079.         //     } else {
  2080.         //         $immobles['immobles'] = $immoble->get_by_params($_SESSION['pag_list']);
  2081.         //         if(!isset($immobles['immobles']['recordset'])) {
  2082.         //             $immobles['immobles']['recordset']  = array();
  2083.         //             $immobles['immobles']['rowcount']   = 0;
  2084.         //         }
  2085.         //     }
  2086.         // }
  2087.             // dd($page);
  2088.         $pag_list = ($page != "")? str_replace("page-",""$page) : 1;
  2089.         $apiPropertiesRepo->limit_posicion = ($pag_list-1)*$_ENV["RECORDS_x_PAGE"];
  2090.         $apiPropertiesRepo->limit_elementos $_ENV["RECORDS_x_PAGE"];
  2091.         $immobles['immobles']['immobles'] = $apiPropertiesRepo->get_by_params(1); //TO DO pag_list
  2092.         $apiPropertiesRepo->limit_posicion null;
  2093.         $apiPropertiesRepo->limit_elementos null;   
  2094.         $immobles['immobles']['recordset'] = $apiPropertiesRepo->get_all();
  2095.         $immobles['immobles']['rowcount']  = count($immobles['immobles']['recordset']);
  2096.         $immobles['immobles']['recordset'] = $immobles['immobles']['immobles'];
  2097.         if(!isset($immobles['immobles']['recordset'])) {
  2098.             $immobles['immobles']['recordset']  = array();
  2099.             $immobles['immobles']['rowcount']   = 0;
  2100.         }
  2101.         $immobles['pagination'] = "";
  2102.         $hay_inmuebles          false;
  2103.         $total_immobles         0;
  2104.         $canonical_url          '';
  2105.         if ($immobles['immobles']['recordset']) {
  2106.             $hay_inmuebles true;
  2107.             $optionsCanonicalUrl = array(
  2108.                 'operacio'       => $idOperacio,
  2109.                 'nom_operacio'   => $operacio,
  2110.                 'tipus'          => '',
  2111.                 'nom_supertipus' => '',
  2112.                 'nom_provincia'  => $province,
  2113.                 'localitat'      => $locality,
  2114.                 'idlocalitat'    => $idlocalitat,
  2115.                 'nom_localitat'  => $locality,
  2116.                 'zona'           => $idzona,
  2117.                 'query_zona'     => $cerca_query_zona,
  2118.                 'nom_zona'       => $zona
  2119.             );
  2120.             $canonical_url       $this->makeUrl($optionsCanonicalUrlarray_merge($_GET$_POST), true);
  2121.         
  2122.             $immobles['immobles']['coordinates'] = null;
  2123.             
  2124.             $txt_veure_fitxa "Veure fitxa";
  2125.             if( $lang == "es"$txt_veure_fitxa "Ver ficha";
  2126.             if( $lang == "ru"$txt_veure_fitxa "See property";
  2127.             if( $lang == "en"$txt_veure_fitxa "See property";
  2128.         
  2129.         
  2130.             if($apiPropertiesRepo->showcoordinates) {
  2131.                 $arCoords $apiPropertiesRepo->get_coordinates();
  2132.                 if (is_array($arCoords)) {
  2133.                     foreach ($arCoords as $c) {
  2134.                         $nom_provincia $this->friendly_url$apiProvincesRepo->get_by_id($c['provincia']) );
  2135.                         $nom_localitat $this->friendly_url$apiLocationsRepo->get_by_id($c['localidad']) );
  2136.                         $optionsCanonicalUrl['nom_provincia']   =  $nom_provincia;
  2137.                         $optionsCanonicalUrl['nom_localitat']   =  $nom_localitat;
  2138.                         $optionsCanonicalUrl['localitat']       =  $nom_localitat;
  2139.                         $optionsCanonicalUrl['idlocalitat']     =  $c['localidad'];
  2140.                         $optionsCanonicalUrl['tipus']           = 'entra';
  2141.                         $optionsCanonicalUrl['nom_supertipus']  =  $supertipus;
  2142.                         $friendly_localitat                     $nom_localitat;
  2143.                         $optionsCanonicalUrl['provincia']       =  $nom_provincia;
  2144.                         $canonical_url_fitxa                    $this->makeUrl($optionsCanonicalUrlarray_merge($_GET$_POST));
  2145.                         $direccion                              $c['direccion'];
  2146.                         $url_fitxa                              WEBSITE_URL;
  2147.         
  2148.                         if( $lang == "es" $url_fitxa .="/es";
  2149.                         if( $lang == "ru" $url_fitxa .="/ru";
  2150.                         if( $lang == "en" $url_fitxa .="/en";
  2151.         
  2152.                         $url_fitxa .= '/' $canonical_url_fitxa $c['id'];
  2153.                         $img        = ($c['num_fotos']) ? '<a href="' $url_fitxa '"><img class="lazy" src="'.$_ENV['DOMINI_APIBCN_FOTOS'].'fotos'.$this->obtener_directorio_fotos($c["id"]).'/' $c["id"] . '/foto_1_p.jpg" height="100" width="150"/></a>' "";
  2154.                         $name       "";
  2155.                         $tipus_name "";
  2156.         
  2157.                         $coords[]  = array(
  2158.                             "lat"   => trim($c['glat']), 
  2159.                             "lng"   => trim($c['glon']), 
  2160.                             "id"    => $c['id'], 
  2161.                             "img"   => $img
  2162.                             "type"  => $apiPropertiesRepo->supertipus,
  2163.                             "info"  => '<div class="globus">' $img "<p>" $name '</p><p>' $direccion '</p><p>' ucfirst($nom_localitat) . '</p><p>' number_format($c["preu"], 0',''.') . '&euro;</p><a class="button" href="' $url_fitxa '" title="'.$txt_veure_fitxa.'" >'.$txt_veure_fitxa.'</a></div>'
  2164.                         );
  2165.                     }
  2166.                     $immobles['immobles']['coordinates'] = json_encode($coords);
  2167.                 }
  2168.             }
  2169.         
  2170.         
  2171.             $immobles['mosaic'] = ($mosaic && $mosaic == "1") ? "1" "0";
  2172.             if(isset($friendly_localitat))    
  2173.                 $immobles['immobles']['localidad'] = $friendly_localitat;
  2174.             
  2175.             
  2176.             $discount       = array();
  2177.             $diferencia     = array();
  2178.         
  2179.             $subdominio $_ENV['DOMINI_APIBCN_FOTOS'];
  2180.         
  2181.             $i 0;
  2182.             $urls_pag = array();
  2183.             foreach ($immobles['immobles']['recordset'] as &$inmo) {
  2184.         
  2185.                 $inmo['operacio_name']   = $operacio;
  2186.                 $inmo['provincia_name']  = $apiProvincesRepo->get_by_id($inmo['provincia']);
  2187.                 $inmo['localitat_name']  = ucfirst($apiLocationsRepo->get_name($inmo['localidad']));
  2188.                 $inmo['opname']          = $tipusOperacioRepo->get_text_seo_by_codi($lang,$idOperacio);
  2189.         
  2190.                 $nom_de_zona '';
  2191.                 if ( isset($zona) & ! empty($zona) )
  2192.                     $nom_de_zona    $zona;
  2193.                 else {
  2194.                     $idzona         intval($inmo['zona']);
  2195.                     $nom_de_zona    $apiZonesRepo->get_by_id($idzona);
  2196.                 }
  2197.         
  2198.                 $inmo['zona_name']  = ucfirst($nom_de_zona);
  2199.                 $RoomsAndBath $apiPropertiesRepo->getRoomsAndBath($inmo['id']);
  2200.                 if(!$inmo['num_dorm']) {
  2201.                     $inmo['num_dorm'] = $RoomsAndBath['habitaciones'];
  2202.                 }
  2203.                 $inmo['num_banyos'] = $RoomsAndBath['banyos'];
  2204.         
  2205.                 $inmo['subtitle'] = $inmo['localitat_name'];
  2206.         
  2207.                 if (isset($inmo['zona_name']) && !empty($inmo['zona_name']))
  2208.                     $inmo['subtitle'] .= ' ('.$inmo['zona_name'] .')';
  2209.         
  2210.                 $preu_metres_quadrats                   = ($inmo['superficie'] > 0) ? ceil($inmo['preu'] / intval($inmo['superficie'])) : 0;
  2211.                 $inmo['eurosuperficie']                 = number_format($preu_metres_quadrats0',''.');
  2212.                 $inmo['preu_inicial']                   = $inmo['preu'];
  2213.                 $inmo['preu']                           = number_format($inmo['preu'], 0',''.');
  2214.                 $inmo['superf_format']                  = number_format(($inmo['superf_constr'] != "")? $inmo['superf_constr'] : 00',''.');
  2215.         
  2216.                 $inmo['descripcio']                     = strip_tags($inmo['descrip']);
  2217.                 $inmo['descripcio_shot']                = strlen($inmo['descripcio']) > 150 substr($inmo['descripcio'], 0150).'...' substr($inmo['descripcio'], 0150);
  2218.                 $num_fotos                              intval($inmo['num_fotos']);
  2219.                 $inmo['destacado']                      = intval($inmo['destacado']);
  2220.                 $inmo['veureimmobles']                  = $texts['llistat_resultats_mes_detalls'] . " " $num_fotos " " $texts['llistat_resultats_fotos'];
  2221.                 $inmo['img']                            = 'http://' $_ENV["DOMINI_APIBCN"] . '/images/no_photo.jpg';
  2222.                 if ($inmo['num_fotos'] != 0)
  2223.                     $inmo['img'] = $subdominio."fotos".round($inmo['id']/20000)."/".$inmo['id']."/foto_1.jpg";
  2224.         
  2225.                 $nom_provincia_name                     $apiProvincesRepo->get_by_id($inmo['provincia']);
  2226.                 $nom_provincia                          $this->friendly_url($nom_provincia_name);
  2227.                 $optionsCanonicalUrl['nom_provincia']   = $nom_provincia;
  2228.                 $optionsCanonicalUrl['provincia']       = $nom_provincia;
  2229.                 $optionsCanonicalUrl['idlocalitat']     = $inmo['localidad'];
  2230.                 $optionsCanonicalUrl['localitat']       = $inmo['localidad'];
  2231.                 $optionsCanonicalUrl['nom_localitat']   = $apiLocationsRepo->get_friendly($inmo['localidad']);
  2232.                 $optionsCanonicalUrl['tipus']           = $inmo['id_properties_supertype'];
  2233.         
  2234.                 $optionsCanonicalUrl['nom_supertipus']  = $apiPropertySuperTypeRepo->get_friendly($inmo['id_properties_supertype'], $codeLang);
  2235.                 $canonical_url_fitxa                    $this->makeUrl($optionsCanonicalUrlarray_merge($_GET$_POST), falsetrue);
  2236.                 
  2237.                 $url_fitxa                              $_ENV["WEBSITE_URL"].$this->obtener_url_idioma($lang);
  2238.                 $url_fitxa                             .= '/'.$canonical_url_fitxa $inmo['id'];
  2239.                 $inmo['url']                            = $url_fitxa;
  2240.         
  2241.         
  2242.                 $inmo['title_format'] = $this->mb_ucfirstmb_strtolower $this->get_property_title($inmo$idOperacio$lang), 'UTF-8' ), "UTF-8");
  2243.         
  2244.                 $resto_compra = ($inmo['precio_anterior'] != 0.00 && $inmo['precio'] < $inmo['precio_anterior'])
  2245.                     ? $inmo['precio_anterior'] - $inmo['precio']
  2246.                     : 0;
  2247.         
  2248.                 $resto_alquiler = ($inmo['precio_alquiler_anterior'] != 0.00 && $inmo['precio_alquiler'] < $inmo['precio_alquiler_anterior'])
  2249.                     ? $inmo['precio_alquiler_anterior'] - $inmo['precio_alquiler']
  2250.                     : 0;
  2251.         
  2252.                 $resto_subhasta = ($inmo['precio_subhasta'] < $inmo['precio_subhasta_anterior'])
  2253.                     ? $inmo['precio_subhasta_anterior'] - $inmo['precio_subhasta']
  2254.                     : 0;
  2255.                     
  2256.                 /* AQUI CAMBIO */        
  2257.                 $resto_temporada = ($inmo['precio_alquiler_temporada'] < $inmo['precio_alquiler_temporada_anterior'])
  2258.                     ? $inmo['precio_alquiler_temporada_anterior'] - $inmo['precio_alquiler_temporada']
  2259.                     : 0;
  2260.                     
  2261.                 $precio_rebaja 0;
  2262.                 if($resto_compra)
  2263.                     $precio_rebaja $resto_compra;
  2264.                 if($resto_alquiler)
  2265.                     $precio_rebaja $resto_alquiler;
  2266.                 if($resto_subhasta)
  2267.                     $precio_rebaja $resto_subhasta;
  2268.                 if($resto_temporada)
  2269.                     $precio_rebaja $resto_temporada;        
  2270.         
  2271.                 $inmo['precio_rebaja']      = number_format($precio_rebaja0',''.') ;
  2272.                 $inmo['tiempo_publicacion'] = $this->tiempoTranscurrido($inmo['fecha_importacion'], $langfalse);
  2273.                 $urls_pag[$i]   = $inmo['url'];
  2274.                 $i++;
  2275.                 
  2276.                 $inmo['url_seo'] = $request->getSchemeAndHttpHost().$this->getUrlPropertie($inmo$lang);
  2277.                 $inmo['title_detail'] = $this->getTitleDetail($inmo$lang);
  2278.         
  2279.                 $array_json[] = array(
  2280.                     "id"            => $inmo['id'],
  2281.                     "title"         => $inmo['title_format'],
  2282.                     "lat"           => $inmo['glat'],
  2283.                     "lng"           => $inmo['glon'],
  2284.                     "address"       => $inmo['subtitle'],
  2285.                     "bathrooms"     => $inmo['num_banyos'],
  2286.                     "bedrooms"      => "3",
  2287.                     "icon"          => "/images/map/pin-apartments.png",
  2288.                     "price"         => "<span class='item-price'>".$inmo['preu']."€</span><span class='item-sub-price'>".$inmo['eurosuperficie']."€/m<sup>2</sup></span>",
  2289.                     "is_featured"   => "",
  2290.                     "prop_meta"     => "<p><span>".$texts['dorm_short'].": ".$inmo['num_dorm']."</span><span>".$texts['signia_banys'].": ".$inmo['num_banyos']."</span><span>".$inmo['superf_format']."m<sup>2</sup></span></p>",
  2291.                     "retinaIcon"    => "/images/map/pin-apartments.png",
  2292.                     "thumbnail"     => "<img src='".$inmo['img']."' alt='thumb'>",
  2293.                     "type"          => ucfirst($inmo['opname']),
  2294.                     "url"           => $inmo['url']
  2295.                 );
  2296.             }
  2297.         
  2298.             $array_json json_encode($array_json);
  2299.             $total_immobles             $immobles['immobles']['rowcount'];
  2300.             // $_SESSION['total_immobles'] = $total_immobles;
  2301.         
  2302.         } else
  2303.             $hay_inmuebles false;
  2304.         
  2305.         
  2306.         $clase_mapa =  "";//($_SESSION["mapa"] == 1)? "color-yellow" : "";
  2307.         $clase_mosaic =  "";//($_SESSION["mosaic"] == 1) ? "color-yellow" : "";
  2308.         $clase_llistat =  "";//($_SESSION["mapa"] != 1 && $_SESSION["mosaic"] != 1) ? "color-yellow" : "";
  2309.         $nom_loc $loc;
  2310.         $subtipo_vivienda "";//TO DO (isset($_REQUEST['subtipus']) && $_REQUEST['subtipus'] != "")? $array_frase['txt_de']." ".$_REQUEST['subtipus'] : "";
  2311.         if ($idcensat 0
  2312.             $locs_provincia $apiLocationsRepo->get_locations_by_province_list($idprovincia);
  2313.         if ($idcensat == 0) {
  2314.             $links_seo      $this->get_links_seo_cercador_avancat($lang,$province,$idlocalitat,$idOperacio,$idSuperTipus,$subtipus,$zona);
  2315.             $provin_array   $apiProvincesRepo->get_for_gangway($province);
  2316.             $provin_name    $provin_array['name'];
  2317.         }
  2318.         $feat ""//TO DO
  2319.         if($feat != '')
  2320.         $feat $texts['con'].' '$feat;
  2321.         $title mb_convert_case($supertipusMB_CASE_TITLE"UTF-8")." ".$array_frase['txt_on']." ".mb_convert_case(utf8_encode($loc), MB_CASE_TITLE"UTF-8").' '.$feat;
  2322.         $title_count number_format($total_immobles0',''.');
  2323.         $title_count_text $texts['anuncios_encontrados']."  ".$subtipo_vivienda." ".$array_frase['txt_on']." ".$text_seo_operacio." ".$array_frase['txt_on']." ".ucfirst(utf8_encode($loc)).".";
  2324.         //$paginacion = RECORDS_x_PAGE;
  2325.         //if(THEME == 'homemap' || THEME == 'megaimagen' || THEME == 'superprop'){
  2326.         $paginacion $_ENV["RECORDS_x_PAGE"];
  2327.         //}
  2328.         //TO DO
  2329.         // if (!$fromMapa && ! isset($_SESSION['immobles_ids']))
  2330.         
  2331.         $immobles['pagination'] = $this->paginate_api_static($lang$canonical_url$pag_list$total_immobles$paginacion);
  2332.         /**
  2333.          * Tabs tipo acción
  2334.          */
  2335.         $operacions_possibles $tipusOperacioRepo->get_nom_friendly_text_codi_used($lang);
  2336.         $url_links "";
  2337.         $camp "friendly_" $lang;
  2338.         if ( $supertipus != '' )
  2339.             $url_links .= "/" $supertipus;
  2340.         if ( $province != '' // && $pagina != "resultatCercaAgencia"
  2341.             $url_links .= "/" $province;
  2342.         if ( $locality != '' // && $pagina != "resultatCercaAgencia"
  2343.             $url_links .= "/" $locality;
  2344.         
  2345.         if ( $zona != '' )
  2346.             $url_links .= "/" $cerca_url_zona ;
  2347.         if (isset($idcensat) && ($idcensat 0))
  2348.             $url_links .= "/api/" $idcensat;
  2349.         $text_seo           'text_seo_' $lang;
  2350.         $sub_operations     = array();
  2351.         $tabs_operations    = array();
  2352.         foreach ($operacions_possibles as $op) {
  2353.             if ($op->codi != 5) {
  2354.                 if ($op->codi == $idOperacio) {
  2355.                     $activate   'active';
  2356.                     $follow     'follow';
  2357.                 } else {
  2358.                     $activate   '';
  2359.                     $follow     'nofollow';
  2360.                 }
  2361.                 $sub_operations['active']   = $activate;
  2362.                 $sub_operations['rel']      = $follow;
  2363.                 $sub_operations['href']     = $request->getSchemeAndHttpHost().$this->obtener_url_idioma($lang).'/'.$op->{$camp}.$url_links;
  2364.                 $sub_operations['text']     = ucwords(strtolower($op->$text_seo));
  2365.                 if(defined('OPERACIONES')) {
  2366.                     if (!in_array($op->codiexplode(','OPERACIONES))) {
  2367.                         $tabs_operations[] = $sub_operations;
  2368.                     }
  2369.                 } else {
  2370.                     $tabs_operations[] = $sub_operations;
  2371.                 }
  2372.             }
  2373.         }
  2374.         /**
  2375.          * AREA FILTROS
  2376.          */
  2377.         //TO DO
  2378.         $vars_filtre = array();
  2379.         // if(!isset($_SESSION['filtres']) || !is_array($_SESSION['filtres'])) $_SESSION['filtres'] = array();
  2380.         $vars_filtre $filtres;
  2381.         if (isset($vars_filtre['dorm']))    $_GET['dorm']  = $vars_filtre['dorm'];
  2382.         if (isset($vars_filtre['banos']))   $_GET['banos'] = $vars_filtre['banos'];
  2383.         $arr_subtipus = array();
  2384.         if ( ! empty($idSubtipus) ) $arr_subtipus explode('|'$idSubtipus);
  2385.         $checked = array();
  2386.         $checked["tipo_casa"] = (is_array($arr_subtipus) && !array_diff(array( 21120293336), $arr_subtipus)) ? 'checked = "checked"' '';
  2387.         $checked["tipo_piso"] = (is_array($arr_subtipus) && in_array("1"$arr_subtipus))? ' checked = "checked" ' '';
  2388.         $checked["tipo_duplex"] = (is_array($arr_subtipus) && in_array("35"$arr_subtipus))? ' checked = "checked" ' '';
  2389.         $checked["tipo_atico"] = (is_array($arr_subtipus) && in_array("19"$arr_subtipus))? ' checked = "checked" ' '';
  2390.         $checked["subtipo_oficina"] = (is_array($arr_subtipus) && in_array("4"$arr_subtipus))? ' checked = "checked" ' '';
  2391.         $checked["subtipo_despacho"] = (is_array($arr_subtipus) && in_array("13"$arr_subtipus))? ' checked = "checked" ' '';
  2392.         $checked["subtipo_oficina_otros"] = (is_array($arr_subtipus) && in_array("22"$arr_subtipus))? ' checked = "checked" ' '';
  2393.         $checked["subtipo_local"] = (is_array($arr_subtipus) && in_array("3"$arr_subtipus))? ' checked = "checked" ' '';
  2394.         $checked["subtipo_tienda"] = (is_array($arr_subtipus) && in_array("12"$arr_subtipus))? ' checked = "checked" ' '';
  2395.         $checked["subtipo_local_otros"] = (is_array($arr_subtipus) && in_array("21"$arr_subtipus))? ' checked = "checked" ' '';
  2396.         $checked["subtipo_garaje"] = (is_array($arr_subtipus) && in_array("8"$arr_subtipus))? ' checked = "checked" ' '';
  2397.         $checked["subtipo_plaza"] = (is_array($arr_subtipus) && in_array("17"$arr_subtipus))? ' checked = "checked" ' '';
  2398.         $checked["subtipo_garaje_otros"] = (is_array($arr_subtipus) && in_array("26"$arr_subtipus))? ' checked = "checked" ' '';
  2399.         $checked["subtipo_edificio_vertical"] = (is_array($arr_subtipus) && in_array("5"$arr_subtipus))? ' checked = "checked" ' '';
  2400.         $checked["subtipo_edificio_horizontal"] = (is_array($arr_subtipus) && in_array("14"$arr_subtipus))? ' checked = "checked" ' '';
  2401.         $checked["subtipo_edificio_otros"] = (is_array($arr_subtipus) && in_array("23"$arr_subtipus))? ' checked = "checked" ' '';
  2402.         $checked["subtipo_terreno_rustico"] = (is_array($arr_subtipus) && in_array("6"$arr_subtipus))? ' checked = "checked" ' '';
  2403.         $checked["subtipo_terreno_urbano"] = (is_array($arr_subtipus) && in_array("15"$arr_subtipus))? ' checked = "checked" ' '';
  2404.         $checked["subtipo_terreno_otros"] = (is_array($arr_subtipus) && in_array("24"$arr_subtipus))? ' checked = "checked" ' '';
  2405.         $checked["subtipo_industrial_nave"] = (is_array($arr_subtipus) && in_array("7"$arr_subtipus))? ' checked = "checked" ' '';
  2406.         $checked["subtipo_industrial_local"] = (is_array($arr_subtipus) && in_array("16"$arr_subtipus))? ' checked = "checked" ' '';
  2407.         $checked["subtipo_industrial_otros"] = (is_array($arr_subtipus) && in_array("25"$arr_subtipus))? ' checked = "checked" ' '';
  2408.         $checked["ascensor"] = (isset($vars_filtre['ascensor']) && $vars_filtre['ascensor'] == 1)? ' checked = "checked" ' '';
  2409.         $checked["terrassa"] = (isset($vars_filtre['terrassa']) && $vars_filtre['terrassa'] == 1)? ' checked = "checked" ' '';
  2410.         $checked["piscina"] = (isset($vars_filtre['piscina']) && $vars_filtre['piscina'] == 1)? ' checked = "checked" ' '';
  2411.         $checked["parkings"] = (isset($vars_filtre['parkings']) && $vars_filtre['parkings'] == 1)? ' checked = "checked" ' '';
  2412.         $checked["traster"] = (isset($vars_filtre['traster']) && $vars_filtre['traster'] == 1)? ' checked = "checked" ' '';
  2413.         $checked["calefaccio"] = (isset($vars_filtre['calefaccio']) && $vars_filtre['calefaccio'] == 1)? ' checked = "checked" ' '';
  2414.         $checked["aire"] = (isset($vars_filtre['aire']) && $vars_filtre['aire'] == 1)? ' checked = "checked" ' '';
  2415.         $checked["balco"] = (isset($vars_filtre['balco']) && $vars_filtre['balco'] == 1)? ' checked = "checked" ' '';
  2416.         $checked["seguretat"] = (isset($vars_filtre['seguretat']) && $vars_filtre['seguretat'] == 1)? ' checked = "checked" ' '';
  2417.         $checked["24h"] = (isset($filtres['publicacio']) && $filtres['publicacio'] == 2) ? ' checked = "checked"' '';
  2418.         $checked["semana"] = (isset($filtres['publicacio']) && $filtres['publicacio'] == 3) ? ' checked = "checked"' '';
  2419.         $checked["mes"] = (isset($filtres['publicacio']) && $filtres['publicacio'] == 4) ? ' checked = "checked"' '';
  2420.         if($checked["ascensor"] || $checked["terrassa"] || $checked["piscina"] || $checked["parkings"] || $checked["traster"] || $checked["calefaccio"] || $checked["aire"] || $checked["balco"] || $checked["seguretat"]) {
  2421.             $show_features_1 'active';
  2422.             $show_features_2 'style="display:block"';
  2423.         } else {
  2424.             $show_features_1 '';
  2425.             $show_features_2 '';
  2426.         }
  2427.         $description $agencyDescriptionsRepo->getDescriptionsByLang($langSelect->getCod());
  2428.         $filters["e_operacio"] = $operacio;
  2429.         $filters["e_supertipus"] = $supertipus;
  2430.         $filters["e_province"] = $province;
  2431.         $filters["e_locality"] = $locality;
  2432.         $filters["e_zona"] = $zona;
  2433.         $filters["e_domain"] = "";
  2434.  
  2435.         $pagesGroup = array();
  2436.         foreach($langs as $l){
  2437.             $filters["e_lang"] = $l->getCod();
  2438.             $pagesGroup[] = array(
  2439.                 "lang" => $l->getCod(),
  2440.                 "status" => 1,
  2441.                 "visible" => 1,
  2442.                 "slug" => $this->validate_url($filters''falsefalse)
  2443.             );
  2444.         }
  2445.         return $this->render('main/front/search.html.twig', [
  2446.             "menus" => $menus,
  2447.             "urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
  2448.             "langs" => $langs,
  2449.             "lang" => $langSelect,
  2450.             "agency" => $agency,
  2451.             "texts" => $texts,
  2452.             "array_supertipos" => $array_supertipos,
  2453.             "array_localidades1" => $array_localidades1,
  2454.             "array_localidades2" => $array_localidades2,
  2455.             "zona_resultados" => $zona_resultados,
  2456.             "array_zonas" => $array_zonas,
  2457.             "array_precios_1" => $array_precios_1,
  2458.             "array_precios_2" => $array_precios_2,
  2459.             "idtipus" => $idtipus,
  2460.             "checked" => $checked,
  2461.             "show_features_1" => $show_features_1,
  2462.             "show_features_2" => $show_features_2,
  2463.             "title" => $title,
  2464.             "title_count" => $title_count,
  2465.             "title_count_text" => $title_count_text,
  2466.             "tabs_operations" => $tabs_operations,
  2467.             "sortby_list" => $sortby_list,
  2468.             "sortby" => $sortBy,
  2469.             "immobles" => $immobles,
  2470.             "text_seo_operacio" => $text_seo_operacio,
  2471.             "url_zona" => $url_zona,
  2472.             "descriptions" => $description,
  2473.             "filtres" => $filtres,
  2474.             "pagesGroup" => $pagesGroup,
  2475.             "idsupertipus" => $idSuperTipus,
  2476.             "params_url" => array(
  2477.                 "operacio" => $operacio,
  2478.                 "supertipus" => $supertipus,
  2479.                 "province" => $province,
  2480.                 "locality" => $locality,
  2481.                 "zona" => $cerca_url_zona,
  2482.                 "features" => $features,
  2483.                 "subtipus" => $subtipus
  2484.             )
  2485.         ]);
  2486.     }
  2487.     public function contenido_frase($lang)
  2488.     {
  2489.         switch($lang){
  2490.             case "ca"$arrayfrase = array('txt_on' => " a ",
  2491.                                             'txt_de' => " de ",
  2492.                                             'txt_en' => " en ",
  2493.                                             'cod_lang' => "ca_ES",
  2494.                                             'breadcrumb_lang' => "");
  2495.             break;
  2496.             case "es":  $arrayfrase = array('txt_on' => " en ",
  2497.                                             'txt_de' => " de ",
  2498.                                             'txt_en' => " en ",
  2499.                                             'cod_lang' => "es_ES",
  2500.                                             'breadcrumb_lang' => "/es");
  2501.             break;
  2502.             case "en":  $arrayfrase = array('txt_on' => " in ",
  2503.                                             'txt_de' => " of ",
  2504.                                             'txt_en' => " ",
  2505.                                             'cod_lang' => "en_ES",
  2506.                                             'breadcrumb_lang' => "/en");
  2507.             break;
  2508.             case "ru":  $arrayfrase = array('txt_on' => " ",
  2509.                                             'txt_de' => " c ",
  2510.                                             'txt_en' => " ",
  2511.                                             'cod_lang' => "ru_RU",
  2512.                                             'breadcrumb_lang' => "/ru");
  2513.             break;
  2514.             case "fr":  $arrayfrase = array('txt_on' => " ",
  2515.                                             'txt_de' => " de ",
  2516.                                             'txt_en' => " à ",
  2517.                                             'cod_lang' => "fr_FR",
  2518.                                             'breadcrumb_lang' => "/fr");
  2519.             break;
  2520.             case "de":  $arrayfrase = array('txt_on' => " ",
  2521.                                             'txt_de' => " ",
  2522.                                             'txt_en' => " ",
  2523.                                             'cod_lang' => "de_DE",
  2524.                                             'breadcrumb_lang' => "/de");
  2525.             break;
  2526.             case "ch":  $arrayfrase = array('txt_on' => " ",
  2527.                                             'txt_de' => " ",
  2528.                                             'txt_en' => " ",
  2529.                                             'cod_lang' => "zh_CN",
  2530.                                             'breadcrumb_lang' => "/ch");
  2531.             break;
  2532.             case "ar":  $arrayfrase = array('txt_on' => " ",
  2533.                                             'txt_de' => " ",
  2534.                                             'txt_en' => " ",
  2535.                                             'cod_lang' => "ar_SA",
  2536.                                             'breadcrumb_lang' => "/ar");
  2537.             break;
  2538.             default: $arrayfrase = array('txt_on' => " a ",
  2539.                                             'txt_de' => " de ",
  2540.                                             'txt_en' => " en ",
  2541.                                             'cod_lang' => "ca_ES",
  2542.                                             'breadcrumb_lang' => "");
  2543.         }
  2544.         return $arrayfrase;
  2545.     }
  2546.     public function obtener_url_idioma($idioma)
  2547.     {
  2548.         $url_idioma "";
  2549.         if ($idioma == "es") {
  2550.             $url_idioma "/es";
  2551.         }
  2552.         if ($idioma == "ca") {
  2553.             $url_idioma "/ca";
  2554.         }
  2555.         if ($idioma == "en") {
  2556.             $url_idioma "/en";
  2557.         }
  2558.         if ($idioma == "ru") {
  2559.             $url_idioma "/ru";
  2560.         }
  2561.         if ($idioma == "de") {
  2562.             $url_idioma "/de";
  2563.         }
  2564.         if ($idioma == "ch") {
  2565.             $url_idioma "/ch";
  2566.         }
  2567.         if ($idioma == "ar") {
  2568.             $url_idioma "/ar";
  2569.         }
  2570.         if ($idioma == "fr") {
  2571.             $url_idioma "/fr";
  2572.         }
  2573.         return $url_idioma;
  2574.     }
  2575.     public function makeUrl($options$vars$get_params false$exclude_features false$cerca_url_zona ""$pagina "")
  2576.     {
  2577.         $canonical_url "";
  2578.         if (isset($options['operacio']) && $options['operacio'] > 0)
  2579.             $canonical_url .= $options['nom_operacio'] . "/";
  2580.         if (isset($options["tipus"]))
  2581.             $canonical_url .= $options['nom_supertipus'] . "/";
  2582.         $canonical_url .= strtolower($options['nom_provincia']) . "/";
  2583.         if (isset($options["localitat"]) && $options['idlocalitat'] > 0)
  2584.             $canonical_url .= $options['nom_localitat'] . "/";
  2585.         if ((isset($cerca_url_zona) && ($cerca_url_zona != '')) && $pagina != 'resultatCerca' && $pagina != 'features' && $pagina != 'sortby')
  2586.             $canonical_url .= $cerca_url_zona "/";
  2587.         if ($get_params) {
  2588.             $canonical_url .= "?";
  2589.             $aToExclude = array(
  2590.                 'pagina',
  2591.                 'operacio',
  2592.                 'tipus',
  2593.                 'provincia',
  2594.                 'localitat',
  2595.                 'zona',
  2596.                 'p'
  2597.             );
  2598.             foreach ($vars as $k => $v) {
  2599.                 if (!in_array($k$aToExclude)) {
  2600.                     if ($exclude_features == false || $k != 'features')
  2601.                         $canonical_url .= "&" $k "=" $v;
  2602.                 }
  2603.             }
  2604.         }
  2605.         return $canonical_url;
  2606.     }
  2607.     public function obtener_directorio_fotos($idInmueble)
  2608.     {
  2609.         $_add_on_directory round($idInmueble/20000);
  2610.         return $_add_on_directory;
  2611.     }
  2612.     public function get_property_title($prop_array$idOperacio$lang)
  2613.     {
  2614.         $codeLang $this->getCodLang($lang);
  2615.         if(! isset($idOperacio) || empty($idOperacio)){
  2616.             $idOperacio = (isset($prop_array['precio_alquiler']) && !empty($prop_array['precio_alquiler'])) ? 1;
  2617.         }
  2618.         $en_array = array( "ca" => "a""es" => "en""en" => "in""ru" => "in""fr" => "à""ch" => "在""ar" => "في""de" => "in");
  2619.         $do_array = array( "ca" => "dorm""es" => "dorm""en" => "bedrooms""ru" => "bedrooms""fr" => "chambres""ch" => "房間""ar" => "الغرف""de" => "räume");
  2620.         $em $this->getDoctrine()->getManager();
  2621.         $apiPropertiesSubtypesRepo $em->getRepository(ApiPropertiesSubtypes::class);
  2622.         $tipusOperacioRepo $em->getRepository(TipusOperacio::class);
  2623.         $apiPropertiesTypes $em->getRepository(ApiPropertiesTypes::class);
  2624.         $apiPropertiesFeatures $em->getRepository(ApiPropertiesFeatures::class);
  2625.         $textsRepo $em->getRepository(Textos::class);
  2626.         $subtype $apiPropertiesSubtypesRepo->get_subtipus_name($prop_array['id_properties_subtype'], $codeLang);
  2627.         $operation $tipusOperacioRepo->get_text_seo_by_codi($lang,$idOperacio);
  2628.         $piso $apiPropertiesSubtypesRepo->get_subtipus_name(1$codeLang);
  2629.         $casa $apiPropertiesTypes->get_text_type($prop_array['id'], $codeLang);
  2630.         $title '';
  2631.         if ( $idOperacio == 2) {
  2632.             if ( $prop_array['id_properties_type'] == 2) {
  2633.                 if($lang == "ru")
  2634.                 {
  2635.                     $sub $subtype;
  2636.                 }else{
  2637.                     $sub mb_strtolower($subtype'UTF-8');
  2638.                 }
  2639.                 $title .= $casa " (".$sub.")";
  2640.             } else {
  2641.                 $title .= $subtype;
  2642.             }
  2643.         } else {
  2644.             if ( $idOperacio == 1) {
  2645.                 if ( $prop_array['id_properties_type'] == 2) {
  2646.                     if($lang == "ru")
  2647.                     {
  2648.                         $sub $subtype;
  2649.                     }else{
  2650.                         $sub mb_strtolower($subtype'UTF-8');
  2651.                     }
  2652.                     $title .= ucfirst ($operation) . " " .  $casa " ("$sub.")";
  2653.                 } else {
  2654.                     if($lang == "ru")
  2655.                     {
  2656.                         $sub $subtype;
  2657.                     }else{
  2658.                         $sub mb_strtolower($subtype'UTF-8');
  2659.                     }
  2660.                     $title .= ucfirst ($operation) . " " $sub;
  2661.                 }
  2662.             } else {
  2663.                 if  ($idOperacio == 3) {
  2664.                     if ( $prop_array['id_properties_type'] == 2) {
  2665.                         $title .= ucfirst ($operation) . " - " $casa " " $en_array[$lang];
  2666.                     } else {
  2667.                         $title .= ucfirst ($operation) . " - " $piso " " $en_array[$lang];
  2668.                     }
  2669.                 } else {
  2670.                     if ( $prop_array['id_properties_type'] == 2) {
  2671.                         if($lang == "ru")
  2672.                         {
  2673.                             $sub $subtype;
  2674.                         }else{
  2675.                             $sub mb_strtolower($subtype'UTF-8');
  2676.                         }
  2677.                         $title .= $casa " " $en_array[$lang] . " " $sub;
  2678.                     } else {
  2679.                         $title .= $piso " " $en_array[$lang] . " " mb_strtolower($operation'UTF-8');
  2680.                     }
  2681.                 }
  2682.             }
  2683.         }
  2684.         /* Miramos si esta bien comunicado y any de construccion*/
  2685.         $bien_comunicado $apiPropertiesFeatures->estaBienComunicado($prop_array['id']);
  2686.         $any_construcc $apiPropertiesFeatures->get_by_id($prop_array['id'], 1);
  2687.         $sumaKW 0;
  2688.         if ( $prop_array['superficie'] ) { $title .=  ", " $prop_array['superficie'] . " m²"$sumaKW++; }
  2689.         if ( (intval($prop_array['num_dorm'], 10) > 1) ) { 
  2690.             $title .= ", " $prop_array['num_dorm'] . " " $do_array[$lang]; 
  2691.             $sumaKW++; 
  2692.         }
  2693.         if (($any_construcc 2000) && ($prop_array['obra_nueva'] == 0)) {
  2694.             $semi_nuevo_text $textsRepo->get_text($lang,"semi_nuevo");
  2695.             $title .= ", " $semi_nuevo_text$sumaKW++;
  2696.         }
  2697.         if (($any_construcc 2000) && ($prop_array['obra_nueva'] == 1)) {
  2698.             $nuevo_text $textsRepo->get_text($lang,"nuevo");
  2699.             $title .= ", " $nuevo_text$sumaKW++;
  2700.         }
  2701.         if (  $sumaKW && $prop_array['situacion_concreta'] != '' ) {
  2702.                 $title .=  ", " $prop_array['situacion_concreta']; 
  2703.                 $sumaKW++;
  2704.         }
  2705.         return $title;
  2706.     }
  2707.     function tiempoTranscurrido($datetime$lang$full false)
  2708.     {
  2709.         $em $this->getDoctrine()->getManager();
  2710.         $textsRepo $em->getRepository(Textos::class);
  2711.         $text $textsRepo->getTextosByLang($lang);
  2712.         $now    = new \DateTime();
  2713.         $ago    = new \DateTime($datetime);
  2714.         $now->setTimezone(new \DateTimeZone('Europe/Madrid'));
  2715.         $diff   $now->diff($ago);
  2716.         $diff->floor($diff->7);
  2717.         $diff->-= $diff->7;
  2718.         $string = array(
  2719.             'y' => $text['date_year'],
  2720.             'm' => $text['date_month'],
  2721.             'w' => $text['date_week'],
  2722.             'd' => $text['date_day'],
  2723.             'h' => $text['date_hour'],
  2724.             'i' => $text['date_minut'],
  2725.             's' => $text['date_second'],
  2726.         );
  2727.         $stringPlural = array(
  2728.             'y' => $text['date_years'],
  2729.             'm' => $text['date_months'],
  2730.             'w' => $text['date_weeks'],
  2731.             'd' => $text['date_days'],
  2732.             'h' => $text['date_hours'],
  2733.             'i' => $text['date_minuts'],
  2734.             's' => $text['date_seconds'],
  2735.         );
  2736.         foreach ($string as $k => &$v) {
  2737.             if ($diff->$k) {
  2738.                 $texto = ($diff->$k == 1) ? $v $stringPlural[$k];
  2739.                 $v $diff->$k ' ' $texto;
  2740.             } else {
  2741.                 unset($string[$k]);
  2742.             }
  2743.         }
  2744.         
  2745.         if (!$full$string array_slice($string01);
  2746.         return $string $text['date_since'] . ' ' implode(', '$string) : $text['date_now'];
  2747.     }
  2748.     public function get_links_seo_cercador_avancat($lang$provincia ""$id_localidad ""$operacion 0$supertipus ""$subtipo ""$zona ""$idSubtipus "")
  2749.     {
  2750.         $em $this->getDoctrine()->getManager();
  2751.         $textsRepo $em->getRepository(Textos::class);
  2752.         $apiPropertiesSupertypeI18nRepo $em->getRepository(ApiPropertiesSupertypeI18n::class);
  2753.         $apiPropertySuperTypeRepo $em->getRepository(ApiPropertiesSupertype::class);
  2754.         $apiLocationsRepo $em->getRepository(ApiLocations::class);
  2755.         $apiZonesRepo $em->getRepository(ApiZones::class);
  2756.         $tipusOperacioRepo $em->getRepository(TipusOperacio::class);
  2757.         $codeLang $this->getCodLang($lang);
  2758.         //Diccionario.
  2759.         $alquiler_text $textsRepo->get_text($lang,"cercador_lloguer");
  2760.         $alquilar_text $textsRepo->get_text($lang,"alquilar");
  2761.         $venta_text $textsRepo->get_text($lang,"tabs_venda");
  2762.         $comprar_text $textsRepo->get_text($lang,"comprar_text");
  2763.         $duplex_text $textsRepo->get_text($lang,"cercador_duplex");
  2764.         $atics_text $textsRepo->get_text($lang,"cercador_atic");
  2765.         $inmuebles_text $textsRepo->get_text($lang,"signia_trobats");
  2766.         $this->array_links = array();
  2767.         $pisos_text $apiPropertiesSupertypeI18nRepo->get_friendly_name($codeLang,1);
  2768.         $casas_text $apiPropertiesSupertypeI18nRepo->get_friendly_name($codeLang,2);
  2769.         $atics_url $apiPropertiesSupertypeI18nRepo->get_friendly_name($codeLang,19);
  2770.         $duplex_url $apiPropertiesSupertypeI18nRepo->get_friendly_name($codeLang,35);
  2771.         $arr_supertipus $apiPropertySuperTypeRepo->get_all_supertipus($codeLang);
  2772.         $localidad_array $apiLocationsRepo->get_friendly_and_name($id_localidad);
  2773.         $localidad_friendly $localidad_array['friendly'];
  2774.         $localidad_name $localidad_array['name'];
  2775.         $zona_id null;
  2776.         $query_zona null;
  2777.         if ($zona != "") {
  2778.             $array_zona $apiZonesRepo->get_for_gangway($zona$id_localidad);
  2779.             if($array_zona){
  2780.                 $cerca_query_zona "";
  2781.                 $result_zona $apiZonesRepo->get_all_by_name($zona);
  2782.                 if (is_array($result_zona)){
  2783.                     $query_zona  implode(","$result_zona);
  2784.                     $cerca_query_zona $query_zona;
  2785.                 }
  2786.     
  2787.                 $zona_friendly "/zona-".$array_zona['friendly'];
  2788.                 $zona_name $array_zona['name'];
  2789.                 $zona_id $array_zona['id'];
  2790.                 $query_zona $cerca_query_zona;
  2791.                 $localidad_name $zona_name;
  2792.             }
  2793.         }else{
  2794.             $zona_friendly "";
  2795.             $zona_name "";
  2796.             $zona_id "";
  2797.             $query_zona "";
  2798.         }
  2799.         $habitatges 0;
  2800.         $oficinas 0;
  2801.         $locales 0;
  2802.         $garages 0;
  2803.         $edificios 0;
  2804.         $terrenos 0;
  2805.         $industrial 0;
  2806.         $hotel 0;
  2807.         $otros 0;
  2808.         $idOperacio $tipusOperacioRepo->get_by_name($lang$operacion);
  2809.         $idSuperTipus $apiPropertySuperTypeRepo->get_by_name($operacion$lang);
  2810.         switch ($operacion) {
  2811.             //Alquiler
  2812.             case 1:
  2813.                     $array_subtipo explode("|"$subtipo);
  2814.                     $friendly_operacion $tipusOperacioRepo->get_friendly($lang,2);
  2815.                     //Calcula el link contrario a la operación según el supertipo.
  2816.                     switch ($supertipus)
  2817.                     {
  2818.                         case '1':
  2819.                             //Viviendas venta.
  2820.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1)) {
  2821.                                 $total_immobles_viviendas_venta $this->get_num_by_type_immoble($id_localidad,2,1,"",$zona_id,$query_zona);
  2822.                                 if($total_immobles_viviendas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2823.                                 {
  2824.                                     $array_url $this->make_array_url($lang,$total_immobles_viviendas_venta,$comprar_text,"",$localidad_name,$friendly_operacion,$arr_supertipus[0]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2825.                                     array_push($this->array_links$array_url);
  2826.                                 }
  2827.                                 $habitatges 1;
  2828.                             }
  2829.                             break;
  2830.                         case '2':
  2831.                             //Oficinas venta.
  2832.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1))
  2833.                             {
  2834.                                 $total_immobles_oficinas_venta $this->get_num_by_type_immoble($id_localidad,2,2,"",$zona_id,$query_zona);
  2835.                                 if($total_immobles_oficinas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2836.                                 {
  2837.                                     $array_url $this->make_array_url($lang,$total_immobles_oficinas_venta,$comprar_text,$arr_supertipus[1]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[1]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2838.                                     array_push($this->array_links$array_url);
  2839.                                 }
  2840.                                 $oficinas 1;
  2841.                             }
  2842.                             break;
  2843.                         case '3':
  2844.                             //Locales venta.
  2845.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1))
  2846.                             {
  2847.                                 $total_immobles_locales_venta $this->get_num_by_type_immoble($id_localidad,2,3,"",$zona_id,$query_zona);
  2848.                                 if($total_immobles_locales_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2849.                                 {
  2850.                                     $array_url $this->make_array_url($lang,$total_immobles_locales_venta,$venta_text,$arr_supertipus[2]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[2]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2851.                                     array_push($this->array_links$array_url);
  2852.                                 }
  2853.                                 $locales 1;
  2854.                             }
  2855.                             break;
  2856.                         case '4':
  2857.                             //Garages venta.
  2858.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1))
  2859.                             {
  2860.                                 $total_immobles_garages_venta $this->get_num_by_type_immoble($id_localidad,2,4,"",$zona_id,$query_zona);
  2861.                                 if($total_immobles_garages_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2862.                                 {
  2863.                                     $array_url $this->make_array_url($lang,$total_immobles_garages_venta,$comprar_text,$arr_supertipus[3]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[3]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2864.                                     array_push($this->array_links$array_url);
  2865.                                 }
  2866.                                 $garages 1;
  2867.                             }
  2868.                             break;
  2869.                         case '5':
  2870.                             //Edificios venta.
  2871.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1))
  2872.                             {
  2873.                                 $total_immobles_edificios_venta $this->get_num_by_type_immoble($id_localidad,2,5,"",$zona_id,$query_zona);
  2874.                                 if($total_immobles_edificios_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2875.                                 {
  2876.                                     $array_url $this->make_array_url($lang,$total_immobles_edificios_venta,$venta_text,$arr_supertipus[4]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[4]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2877.                                     array_push($this->array_links$array_url);
  2878.                                 }
  2879.                                 $edificios 1;
  2880.                             }
  2881.                             break;
  2882.                         case '6':
  2883.                             //Terrenos venta.
  2884.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1))
  2885.                             {
  2886.                                 $total_immobles_terrenos_venta $this->get_num_by_type_immoble($id_localidad,2,6,"",$zona_id,$query_zona);
  2887.                                 if($total_immobles_terrenos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2888.                                 {
  2889.                                     $array_url $this->make_array_url($lang,$total_immobles_terrenos_venta,$comprar_text,$arr_supertipus[5]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[5]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  2890.                                     array_push($this->array_links$array_url);
  2891.                                 }
  2892.                                 $terrenos 1;
  2893.                             }
  2894.                             break;
  2895.                         case '7':
  2896.                             //Industrial venta.
  2897.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1))
  2898.                             {
  2899.                                 $total_immobles_industrial_venta $this->get_num_by_type_immoble($id_localidad,2,7,"",$zona_id,$query_zona);
  2900.                                 if($total_immobles_industrial_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2901.                                 {
  2902.                                     $array_url $this->make_array_url($lang,$total_immobles_industrial_venta,$comprar_text,$arr_supertipus[6]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[6]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2903.                                     array_push($this->array_links$array_url);
  2904.                                 }
  2905.                                 $industrial 1;
  2906.                             }
  2907.                             break;
  2908.                         case '8':
  2909.                             //Hotel venta.
  2910.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1))
  2911.                             {
  2912.                                 $total_immobles_hotel_venta $this->get_num_by_type_immoble($id_localidad,2,8,"",$zona_id,$query_zona);
  2913.                                 if($total_immobles_hotel_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2914.                                 {
  2915.                                     $array_url $this->make_array_url($lang,$total_immobles_hotel_venta,$venta_text,$arr_supertipus[7]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[7]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2916.                                     array_push($this->array_links$array_url);
  2917.                                 }
  2918.                                 $hotel 1;
  2919.                             }
  2920.                             break;
  2921.                         case '9':
  2922.                             //Otros Inmuebles venta.
  2923.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 1))
  2924.                             {
  2925.                                 $total_immobles_otros_venta $this->get_num_by_type_immoble($id_localidad,2,9,"",$zona_id,$query_zona);
  2926.                                 if($total_immobles_otros_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2927.                                 {
  2928.                                     $array_url $this->make_array_url($lang,$total_immobles_otros_venta,$venta_text,$arr_supertipus[8]['nom']." ".$inmuebles_text,$localidad_name,$friendly_operacion,$arr_supertipus[8]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2929.                                     array_push($this->array_links$array_url);
  2930.                                 }
  2931.                                 $otros 1;
  2932.                             }
  2933.                             break;
  2934.                     }
  2935.                     $friendly_operacion $tipusOperacioRepo->get_friendly($lang,$operacion);
  2936.                     $friendly_supertipus $apiPropertySuperTypeRepo->get_friendly(1,$codeLang);
  2937.                     //Pisos alquiler.
  2938.                     if ($idSubtipus == "" || (in_array("1"$array_subtipo) && $idOperacio == 2) || !in_array("1"$array_subtipo)) {
  2939.                         $total_immobles_pisos_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"1|28|32|10",$zona_id,$query_zona);
  2940.                         if($total_immobles_pisos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2941.                         {
  2942.                             $array_url $this->make_array_url($lang,$total_immobles_pisos_alquiler,$alquiler_text,$pisos_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$pisos_text);
  2943.                             array_push($this->array_links$array_url);
  2944.                         }
  2945.                     }
  2946.                     //Casas alquiler.
  2947.                     if ($idSubtipus == "" || (in_array("2"$array_subtipo) && $idOperacio == 2) || !in_array("2"$array_subtipo)) {
  2948.                         $total_immobles_casas_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"2|11|20|29|33|36",$zona_id,$query_zona);
  2949.                         if($total_immobles_casas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2950.                         {
  2951.                             $array_url $this->make_array_url($lang,$total_immobles_casas_alquiler,$alquilar_text,$casas_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$casas_text);
  2952.                             array_push($this->array_links$array_url);
  2953.                         }
  2954.                     }
  2955.                     //Áticos alquiler.
  2956.                     if ($idSubtipus == "" || (in_array("19"$array_subtipo) && $idOperacio == 2) || !in_array("19"$array_subtipo)) {
  2957.                         $total_immobles_atics_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"19",$zona_id,$query_zona);
  2958.                         if($total_immobles_atics_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2959.                         {
  2960.                             $array_url $this->make_array_url($lang,$total_immobles_atics_alquiler,$alquiler_text,$atics_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$atics_url,1);
  2961.                             array_push($this->array_links$array_url);
  2962.                         }
  2963.                     }
  2964.                     //Duplex alquiler.
  2965.                     if ($idSubtipus == "" || (in_array("35"$array_subtipo) && $idOperacio == 2) || !in_array("35"$array_subtipo)) {
  2966.                         $total_immobles_duplex_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"35",$zona_id,$query_zona);
  2967.                         if($total_immobles_duplex_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2968.                         {
  2969.                             $array_url $this->make_array_url($lang,$total_immobles_duplex_alquiler,$alquiler_text,$duplex_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$duplex_url);
  2970.                             array_push($this->array_links$array_url);
  2971.                         }
  2972.                     }
  2973.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  2974.                     //Viviendas alquiler.
  2975.                     if ($idSuperTipus != ||
  2976.                         (in_array("1"$array_subtipo) && $idOperacio == 1) ||
  2977.                         (in_array("2"$array_subtipo) && $idOperacio == 1) ||
  2978.                         (in_array("19"$array_subtipo) && $idOperacio == 1) ||
  2979.                         (in_array("35"$array_subtipo) && $idOperacio == 1)) {
  2980.                         $total_immobles_viviendas_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"",$zona_id,$query_zona);
  2981.                         if($total_immobles_viviendas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2982.                         {
  2983.                             $array_url $this->make_array_url($lang,$total_immobles_viviendas_alquiler,$alquiler_text,"",$localidad_name,$friendly_operacion,$arr_supertipus[0]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2984.                             array_push($this->array_links$array_url);
  2985.                         }
  2986.                     }
  2987.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  2988.                     //Oficinas alquiler.
  2989.                     if ($idSuperTipus != 2) {
  2990.                         $total_immobles_oficinas_alquiler $this->get_num_by_type_immoble($id_localidad,1,2,"",$zona_id,$query_zona);
  2991.                         if($total_immobles_oficinas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  2992.                         {
  2993.                             $array_url $this->make_array_url($lang,$total_immobles_oficinas_alquiler,$alquilar_text,$arr_supertipus[1]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[1]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  2994.                             array_push($this->array_links$array_url);
  2995.                         }
  2996.                     }
  2997.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  2998.                     //Locales alquiler.
  2999.                     if ($idSuperTipus != 3)
  3000.                     {
  3001.                         $total_immobles_locales_alquiler $this->get_num_by_type_immoble($id_localidad,1,3,"",$zona_id,$query_zona);
  3002.                         if($total_immobles_locales_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3003.                         {
  3004.                             $array_url $this->make_array_url($lang,$total_immobles_locales_alquiler,$alquiler_text,$arr_supertipus[2]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[2]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3005.                             array_push($this->array_links$array_url);
  3006.                         }
  3007.                     }
  3008.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3009.                     //Garages alquiler.
  3010.                     if ($idSuperTipus != 4)
  3011.                     {
  3012.                         $total_immobles_garages_alquiler $this->get_num_by_type_immoble($id_localidad,1,4,"",$zona_id,$query_zona);
  3013.                         if($total_immobles_garages_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3014.                         {
  3015.                             $array_url $this->make_array_url($lang,$total_immobles_garages_alquiler,$alquiler_text,$arr_supertipus[3]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[3]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3016.                             array_push($this->array_links$array_url);
  3017.                         }
  3018.                     }
  3019.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3020.                     //Edificios alquiler.
  3021.                     if ($idSuperTipus != 5)
  3022.                     {
  3023.                         $total_immobles_edificios_alquiler $this->get_num_by_type_immoble($id_localidad,1,5,"",$zona_id,$query_zona);
  3024.                         if($total_immobles_edificios_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3025.                         {
  3026.                             $array_url $this->make_array_url($lang,$total_immobles_edificios_alquiler,$alquilar_text,$arr_supertipus[4]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[4]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3027.                             array_push($this->array_links$array_url);
  3028.                         }
  3029.                     }
  3030.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3031.                     //Terrenos alquiler.
  3032.                     if ($idSuperTipus != 6)
  3033.                     {
  3034.                         $total_immobles_terrenos_alquiler $this->get_num_by_type_immoble($id_localidad,1,6,"",$zona_id,$query_zona);
  3035.                         if($total_immobles_terrenos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3036.                         {
  3037.                             $array_url $this->make_array_url($lang,$total_immobles_terrenos_alquiler,$alquiler_text,$arr_supertipus[5]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[5]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3038.                             array_push($this->array_links$array_url);
  3039.                         }
  3040.                     }
  3041.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3042.                     //Industrial alquiler.
  3043.                     if ($idSuperTipus != 7)
  3044.                     {
  3045.                         $total_immobles_industrial_alquiler $this->get_num_by_type_immoble($id_localidad,1,7,"",$zona_id,$query_zona);
  3046.                         if($total_immobles_industrial_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3047.                         {
  3048.                             $array_url $this->make_array_url($lang,$total_immobles_industrial_alquiler,$alquilar_text,$arr_supertipus[6]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[6]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3049.                             array_push($this->array_links$array_url);
  3050.                         }
  3051.                     }
  3052.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3053.                     //Hotel alquiler.
  3054.                     if ($idSuperTipus != 8)
  3055.                     {
  3056.                         $total_immobles_hotel_alquiler $this->get_num_by_type_immoble($id_localidad,1,8,"",$zona_id,$query_zona);
  3057.                         if($total_immobles_hotel_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3058.                         {
  3059.                             $array_url $this->make_array_url($lang,$total_immobles_hotel_alquiler,$alquiler_text,$arr_supertipus[7]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[7]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3060.                             array_push($this->array_links$array_url);
  3061.                         }
  3062.                     }
  3063.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3064.                     //Otros Inmuebles alquiler.
  3065.                     if ($idSuperTipus != 9)
  3066.                     {
  3067.                         $total_immobles_otros_alquiler $this->get_num_by_type_immoble($id_localidad,1,9,"",$zona_id,$query_zona);
  3068.                         if($total_immobles_otros_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3069.                         {
  3070.                             $array_url $this->make_array_url($lang,$total_immobles_otros_alquiler,$alquiler_text,$arr_supertipus[8]['nom']." ".$inmuebles_text,$localidad_name,$friendly_operacion,$arr_supertipus[8]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3071.                             array_push($this->array_links$array_url);
  3072.                         }
  3073.                     }
  3074.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3075.                     $friendly_operacion $tipusOperacioRepo->get_friendly($lang,2);
  3076.                     //Viviendas venta.
  3077.                     if ($idSuperTipus != ||
  3078.                         ($idSuperTipus == && $idOperacio == 1) &&
  3079.                         $habitatges == 0) {
  3080.                         $total_immobles_viviendas_venta $this->get_num_by_type_immoble($id_localidad,2,1,"",$zona_id,$query_zona);
  3081.                         if($total_immobles_viviendas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3082.                         {
  3083.                             $array_url $this->make_array_url($lang,$total_immobles_viviendas_venta,$comprar_text,"",$localidad_name,$friendly_operacion,$arr_supertipus[0]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3084.                             array_push($this->array_links$array_url);
  3085.                         }
  3086.                     }
  3087.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3088.                     $friendly_supertipus $apiPropertySuperTypeRepo->get_friendly(1,$codeLang);
  3089.                     //Pisos venta.
  3090.                     if ($idSubtipus == "" || (in_array("1"$array_subtipo) && $idOperacio == 1) || !in_array("1"$array_subtipo))
  3091.                     {
  3092.                         $total_immobles_pisos_venta $this->get_num_by_type_immoble($id_localidad,2,1,"1|28|32|10",$zona_id,$query_zona);
  3093.                         if($total_immobles_pisos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3094.                         {
  3095.                             $array_url $this->make_array_url($lang,$total_immobles_pisos_venta,$comprar_text,$pisos_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$pisos_text,1);
  3096.                             array_push($this->array_links$array_url);
  3097.                         }
  3098.                     }
  3099.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3100.                     //Casas venta.
  3101.                     if ($idSubtipus == "" || (in_array("2"$array_subtipo) && $idOperacio == 1) || !in_array("2"$array_subtipo))
  3102.                     {
  3103.                         $total_immobles_casas_venta $this->get_num_by_type_immoble($id_localidad,2,1,"2|11|20|29|33|36",$zona_id,$query_zona);
  3104.                         if($total_immobles_casas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3105.                         {
  3106.                             $array_url $this->make_array_url($lang,$total_immobles_casas_venta,$venta_text,$casas_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$casas_text);
  3107.                             array_push($this->array_links$array_url);
  3108.                         }
  3109.                     }
  3110.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3111.                     //Áticos venta.
  3112.                     if ($idSubtipus == "" || (in_array("19"$array_subtipo) && $idOperacio == 1) || !in_array("19"$array_subtipo))
  3113.                     {
  3114.                         $total_immobles_atics_venta $this->get_num_by_type_immoble($id_localidad,2,1,"19",$zona_id,$query_zona);
  3115.                         if($total_immobles_atics_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3116.                         {
  3117.                             $array_url $this->make_array_url($lang,$total_immobles_atics_venta,$comprar_text,$atics_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$atics_url,1);
  3118.                             array_push($this->array_links$array_url);
  3119.                         }
  3120.                     }
  3121.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3122.                     //Duplex venta.
  3123.                     if ($idSubtipus == "" || (in_array("35"$array_subtipo) && $idOperacio == 1) || !in_array("35"$array_subtipo))
  3124.                     {
  3125.                         $total_immobles_duplex_venta $this->get_num_by_type_immoble($id_localidad,2,1,"35",$zona_id,$query_zona);
  3126.                         if($total_immobles_duplex_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3127.                         {
  3128.                             $array_url $this->make_array_url($lang,$total_immobles_duplex_venta,$venta_text,$duplex_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$duplex_url);
  3129.                             array_push($this->array_links$array_url);
  3130.                         }
  3131.                     }
  3132.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3133.                     //Oficinas venta.
  3134.                     if ($idSuperTipus != ||
  3135.                         ($idSuperTipus == && $idOperacio == 1) &&
  3136.                         $oficinas == 0)
  3137.                     {
  3138.                         $total_immobles_oficinas_venta $this->get_num_by_type_immoble($id_localidad,2,2,"",$zona_id,$query_zona);
  3139.                         if($total_immobles_oficinas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3140.                         {
  3141.                             $array_url $this->make_array_url($lang,$total_immobles_oficinas_venta,$comprar_text,$arr_supertipus[1]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[1]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3142.                             array_push($this->array_links$array_url);
  3143.                         }
  3144.                     }
  3145.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3146.                     //Locales venta.
  3147.                     if ($idSuperTipus != ||
  3148.                         ($idSuperTipus == && $idOperacio == 1) &&
  3149.                         $locales == 0)
  3150.                     {
  3151.                         $total_immobles_locales_venta $this->get_num_by_type_immoble($id_localidad,2,3,"",$zona_id,$query_zona);
  3152.                         if($total_immobles_locales_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3153.                         {
  3154.                             $array_url $this->make_array_url($lang,$total_immobles_locales_venta,$venta_text,$arr_supertipus[2]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[2]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3155.                             array_push($this->array_links$array_url);
  3156.                         }
  3157.                     }
  3158.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3159.                     //Garages venta.
  3160.                     if ($idSuperTipus != ||
  3161.                         ($idSuperTipus == && $idOperacio == 1) &&
  3162.                         $garages == 0)
  3163.                     {
  3164.                         $total_immobles_garages_venta $this->get_num_by_type_immoble($id_localidad,2,4,"",$zona_id,$query_zona);
  3165.                         if($total_immobles_garages_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3166.                         {
  3167.                             $array_url $this->make_array_url($lang,$total_immobles_garages_venta,$comprar_text,$arr_supertipus[3]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[3]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3168.                             array_push($this->array_links$array_url);
  3169.                         }
  3170.                     }
  3171.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3172.                     //Edificios venta.
  3173.                     if ($idSuperTipus != ||
  3174.                         ($idSuperTipus == && $idOperacio == 1) &&
  3175.                         $edificios == 0)
  3176.                     {
  3177.                         $total_immobles_edificios_venta $this->get_num_by_type_immoble($id_localidad,2,5,"",$zona_id,$query_zona);
  3178.                         if($total_immobles_edificios_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3179.                         {
  3180.                             $array_url $this->make_array_url($lang,$total_immobles_edificios_venta,$venta_text,$arr_supertipus[4]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[4]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3181.                             array_push($this->array_links$array_url);
  3182.                         }
  3183.                     }
  3184.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3185.                     //Terrenos venta.
  3186.                     if ($idSuperTipus != ||
  3187.                         ($idSuperTipus == && $idOperacio == 1) &&
  3188.                         $terrenos == 0)
  3189.                     {
  3190.                         $total_immobles_terrenos_venta $this->get_num_by_type_immoble($id_localidad,2,6,"",$zona_id,$query_zona);
  3191.                         if($total_immobles_terrenos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3192.                         {
  3193.                             $array_url $this->make_array_url($lang,$total_immobles_terrenos_venta,$comprar_text,$arr_supertipus[5]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[5]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3194.                             array_push($this->array_links$array_url);
  3195.                         }
  3196.                     }
  3197.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3198.                     //Industrial venta.
  3199.                     if ($idSuperTipus != ||
  3200.                         ($idSuperTipus == && $idOperacio == 1) &&
  3201.                         $industrial == 0)
  3202.                     {
  3203.                         $total_immobles_industrial_venta $this->get_num_by_type_immoble($id_localidad,2,7,"",$zona_id,$query_zona);
  3204.                         if($total_immobles_industrial_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3205.                         {
  3206.                             $array_url $this->make_array_url($lang,$total_immobles_industrial_venta,$comprar_text,$arr_supertipus[6]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[6]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3207.                             array_push($this->array_links$array_url);
  3208.                         }
  3209.                     }
  3210.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3211.                     //Hotel venta.
  3212.                     if ($idSuperTipus != ||
  3213.                         ($idSuperTipus == && $idOperacio == 1) &&
  3214.                         $hotel == 0)
  3215.                     {
  3216.                         $total_immobles_hotel_venta $this->get_num_by_type_immoble($id_localidad,2,8,"",$zona_id,$query_zona);
  3217.                         if($total_immobles_hotel_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3218.                         {
  3219.                             $array_url $this->make_array_url($lang,$total_immobles_hotel_venta,$venta_text,$arr_supertipus[7]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[7]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3220.                             array_push($this->array_links$array_url);
  3221.                         }
  3222.                     }
  3223.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3224.                     //Otros Inmuebles venta.
  3225.                     if ($idSuperTipus != ||
  3226.                         ($idSuperTipus == && $idOperacio == 1) &&
  3227.                         $otros == 0)
  3228.                     {
  3229.                         $total_immobles_otros_venta $this->get_num_by_type_immoble($id_localidad,2,9,"",$zona_id,$query_zona);
  3230.                         if($total_immobles_otros_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3231.                         {
  3232.                             $array_url $this->make_array_url($lang,$total_immobles_otros_venta,$venta_text,$arr_supertipus[8]['nom']." ".$inmuebles_text,$localidad_name,$friendly_operacion,$arr_supertipus[8]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3233.                             array_push($this->array_links$array_url);
  3234.                         }
  3235.                     }
  3236.                     if (count($this->array_links) > 0) {
  3237.                         foreach ($this->array_links as $key => $row) {
  3238.                                 $aux[$key] = $row['num_inmuebles'];
  3239.                             }
  3240.                         array_multisort($auxSORT_DESC$this->array_links);
  3241.                         return $this->array_links;
  3242.                     }
  3243.                 break;
  3244.             //Compra
  3245.             case 2:
  3246.                     $array_subtipo explode("|"$subtipo);
  3247.                     $friendly_operacion $tipusOperacioRepo->get_friendly($lang,1);
  3248.                     //Calcula el link contrario a la operación según el supertipo.
  3249.                     switch ($supertipus)
  3250.                     {
  3251.                         case '1':
  3252.                             //Viviendas alquiler.
  3253.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2)) {
  3254.                                 $total_immobles_viviendas_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"",$zona_id,$query_zona);
  3255.                                 if($total_immobles_viviendas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3256.                                 {
  3257.                                     $array_url $this->make_array_url($lang,$total_immobles_viviendas_alquiler,$alquiler_text,"",$localidad_name,$friendly_operacion,$arr_supertipus[0]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3258.                                     array_push($this->array_links$array_url);
  3259.                                 }
  3260.                                 $habitatges 1;
  3261.                             }
  3262.                             break;
  3263.                         case '2':
  3264.                             //Oficinas alquiler.
  3265.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2))
  3266.                             {
  3267.                                 $total_immobles_oficinas_alquiler $this->get_num_by_type_immoble($id_localidad,1,2,"",$zona_id,$query_zona);
  3268.                                 if($total_immobles_oficinas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3269.                                 {
  3270.                                     $array_url $this->make_array_url($lang,$total_immobles_oficinas_alquiler,$alquiler_text,$arr_supertipus[1]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[1]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3271.                                     array_push($this->array_links$array_url);
  3272.                                 }
  3273.                                 $oficinas 1;
  3274.                             }
  3275.                             break;
  3276.                         case '3':
  3277.                             //Locales alquiler.
  3278.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2))
  3279.                             {
  3280.                                 $total_immobles_locales_alquiler $this->get_num_by_type_immoble($id_localidad,1,3,"",$zona_id,$query_zona);
  3281.                                 if($total_immobles_locales_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3282.                                 {
  3283.                                     $array_url $this->make_array_url($lang,$total_immobles_locales_alquiler,$alquilar_text,$arr_supertipus[2]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[2]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3284.                                     array_push($this->array_links$array_url);
  3285.                                 }
  3286.                                 $locales 1;
  3287.                             }
  3288.                             break;
  3289.                         case '4':
  3290.                             //Garages alquiler.
  3291.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2))
  3292.                             {
  3293.                                 $total_immobles_garages_alquiler $this->get_num_by_type_immoble($id_localidad,1,4,"",$zona_id,$query_zona);
  3294.                                 if($total_immobles_garages_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3295.                                 {
  3296.                                     $array_url $this->make_array_url($lang,$total_immobles_garages_alquiler,$alquiler_text,$arr_supertipus[3]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[3]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3297.                                     array_push($this->array_links$array_url);
  3298.                                 }
  3299.                                 $garages 1;
  3300.                             }
  3301.                             break;
  3302.                         case '5':
  3303.                             //Edificios alquiler.
  3304.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2))
  3305.                             {
  3306.                                 $total_immobles_edificios_alquiler $this->get_num_by_type_immoble($id_localidad,1,5,"",$zona_id,$query_zona);
  3307.                                 if($total_immobles_edificios_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3308.                                 {
  3309.                                     $array_url $this->make_array_url($lang,$total_immobles_edificios_alquiler,$alquilar_text,$arr_supertipus[4]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[4]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3310.                                     array_push($this->array_links$array_url);
  3311.                                 }
  3312.                                 $edificios 1;
  3313.                             }
  3314.                             break;
  3315.                         case '6':
  3316.                             //Terrenos alquiler.
  3317.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2))
  3318.                             {
  3319.                                 $total_immobles_terrenos_alquiler $this->get_num_by_type_immoble($id_localidad,1,6,"",$zona_id,$query_zona);
  3320.                                 if($total_immobles_terrenos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3321.                                 {
  3322.                                     $array_url $this->make_array_url($lang,$total_immobles_terrenos_alquiler,$alquilar_text,$arr_supertipus[5]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[5]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3323.                                     array_push($this->array_links$array_url);
  3324.                                 }
  3325.                                 $terrenos 1;
  3326.                             }
  3327.                             break;
  3328.                         case '7':
  3329.                             //Industrial alquiler.
  3330.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2))
  3331.                             {
  3332.                                 $total_immobles_industrial_alquiler $this->get_num_by_type_immoble($id_localidad,1,7,"",$zona_id,$query_zona);
  3333.                                 if($total_immobles_industrial_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3334.                                 {
  3335.                                     $array_url $this->make_array_url($lang,$total_immobles_industrial_alquiler,$alquiler_text,$arr_supertipus[6]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[6]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3336.                                     array_push($this->array_links$array_url);
  3337.                                 }
  3338.                                 $industrial 1;
  3339.                             }
  3340.                             break;
  3341.                         case '8':
  3342.                             //Hotel alquiler.
  3343.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2))
  3344.                             {
  3345.                                 $total_immobles_hotel_alquiler $this->get_num_by_type_immoble($id_localidad,1,8,"",$zona_id,$query_zona);
  3346.                                 if($total_immobles_hotel_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3347.                                 {
  3348.                                     $array_url $this->make_array_url($lang,$total_immobles_hotel_alquiler,$alquiler_text,$arr_supertipus[7]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[7]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3349.                                     array_push($this->array_links$array_url);
  3350.                                 }
  3351.                                 $hotel 1;
  3352.                             }
  3353.                             break;
  3354.                         case '9':
  3355.                             //Otros Inmuebles alquiler.
  3356.                             if ($idSuperTipus != || ($idSuperTipus == && $idOperacio == 2))
  3357.                             {
  3358.                                 $total_immobles_otros_alquiler $this->get_num_by_type_immoble($id_localidad,1,9,"",$zona_id,$query_zona);
  3359.                                 if($total_immobles_otros_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3360.                                 {
  3361.                                     $array_url $this->make_array_url($lang,$total_immobles_otros_alquiler,$alquiler_text,$arr_supertipus[8]['nom']." ".$inmuebles_text,$localidad_name,$friendly_operacion,$arr_supertipus[8]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3362.                                     array_push($this->array_links$array_url);
  3363.                                 }
  3364.                                 $otros 1;
  3365.                             }
  3366.                             break;
  3367.                     }
  3368.                     $friendly_operacion $tipusOperacioRepo->get_friendly($lang,$operacion);
  3369.                     $friendly_supertipus $apiPropertySuperTypeRepo->get_friendly(1,$codeLang);
  3370.                     if ($idSubtipus == "" || (in_array("1"$array_subtipo) && $idOperacio == 1) || !in_array("1"$array_subtipo)) {
  3371.                         $total_immobles_pisos_venta $this->get_num_by_type_immoble($id_localidad,2,1,"1|28|32|10",$zona_id,$query_zona);
  3372.                         if($total_immobles_pisos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3373.                         {
  3374.                             $array_url $this->make_array_url($lang,$total_immobles_pisos_venta,$venta_text,$pisos_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$pisos_text);
  3375.                             array_push($this->array_links$array_url);
  3376.                         }
  3377.                     }
  3378.                     //Casas venta.
  3379.                     if ($idSubtipus == "" || (in_array("2"$array_subtipo) && $idOperacio == 1) || !in_array("2"$array_subtipo)) {
  3380.                         $total_immobles_casas_venta $this->get_num_by_type_immoble($id_localidad,2,1,"2|11|20|29|33|36",$zona_id,$query_zona);
  3381.                         if($total_immobles_casas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3382.                         {
  3383.                             $array_url $this->make_array_url($lang,$total_immobles_casas_venta,$comprar_text,$casas_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$casas_text);
  3384.                             array_push($this->array_links$array_url);
  3385.                         }
  3386.                     }
  3387.                     //Áticos venta.
  3388.                     if ($idSubtipus == "" || (in_array("19"$array_subtipo) && $idOperacio == 1) || !in_array("19"$array_subtipo)) {
  3389.                         $total_immobles_atics_venta $this->get_num_by_type_immoble($id_localidad,2,1,"19",$zona_id,$query_zona);
  3390.                         if($total_immobles_atics_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3391.                         {
  3392.                             $array_url $this->make_array_url($lang,$total_immobles_atics_venta,$comprar_text,$atics_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$atics_url);
  3393.                             array_push($this->array_links$array_url);
  3394.                         }
  3395.                     }
  3396.                     //Duplex venta.
  3397.                     if ($idSubtipus == "" || (in_array("35"$array_subtipo) && $idOperacio == 1) || !in_array("35"$array_subtipo)) {
  3398.                         $total_immobles_duplex_venta $this->get_num_by_type_immoble($id_localidad,2,1,"35",$zona_id,$query_zona);
  3399.                         if($total_immobles_duplex_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3400.                         {
  3401.                             $array_url $this->make_array_url($lang,$total_immobles_duplex_venta,$venta_text,$duplex_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$duplex_url,1);
  3402.                             array_push($this->array_links$array_url);
  3403.                         }
  3404.                     }
  3405.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3406.                     //Viviendas venta.
  3407.                     if ($idSuperTipus != ||
  3408.                         (in_array("1"$array_subtipo) && $idOperacio == 2) ||
  3409.                         (in_array("2"$array_subtipo) && $idOperacio == 2) ||
  3410.                         (in_array("19"$array_subtipo) && $idOperacio == 2) ||
  3411.                         (in_array("35"$array_subtipo) && $idOperacio == 2)) {
  3412.                         $total_immobles_viviendas_venta $this->get_num_by_type_immoble($id_localidad,2,1,"",$zona_id,$query_zona);
  3413.                         if($total_immobles_viviendas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3414.                         {
  3415.                             $array_url $this->make_array_url($lang,$total_immobles_viviendas_venta,$comprar_text,"",$localidad_name,$friendly_operacion,$arr_supertipus[0]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3416.                             array_push($this->array_links$array_url);
  3417.                         }
  3418.                     }
  3419.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3420.                     //Oficinas venta.
  3421.                     if ($idSuperTipus != 2) {
  3422.                         $total_immobles_oficinas_venta $this->get_num_by_type_immoble($id_localidad,2,2,"",$zona_id,$query_zona);
  3423.                         if($total_immobles_oficinas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3424.                         {
  3425.                             $array_url $this->make_array_url($lang,$total_immobles_oficinas_venta,$venta_text,$arr_supertipus[1]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[1]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3426.                             array_push($this->array_links$array_url);
  3427.                         }
  3428.                     }
  3429.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3430.                     //Locales venta.
  3431.                     if ($idSuperTipus != 3)
  3432.                     {
  3433.                         $total_immobles_locales_venta $this->get_num_by_type_immoble($id_localidad,2,3,"",$zona_id,$query_zona);
  3434.                         if($total_immobles_locales_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3435.                         {
  3436.                             $array_url $this->make_array_url($lang,$total_immobles_locales_venta,$comprar_text,$arr_supertipus[2]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[2]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3437.                             array_push($this->array_links$array_url);
  3438.                         }
  3439.                     }
  3440.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3441.                     //Garages venta.
  3442.                     if ($idSuperTipus != 4)
  3443.                     {
  3444.                         $total_immobles_garages_venta $this->get_num_by_type_immoble($id_localidad,2,4,"",$zona_id,$query_zona);
  3445.                         if($total_immobles_garages_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3446.                         {
  3447.                             $array_url $this->make_array_url($lang,$total_immobles_garages_venta,$comprar_text,$arr_supertipus[3]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[3]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3448.                             array_push($this->array_links$array_url);
  3449.                         }
  3450.                     }
  3451.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3452.                     //Edificios venta.
  3453.                     if ($idSuperTipus != 5)
  3454.                     {
  3455.                         $total_immobles_edificios_venta $this->get_num_by_type_immoble($id_localidad,2,5,"",$zona_id,$query_zona);
  3456.                         if($total_immobles_edificios_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3457.                         {
  3458.                             $array_url $this->make_array_url($lang,$total_immobles_edificios_venta,$venta_text,$arr_supertipus[4]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[4]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3459.                             array_push($this->array_links$array_url);
  3460.                         }
  3461.                     }
  3462.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3463.                     //Terrenos venta.
  3464.                     if ($idSuperTipus != 6)
  3465.                     {
  3466.                         $total_immobles_terrenos_venta $this->get_num_by_type_immoble($id_localidad,2,6,"",$zona_id,$query_zona);
  3467.                         if($total_immobles_terrenos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3468.                         {
  3469.                             $array_url $this->make_array_url($lang,$total_immobles_terrenos_venta,$comprar_text,$arr_supertipus[5]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[5]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3470.                             array_push($this->array_links$array_url);
  3471.                         }
  3472.                     }
  3473.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3474.                     //Industrial venta.
  3475.                     if ($idSuperTipus != 7)
  3476.                     {
  3477.                         $total_immobles_industrial_venta $this->get_num_by_type_immoble($id_localidad,2,7,"",$zona_id,$query_zona);
  3478.                         if($total_immobles_industrial_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3479.                         {
  3480.                             $array_url $this->make_array_url($lang,$total_immobles_industrial_venta,$venta_text,$arr_supertipus[6]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[6]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3481.                             array_push($this->array_links$array_url);
  3482.                         }
  3483.                     }
  3484.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3485.                     //Hotel venta.
  3486.                     if ($idSuperTipus != 8)
  3487.                     {
  3488.                         $total_immobles_hotel_venta $this->get_num_by_type_immoble($id_localidad,2,8,"",$zona_id,$query_zona);
  3489.                         if($total_immobles_hotel_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3490.                         {
  3491.                             $array_url $this->make_array_url($lang,$total_immobles_hotel_venta,$comprar_text,$arr_supertipus[7]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[7]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3492.                             array_push($this->array_links$array_url);
  3493.                         }
  3494.                     }
  3495.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3496.                     //Otros Inmuebles venta.
  3497.                     if ($idSuperTipus != 9)
  3498.                     {
  3499.                         $total_immobles_otros_venta $this->get_num_by_type_immoble($id_localidad,2,9,"",$zona_id,$query_zona);
  3500.                         if($total_immobles_otros_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3501.                         {
  3502.                             $array_url $this->make_array_url($lang,$total_immobles_otros_venta,$venta_text,$arr_supertipus[8]['nom']." ".$inmuebles_text,$localidad_name,$friendly_operacion,$arr_supertipus[8]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3503.                             array_push($this->array_links$array_url);
  3504.                         }
  3505.                     }
  3506.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3507.                     $friendly_operacion $tipusOperacioRepo->get_friendly($lang,1);
  3508.                     //Viviendas alquiler.
  3509.                     if ($idSuperTipus != ||
  3510.                         ($idSuperTipus == && $idOperacio == 2) &&
  3511.                         $habitatges == 0) {
  3512.                         $total_immobles_viviendas_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"",$zona_id,$query_zona);
  3513.                         if($total_immobles_viviendas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3514.                         {
  3515.                             $array_url $this->make_array_url($lang,$total_immobles_viviendas_alquiler,$alquiler_text,"",$localidad_name,$friendly_operacion,$arr_supertipus[0]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3516.                             array_push($this->array_links$array_url);
  3517.                         }
  3518.                     }
  3519.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3520.                     $friendly_supertipus $apiPropertySuperTypeRepo->get_friendly(1,$codeLang);
  3521.                     //Pisos alquiler.
  3522.                     if ($idSubtipus == "" || (in_array("1"$array_subtipo) && $idOperacio == 2) || !in_array("1"$array_subtipo))
  3523.                     {
  3524.                         $total_immobles_pisos_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"1|28|32|10",$zona_id,$query_zona);
  3525.                         if($total_immobles_pisos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3526.                         {
  3527.                             $array_url $this->make_array_url($lang,$total_immobles_pisos_alquiler,$alquilar_text,$pisos_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$pisos_text);
  3528.                             array_push($this->array_links$array_url);
  3529.                         }
  3530.                     }
  3531.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3532.                     //Casas alquiler.
  3533.                     if ($idSubtipus == "" || (in_array("2"$array_subtipo) && $idOperacio == 2) || !in_array("2"$array_subtipo))
  3534.                     {
  3535.                         $total_immobles_casas_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"2|11|20|29|33|36",$zona_id,$query_zona);
  3536.                         if($total_immobles_casas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3537.                         {
  3538.                             $array_url $this->make_array_url($lang,$total_immobles_casas_alquiler,$alquiler_text,$casas_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$casas_text,1);
  3539.                             array_push($this->array_links$array_url);
  3540.                         }
  3541.                     }
  3542.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3543.                     //Áticos alquiler.
  3544.                     if ($idSubtipus == "" || (in_array("19"$array_subtipo) && $idOperacio == 2) || !in_array("19"$array_subtipo))
  3545.                     {
  3546.                         $total_immobles_atics_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"19",$zona_id,$query_zona);
  3547.                         if($total_immobles_atics_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3548.                         {
  3549.                             $array_url $this->make_array_url($lang,$total_immobles_atics_alquiler,$alquiler_text,$atics_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$atics_url);
  3550.                             array_push($this->array_links$array_url);
  3551.                         }
  3552.                     }
  3553.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3554.                     //Duplex alquiler.
  3555.                     if ($idSubtipus == "" || (in_array("35"$array_subtipo) && $idOperacio == 2) || !in_array("35"$array_subtipo))
  3556.                     {
  3557.                         $total_immobles_duplex_alquiler $this->get_num_by_type_immoble($id_localidad,1,1,"35",$zona_id,$query_zona);
  3558.                         if($total_immobles_duplex_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3559.                         {
  3560.                             $array_url $this->make_array_url($lang,$total_immobles_duplex_alquiler,$alquilar_text,$duplex_text,$localidad_name,$friendly_operacion,$friendly_supertipus,$provincia,$localidad_friendly,$zona_friendly,$duplex_url);
  3561.                             array_push($this->array_links$array_url);
  3562.                         }
  3563.                     }
  3564.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3565.                     //Oficinas alquiler.
  3566.                     if ($idSuperTipus != ||
  3567.                         ($idSuperTipus == && $idOperacio == 2) &&
  3568.                         $oficinas == 0)
  3569.                     {
  3570.                         $total_immobles_oficinas_alquiler $this->get_num_by_type_immoble($id_localidad,1,2,"",$zona_id,$query_zona);
  3571.                         if($total_immobles_oficinas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3572.                         {
  3573.                             $array_url $this->make_array_url($lang,$total_immobles_oficinas_alquiler,$alquiler_text,$arr_supertipus[1]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[1]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3574.                             array_push($this->array_links$array_url);
  3575.                         }
  3576.                     }
  3577.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3578.                     //Locales alquiler.
  3579.                     if ($idSuperTipus != ||
  3580.                         ($idSuperTipus == && $idOperacio == 2) &&
  3581.                         $locales == 0)
  3582.                     {
  3583.                         $total_immobles_locales_alquiler $this->get_num_by_type_immoble($id_localidad,1,3,"",$zona_id,$query_zona);
  3584.                         if($total_immobles_locales_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3585.                         {
  3586.                             $array_url $this->make_array_url($lang,$total_immobles_locales_alquiler,$alquilar_text,$arr_supertipus[2]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[2]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3587.                             array_push($this->array_links$array_url);
  3588.                         }
  3589.                     }
  3590.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3591.                     //Garages alquiler.
  3592.                     if ($idSuperTipus != ||
  3593.                         ($idSuperTipus == && $idOperacio == 2) &&
  3594.                         $garages == 0)
  3595.                     {
  3596.                         $total_immobles_garages_alquiler $this->get_num_by_type_immoble($id_localidad,1,4,"",$zona_id,$query_zona);
  3597.                         if($total_immobles_garages_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3598.                         {
  3599.                             $array_url $this->make_array_url($lang,$total_immobles_garages_alquiler,$alquiler_text,$arr_supertipus[3]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[3]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3600.                             array_push($this->array_links$array_url);
  3601.                         }
  3602.                     }
  3603.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3604.                     //Edificios alquiler.
  3605.                     if ($idSuperTipus != ||
  3606.                         ($idSuperTipus == && $idOperacio == 2) &&
  3607.                         $edificios == 0)
  3608.                     {
  3609.                         $total_immobles_edificios_alquiler $this->get_num_by_type_immoble($id_localidad,1,5,"",$zona_id,$query_zona);
  3610.                         if($total_immobles_edificios_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3611.                         {
  3612.                             $array_url $this->make_array_url($lang,$total_immobles_edificios_alquiler,$alquilar_text,$arr_supertipus[4]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[4]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3613.                             array_push($this->array_links$array_url);
  3614.                         }
  3615.                     }
  3616.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3617.                     //Terrenos alquiler.
  3618.                     if ($idSuperTipus != ||
  3619.                         ($idSuperTipus == && $idOperacio == 2) &&
  3620.                         $terrenos == 0)
  3621.                     {
  3622.                         $total_immobles_terrenos_alquiler $this->get_num_by_type_immoble($id_localidad,1,6,"",$zona_id,$query_zona);
  3623.                         if($total_immobles_terrenos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3624.                         {
  3625.                             $array_url $this->make_array_url($lang,$total_immobles_terrenos_alquiler,$alquilar_text,$arr_supertipus[5]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[5]['friendly'],$provincia,$localidad_friendly,$zona_friendly,"",1);
  3626.                             array_push($this->array_links$array_url);
  3627.                         }
  3628.                     }
  3629.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3630.                     //Industrial alquiler.
  3631.                     if ($idSuperTipus != ||
  3632.                         ($idSuperTipus == && $idOperacio == 2) &&
  3633.                         $industrial == 0)
  3634.                     {
  3635.                         $total_immobles_industrial_alquiler $this->get_num_by_type_immoble($id_localidad,1,7,"",$zona_id,$query_zona);
  3636.                         if($total_immobles_industrial_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3637.                         {
  3638.                             $array_url $this->make_array_url($lang,$total_immobles_industrial_alquiler,$alquiler_text,$arr_supertipus[6]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[6]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3639.                             array_push($this->array_links$array_url);
  3640.                         }
  3641.                     }
  3642.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3643.                     //Hotel alquiler.
  3644.                     if ($idSuperTipus != ||
  3645.                         ($idSuperTipus == && $idOperacio == 2) &&
  3646.                         $hotel == 0)
  3647.                     {
  3648.                         $total_immobles_hotel_alquiler $this->get_num_by_type_immoble($id_localidad,1,8,"",$zona_id,$query_zona);
  3649.                         if($total_immobles_hotel_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3650.                         {
  3651.                             $array_url $this->make_array_url($lang,$total_immobles_hotel_alquiler,$alquiler_text,$arr_supertipus[7]['nom'],$localidad_name,$friendly_operacion,$arr_supertipus[7]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3652.                             array_push($this->array_links$array_url);
  3653.                         }
  3654.                     }
  3655.                     if ($this->test_array_links($this->array_links)) { return $this->array_links; }
  3656.                     //Otros Inmuebles alquiler.
  3657.                     if ($idSuperTipus != ||
  3658.                         ($idSuperTipus == && $idOperacio == 2) &&
  3659.                         $otros == 0)
  3660.                     {
  3661.                         $total_immobles_otros_alquiler $this->get_num_by_type_immoble($id_localidad,1,9,"",$zona_id,$query_zona);
  3662.                         if($total_immobles_otros_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
  3663.                         {
  3664.                             $array_url $this->make_array_url($lang,$total_immobles_otros_alquiler,$alquiler_text,$arr_supertipus[8]['nom']." ".$inmuebles_text,$localidad_name,$friendly_operacion,$arr_supertipus[8]['friendly'],$provincia,$localidad_friendly,$zona_friendly);
  3665.                             array_push($this->array_links$array_url);
  3666.                         }
  3667.                     }
  3668.                     if (count($this->array_links) > 0) {
  3669.                         foreach ($this->array_links as $key => $row) {
  3670.                                 $aux[$key] = $row['num_inmuebles'];
  3671.                             }
  3672.                         array_multisort($auxSORT_DESC$this->array_links);
  3673.                         return $this->array_links;
  3674.                     }
  3675.                 break;
  3676.         }
  3677.     }
  3678.     public function get_num_by_type_immoble($lang$id_localidad 0$operacion 0$supertipus 0$subtipo ""$id_zona 0$query_zona "")
  3679.     {
  3680.         $em $this->getDoctrine()->getManager();
  3681.         $apiPropertiesRepo $em->getRepository(ApiProperties::class);
  3682.             
  3683.         $apiPropertiesRepo->operacio  $operacion;
  3684.         $apiPropertiesRepo->addCensados true;
  3685.         $apiPropertiesRepo->localitat $id_localidad;
  3686.         $apiPropertiesRepo->supertipus $supertipus;
  3687.         $apiPropertiesRepo->subtipus $subtipo;
  3688.         $apiPropertiesRepo->zona $id_zona;
  3689.         $apiPropertiesRepo->query_zona $query_zona;
  3690.         $total_immobles $apiPropertiesRepo->get_all_count();
  3691.         return $total_immobles;
  3692.     }
  3693.     public function make_array_url($num_inmuebles 0$operacion_text ""$tipo_text ""$localidad_name ""$friendly_operacion ""$friendly_supertipus "",    $provincia ""$localidad_friendly ""$zona_friendly ""$tipo_url ""$modo_text 0){
  3694.         $array_url['text'] = $operacion_text." ".$tipo_text." ".$localidad_name;
  3695.         if($modo_text == 1)
  3696.         {
  3697.             $array_url['text'] = $tipo_text." ".$operacion_text." ".$localidad_name;
  3698.         }
  3699.         $array_url['url'] = $_ENV["WEBSITE_URL"]."/".$lang."/".$friendly_operacion."/".$friendly_supertipus."/".$provincia."/"$localidad_friendly.$zona_friendly."/".$tipo_url;
  3700.         $array_url['num_inmuebles'] = $num_inmuebles;
  3701.         return $array_url;
  3702.     }
  3703.     public function test_array_links($array_links "")
  3704.     {
  3705.         if (count($this->array_links) == 5) {
  3706.             foreach ($this->array_links as $key => $row) {
  3707.                         $aux[$key] = $row['num_inmuebles'];
  3708.                     }
  3709.             array_multisort($auxSORT_DESC$this->array_links);
  3710.             return true;
  3711.         }else{
  3712.             return false;
  3713.         }
  3714.     }
  3715.     function paginate_api_static($lang$canonical_url$num_pag$total_immobles$immobles_pagina 2) {
  3716.         $pagination "";
  3717.     
  3718.         if ($total_immobles && $total_immobles $immobles_pagina) {
  3719.             $index_limit 10;
  3720.             $current     $num_pag;
  3721.             $total_pages ceil($total_immobles $immobles_pagina);
  3722.             $start       max($current intval($index_limit 2), 1);
  3723.             $end         $start $index_limit 1;
  3724.     
  3725.             if( substr($_SERVER['REQUEST_URI'], 04) == '/'.$lang.'/' )
  3726.                 $url_actual $_ENV["WEBSITE_URL"]. $_SERVER['REQUEST_URI'];
  3727.             else
  3728.                 $url_actual $_ENV["WEBSITE_URL"].'/' .$lang$_SERVER['REQUEST_URI'];
  3729.     
  3730.     
  3731.             if (strrpos($url_actual'?') > -1)
  3732.                 $url_actual substr($url_actual0strrpos($url_actual'?'));
  3733.     
  3734.             if (strripos($url_actual '/page-'))
  3735.                 $url_actual substr($url_actual 0strripos ($url_actual '/page-'));
  3736.     
  3737.             $url_actual str_replace('/ca/''/'$url_actual);
  3738.     
  3739.     
  3740.             $pagination.= '<ul class="pagination">';
  3741.             if ($current == 1)
  3742.                 $pagination.= '<li class="disabled"><a aria-label="Previous"><span aria-hidden="true"><i class="fa fa-angle-left"></i></span></a></li>';
  3743.             else {
  3744.                 $i $current 1;
  3745.                 $pagination.= '<li><a href="' $url_actual .  '/page-'$i '" aria-label="Previous"><span aria-hidden="true"><i class="fa fa-angle-left"></i></span></a></li>';
  3746.             }
  3747.     
  3748.     
  3749.             if ($total_pages 0) {
  3750.                 if ($start 1) {
  3751.                     $i 1;
  3752.                     $pagination.= '<li><a href="' $url_actual '/page-'$i '" >' $i '</a></li>';
  3753.                     $pagination.= '<li><a>...</a></li>';
  3754.                 }
  3755.     
  3756.                 for ($i $start$i <= $end && $i <= $total_pages$i++) {
  3757.                     if ($i == $current$pagination.= '<li class="active"><a>' $i '</a></li>';
  3758.                     else $pagination.= '<li><a href="' $url_actual '/page-'$i '" >' $i '</a></li>';
  3759.                 }
  3760.     
  3761.                 if ($total_pages $end) {
  3762.                     $i $total_pages;
  3763.                     $pagination.= '<li><a>...</a></li>';
  3764.                     $pagination.= '<li><a href="' $url_actual '/page-'$i '" >' $i '</a></li>';
  3765.                 }
  3766.             } else {
  3767.                 if ($current 2) {
  3768.                     $pagination.= '<li><a href="' $url_actual '/page-1" >1</a></li>';
  3769.                     $pagination.= '<li><a>...</a></li>';
  3770.                 }
  3771.     
  3772.                 $pagination.= '<li class="active"><a>' $current '</a></li>';
  3773.             }
  3774.     
  3775.             if(isset($total_pages))
  3776.             {
  3777.                 if ($total_pages || $current $total_pages) {
  3778.                 $i $current 1;
  3779.                 $pagination.= '<li><a href="' $url_actual '/page-'$i '" ><span aria-hidden="true"><i class="fa fa-angle-right"></i></span></a></li>';
  3780.                 } else {
  3781.                     $pagination.= '<li class="disabled"><a aria-label="Next"><span aria-hidden="true"><i class="fa fa-angle-right"></i></span></a></li>';
  3782.                 }
  3783.             }
  3784.     
  3785.     
  3786.             $pagination.= '</ul>';
  3787.         }
  3788.         return $pagination;
  3789.     
  3790.     }
  3791.     public function friendly_url($n)
  3792.     {
  3793.         $n   mb_strtolower($n"UTF-8"); // Pasar a minúsculas con utf-8
  3794.         $ent = array(
  3795.             "á",
  3796.             "à",
  3797.             "ä",
  3798.             "é",
  3799.             "è",
  3800.             "ë",
  3801.             "í",
  3802.             "ì",
  3803.             "ï",
  3804.             "ó",
  3805.             "ò",
  3806.             "ö",
  3807.             "ú",
  3808.             "ù",
  3809.             "ü",
  3810.             "ç",
  3811.             "ñ",
  3812.             " "); // Caracteres a convertir, faltan algunos
  3813.         $sal = array(
  3814.             "a",
  3815.             "a",
  3816.             "a",
  3817.             "e",
  3818.             "e",
  3819.             "e",
  3820.             "i",
  3821.             "i",
  3822.             "i",
  3823.             "o",
  3824.             "o",
  3825.             "o",
  3826.             "u",
  3827.             "u",
  3828.             "u",
  3829.             "c",
  3830.             "n",
  3831.             "-");
  3832.         $n   str_replace($ent$sal$n);
  3833.         $n   preg_replace("[^a-z0-9]""-"$n); // Pasar todo lo que no sean caracteres a un guion
  3834.         while (strpos($n"--"))
  3835.             $n   str_replace("--""-"$n); // Convertir dos guiones en uno
  3836.         $n   trim($n"-");
  3837.         return $n;
  3838.     }
  3839.     public function mb_ucfirst($string$encoding)
  3840.     {
  3841.         $strlen mb_strlen($string$encoding);
  3842.         $firstChar mb_substr($string01$encoding);
  3843.         $then mb_substr($string1$strlen 1$encoding);
  3844.         return mb_strtoupper($firstChar$encoding) . $then;
  3845.     }
  3846.     public function validate_url($filters$checked$setLang true$baseUrl true)
  3847.     {
  3848.         $em $this->getDoctrine()->getManager();
  3849.         $apiPropertiesSubtypesRepo $em->getRepository(ApiPropertiesSubtypes::class);
  3850.         $tipusOperacioRepo $em->getRepository(TipusOperacio::class);
  3851.         $apiPropertySuperTypeRepo $em->getRepository(ApiPropertiesSupertype::class);
  3852.         $friendly_nom_operacio  = isset($filters['e_operacio'])? $filters["e_operacio"] : '';
  3853.         $friendly_nom_tipus     = isset($filters['e_supertipus'])? $filters["e_supertipus"] : '';
  3854.         $friendly_nom_provincia = isset($filters["e_province"])? $filters["e_province"] : '';
  3855.         $friendly_nom_localitat = isset($filters["e_locality"])? $filters["e_locality"] : '';
  3856.         $friendly_nom_zona      = isset($filters["e_zona"])? $filters["e_zona"] : '';
  3857.         $breadcrumb_lang "";
  3858.         $cod_lang        "ca_ES";
  3859.         if ($filters["e_lang"] == "es") {
  3860.             $breadcrumb_lang "/es";
  3861.             $cod_lang "es_ES";
  3862.         }
  3863.         if ($filters["e_lang"] == "ca") {
  3864.             $breadcrumb_lang "/ca";
  3865.             $cod_lang "ca_ES";
  3866.         }
  3867.         if ($filters["e_lang"] == "en") {
  3868.             $breadcrumb_lang "/en";
  3869.             $cod_lang "en_US";
  3870.         }
  3871.         if ($filters["e_lang"] == "ru") {
  3872.             $breadcrumb_lang "/ru";
  3873.             $cod_lang "ru_RU";
  3874.         }
  3875.         if ($filters["e_lang"] == "de") {
  3876.             $breadcrumb_lang "/de";
  3877.             $cod_lang "de_DE";
  3878.         }
  3879.         if ($filters["e_lang"] == "ch") {
  3880.             $breadcrumb_lang "/ch";
  3881.             $cod_lang "ch_CH";
  3882.         }
  3883.         if ($filters["e_lang"] == "ar") {
  3884.             $breadcrumb_lang "/ar";
  3885.             $cod_lang "ar_AR";
  3886.         }
  3887.         if ($filters["e_lang"] == "fr") {
  3888.             $breadcrumb_lang "/fr";
  3889.             $cod_lang "fr_FR";
  3890.         }
  3891.         $idOperacio $tipusOperacioRepo->get_by_name($filters["e_lang"], $friendly_nom_operacio);
  3892.         $idSuperTipus $apiPropertySuperTypeRepo->get_id_by_friendly($friendly_nom_tipus);
  3893.         // dump($idOperacio);
  3894.         // dd($friendly_nom_tipus);
  3895.         $friendly_nom_operacio $tipusOperacioRepo->get_friendly($filters["e_lang"], $idOperacio);
  3896.         $friendly_nom_tipus $apiPropertySuperTypeRepo->get_friendly($idSuperTipus$cod_lang);
  3897.         $html "";
  3898.         if($baseUrl$html .= $filters["e_domain"];
  3899.         if(!$baseUrl$html .= "";
  3900.         if($setLang$html .= $breadcrumb_lang;
  3901.         if($baseUrl$html .= "/";
  3902.         
  3903.         $html .= $friendly_nom_operacio '/' $friendly_nom_tipus '/' $friendly_nom_provincia '/' $friendly_nom_localitat . ( $friendly_nom_zona!= '' '/' $friendly_nom_zona '' );
  3904.         // dd($html);
  3905.         if (isset($filters["subTipoId"]) && $filters["subTipoId"] != '' )
  3906.         {   
  3907.             
  3908.             $friendly_subtypus $apiPropertiesSubtypesRepo->get_friendly_name($cod_lang,$filters["subTipoId"]);
  3909.             if ( $checked == '') {
  3910.                 $friendly_subtypus explode(','$friendly_subtypus);
  3911.                 $friendly_subtypus array_unique($friendly_subtypus);
  3912.                 $friendly_subtypus implode(','$friendly_subtypus);
  3913.                 $html .= '/' $friendly_subtypus ;
  3914.             } else {
  3915.                 // $c = str_replace($friendly_subtypus, "", $_SESSION['cerca_fre_subtipus']);
  3916.                 // $c = trim($c);
  3917.                 // if ( substr($c, -1) == "," )    $c =  substr($c, 0, -1);
  3918.                 // if ( substr($c, 0, 1) == "," )  $c =  substr($c, 1);
  3919.                 // $c = str_replace(",,", ",", $c);
  3920.                 // $c = explode(',', $c);
  3921.                 // $c = array_unique($c);
  3922.                 // $c = implode(',', $c);
  3923.                 // if ( $c != "" ) $html .= '/' . $c;
  3924.             }
  3925.         }
  3926.         $features_fre '';
  3927.         if(isset($filters["h_piscina"]) && !empty($filters["h_piscina"])){
  3928.             $features_fre .= 'piscina,';
  3929.         }
  3930.         if(isset($filters["h_terrassa"]) && !empty($filters["h_terrassa"])){
  3931.             $features_fre .= 'terrassa,';
  3932.         }
  3933.         if(isset($filters["h_ascensor"]) && !empty($filters["h_ascensor"])){
  3934.             $features_fre .= 'ascensor,';
  3935.         }
  3936.         if(isset($filters["h_parkings"]) && !empty($filters["h_parkings"])){
  3937.             $features_fre .= 'parkings,';
  3938.         }
  3939.         if(isset($filters["h_traster"]) && !empty($filters["h_traster"])){
  3940.             $features_fre .= 'traster,';
  3941.         }
  3942.         if(isset($filters["h_calefaccio"]) && !empty($filters["h_calefaccio"])){
  3943.             $features_fre .= 'calefaccio,';
  3944.         }
  3945.         if(isset($filters["h_aire"]) && !empty($filters["h_aire"])){
  3946.             $features_fre .= 'aire,';
  3947.         }
  3948.         if(isset($filters["h_balco"]) && !empty($filters["h_balco"])){
  3949.             $features_fre .= 'balco,';
  3950.         }
  3951.         $features_fre substr($features_fre0, -1);
  3952.         if ($features_fre != ''){
  3953.             if($cod_lang == "ca_ES"){
  3954.                 $html .= '/equipament-' .$features_fre;
  3955.             } else {
  3956.                 $html .= '/equipamiento-' .$features_fre;
  3957.             }
  3958.         }
  3959.         if(isset($filters['h_sortby']) && $filters['h_sortby'] != 'pdata' && $filters['h_sortby'] != ''){
  3960.             if($cod_lang == "ca_ES"){
  3961.                 $html .= '/ordenat-per=' .$filters['h_sortby'];
  3962.             } else {
  3963.                 $html .= '/ordenado-por=' .$filters['h_sortby'];
  3964.             }
  3965.         }
  3966.         // if (isset($filters['change_sort']) && $filters['change_sort'] != ''){
  3967.         //     $filters['cerca_sortby'] = $filters['change_sort'];
  3968.         //     if($cod_lang == "ca_ES"){
  3969.         //         $html .= '/ordenat-per=' .$filters['cerca_sortby'];
  3970.         //     } else {
  3971.         //         $html .= '/ordenado-por=' .$filters['cerca_sortby'];
  3972.         //     }
  3973.         // }else {
  3974.         //     if(isset($filters['cerca_sortby']) && $filters['cerca_sortby'] != 'pdata' && $filters['cerca_sortby'] != ''){
  3975.         //         if($cod_lang == "ca_ES"){
  3976.         //             $html .= '/ordenat-per=' .$filters['cerca_sortby'];
  3977.         //         } else {
  3978.         //             $html .= '/ordenado-por=' .$filters['cerca_sortby'];
  3979.         //         }
  3980.         //     }
  3981.         // }
  3982.         return $html;
  3983.     }
  3984.     public function getUrlPropertie($item$lang){
  3985.         $em $this->getDoctrine()->getManager();
  3986.         $langc $this->getCodLang($lang);
  3987.         $localitat $em->getRepository(ApiLocations::class)->get_friendly($item["localidad"]);
  3988.         $provincia $em->getRepository(ApiProvinces::class)->get_friendly($item["provincia"]);
  3989.         $tipo $em->getRepository(ApiPropertiesSupertype::class)->get_friendly($item["id_properties_supertype"], $langc);
  3990.         $operacion_seo $em->getRepository(TipusOperacio::class)->get_friendly_by_codi($lang$item["operation"]);
  3991.         $token $this->contenido_frase($lang);
  3992.         $token_lang $token['breadcrumb_lang'];
  3993.         return $token_lang."/".$operacion_seo."/".$tipo."/".$provincia."/".$localitat."/".$item["id"];;
  3994.     }
  3995.     public function getTitleDetail($item$lang "ca"){
  3996.         $em $this->getDoctrine()->getManager();
  3997.         $cod_lang $this->getCodLang($lang);
  3998.  
  3999.         $superficie_title "";
  4000.         $situacion_title "";
  4001.         $localitat_title "";
  4002.         $provincia_title "";
  4003.         $zona $em->getRepository(ApiZones::class)->obtenirZona($item["zona"]);
  4004.         $localitat $em->getRepository(ApiLocations::class)->obtenirLocalitat($item["localidad"]);
  4005.         $provincia $em->getRepository(ApiProvinces::class)->obtenirProvincia($item["provincia"]);
  4006.         $tipo $em->getRepository(ApiPropertiesTypes::class)->get_text_type($item["id"], $cod_lang);
  4007.         $referencia = ($item['referencia']) ? '['.$item['referencia'].'] ' '';
  4008.         $frase_nexo array_map('trim'$this->contenido_frase($lang));
  4009.         if($item['superf_constr'])
  4010.             $superficie_title   " ".$frase_nexo['txt_de']." ".$item['superf_constr']." m2";
  4011.         elseif($item['superf_util'])
  4012.             $superficie_title   " ".$frase_nexo['txt_de']." ".$item['superf_util']." m2";
  4013.         if($item['situacion_concreta'])
  4014.             $situacion_title    " ".$frase_nexo['txt_on']." ".mb_strtolower($item['situacion_concreta'], 'UTF-8');
  4015.         if($localitat)
  4016.             $localitat_title    " ".$frase_nexo['txt_on']." ".ucfirst($localitat);
  4017.         if ($zona)
  4018.             $localitat_title    $localitat_title." ,".$zona;
  4019.         if($provincia)
  4020.             $provincia_title    ", ".ucfirst($provincia);
  4021.         return $referencia.$tipo.$superficie_title.$situacion_title.$localitat_title.$provincia_title;
  4022.     }
  4023.     /**
  4024.      * @Route("/tracking/click", name="track_click", methods={"POST"})
  4025.      * 
  4026.      */
  4027.     public function trackingClick(Request $requestManagerRegistry $doctrine): Response
  4028.     {
  4029.         $em $doctrine->getManager();
  4030.         $post $request->getContent();
  4031.         
  4032.         // dd();
  4033.         $sessionId $request->getSession()->get("session_id");
  4034.         if (!empty($request->getContent())) {
  4035.             $post = (array) json_decode($request->getContent());
  4036.             if (count($post) == 0) {
  4037.                 $post = (array) $request->request->all();
  4038.             }
  4039.         } else {
  4040.             $post = (array) $request->request->all();
  4041.         }
  4042.         try{
  4043.             $trackClick = new Tracking();
  4044.             $trackClick->setTrackingValue($post["clickValue"]);
  4045.             $trackClick->setType($post["redirection"]);
  4046.             $trackClick->setSession($sessionId);
  4047.             $trackClick->setDateCreated(new \DateTime("now"));
  4048.         // dd($post["redirection"]);
  4049.             $em->persist($trackClick);
  4050.             $em->flush();
  4051.         }catch(\Exception $e){
  4052.             return new JsonResponse([
  4053.                 "status" => "error",
  4054.                 "message" => $e->getMessage()
  4055.             ]);
  4056.         }
  4057.         //Rep dades
  4058.         return new JsonResponse([
  4059.             "status" => "success"
  4060.         ]);
  4061.     }
  4062.     /**
  4063.      * @Route("/api/agencyUpdate", name="api_agency_update", methods={"POST"})
  4064.      * 
  4065.      */
  4066.     public function agencyUpdate(Request $request)
  4067.     {
  4068.         if (!empty($request->getContent())) {
  4069.             $post = (array) json_decode($request->getContent());
  4070.             if (count($post) == 0) {
  4071.                 $post = (array) $request->request->all();
  4072.             }
  4073.         } else {
  4074.             $post = (array) $request->request->all();
  4075.         }
  4076.         $formData = array();
  4077.         parse_str($post["form"], $formData);
  4078.         // dd($formData);
  4079.         $result null;
  4080.         $em $this->getDoctrine()->getManager();
  4081.         $preferencesRepo $em->getRepository(ApiPreferences::class);
  4082.         $apiAgencyRepo $em->getRepository(ApiAgency::class);
  4083.         $agencyLangRepo $em->getRepository(ApiAgencyLang::class);
  4084.         if(isset($post['step_1'])) {
  4085.             $preferencesRepo->updatePreferences(2);
  4086.         }
  4087.         if(isset($post['step_2'])) {
  4088.             $preferencesRepo->updatePreferences(3);
  4089.         }
  4090.         try{
  4091.             if(isset($post['step_3'])) {
  4092.                 $emAdmin $this->getDoctrine()->getManager("admin");
  4093.                 $agencyLicenseRepo $emAdmin->getRepository(AgencyLicense::class);
  4094.                 
  4095.                 $result $agencyLicenseRepo->findOneBy(array("license" => $_ENV["LICENSE"]));
  4096.                 if($result){
  4097.                     $dominio urlencode($result->getDomain());
  4098.         
  4099.                     $url 'http://tickets.ghestia.cat/endpoints.php?endpoint=add_ticket&codigo='.$result->getNumberProvincial().'&domain='.$dominio.'&plan='.$result->getPlan().'&tema='.$result->getTema().'&license='.$_ENV["LICENSE"];
  4100.                     $options = [
  4101.                         'ssl' => [
  4102.                             'verify_peer'       => false,
  4103.                             'verify_peer_name'  => false,
  4104.                         ]
  4105.                     ];
  4106.         
  4107.                     file_get_contents($urlfalsestream_context_create($options));
  4108.         
  4109.                     $preferencesRepo->updatePreferences(0);
  4110.                 }
  4111.             }
  4112.             $address $formData['address0'];
  4113.             
  4114.             // if ($post['total_address'] > 0) {
  4115.             //     for ($i=1; $i<=$post['total_address']; $i++ ){
  4116.             //         if (($post['address'.$i])!='')
  4117.             //             $post['address'] .= '||'. $post['address'.$i] ;
  4118.             //     }
  4119.             // } 
  4120.             
  4121.             $result $apiAgencyRepo->updateAgency($formData);
  4122.             
  4123.             if ($result){
  4124.                 if(isset($post['lang_ca']) && $post['lang_ca']){
  4125.                     $agencyLangRepo->updateVisible($post['lang_ca'], "ca");
  4126.                 }
  4127.             }
  4128.             if ($result){
  4129.                 if(isset($post['lang_en']) && $post['lang_en']){
  4130.                     $agencyLangRepo->updateVisible($post['lang_en'],"en");
  4131.                 }
  4132.             }
  4133.             if ($result){
  4134.                 if(isset($post['lang_es']) && $post['lang_es']){
  4135.                     $agencyLangRepo->updateVisible($post['lang_es'],"es");
  4136.                 }
  4137.             }
  4138.             if ($result){
  4139.                 if(isset($post['lang_fr']) && $post['lang_fr']){
  4140.                     $agencyLangRepo->updateVisible($post['lang_fr'],"fr");
  4141.                 }
  4142.             }
  4143.             if($result && isset($post['lang_default'])){
  4144.                 $default_lang       $post['lang_default']; 
  4145.                 $getpredeterminado $agencyLangRepo->findOneBy(array("predeterminado" => 1));
  4146.                 if($getpredeterminado && ($getpredeterminado->getCod() !== $default_lang)){
  4147.                     $reset_predeterminado $agencyLangRepo->updatePredeterminado($getpredeterminado->getCod(), 0);
  4148.                 }
  4149.                 if((isset($reset_predeterminado) && $reset_predeterminado) || $getpredeterminado == false){
  4150.                     $result $reset_predeterminado $agencyLangRepo->updatePredeterminado($default_lang1);
  4151.                     if(isset($_SESSION['idioma']) && $_SESSION['idioma'] != $default_lang){
  4152.                         $_SESSION['idioma'] = $default_lang;    
  4153.                     }
  4154.                 }
  4155.             }
  4156.         }catch(\Exception $e){
  4157.             return new JsonResponse([
  4158.                 "status" => "error",
  4159.                 "type" => "error",
  4160.                 "message" => "Ha surgido un error al enviar la petición, prueba mas tarde."
  4161.             ], 200);
  4162.         }
  4163.         // return $result;
  4164.         return new JsonResponse([
  4165.             "status" => "success",
  4166.             "type" => "success",
  4167.             "message" => "Petición enviada"
  4168.         ], 200);
  4169.     }
  4170.     public function langURL($lang$cod_lang$url){
  4171.         $url explode('/'$url);
  4172.         $em $this->getDoctrine()->getManager();
  4173.         $tipusOperacioRepo $em->getRepository(TipusOperacio::class);
  4174.         $apiPropertySuperTypeRepo $em->getRepository(ApiPropertiesSupertype::class);
  4175.         $url[1] = $apiPropertySuperTypeRepo->get_seolang_to_seo($cod_lang$url[1]);
  4176.         $url[0] = $tipusOperacioRepo->get_seolang_to_seo($lang$url[0]);
  4177.         $url implode('/'$url);
  4178.         return $url;
  4179.     }
  4180. }