<?php
namespace App\Controller;
use App\Service\Utilities;
use App\Entity\Main\ApiAgency;
use App\Entity\Main\ApiAgencyNewsletter;
use App\Entity\Main\ApiProperties;
use App\Entity\Main\ApiAgencyLang;
use App\Entity\Main\ApiMenu;
use App\Entity\Main\ApiPages;
use App\Entity\Main\Textos;
use App\Entity\Main\ApiOrderPages;
use App\Entity\Main\ApiAgencyDescription;
use App\Entity\Main\TipusOperacio;
use App\Entity\Main\ApiPropertiesSupertype;
use App\Entity\Main\ApiProvinces;
use App\Entity\Main\ApiLocations;
use App\Entity\Main\ApiLocationsGps;
use App\Entity\Main\ApiZones;
use App\Entity\Main\ApiFeatures;
use App\Entity\Main\ApiPropertiesCertificatesImages;
use App\Entity\Main\ApiPropertiesSubtypes;
use App\Entity\Main\ApiPropertiesSupertypeI18n;
use App\Entity\Main\ApiPropertiesTypes;
use App\Entity\Main\ApiPropertiesFeatures;
use App\Entity\Main\ApiPropertiesI18n;
use App\Entity\Main\ApiPropertiesTypesI18n;
use App\Entity\Main\ApiAgencyHomeAgent;
use App\Entity\Main\ApiAgencyHomeImage;
use App\Entity\Main\ApiAgencyHomeOnepage;
use App\Entity\Main\ApiAgencySlider;
use App\Entity\Main\ApiAgencyPages;
use App\Entity\Main\Tracking;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Doctrine\Persistence\ManagerRegistry;
use PHPMailer\PHPMailer\PHPMailer;
use App\Controller\ModulesController;
use App\Entity\Admin\AgencyLicense;
use App\Entity\Main\ApiPreferences;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Component\Security\Core\Security;
class MainController extends AbstractController implements PagesMiddlewareController
{
private $array_links;
private $array_pages = [
"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}]"],
"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}]"],
"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: "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></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}]"],
"home" => ['home', 'Home', '', '[]'],
"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}]"],
"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}]"],
"resultatCerca" => ['resultatCerca', 'Listado inmuebles', '', '[]']
];
private $array_slug_page = [
"privacidad" => [
"es" => 'privacidad',
"en" => 'privacy',
"ca" => 'privacitat',
"fr" => 'confidentalite'
],
"empresa" => [
"es" => 'empresa',
"en" => 'enterprise',
"ca" => 'empresa',
"fr" => 'enterprise'
],
"contacto" => [
"es" => 'contacto',
"en" => 'contact',
"ca" => 'contacte',
"fr" => 'contact'
],
"home" => [
"es" => '',
"en" => '',
"ca" => '',
"fr" => ''
],
"cookies" => [
"es" => 'cookies',
"en" => 'cookies',
"ca" => 'cookies',
"fr" => 'cookies'
],
"condiciones" => [
"es" => 'condiciones',
"en" => 'conditions',
"ca" => 'condicions',
"fr" => 'conditions'
],
"resultatCerca" => [
"es" => 'resultatCerca',
"en" => 'resultatCerca',
"ca" => 'resultatCerca',
"fr" => 'resultatCerca'
]
];
private $array_title_page = [
"privacidad" => [
"es" => 'Política de privacidad',
"en" => 'Privacy policy',
"ca" => 'Política de privacitat',
"fr" => 'Politique de confidentalité'
],
"empresa" => [
"es" => 'Nosotros',
"en" => 'About us',
"ca" => 'Nosaltres',
"fr" => 'Nous'
],
"contacto" => [
"es" => 'Contacto',
"en" => 'Contact',
"ca" => 'Contacte',
"fr" => 'Contact'
],
"home" => [
"es" => 'Inicio',
"en" => 'Home',
"ca" => 'Inici',
"fr" => 'Home'
],
"cookies" => [
"es" => 'Política de cookies',
"en" => 'Cookies policy',
"ca" => 'Política de cookies',
"fr" => 'Politique de cookies'
],
"condiciones" => [
"es" => 'Términos y condiciones',
"en" => 'Terms and conditions',
"ca" => 'Termes i condicions',
"fr" => 'Termes et conditions'
],
"resultatCerca" => [
"es" => 'Listado inmuebles',
"en" => 'List of properties',
"ca" => 'Llistat immobles',
"fr" => 'Annonce immobilière'
]
];
private $tradTexts = "";
public function __construct(){
$this->array_links = array();
}
/**
* @Route("/", name="main_page", methods={"GET"})
* @Route("/{lang}", name="main_page_lang", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)"})
*
*/
public function mainPage(Request $request, ManagerRegistry $doctrine, $lang = ""): Response
{
$em = $this->getDoctrine()->getManager();
if($request->get('tologin')){
return $this->redirect("/private");
}
$agency = $em->getRepository(ApiAgency::class)->findOneBy(array());
if(!$agency->getFirstTime()){
$langs = $em->getRepository(ApiAgencyLang::class)->findAll();
foreach($this->array_pages as $key => $pages){
$groupPage = rand(60000, 99999);
foreach($langs as $lang){
$slug = $this->array_slug_page[$key][$lang->getCod()];
$page = new ApiPages();
$page->setLang($lang->getCod());
$page->setSlug($slug);
$page->setTitle($this->array_title_page[$key][$lang->getCod()]);
$page->setStrHtml($pages[2]);
$page->setStatus(1);
$page->setJsonBack($pages[3]);
$page->setDateCreated(new \DateTime());
$page->setDefaultPage(1);
$page->setGroupPage($groupPage);
$em->persist($page);
}
}
$em->flush();
$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>';
$jsonBack = array(
array(
"id" => "sectionOne",
"name" => "1 columna",
"className" => "SectionOne",
"img" => "/plugins/sectionOne/img/column-1.png",
"hash" => array("u2ocez1wb4f"),
"parent" => null,
"type" => "droppable",
"classType" => "section",
"value" => "",
"limit" => -1,
"order" => 0
),
array(
"id" => "html",
"name" => "Html",
"className" => "HtmlPlugin",
"icon" => "fas fa-code",
"hash" => array("urggnca4ais"),
"parent" => "u2ocez1wb4f",
"type" => "draggable",
"classType" => "section-htmlPlugin",
"value" => "",
"limit" => -1,
"order" => 101
)
);
$langDefault = $em->getRepository(ApiAgencyLang::class)->findOneBy(array("predeterminado" => 1));
$agencyPages = $em->getRepository(ApiAgencyPages::class)->findBy(array("lang" => $langDefault->getCod()));
$langs = $em->getRepository(ApiAgencyLang::class)->findAll();
$menu = $em->getRepository(ApiMenu::class)->findOneBy(array());
if(!$menu){
$menu = new ApiMenu();
$menu->setName("Menu");
$menu->setDateCreated(new \DateTime());
$em->persist($menu);
$em->flush();
}
if($agencyPages){
foreach($agencyPages as $ap){
$apiPages = $em->getRepository(ApiPages::class)->findOneBy(array("slug" => $ap->getSlug()));
if($apiPages){
if($ap->getSlug() == "resultatCerca"){
$orderPage = new ApiOrderPages();
$orderPage->setMenu($menu);
$orderPage->setPage($apiPages);
$orderPage->setOrder($ap->getOrder());
$em->persist($orderPage);
$em->flush();
continue;
}else{
if($ap->getOrder()){
$orderPage = new ApiOrderPages();
$orderPage->setMenu($menu);
$orderPage->setPage($apiPages);
$orderPage->setOrder($ap->getOrder());
$em->persist($orderPage);
$em->flush();
}
}
foreach($langs as $lang){
$apiPages = $em->getRepository(ApiPages::class)->findOneBy(array("groupPage" => $apiPages->getGroupPage(),"lang" => $lang->getCod()));
$agencyPage = $em->getRepository(ApiAgencyPages::class)->findOneBy(array("lang" => $lang->getCod(), "slug" => $ap->getSlug()));
$html = "";
$json = "[]";
if($agencyPage){
if($agencyPage->getText() != ""){
$html = str_replace("{{html}}", str_replace('"',"'",$agencyPage->getText()), $strHTML);
$jsonBack[1]["value"] = $agencyPage->getText();
$json = json_encode($jsonBack);
}
}else{
if($ap->getText() != ""){
$html = str_replace("{{html}}", str_replace('"',"'",$ap->getText()), $strHTML);
$jsonBack[1]["value"] = $ap->getText();
$json = json_encode($jsonBack);
}
}
$apiPages->setStrHtml($html);
$apiPages->setJsonBack($json);
$em->persist($apiPages);
$em->flush();
}
}else{
$groupPage = rand(60000, 99999);
foreach($langs as $lang){
$agencyPage = $em->getRepository(ApiAgencyPages::class)->findOneBy(array("lang" => $lang->getCod(), "slug" => $ap->getSlug()));
$html = "";
$json = "[]";
$title = "";
if($agencyPage){
$title = $agencyPage->getTitle();
if($agencyPage->getText() != ""){
$html = str_replace("{{html}}", str_replace('"',"'",$agencyPage->getText()), $strHTML);
$jsonBack[1]["value"] = $agencyPage->getText();
$json = json_encode($jsonBack);
}
}else{
$title = $ap->getTitle();
if($ap->getText() != ""){
$html = str_replace("{{html}}", str_replace('"',"'",$ap->getText()), $strHTML);
$jsonBack[1]["value"] = $ap->getText();
$json = json_encode($jsonBack);
}
}
$page = new ApiPages();
$page->setLang($lang->getCod());
$page->setSlug($ap->getSlug());
$page->setTitle($title);
$page->setStrHtml($html);
$page->setStatus(1);
$page->setJsonBack($json);
$page->setDateCreated(new \DateTime());
$page->setDefaultPage(0);
$page->setGroupPage($groupPage);
$em->persist($page);
$em->flush();
if($ap->getOrder() && $langDefault->getCod() == $lang->getCod()){
$orderPage = new ApiOrderPages();
$orderPage->setMenu($menu);
$orderPage->setPage($page);
$orderPage->setOrder($ap->getOrder());
$em->persist($orderPage);
$em->flush();
}
}
}
}
}
$agency->setFirstTime(1);
$em->persist($agency);
$em->flush();
}
if(!$request->getSession()->get("session_id")){
$request->getSession()->set("session_id", sha1(date_format(new \DateTime("now"), "Y-m-d")));
}
return $this->goPage($request, $doctrine, $lang, "", "");
}
/**
* @Route("/{lang}/{slug}", name="slug_page", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)"})
*/
public function slugPage(Request $request, ManagerRegistry $doctrine, $lang, $slug): Response
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository(ApiPages::class)->findOneBy(array("slug" => $slug));
// dd($page);
$slugPreview = $slug;
if($request->get("preview") && !$page && $slug){
$slugPreview = $slug;
$slug = "";
}
if($request->get("preview") && !$page && !$slugPreview){
$slugPreview = "";
$slug = "";
}
if($page && $page->getStatus() != 1){
throw $this->createNotFoundException('Contenido no encontrado');
}
if($page && !$page->getDefaultPage() ){
if($_SERVER['QUERY_STRING']) return $this->redirect('content/'.$slugPreview.'?'.$_SERVER['QUERY_STRING']);
return $this->redirect('content/'.$slugPreview);
}
return $this->goPage($request, $doctrine, $lang, $slug, $slugPreview);
}
/**
* @Route("/{lang}/content/{slug}", name="slug_content_page_lang", methods={"GET"},requirements={"lang" = "(es|ca|fr|en)"})
* @Route("/{lang}/seccion/{slug}", name="slug_seccion_page", methods={"GET"},requirements={"lang" = "(es|ca|fr|en)"})
*
*/
public function slugContentPage(Request $request, ManagerRegistry $doctrine, $lang, $slug): Response
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository(ApiPages::class)->findOneBy(array("slug" => $slug));
$slugPreview = $slug;
if(!$page || $page->getStatus() != 1){
throw $this->createNotFoundException('Contenido no encontrado');
}
return $this->goPage($request, $doctrine, $lang, $slug, $slugPreview);
}
public function goPage($request, $doctrine, $lang, $slug, $slugPreview){
$preview = $request->get("preview");
$em = $this->getDoctrine()->getManager();
$apiMenuRepo = $em->getRepository(ApiMenu::class);
$apiOrderPages = $em->getRepository(ApiOrderPages::class);
$apiAgency = $em->getRepository(ApiAgency::class);
$apiAgencyLang = $em->getRepository(ApiAgencyLang::class);
$apiPages = $em->getRepository(ApiPages::class);
$textosRepo = $em->getRepository(Textos::class);
$agencyDescriptionsRepo = $em->getRepository(ApiAgencyDescription::class);
$menuGroup = $apiMenuRepo->findOneBy(array());
$agency = $apiAgency->findOneBy(array());
$langs = $apiAgencyLang->findBy([]);
$langDefault = $apiAgencyLang->findOneBy(array("predeterminado" => 1));
if(!$langDefault){
$langDefault = $apiAgencyLang->findOneBy(array("cod" => "es"));
}
$langSelect = $langDefault;
if($lang != ""){
$langSelect = $apiAgencyLang->findOneBy(array("cod" => $lang));
if(!$langSelect) return $this->redirectToRoute('main_page');
}
$request->setLocale($langDefault->getCod());
$menus = array();
if($menuGroup){
$menus = $apiOrderPages->findBy(array("menu" => $menuGroup->getId()), array("order" => "ASC"));
foreach($menus as $key => $ma){
$menus[$key]->setPage($apiPages->findOneBy(array("lang" => $langSelect->getCod(), "groupPage" => $ma->getPage()->getGroupPage(), "status" => 1)));
}
}
$page = $apiPages->findOneBy(array("slug" => $slug));
$texts = $textosRepo->getTextosByLang($langSelect->getCod());
$descriptions = $agencyDescriptionsRepo->getDescriptionsByLang($langSelect->getCod());
// dd($slug);
if(!$page){
if($langSelect->getCod() != $langDefault->getCod()){
$page = $apiPages->findOneBy(array("lang" => $langSelect->getCod(), "groupPage" => $page->getGroupPage()));
}
}
$pagesGroup = null;
if($page){
$pagesGroup = $apiPages->findBy(array("groupPage" => $page->getGroupPage(), "status" => 1));
$page = $apiPages->findOneBy(array("groupPage" => $page->getGroupPage(), "status" => 1, "lang" => $langSelect->getCod()));
if($preview == 1 && $this->getUser()){
if($page->getSlug() == ""){
if($slugPreview){
$page->setStrHtml($request->getSession()->get("urlPagePreview-".$slugPreview));
$page->setJsonBack($request->getSession()->get("urlPagePreviewJson-".$slugPreview));
}else{
$page->setStrHtml($request->getSession()->get("urlPagePreview-"));
$page->setJsonBack($request->getSession()->get("urlPagePreviewJson-"));
}
}else{
$page->setStrHtml($request->getSession()->get("urlPagePreview-".$page->getId()));
$page->setJsonBack($request->getSession()->get("urlPagePreviewJson-".$page->getId()));
}
}
//highlights
if(strpos($page->getStrHtml(), "[section-highlights]") !== false){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/highlights/'.$langSelect->getCod().'/4',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$page->setStrHtml(str_replace("[section-highlights]", $response, $page->getStrHtml()));
}
}
//searcher
if(strpos($page->getStrHtml(), "[section-searcher]") !== false){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$page->setStrHtml(str_replace("[section-searcher]", $response, $page->getStrHtml()));
}
}
//last-properties
if(strpos($page->getStrHtml(), "[section-last-properties]") !== false){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/lastProperties/'.$langSelect->getCod().'/4',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$page->setStrHtml(str_replace("[section-last-properties]", $response, $page->getStrHtml()));
}
}
//last-properties
if(strpos($page->getStrHtml(), "[section-last-properties-rent]") !== false){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/lastPropertiesRent/'.$langSelect->getCod().'/4',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$page->setStrHtml(str_replace("[section-last-properties-rent]", $response, $page->getStrHtml()));
}
}
//home
if(strpos($page->getStrHtml(), "[section-home]") !== false){
$jsonBack = json_decode($page->getJsonBack());
$page->setStrHtml(str_replace("[section-home]", "", $page->getStrHtml()));
foreach($jsonBack as $object){
if($object->id == "home"){
if(property_exists($object, "valueJSON")){
$valueJSON = (array) $object->valueJSON;
$modulesController = new ModulesController;
switch($valueJSON["theme"]){
case 'homemap':
$properties = null;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/homemap/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$properties = (array) $response->data;
}
$curl = curl_init();
$searchHtml = "";
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$searchHtml = $response;
}
return $this->render('main/front/themes/homemap.html.twig', [
"theme" => "homemap",
"searchHtml" => $searchHtml,
"result_compra" => $properties["result_compra"],
"result_destacats" => $properties["result_destacats"],
"result_alquiler" => $properties["result_alquiler"],
"array_json" => json_encode($properties["array_json"]),
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"key_maps" => $_ENV["KEY_GOOGLEMAPS"],
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
]);
break;
case 'superprop':
$properties = null;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/superprop/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$properties = (array) $response->data;
}
$curl = curl_init();
$searchHtml = "";
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$searchHtml = $response;
}
return $this->render('main/front/themes/superprop.html.twig', [
"theme" => "superprop",
"result_compra" => $properties["result_compra"],
"result_random" => $properties["result_random"],
"result_alquiler" => $properties["result_alquiler"],
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"searchHtml" => $searchHtml,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : ""
]);
break;
case 'agency':
$properties = null;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/agency/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$properties = (array) $response->data;
}
return $this->render('main/front/themes/agency.html.twig', [
"theme" => "agency",
"result" => $properties["result"],
"result_compra" => $properties["result_compra"],
"result_destacats" => $properties["result_destacats"],
"result_alquiler" => $properties["result_alquiler"],
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findBy(array(), array("norder" => "ASC")))
]);
break;
case 'portal':
$properties = null;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/portal/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$properties = (array) $response->data;
}
$curl = curl_init();
$searchHtml = "";
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$searchHtml = $response;
}
return $this->render('main/front/themes/portal.html.twig', [
"theme" => "portal",
"result" => $properties["result"],
"result_compra" => $properties["result_compra"],
"result_destacats" => $properties["result_destacats"],
"result_alquiler" => $properties["result_alquiler"],
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"searchHtml" => $searchHtml,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findBy(array(), array("norder" => "ASC")))
]);
break;
case 'agent':
return $this->render('main/front/themes/agent.html.twig', [
"theme" => "agent",
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"agent" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencyHomeAgent::class)->findOneBy(array("lang" => $langSelect->getCod())))
]);
break;
case 'corporate':
$pages = $this->container->get('serializer')->normalize($em->getRepository(ApiPages::class)->findBy(array("lang" => $langSelect->getCod())));
$listPages = array();
foreach($pages as $p){
$listPages[$p["slug"]] = $p["title"];
}
return $this->render('main/front/themes/corporate.html.twig', [
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"corporate" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencyHomeImage::class)->findOneBy(array())),
"listPages" => $listPages
]);
break;
case 'geoloc':
$properties = null;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/geoloc/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$properties = (array) $response->data;
}
$curl = curl_init();
$searchHtml = "";
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher2/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$searchHtml = $response;
}
return $this->render('main/front/themes/geoloc.html.twig', [
"theme" => "geoloc",
"result" => $properties["result"],
"result_random" => $properties["result_random"],
"searchHtml" => $searchHtml,
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
]);
break;
case 'lateralscroll':
$properties = null;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/lateralscroll/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$properties = (array) $response->data;
}
$curl = curl_init();
$searchHtml = "";
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher3/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$searchHtml = $response;
}
return $this->render('main/front/themes/lateralscroll.html.twig', [
"theme" => "lateralscroll",
"result_destacats" => $properties["result_destacats"],
"result_random" => $properties["result_random"],
"searchHtml" => $searchHtml,
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
]);
break;
case 'megaimage':
$curl = curl_init();
$searchHtml = "";
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$searchHtml = $response;
}
return $this->render('main/front/themes/megaimage.html.twig', [
"theme" => "megaimage",
"searchHtml" => $searchHtml,
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
]);
break;
case 'megascroll':
$properties = null;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/data/properties/megascroll/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$properties = (array) $response->data;
}
$curl = curl_init();
$searchHtml = "";
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$searchHtml = $response;
}
return $this->render('main/front/themes/megascroll.html.twig', [
"theme" => "megascroll",
"result_compra" => $properties["result_compra"],
"result_destacats" => $properties["result_destacats"],
"result_alquiler" => $properties["result_alquiler"],
"searchHtml" => $searchHtml,
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
]);
break;
case 'onepage':
return $this->render('main/front/themes/onepage.html.twig', [
"theme" => "onepage",
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"onepage" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencyHomeOnepage::class)->findOneBy(array("lang" => $langSelect->getCod())))
]);
break;
case 'tabbuscador':
$curl = curl_init();
$searchHtml = "";
curl_setopt_array($curl, array(
CURLOPT_URL => $request->getSchemeAndHttpHost().'/modules/int/searcher3/'.$langSelect->getCod(),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
if($response){
$response = json_decode($response);
$searchHtml = $response;
}
return $this->render('main/front/themes/tabbuscador.html.twig', [
"theme" => "tabbuscador",
"searchHtml" => $searchHtml,
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
"slides" => $this->container->get('serializer')->normalize($em->getRepository(ApiAgencySlider::class)->findOneBy(array(), array("norder" => "ASC")))
]);
break;
}
}
break;
}
}
}
}
// $strHtml = '';
// if($preview){
// $strHtml = $request->getSession()->get("previewContent");
// }
// dd($menus);
// dd($descriptions);
return $this->render('main/front/index.html.twig', [
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"page" => $page,
"texts" => $texts,
"textsEncoded" => json_encode($texts),
"descriptions" => $descriptions,
"pagesGroup" => $pagesGroup,
"actualPage" => ($slug != "")?$slug : "",
// "preview" => $preview,
// "strHtml" => $strHtml
]);
}
/**
* @Route("/newsletter/add", name="add_newsletter", methods={"POST"})
*
*/
public function newsletterAdd(Request $request, ManagerRegistry $doctrine): Response
{
$result = 0;
$message = "";
if (!empty($request->getContent())) {
$post = (array) json_decode($request->getContent());
if (count($post) == 0) {
$post = (array) $request->request->all();
}
} else {
$post = (array) $request->request->all();
}
if (isset($post["email"])) {
$em = $this->getDoctrine()->getManager();
$apiAgencyNewsletterRepo = $em->getRepository(ApiAgencyNewsletter::class);
$an = $apiAgencyNewsletterRepo->findBy(array("mail" => $post["email"]));
if($an){
$result = 2;
}else{
try{
$an = new ApiAgencyNewsletter();
$an->setMail($post["email"]);
$an->setActive(1);
$em->persist($an);
$em->flush();
$result = 1;
}catch(\Exception $e){
$result = 3;
$message = $e->getMessage(). " -- ".$e->getLine();
}
}
}else{
$result = 4;
}
return new JsonResponse([
"status" => "success",
"data" => $result,
"message" => $message
] , Response::HTTP_OK);
}
/**
* @Route("/poblaciones", name="get_poblaciones", methods={"POST"})
*
*/
public function poblaciones(Request $request, ManagerRegistry $doctrine): Response
{
$result = "";
if (!empty($request->getContent())) {
$post = (array) json_decode($request->getContent());
if (count($post) == 0) {
$post = (array) $request->request->all();
}
} else {
$post = (array) $request->request->all();
}
$em = $this->getDoctrine()->getManager();
$tipusOperacioRepo = $em->getRepository(TipusOperacio::class);
$apiPropertySuperTypeRepo = $em->getRepository(ApiPropertiesSupertype::class);
$apiPropertiesRepo = $em->getRepository(ApiProperties::class);
$apiAgencyRepo = $em->getRepository(ApiAgency::class);
$apiProvincesRepo = $em->getRepository(ApiProvinces::class);
$apiLocationsRepo = $em->getRepository(ApiLocations::class);
$codeLang = $this->getCodLang($post["lang"]);
$texts = $em->getRepository(Textos::class)->getTextosByLang($post["lang"]);
$provincia = stripslashes($post["provincia"]);
$operacio = $tipusOperacioRepo->get_by_name($post["lang"], $post["operacion"]);
$supertipo = $apiPropertySuperTypeRepo->get_by_name($post["supertipus"], $codeLang );
$agency = $apiAgencyRepo->findOneBy(array());
$default_list_properties = explode('/',$agency->getDefaultListProperties());
if (!empty($provincia)) {
$id_provincia = $apiProvincesRepo->get_by_name($provincia);
$poblacions_order_1 = $apiLocationsRepo->get_by_province_by_order($id_provincia, 1);
$poblacions_order_0 = $apiLocationsRepo->get_by_province_by_order($id_provincia, 0);
$apiPropertiesRepo->operacio = $operacio;
$apiPropertiesRepo->supertipus = $supertipo;
$apiPropertiesRepo->provincia = $id_provincia;
$apiPropertiesRepo->addCensados = true;
$apiPropertiesRepo->lang = $codeLang;
$zona1 = '';
$firstloop = true;
foreach ($poblacions_order_1 as $poblacio) {
$apiPropertiesRepo->localitat = $poblacio['id'];
$total_immobles = $apiPropertiesRepo->get_all_count();
if($total_immobles > 0) {
$selected = ( ( $firstloop == true && !isset($default_list_properties[3])) || ( isset($default_list_properties[3]) && $default_list_properties[3] == $poblacio['friendly']))
? 'selected="selected"'
: '';
$zona1 .= '<option value="' . $poblacio['friendly'] . '" ' . $selected . ' >' . ucfirst(mb_strtolower($poblacio['name'], 'UTF-8')) . ' (' . number_format($total_immobles, 0, ',', '.') . ') </option>';
$firstloop = false;
}
}
$zona0 = '';
foreach ($poblacions_order_0 as $poblacio) {
$apiPropertiesRepo->localitat = $poblacio['id'];
$total_immobles = $apiPropertiesRepo->get_all_count();
if($total_immobles > 0) {
$selected = ( ( $firstloop == true && !isset($default_list_properties[3])) || ( isset($default_list_properties[3]) && $default_list_properties[3] == $poblacio['friendly']))
? 'selected="selected"'
: '';
$zona0 .= '<option value="' . $poblacio['friendly'] . '" ' . $selected . ' >' . ucfirst(mb_strtolower($poblacio['name'], 'UTF-8')) . ' (' . number_format($total_immobles, 0, ',', '.') . ') </option>';
$firstloop = false;
}
}
if($zona1 && $zona0)
$result .= '<optgroup>'.$zona1.'</optgroup><optgroup>'.$zona0.'</optgroup>';
else if(!$zona1 && !$zona0)
$result .= '<option value="">'.$texts['no_result'].'</option>';
else
$result .= $zona1.$zona0;
}
return new JsonResponse([
"status" => "success",
"data" => $result,
] , Response::HTTP_OK);
}
/**
* RECUPERAMOS EL CODIGO DEL IDIOMA A TRAVÉS DE LA VARIABLE LANG (SHORT)
*/
public function getCodLang($lang)
{
switch($lang):
case 'ca':
$cod_lang = 'ca_ES';
break;
case 'es':
$cod_lang = 'es_ES';
break;
case 'en':
$cod_lang = 'en_US';
break;
case 'ru':
$cod_lang = 'ru_RU';
break;
case 'fr':
$cod_lang = 'fr_FR';
break;
case 'de':
$cod_lang = 'de_DE';
break;
case 'ch':
$cod_lang = 'ch_CH';
break;
case 'ar':
$cod_lang = 'ar_AR';
break;
default:
$cod_lang = 'ca_ES';
endswitch;
return $cod_lang;
}
/**
* @Route("/alert/save", name="alert_save", methods={"POST"})
*
*/
public function alertSave(Request $request, ManagerRegistry $doctrine, SessionInterface $session): Response
{
$em = $this->getDoctrine()->getManager();
if (!empty($request->getContent())) {
$post = (array) json_decode($request->getContent());
if (count($post) == 0) {
$post = (array) $request->request->all();
}
} else {
$post = (array) $request->request->all();
}
dd($post);
}
/**
* @Route("/search/session", name="set_search_session", methods={"POST"})
*
*/
public function searchSession(Request $request, ManagerRegistry $doctrine, SessionInterface $session): Response
{
$em = $this->getDoctrine()->getManager();
if (!empty($request->getContent())) {
$post = (array) json_decode($request->getContent());
if (count($post) == 0) {
$post = (array) $request->request->all();
}
} else {
$post = (array) $request->request->all();
}
$session->set("filters", $post["filters"]);
$filters = json_decode(base64_decode($post["filters"]));
$filtres = array();
if(count($filters) > 0){
foreach($filters as $filter){
$filtres[$filter->name] = $filter->value;
}
}
$url = $this->validate_url($filtres, '');
return new JsonResponse([
"status" => "success",
"data" => $url
] , Response::HTTP_OK);
}
/**
* @Route("/{lang}/{operacio}/{supertipus}/{province}/{locality}/{id}", name="detail_page", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)", "id" = "\d+" })
* @Route("/{operacio}/{supertipus}/{province}/{locality}/{id}", name="detail_page_default", methods={"GET"}, requirements={"id" = "\d+", "operacio" = "^(?!modules)"})
*
*/
public function detailPage(Request $request, ManagerRegistry $doctrine, SessionInterface $session, $operacio, $supertipus, $province, $locality, $id, $lang = ""): Response
{
$em = $doctrine->getManager();
$textosRepo = $em->getRepository(Textos::class);
$apiAgencyLangRepo = $em->getRepository(ApiAgencyLang::class);
$apiPropertiesRepo = $em->getRepository(ApiProperties::class);
$apiPropertiesTypesI18nRepo = $em->getRepository(ApiPropertiesTypesI18n::class);
$apiPropertiesCertificatesImagesRepo = $em->getRepository(ApiPropertiesCertificatesImages::class);
$apiTipusOperacioRepo = $em->getRepository(TipusOperacio::class);
$apiLocationsGps = $em->getRepository(ApiLocationsGps::class);
$apiFeaturesRepo = $em->getRepository(ApiFeatures::class);
$apiZonesRepo = $em->getRepository(ApiZones::class);
$apiLocationsRepo = $em->getRepository(ApiLocations::class);
$apiProvincesRepo = $em->getRepository(ApiProvinces::class);
$apiAgencyRepo = $em->getRepository(ApiAgency::class);
$apiPropertiesI18nRepo = $em->getRepository(ApiPropertiesI18n::class);
$apiMenuRepo = $em->getRepository(ApiMenu::class);
$apiOrderPagesRepo = $em->getRepository(ApiOrderpages::class);
$apiPagesRepo = $em->getRepository(ApiPages::class);
$apiAgencyDescriptionsRepo = $em->getRepository(ApiAgencyDescription::class);
$menuGroup = $apiMenuRepo->findOneBy(array());
$menus = array();
// $pagesGroup = $apiPagesRepo->findBy(array("groupPage" => $page->getGroupPage(), "status" => 1));
$agency = $apiAgencyRepo->findOneBy(array());
$property = $apiPropertiesRepo->findOneBy(array("id" => $id));
$langs = $apiAgencyLangRepo->findAll();
$langPredeterminado = $apiAgencyLangRepo->findOneBy(array("predeterminado" => 1));
$lang = $apiAgencyLangRepo->findOneBy(array("cod" => $lang));
if(!$lang) $lang = $langPredeterminado;
if($menuGroup){
$menus = $apiOrderPagesRepo->findBy(array("menu" => $menuGroup->getId()), array("order" => "ASC"));
foreach($menus as $key => $ma){
$menus[$key]->setPage($apiPagesRepo->findOneBy(array("lang" => $lang->getCod(), "groupPage" => $ma->getPage()->getGroupPage())));
}
}
// dd($menus);
$texts = $textosRepo->getTextosByLang($lang->getCod());
$descriptionAgency = $apiAgencyDescriptionsRepo->getDescriptionsByLang($lang->getCod());
if($property){ //Comprovar la info
//
$traducciones = $textosRepo->getBulkTextsByIdLang(array("hipoteca_en","fitxa_de", "text_a", "en_tramite"), $lang->getCod());
//Imagen certificado
$imagenCertificado = $apiPropertiesCertificatesImagesRepo->getImageCertificate($property->getId());
//Numero de fotos
$total_fotos = array();
for($i = 1; $i <= $property->getNumFotos(); $i++) {
$total_fotos[] = $_ENV["DOMINI_APIBCN_FOTOS"] . "fotos" . round($property->getId() / 20000) . "/" . $property->getId() . "/foto_" . $i . ".jpg";
}
//Geolocalizacion
$geolocation = $apiLocationsGps->findOneBy(array("glat" => $property->getGlat(), "glon" => $property->getGlon()));
//Features
$features = $apiFeaturesRepo->get_name($property->getId(),$lang->getCod().'_'.mb_strtoupper($lang->getCod()));
$certificadoFeatures = $apiFeaturesRepo->get_certificate_value($property->getId(),$lang->getCod().'_'.mb_strtoupper($lang->getCod()));
foreach($certificadoFeatures as $key => $feature){
if(!isset($certificadoFeatures[$key]["value"]) || empty($certificadoFeatures[$key]["value"]) || !$certificadoFeatures[$key]["value"]){
$certificadoFeatures[$key]["value"] = $traducciones['en_tramite'];
}
}
// dd($features);
//Zona
$zona = $apiZonesRepo->findOneBy(array("id" => $property->getZona()));
//Localidad
$location = $apiLocationsRepo->findOneBy(array("id" => $property->getLocalidad()));
//Provincia
$provincia = $apiProvincesRepo->findOneBy(array("id" => $property->getProvincia()));
$textAddress = ($property->getCodPostal() ? $property->getCodPostal() : '').', '.($location ? $location->getName() : '').', '.($provincia ? $provincia->getName() : '');
$type = $apiPropertiesTypesI18nRepo->findOneBy(array("id" => $property->getIdPropertiesType(), "codLang" => $lang->getCodComplete()));
//Tipo Operacion
if($property->isEsLloguerTemporada())
$codiTipu = 7;
elseif($property->isEsBanc())
$codiTipu = 4;
elseif($property->isObraNueva())
$codiTipu = 3;
elseif($property->isAlquiler())
$codiTipu = 1;
else
$codiTipu = 2;
//Tipo Operacion
$tipusOp = $apiTipusOperacioRepo->get_friendly_by_codi(mb_strtoupper($lang->getCod()), $codiTipu);
//Superficie
$m2 = '';
$metros = $property->getSuperfConstr() ? $property->getSuperfConstr() : $property->getSuperfUtil();
$metrosm2 = Utilities::formatPropertyNumbers($metros,"m<sup>2</sup>");
$m2 = $traducciones["fitxa_de"]." ".$metrosm2;
$texto_localidad = '';
$texto_provincia = '';
$texto_situacion = ' ';
if($location){
$texto_localidad = ", ".$traducciones["hipoteca_en"]." ".$location->getName();
}
if($zona){
$texto_localidad .= ", ".$zona->getName();
}
if($provincia){
$texto_provincia = ", ".$provincia->getName();
}
if($property->getSituacionConcreta()){
$texto_situacion = $texto_situacion.$traducciones["hipoteca_en"].$texto_situacion.mb_strtolower($property->getSituacionConcreta());
}
//Titulo
$title = $type->getText()." ".$traducciones["hipoteca_en"]." ".$tipusOp." ".$m2.$texto_situacion.$texto_localidad.$texto_provincia;
//Referencia
$reference = $property->getReferencia() ? $property->getReferencia() : $property->getId();
//Precio
$price = 0;
$priceM2 = 0;
if($property->isEsSubhasta()){
$price = Utilities::formatPropertyNumbers( $property->getPrecioSubhasta(), '€');
$priceM2 = Utilities::formatPropertyNumbers( round($property->getPrecioSubhasta()/ $metros), '€/m<sup>2</sup>');
}else {
if($property->isAlquiler() && $property->getPrecioAlquiler() > 0){
$price = Utilities::formatPropertyNumbers( $property->getPrecioAlquiler(), '€');
$priceM2 = Utilities::formatPropertyNumbers( round($property->getPrecioAlquiler()/ $metros), '€/m<sup>2</sup>');
}else{
$price = Utilities::formatPropertyNumbers( $property->getPrecio(), '€');
$priceM2 = Utilities::formatPropertyNumbers( round($property->getPrecio()/ $metros), '€/m<sup>2</sup>');
}
}
if($property->isEsBanc()){
$price = Utilities::formatPropertyNumbers( $property->getPrecio(), '€');
$priceM2 = Utilities::formatPropertyNumbers( round($property->getPrecio()/ $metros), '€/m<sup>2</sup>');
}
if($property->isEsLloguerTemporada()){
$price = Utilities::formatPropertyNumbers( $property->getPrecioLloguerTemporada(), '€');
$priceM2 = Utilities::formatPropertyNumbers( round($property->getPrecioLloguerTemporada()/ $metros), '€/m<sup>2</sup>');
}
//Descripcion
$description = $apiPropertiesI18nRepo->findOneBy(array("id" => $property->getId(), "codLang" => $lang->getCodComplete()));
//SIMILARS
$similars = $apiPropertiesRepo->get_similars($property->getId(), 5);
//banner
$banner = $apiAgencyRepo->banner();
//Video
$video_link = $apiPropertiesRepo->get_video_link($property->getId());
$filters["e_operacio"] = $operacio;
$filters["e_supertipus"] = $supertipus;
$filters["e_province"] = $province;
$filters["e_locality"] = $locality;
$filters["e_zona"] = $id;
$pagesGroup = array();
foreach($langs as $l){
$filters["e_lang"] = $l->getCod();
$pagesGroup[] = array(
"lang" => $l->getCod(),
"status" => 1,
"visible" => 1,
"slug" => $this->validate_url($filters, '', false, false)
);
}
$filters["e_lang"] = $lang->getCod();
$filters["e_zona"] = "";
$url_volver = "/".$lang->getCod()."/".$this->validate_url($filters, '', false, false);
// dd($similars);
return $this->render('main/front/detail.html.twig', [
"descriptions" => $descriptionAgency,
"texts" => $texts,
"pagesGroup" => $pagesGroup,
"menus" => $menus,
"agency" => $agency,
"traducciones" =>$traducciones,
"page_active" => "detail",
"lang" => $lang,
"langs" => $langs,
"title" => $title,
"tipusOp" => $tipusOp,
"m2" => $metrosm2,
"price" => $price,
"priceM2" => $priceM2,
"province" => $province,
"location" => $location,
"textAddress" => $textAddress,
"reference" => $reference,
"anuncio" => $description->getAnuncio(),
"imageCertificate" => $imagenCertificado,
"geolocation" => $geolocation,
"operation" => $tipusOp,
"fotos" => $total_fotos,
"certificadoFeatures" => $certificadoFeatures,
"features" => $features,
"property" => $property,
"KEY_GOOGLEMAPS"=>$_ENV["KEY_GOOGLEMAPS"],
"url" => $_SERVER['REQUEST_URI'],
"url_volver" => $url_volver,
"similares" => $similars,
"banner" => $banner,
"video_tour" => $video_link
]);
}
}
/**
* @Route("/sendMail/{id}", name="detail_send_mail_page", methods={"POST"})
*
*/
public function sendMailDetail(Request $request, ManagerRegistry $doctrine, $id){
$em = $this->getDoctrine()->getManager();
$apiPropertiesRepo = $em->getRepository(ApiProperties::class);
if($id){
try{
$property = $apiPropertiesRepo->findOneBy(array("id" => $id));
$result = $apiPropertiesRepo->get_agencia_by_property($id);
$mystring = $result;
$findme = 'inmo_';
$pos = strpos($mystring, $findme);
if ($pos !== false) {
$res = explode('_', $result);
if(! isset($res[2])) {
return false;
}
} else {
return false;
}
$company = ltrim($res[1], "0");
$url = 'https://gestor.ghestia.cat/endpoints/endpoint?token='.$_ENV["TOKEN_CONTACT_MAIL"];
$fields = array(
'company' => $company,
'property' => $res[2],
'client' => $_POST['name'],
'phone' => $_POST['phone'],
'mail' => $_POST['email'],
'portal' => 2,
'comment' => $_POST['message']
);
$this->sendMail($_POST['email'], $_POST['phone'], $_POST['name'], $_POST['message'], $property->getReferencia());
$field_string = http_build_query($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url.'&endpoint=create_opportunity&'.$field_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($ch);
$result = json_decode($result, true);
curl_close($ch);
}catch(\Exception $e){
return new JsonResponse([
"status" => "success",
"error" => $e->getMessage()
]);
}
}
return new JsonResponse([
"status" => "success"
]);
}
public function sendMail($email, $phone, $name, $message, $ref)
{
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->SMTPAuth = true;
$mail->CharSet = "UTF-8";
$mail->Host = $_ENV["MAIL_HOST"];
$mail->Port = $_ENV["MAIL_PORT"];
$mail->Username = $_ENV["MAIL_USER"];
$mail->Password = $_ENV["MAIL_PASSWORD"];
$mail->SetFrom($_ENV["MAIL_FROM"]);
// $mail->AddAddress($_ENV["MAIL_FROM"]);
$mail->AddAddress($_ENV["MAIL_TO"]);
$mail->Subject = $ref." - ".$name." - ".$email;
$mail->Body = $phone." - ".$name." - ".$message;
return $mail->Send();
}
/**
* @Route("/{lang}/{operacio}/{supertipus}/{province}/{locality}", name="search_page", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)"})
* @Route("/{lang}/{operacio}/{supertipus}/{province}/{locality}/{extra}", name="search_page_page", methods={"GET"}, requirements={"lang" = "(es|ca|fr|en)", "extra" = ".*"})
* @Route("/{operacio}/{supertipus}/{province}/{locality}", name="search_page_default", methods={"GET"}, requirements={"operacio" = "^(?!modules)"})
* @Route("/{operacio}/{supertipus}/{province}/{locality}/{extra}", name="search_page_default_sortby", methods={"GET"}, requirements={"extra" = ".*", "operacio" = "^(?!modules)"})
*
*/
public function searchPage(Request $request, ManagerRegistry $doctrine, SessionInterface $session, $operacio, $supertipus, $province, $locality, $lang = "", $extra = ""): Response
{
$cerca_url_zona = "";
$features = "";
$subtipus = "";
$sortby = "";
$page = "";
$extras = explode("/", $extra);
foreach($extras as $ext){
if(strpos($ext, "zona-") !== false){
$cerca_url_zona = $ext;
continue;
}
if(strpos($ext, "page-") !== false){
$page = $ext;
continue;
}
if(strpos($ext, "equipament-") !== false || strpos($ext, "equipamiento-") !== false){
$features = $ext;
continue;
}
if(strpos($ext, "ordenado-por") !== false || strpos($ext, "ordenat-per") !== false){
$sortby = $ext;
continue;
}
$subtipus = $ext;
}
// 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);
$em = $this->getDoctrine()->getManager();
$apiMenuRepo = $em->getRepository(ApiMenu::class);
$apiOrderPages = $em->getRepository(ApiOrderPages::class);
$apiPages = $em->getRepository(ApiPages::class);
$apiAgency = $em->getRepository(ApiAgency::class);
$apiAgencyLang = $em->getRepository(ApiAgencyLang::class);
$apiProvincesRepo = $em->getRepository(ApiProvinces::class);
$apiAgencyLang = $em->getRepository(ApiAgencyLang::class);
$apiPropertySuperTypeRepo = $em->getRepository(ApiPropertiesSupertype::class);
$apiLocationsRepo = $em->getRepository(ApiLocations::class);
$apiPropertiesRepo = $em->getRepository(ApiProperties::class);
$tipusOperacioRepo = $em->getRepository(TipusOperacio::class);
$agencyDescriptionsRepo = $em->getRepository(ApiAgencyDescription::class);
$apiZonesRepo = $em->getRepository(ApiZones::class);
$apiPropertiesSubtypesRepo = $em->getRepository(ApiPropertiesSubtypes::class);
$menuGroup = $apiMenuRepo->findOneBy(array());
$agency = $apiAgency->findOneBy(array());
$langs = $apiAgencyLang->findBy([]);
$menus = array();
if($lang == ""){
$langDefault = $apiAgencyLang->findOneBy(array("predeterminado" => 1));
$lang = $langDefault->getCod();
}
$langSelect = $apiAgencyLang->findOneBy(array("cod" => $lang));
if($menuGroup){
$menus = $apiOrderPages->findBy(array("menu" => $menuGroup->getId()), array("order" => "ASC"));
foreach($menus as $key => $ma){
$menus[$key]->setPage($apiPages->findOneBy(array("lang" => $langSelect->getCod(), "groupPage" => $ma->getPage()->getGroupPage())));
}
}
$codeLang = $this->getCodLang($lang);
$texts = $em->getRepository(Textos::class)->getTextosByLang($lang);
$provincies_cat = $apiProvincesRepo->get_all(1);
$provincies = $apiProvincesRepo->get_all();
$firstloop = true;
$array_provinces_ca = array();
$filters = ($session->get("filters"))? json_decode(base64_decode($session->get("filters"))) : array();
$filtres = array();
$filtresRaw = array();
if(count($filters) > 0){
foreach($filters as $filter){
$filtresRaw[$filter->name] = $filter->value;
if($filter->value != "") $filtres[str_replace("h_", "",$filter->name)] = $filter->value;
}
}
$idprovincia = $apiProvincesRepo->get_by_name($province);
if (is_array($provincies_cat)) {
foreach ($provincies_cat as $item) {
$selected = ($province == $item['friendly'] && $firstloop == true) ? 'selected="selected"' : '';
$array_provinces_ca[] = array(
'selected' => $selected,
'value' => "/".$lang."/".$operacio."/".$supertipus."/".$item['friendly']."/".$locality,
'text' => ucfirst(mb_strtolower($item['name'], 'UTF-8'))
);
$firstloop = false;
}
}
$array_provinces = array();
if (is_array($provincies)) {
foreach ($provincies as $item) {
$total_immobles_prov = $apiProvincesRepo->properties_count($item['id']);
if($total_immobles_prov > 0) {
$selected = ($province == $item['friendly']) ? 'selected="selected"' : '';
$array_provinces[] = array(
'selected' => $selected,
'value' => "/".$lang."/".$operacio."/".$supertipus."/".$item['friendly']."/".$locality,
'text' => ucfirst(mb_strtolower($item['name'], 'UTF-8'))
);
}
}
}
if($sortby != ""){
$filtres["sortby"] = str_replace("ordenado-por=","", str_replace("ordenat-per=","", $sortby));
}
/**
* Cargamos el combo de supertipos
*/
$arr_supertipus = $apiPropertySuperTypeRepo->get_all_supertipus($codeLang);
$array_supertipos = array();
foreach($arr_supertipus as $stipu) {
$array['selected'] = ($supertipus == $stipu['friendly']) ? 'selected="selected"' : '';
$array['value'] = "/".$lang."/".$operacio."/".$stipu['friendly']."/".$province."/".$locality;//WEBSITE_URL.$temp_arr[0];
$array['name'] = $stipu['nom'];
$array_supertipos[] = $array;
}
/**
* Cargamos las localidades
*/
$nom_localitat = $locality;
$idlocalitat = $apiLocationsRepo->get_by_name($nom_localitat,$idprovincia);
$idOperacio = $tipusOperacioRepo->get_by_name($lang, $operacio);
$idSuperTipus = $apiPropertySuperTypeRepo->get_by_name($supertipus, $codeLang);
$localitats = null;
$localitats_order_0 = null;
$apiPropertiesRepo->lang = $codeLang;
if ($idprovincia > 0) {
$order = 1;
$localitats_pre = $apiLocationsRepo->get_by_province_by_order($idprovincia,$order);
$apiPropertiesRepo->operacio = $idOperacio;
$apiPropertiesRepo->supertipus = $idSuperTipus ;
$apiPropertiesRepo->provincia = $idprovincia;
$apiPropertiesRepo->addCensados = true;
$arr_localidades = array();
$cont = 0;
if (!empty($localitats_pre)) {
foreach ($localitats_pre as $localitat_pre) {
$total_i = 0;
$apiPropertiesRepo->localitat = $localitat_pre['id'];
$total_i = $apiPropertiesRepo->get_all_count();
if ( $total_i > 0 ){
$arr_localidades[$cont] = $localitat_pre;
$arr_localidades[$cont]['total_immobles'] = $total_i;
$cont++;
}
}
}
$localitats = $arr_localidades;
$order = 0;
$localitats_pre_order_0 = $apiLocationsRepo->get_by_province_by_order($idprovincia,$order);
$cont = 0;
if (!empty($localitats_pre_order_0)) {
foreach ($localitats_pre_order_0 as $localitat_pre_order_0) {
$total_i = 0;
$apiPropertiesRepo->localitat = $localitat_pre_order_0['id'];
$total_i = $apiPropertiesRepo->get_all_count();
if ( $total_i > 0 ){
$arr_localidades[$cont] = $localitat_pre_order_0;
$arr_localidades[$cont]['total_immobles'] = $total_i;
$cont++;
}
}
}
$localitats_order_0 = $arr_localidades;
}
$url = "/".$lang."/".$operacio."/".$supertipus."/".$province."/";
$array_localidades1 = array();
$array_localidades2 = array();
$features = str_replace("equipamiento-", "", str_replace("equipament-", "", $features)); //TO DO
$sortBy = (!isset($filtres["sortby"]))? "pdata" : $filtres["sortby"]; //TO DO
$idcensat = ''; //TO DO
$mosaic = 0; //TO DO
$equipament = '';
if (is_array($localitats)) {
if ($features && $features != '') {
if($lang == 'ca')
$equipament = '/equipament-'.$features;
else
$equipament = '/equipamiento-'.$features;
}
if ($sortBy && $sortBy != 'pdata') {
if($lang == 'ca')
$equipament .= '/ordenat-per='.$sortBy;
else
$equipament .= '/ordenado-por='.$sortBy;
}
foreach ($localitats as $loc) {
$selected = "";
if ($idlocalitat == $loc['id'])
$selected = 'selected="selected"';
$ulr_loc = $url.$loc['friendly'].$subtipus.$equipament;
$array_localidades1[] = array(
'value' => $ulr_loc,
'selected' => $selected,
'text' => ucfirst(mb_strtolower($loc['name'], 'UTF-8')) ." (".number_format($loc['total_immobles'], 0, ',', '.').")"
);
}
if (is_array($localitats_order_0)) {
foreach ($localitats_order_0 as $loc) {
$selected = "";
if ($idlocalitat == $loc['id'])
$selected = 'selected="selected"';
$ulr_loc = $url.$loc['friendly'].$subtipus.$equipament;
$array_localidades2[] = array(
'value' => $ulr_loc,
'selected' => $selected,
'text' => ucfirst(mb_strtolower($loc['name'], 'UTF-8')) ." (".number_format($loc['total_immobles'], 0, ',', '.').")"
);
}
}
}
/**
* INICIO ZONAS
*/
$url_zona = "/".$lang."/".$operacio."/".$supertipus."/".$province."/".$locality;
$apiPropertiesRepo->localitat = $idlocalitat;
$zona_resultados = $apiZonesRepo->get_location_zones($idlocalitat);
$array_zonas = array();
$zona = "";
$idzona = "";
if($cerca_url_zona != ""){
$zona = str_replace("zona-", "", $cerca_url_zona);
$idzona = $apiZonesRepo->get_by_name($zona);
}
$cerca_query_zona = "";
$result_zona = $apiZonesRepo->get_all_by_name($zona);
if (is_array($result_zona)){
$query_zona = implode(",", $result_zona);
$cerca_query_zona = $query_zona;
}
foreach ( $zona_resultados as $zone ) {
if ( $zone['id'] != '' && $zone['id'] > 0) $apiPropertiesRepo->query_zona = $zone['id'];
$apiPropertiesRepo->operacio = $idOperacio;
if ($idSuperTipus != '')
$apiPropertiesRepo->supertipus = $idSuperTipus;
$countProperties = $apiPropertiesRepo->get_all_count();
$selected = ($zone['friendly'] == $zona) ? "selected='selected'" : '';
$array_zonas[] = array(
'value' => $url_zona . "/zona-" . $zone['friendly']. $subtipus . $equipament,
'selected' => $selected,
'text' => $zone['name'] . ' (' . $countProperties . ')'
);
}
/**
* CARGAR PRECIOS
*/
$preus = array();
/**
* alquiler temporada
*/
if ($idOperacio == 1 || $idOperacio == 7) {
$preus_array = $apiPropertiesRepo->preus_lloguer_cerca();
for($ii=0;$ii<count($preus_array);$ii++)
$preus[$ii] = (object)$preus_array[$ii];
} else { // Venda
$preus_array = $apiPropertiesRepo->preus_compra_cerca();
for($ii=0;$ii<count($preus_array);$ii++)
$preus[$ii] = (object)$preus_array[$ii];
}
// dd($filtres);
$array_precios_1 = array();
$array_precios_2 = array();
foreach ($preus as $row_preu) {
$selected_min =
$selected_max =
$text_preu_min =
$text_preu_max = "";
if (isset($filtres['preu_min']) && $filtres['preu_min'] == $row_preu->id) $selected_min = 'selected="selected"';
if ($row_preu->signe_min == ">") $text_preu_min = $texts['cercador_mes_de'];
if (isset($filtres['preu_max']) && $filtres['preu_max'] == $row_preu->id) $selected_max = 'selected="selected"';
if ($row_preu->signe_max == ">") $text_preu_max = $texts['cercador_mes_de'];
$array_precios_1[] = array(
'value' => $row_preu->id,
'selected' => $selected_min,
'text' => $text_preu_min . " " . number_format($row_preu->preu, 0, ',', '.') . "€"
);
$array_precios_2[] = array(
'value' => $row_preu->id,
'selected' => $selected_max,
'text' => $text_preu_max . " " . number_format($row_preu->preu, 0, ',', '.') . "€"
);
}
/**
* INICIO SELECT HABITACIONES BAÑOS
*/
$idtipus = $idSuperTipus;
$vars = array_merge($_GET, $_POST);
// if ( $subtipus != '' ) {
// $aux = explode("|", $subtipus);
// $aux = implode('","', $aux);
// }
$array_frase = $this->contenido_frase($lang);
$breadcrumbs = "";
// if ($idcensat == "" && ($idprovincia == "33" || $idprovincia == "34" || $idprovincia == "35" || $idprovincia == "36"))
// $breadcrumbs = $model_content->get_breadcrumbs($lang,$pagina,$idOperacio,$supertipus,$province,$locality); // TO DO
$localitat_nom = $apiLocationsRepo->obtenirLocalitat($idlocalitat);
$loc = ($zona != "")? ucwords($zona) : $localitat_nom ;
$text_seo_operacio = $tipusOperacioRepo->get_text_seo_by_codi($lang,$idOperacio);
$sortby_list = array(
"preu" => $texts['signia_resultats_preu'],
"preugran" => $texts['signia_resultats_preugran'],
"m2" => $texts['signia_superficie'],
"m2gran" => $texts['signia_superficiegran'],
"preum2" => $texts['signia_resultats_preum2'],
"preum2gran" => $texts['signia_resultats_preum2gran'],
"dorm" => $texts['signia_habitacions'],
"dormgran" => $texts['signia_habitacionsgran'],
"pdata" => $texts['signia_actualitzacio'],
"pdatagran" => $texts['signia_actualitzaciogran']
);
$apiPropertiesRepo->idcensat = $idcensat;
$apiPropertiesRepo->operacio = $idOperacio;
$apiPropertiesRepo->tipus = "";
$apiPropertiesRepo->provincia = $idprovincia;
$apiPropertiesRepo->localitat = $idlocalitat;
$apiPropertiesRepo->zona = $idzona;
$apiPropertiesRepo->favorits = "";//TO DO $_SESSION['favorits'];
$apiPropertiesRepo->query_zona = $cerca_query_zona;
$apiPropertiesRepo->lang = $codeLang;
$apiPropertiesRepo->data_publicacio = isset($filtres['publicacio']) ? $filtres['publicacio'] : 1 ;
if(isset($filtres['preu_min']))
$apiPropertiesRepo->preu_min = $filtres['preu_min'];
if(isset($filtres['preu_max']))
$apiPropertiesRepo->preu_max = $filtres['preu_max'];
if(isset($filtres['mmin']))
$apiPropertiesRepo->mmin = $filtres['mmin'];
if(isset($filtres['mmax']))
$apiPropertiesRepo->mmax = $filtres['mmax'];
$idSubtipus = '';
$cerca_fre_subtipus = '';
$palo = ''; $coma = ''; $tipo = 0;
$type_value = 0;
switch ( intval($idSuperTipus) ) {
//oficinas
case 2:
$type_value = 4;
break;
//local
case 3:
$type_value = 3;
break;
//parking
case 4:
$type_value = 8;
break;
//edificios
case 5:
$type_value = 5;
break;
//Terrenos
case 6:
$type_value = 6;
break;
//Industrial
case 7:
$type_value = 7;
break;
}
$arr_explode= explode(",", $subtipus);
foreach ($arr_explode as $item) {
$the_id = $apiPropertiesSubtypesRepo->get_by_friendly_name($item, $codeLang, $type_value);
$idSubtipus .= $palo . $the_id;
$cerca_fre_subtipus .= $coma . $item;
if ( $the_id == 1 ) $idSubtipus .= '|' . "28" . '|' . "32". '|' . "10" ;
if ( $the_id == 2 ) $idSubtipus .= '|' . "11" . '|' . "20" . '|' . "29" . '|' . "33" . '|' . "36";
if ( $tipo == 0 ) $tipo = $apiPropertiesSubtypesRepo->get_type_by_id($the_id);
$palo = '|'; $coma = ',';
}
if ( $tipo == 0 ) $tipo = 1;
// $_SESSION['cerca_subtipus'] = $tipo;
$apiPropertiesRepo->subtipus = $idSubtipus;
if($features != ""){
$cadena = $features;
$array = explode(",", $cadena);
if(count($array) == "1"){
switch ($features) {
case 'ascensor':
$filtres['ascensor'] = 1;
break;
case 'terrassa':
$filtres['terrassa'] = 1;
break;
case 'piscina':
$filtres['piscina'] = 1;
break;
case 'parkings':
$filtres['parkings'] = 1;
break;
case 'traster':
$filtres['traster'] = 1;
break;
case 'calefaccio':
$filtres['calefaccio'] = 1;
break;
case 'aire':
$filtres['aire'] = 1;
break;
case 'balco':
$filtres['balco'] = 1;
break;
}
}else{
foreach($array as $a){
switch ($a) {
case 'ascensor':
$filtres['ascensor'] = 1;
break;
case 'terrassa':
$filtres['terrassa'] = 1;
break;
case 'piscina':
$filtres['piscina'] = 1;
break;
case 'parkings':
$filtres['parkings'] = 1;
break;
case 'traster':
$filtres['traster'] = 1;
break;
case 'calefaccio':
$filtres['calefaccio'] = 1;
break;
case 'aire':
$filtres['aire'] = 1;
break;
case 'balco':
$filtres['balco'] = 1;
break;
}
}
}
}
$apiPropertiesRepo->caracteristiques = $filtres;
//TO DO $apiPropertiesRepo->showcoordinates = ($_SESSION['mapa'] > 0);
if (isset($filtres["dorm"]))
$apiPropertiesRepo->dorm = $filtres["dorm"];
if (isset($filtres["banos"]))
$apiPropertiesRepo->banos = $filtres["banos"];
if (isset($filtres["idmetres"]))
$apiPropertiesRepo->setHaving($filtres["idmetres"]);
if ($idSuperTipus != '')
$apiPropertiesRepo->supertipus = $idSuperTipus;
$apiPropertiesRepo->ordenacio($sortBy);
$coords = null;
$immobles['mosaic'] = '0';
$apiPropertiesRepo->addCensados = true;
$fromMapa = false;//TO DO($_SESSION['mapa'] == 1);
//TO DO
// if (isset($_SESSION['immobles_ids']) && $_SESSION['immobles_ids'] != '') {
// if(isset($_SESSION["immobles_ids"])){
// $immoble->whereIDS = $_SESSION['immobles_ids'];
// }
// $immobles['immobles']['recordset'] = $immoble->get_all();
// $immobles['immobles']['rowcount'] = count($immobles['immobles']['recordset']);
// } else {
// if( $_SESSION['mapa'] > 0 ) {
// $immobles['immobles']['recordset'] = $immoble->get_all();
// $immobles['immobles']['rowcount'] = count($immobles['immobles']['recordset']);
// } else {
// $immobles['immobles'] = $immoble->get_by_params($_SESSION['pag_list']);
// if(!isset($immobles['immobles']['recordset'])) {
// $immobles['immobles']['recordset'] = array();
// $immobles['immobles']['rowcount'] = 0;
// }
// }
// }
// dd($page);
$pag_list = ($page != "")? str_replace("page-","", $page) : 1;
$apiPropertiesRepo->limit_posicion = ($pag_list-1)*$_ENV["RECORDS_x_PAGE"];
$apiPropertiesRepo->limit_elementos = $_ENV["RECORDS_x_PAGE"];
$immobles['immobles']['immobles'] = $apiPropertiesRepo->get_by_params(1); //TO DO pag_list
$apiPropertiesRepo->limit_posicion = null;
$apiPropertiesRepo->limit_elementos = null;
$immobles['immobles']['recordset'] = $apiPropertiesRepo->get_all();
$immobles['immobles']['rowcount'] = count($immobles['immobles']['recordset']);
$immobles['immobles']['recordset'] = $immobles['immobles']['immobles'];
if(!isset($immobles['immobles']['recordset'])) {
$immobles['immobles']['recordset'] = array();
$immobles['immobles']['rowcount'] = 0;
}
$immobles['pagination'] = "";
$hay_inmuebles = false;
$total_immobles = 0;
$canonical_url = '';
if ($immobles['immobles']['recordset']) {
$hay_inmuebles = true;
$optionsCanonicalUrl = array(
'operacio' => $idOperacio,
'nom_operacio' => $operacio,
'tipus' => '',
'nom_supertipus' => '',
'nom_provincia' => $province,
'localitat' => $locality,
'idlocalitat' => $idlocalitat,
'nom_localitat' => $locality,
'zona' => $idzona,
'query_zona' => $cerca_query_zona,
'nom_zona' => $zona
);
$canonical_url = $this->makeUrl($optionsCanonicalUrl, array_merge($_GET, $_POST), true);
$immobles['immobles']['coordinates'] = null;
$txt_veure_fitxa = "Veure fitxa";
if( $lang == "es") $txt_veure_fitxa = "Ver ficha";
if( $lang == "ru") $txt_veure_fitxa = "See property";
if( $lang == "en") $txt_veure_fitxa = "See property";
if($apiPropertiesRepo->showcoordinates) {
$arCoords = $apiPropertiesRepo->get_coordinates();
if (is_array($arCoords)) {
foreach ($arCoords as $c) {
$nom_provincia = $this->friendly_url( $apiProvincesRepo->get_by_id($c['provincia']) );
$nom_localitat = $this->friendly_url( $apiLocationsRepo->get_by_id($c['localidad']) );
$optionsCanonicalUrl['nom_provincia'] = $nom_provincia;
$optionsCanonicalUrl['nom_localitat'] = $nom_localitat;
$optionsCanonicalUrl['localitat'] = $nom_localitat;
$optionsCanonicalUrl['idlocalitat'] = $c['localidad'];
$optionsCanonicalUrl['tipus'] = 'entra';
$optionsCanonicalUrl['nom_supertipus'] = $supertipus;
$friendly_localitat = $nom_localitat;
$optionsCanonicalUrl['provincia'] = $nom_provincia;
$canonical_url_fitxa = $this->makeUrl($optionsCanonicalUrl, array_merge($_GET, $_POST));
$direccion = $c['direccion'];
$url_fitxa = WEBSITE_URL;
if( $lang == "es" ) $url_fitxa .="/es";
if( $lang == "ru" ) $url_fitxa .="/ru";
if( $lang == "en" ) $url_fitxa .="/en";
$url_fitxa .= '/' . $canonical_url_fitxa . $c['id'];
$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>' : "";
$name = "";
$tipus_name = "";
$coords[] = array(
"lat" => trim($c['glat']),
"lng" => trim($c['glon']),
"id" => $c['id'],
"img" => $img,
"type" => $apiPropertiesRepo->supertipus,
"info" => '<div class="globus">' . $img . "<p>" . $name . '</p><p>' . $direccion . '</p><p>' . ucfirst($nom_localitat) . '</p><p>' . number_format($c["preu"], 0, ',', '.') . '€</p><a class="button" href="' . $url_fitxa . '" title="'.$txt_veure_fitxa.'" >'.$txt_veure_fitxa.'</a></div>'
);
}
$immobles['immobles']['coordinates'] = json_encode($coords);
}
}
$immobles['mosaic'] = ($mosaic && $mosaic == "1") ? "1" : "0";
if(isset($friendly_localitat))
$immobles['immobles']['localidad'] = $friendly_localitat;
$discount = array();
$diferencia = array();
$subdominio = $_ENV['DOMINI_APIBCN_FOTOS'];
$i = 0;
$urls_pag = array();
foreach ($immobles['immobles']['recordset'] as &$inmo) {
$inmo['operacio_name'] = $operacio;
$inmo['provincia_name'] = $apiProvincesRepo->get_by_id($inmo['provincia']);
$inmo['localitat_name'] = ucfirst($apiLocationsRepo->get_name($inmo['localidad']));
$inmo['opname'] = $tipusOperacioRepo->get_text_seo_by_codi($lang,$idOperacio);
$nom_de_zona = '';
if ( isset($zona) & ! empty($zona) )
$nom_de_zona = $zona;
else {
$idzona = intval($inmo['zona']);
$nom_de_zona = $apiZonesRepo->get_by_id($idzona);
}
$inmo['zona_name'] = ucfirst($nom_de_zona);
$RoomsAndBath = $apiPropertiesRepo->getRoomsAndBath($inmo['id']);
if(!$inmo['num_dorm']) {
$inmo['num_dorm'] = $RoomsAndBath['habitaciones'];
}
$inmo['num_banyos'] = $RoomsAndBath['banyos'];
$inmo['subtitle'] = $inmo['localitat_name'];
if (isset($inmo['zona_name']) && !empty($inmo['zona_name']))
$inmo['subtitle'] .= ' ('.$inmo['zona_name'] .')';
$preu_metres_quadrats = ($inmo['superficie'] > 0) ? ceil($inmo['preu'] / intval($inmo['superficie'])) : 0;
$inmo['eurosuperficie'] = number_format($preu_metres_quadrats, 0, ',', '.');
$inmo['preu_inicial'] = $inmo['preu'];
$inmo['preu'] = number_format($inmo['preu'], 0, ',', '.');
$inmo['superf_format'] = number_format(($inmo['superf_constr'] != "")? $inmo['superf_constr'] : 0, 0, ',', '.');
$inmo['descripcio'] = strip_tags($inmo['descrip']);
$inmo['descripcio_shot'] = strlen($inmo['descripcio']) > 150 ? substr($inmo['descripcio'], 0, 150).'...' : substr($inmo['descripcio'], 0, 150);
$num_fotos = intval($inmo['num_fotos']);
$inmo['destacado'] = intval($inmo['destacado']);
$inmo['veureimmobles'] = $texts['llistat_resultats_mes_detalls'] . " " . $num_fotos . " " . $texts['llistat_resultats_fotos'];
$inmo['img'] = 'http://' . $_ENV["DOMINI_APIBCN"] . '/images/no_photo.jpg';
if ($inmo['num_fotos'] != 0)
$inmo['img'] = $subdominio."fotos".round($inmo['id']/20000)."/".$inmo['id']."/foto_1.jpg";
$nom_provincia_name = $apiProvincesRepo->get_by_id($inmo['provincia']);
$nom_provincia = $this->friendly_url($nom_provincia_name);
$optionsCanonicalUrl['nom_provincia'] = $nom_provincia;
$optionsCanonicalUrl['provincia'] = $nom_provincia;
$optionsCanonicalUrl['idlocalitat'] = $inmo['localidad'];
$optionsCanonicalUrl['localitat'] = $inmo['localidad'];
$optionsCanonicalUrl['nom_localitat'] = $apiLocationsRepo->get_friendly($inmo['localidad']);
$optionsCanonicalUrl['tipus'] = $inmo['id_properties_supertype'];
$optionsCanonicalUrl['nom_supertipus'] = $apiPropertySuperTypeRepo->get_friendly($inmo['id_properties_supertype'], $codeLang);
$canonical_url_fitxa = $this->makeUrl($optionsCanonicalUrl, array_merge($_GET, $_POST), false, true);
$url_fitxa = $_ENV["WEBSITE_URL"].$this->obtener_url_idioma($lang);
$url_fitxa .= '/'.$canonical_url_fitxa . $inmo['id'];
$inmo['url'] = $url_fitxa;
$inmo['title_format'] = $this->mb_ucfirst( mb_strtolower ( $this->get_property_title($inmo, $idOperacio, $lang), 'UTF-8' ), "UTF-8");
$resto_compra = ($inmo['precio_anterior'] != 0.00 && $inmo['precio'] < $inmo['precio_anterior'])
? $inmo['precio_anterior'] - $inmo['precio']
: 0;
$resto_alquiler = ($inmo['precio_alquiler_anterior'] != 0.00 && $inmo['precio_alquiler'] < $inmo['precio_alquiler_anterior'])
? $inmo['precio_alquiler_anterior'] - $inmo['precio_alquiler']
: 0;
$resto_subhasta = ($inmo['precio_subhasta'] < $inmo['precio_subhasta_anterior'])
? $inmo['precio_subhasta_anterior'] - $inmo['precio_subhasta']
: 0;
/* AQUI CAMBIO */
$resto_temporada = ($inmo['precio_alquiler_temporada'] < $inmo['precio_alquiler_temporada_anterior'])
? $inmo['precio_alquiler_temporada_anterior'] - $inmo['precio_alquiler_temporada']
: 0;
$precio_rebaja = 0;
if($resto_compra)
$precio_rebaja = $resto_compra;
if($resto_alquiler)
$precio_rebaja = $resto_alquiler;
if($resto_subhasta)
$precio_rebaja = $resto_subhasta;
if($resto_temporada)
$precio_rebaja = $resto_temporada;
$inmo['precio_rebaja'] = number_format($precio_rebaja, 0, ',', '.') ;
$inmo['tiempo_publicacion'] = $this->tiempoTranscurrido($inmo['fecha_importacion'], $lang, false);
$urls_pag[$i] = $inmo['url'];
$i++;
$inmo['url_seo'] = $request->getSchemeAndHttpHost().$this->getUrlPropertie($inmo, $lang);
$inmo['title_detail'] = $this->getTitleDetail($inmo, $lang);
$array_json[] = array(
"id" => $inmo['id'],
"title" => $inmo['title_format'],
"lat" => $inmo['glat'],
"lng" => $inmo['glon'],
"address" => $inmo['subtitle'],
"bathrooms" => $inmo['num_banyos'],
"bedrooms" => "3",
"icon" => "/images/map/pin-apartments.png",
"price" => "<span class='item-price'>".$inmo['preu']."€</span><span class='item-sub-price'>".$inmo['eurosuperficie']."€/m<sup>2</sup></span>",
"is_featured" => "",
"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>",
"retinaIcon" => "/images/map/pin-apartments.png",
"thumbnail" => "<img src='".$inmo['img']."' alt='thumb'>",
"type" => ucfirst($inmo['opname']),
"url" => $inmo['url']
);
}
$array_json = json_encode($array_json);
$total_immobles = $immobles['immobles']['rowcount'];
// $_SESSION['total_immobles'] = $total_immobles;
} else
$hay_inmuebles = false;
$clase_mapa = "";//($_SESSION["mapa"] == 1)? "color-yellow" : "";
$clase_mosaic = "";//($_SESSION["mosaic"] == 1) ? "color-yellow" : "";
$clase_llistat = "";//($_SESSION["mapa"] != 1 && $_SESSION["mosaic"] != 1) ? "color-yellow" : "";
$nom_loc = $loc;
$subtipo_vivienda = "";//TO DO (isset($_REQUEST['subtipus']) && $_REQUEST['subtipus'] != "")? $array_frase['txt_de']." ".$_REQUEST['subtipus'] : "";
if ($idcensat < 0)
$locs_provincia = $apiLocationsRepo->get_locations_by_province_list($idprovincia);
if ($idcensat == 0) {
$links_seo = $this->get_links_seo_cercador_avancat($lang,$province,$idlocalitat,$idOperacio,$idSuperTipus,$subtipus,$zona);
$provin_array = $apiProvincesRepo->get_for_gangway($province);
$provin_name = $provin_array['name'];
}
$feat = ""; //TO DO
if($feat != '')
$feat = $texts['con'].' '. $feat;
$title = mb_convert_case($supertipus, MB_CASE_TITLE, "UTF-8")." ".$array_frase['txt_on']." ".mb_convert_case(utf8_encode($loc), MB_CASE_TITLE, "UTF-8").' '.$feat;
$title_count = number_format($total_immobles, 0, ',', '.');
$title_count_text = $texts['anuncios_encontrados']." ".$subtipo_vivienda." ".$array_frase['txt_on']." ".$text_seo_operacio." ".$array_frase['txt_on']." ".ucfirst(utf8_encode($loc)).".";
//$paginacion = RECORDS_x_PAGE;
//if(THEME == 'homemap' || THEME == 'megaimagen' || THEME == 'superprop'){
$paginacion = $_ENV["RECORDS_x_PAGE"];
//}
//TO DO
// if (!$fromMapa && ! isset($_SESSION['immobles_ids']))
$immobles['pagination'] = $this->paginate_api_static($lang, $canonical_url, $pag_list, $total_immobles, $paginacion);
/**
* Tabs tipo acción
*/
$operacions_possibles = $tipusOperacioRepo->get_nom_friendly_text_codi_used($lang);
$url_links = "";
$camp = "friendly_" . $lang;
if ( $supertipus != '' )
$url_links .= "/" . $supertipus;
if ( $province != '' ) // && $pagina != "resultatCercaAgencia"
$url_links .= "/" . $province;
if ( $locality != '' ) // && $pagina != "resultatCercaAgencia"
$url_links .= "/" . $locality;
if ( $zona != '' )
$url_links .= "/" . $cerca_url_zona ;
if (isset($idcensat) && ($idcensat > 0))
$url_links .= "/api/" . $idcensat;
$text_seo = 'text_seo_' . $lang;
$sub_operations = array();
$tabs_operations = array();
foreach ($operacions_possibles as $op) {
if ($op->codi != 5) {
if ($op->codi == $idOperacio) {
$activate = 'active';
$follow = 'follow';
} else {
$activate = '';
$follow = 'nofollow';
}
$sub_operations['active'] = $activate;
$sub_operations['rel'] = $follow;
$sub_operations['href'] = $request->getSchemeAndHttpHost().$this->obtener_url_idioma($lang).'/'.$op->{$camp}.$url_links;
$sub_operations['text'] = ucwords(strtolower($op->$text_seo));
if(defined('OPERACIONES')) {
if (!in_array($op->codi, explode(',', OPERACIONES))) {
$tabs_operations[] = $sub_operations;
}
} else {
$tabs_operations[] = $sub_operations;
}
}
}
/**
* AREA FILTROS
*/
//TO DO
$vars_filtre = array();
// if(!isset($_SESSION['filtres']) || !is_array($_SESSION['filtres'])) $_SESSION['filtres'] = array();
$vars_filtre = $filtres;
if (isset($vars_filtre['dorm'])) $_GET['dorm'] = $vars_filtre['dorm'];
if (isset($vars_filtre['banos'])) $_GET['banos'] = $vars_filtre['banos'];
$arr_subtipus = array();
if ( ! empty($idSubtipus) ) $arr_subtipus = explode('|', $idSubtipus);
$checked = array();
$checked["tipo_casa"] = (is_array($arr_subtipus) && !array_diff(array( 2, 11, 20, 29, 33, 36), $arr_subtipus)) ? 'checked = "checked"' : '';
$checked["tipo_piso"] = (is_array($arr_subtipus) && in_array("1", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["tipo_duplex"] = (is_array($arr_subtipus) && in_array("35", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["tipo_atico"] = (is_array($arr_subtipus) && in_array("19", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_oficina"] = (is_array($arr_subtipus) && in_array("4", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_despacho"] = (is_array($arr_subtipus) && in_array("13", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_oficina_otros"] = (is_array($arr_subtipus) && in_array("22", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_local"] = (is_array($arr_subtipus) && in_array("3", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_tienda"] = (is_array($arr_subtipus) && in_array("12", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_local_otros"] = (is_array($arr_subtipus) && in_array("21", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_garaje"] = (is_array($arr_subtipus) && in_array("8", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_plaza"] = (is_array($arr_subtipus) && in_array("17", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_garaje_otros"] = (is_array($arr_subtipus) && in_array("26", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_edificio_vertical"] = (is_array($arr_subtipus) && in_array("5", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_edificio_horizontal"] = (is_array($arr_subtipus) && in_array("14", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_edificio_otros"] = (is_array($arr_subtipus) && in_array("23", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_terreno_rustico"] = (is_array($arr_subtipus) && in_array("6", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_terreno_urbano"] = (is_array($arr_subtipus) && in_array("15", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_terreno_otros"] = (is_array($arr_subtipus) && in_array("24", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_industrial_nave"] = (is_array($arr_subtipus) && in_array("7", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_industrial_local"] = (is_array($arr_subtipus) && in_array("16", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["subtipo_industrial_otros"] = (is_array($arr_subtipus) && in_array("25", $arr_subtipus))? ' checked = "checked" ' : '';
$checked["ascensor"] = (isset($vars_filtre['ascensor']) && $vars_filtre['ascensor'] == 1)? ' checked = "checked" ' : '';
$checked["terrassa"] = (isset($vars_filtre['terrassa']) && $vars_filtre['terrassa'] == 1)? ' checked = "checked" ' : '';
$checked["piscina"] = (isset($vars_filtre['piscina']) && $vars_filtre['piscina'] == 1)? ' checked = "checked" ' : '';
$checked["parkings"] = (isset($vars_filtre['parkings']) && $vars_filtre['parkings'] == 1)? ' checked = "checked" ' : '';
$checked["traster"] = (isset($vars_filtre['traster']) && $vars_filtre['traster'] == 1)? ' checked = "checked" ' : '';
$checked["calefaccio"] = (isset($vars_filtre['calefaccio']) && $vars_filtre['calefaccio'] == 1)? ' checked = "checked" ' : '';
$checked["aire"] = (isset($vars_filtre['aire']) && $vars_filtre['aire'] == 1)? ' checked = "checked" ' : '';
$checked["balco"] = (isset($vars_filtre['balco']) && $vars_filtre['balco'] == 1)? ' checked = "checked" ' : '';
$checked["seguretat"] = (isset($vars_filtre['seguretat']) && $vars_filtre['seguretat'] == 1)? ' checked = "checked" ' : '';
$checked["24h"] = (isset($filtres['publicacio']) && $filtres['publicacio'] == 2) ? ' checked = "checked"' : '';
$checked["semana"] = (isset($filtres['publicacio']) && $filtres['publicacio'] == 3) ? ' checked = "checked"' : '';
$checked["mes"] = (isset($filtres['publicacio']) && $filtres['publicacio'] == 4) ? ' checked = "checked"' : '';
if($checked["ascensor"] || $checked["terrassa"] || $checked["piscina"] || $checked["parkings"] || $checked["traster"] || $checked["calefaccio"] || $checked["aire"] || $checked["balco"] || $checked["seguretat"]) {
$show_features_1 = 'active';
$show_features_2 = 'style="display:block"';
} else {
$show_features_1 = '';
$show_features_2 = '';
}
$description = $agencyDescriptionsRepo->getDescriptionsByLang($langSelect->getCod());
$filters["e_operacio"] = $operacio;
$filters["e_supertipus"] = $supertipus;
$filters["e_province"] = $province;
$filters["e_locality"] = $locality;
$filters["e_zona"] = $zona;
$filters["e_domain"] = "";
$pagesGroup = array();
foreach($langs as $l){
$filters["e_lang"] = $l->getCod();
$pagesGroup[] = array(
"lang" => $l->getCod(),
"status" => 1,
"visible" => 1,
"slug" => $this->validate_url($filters, '', false, false)
);
}
return $this->render('main/front/search.html.twig', [
"menus" => $menus,
"urlProperties" => $this->langURL($langSelect->getCod(), $this->getCodLang($langSelect->getCod()), $agency->getDefaultListProperties()),
"langs" => $langs,
"lang" => $langSelect,
"agency" => $agency,
"texts" => $texts,
"array_supertipos" => $array_supertipos,
"array_localidades1" => $array_localidades1,
"array_localidades2" => $array_localidades2,
"zona_resultados" => $zona_resultados,
"array_zonas" => $array_zonas,
"array_precios_1" => $array_precios_1,
"array_precios_2" => $array_precios_2,
"idtipus" => $idtipus,
"checked" => $checked,
"show_features_1" => $show_features_1,
"show_features_2" => $show_features_2,
"title" => $title,
"title_count" => $title_count,
"title_count_text" => $title_count_text,
"tabs_operations" => $tabs_operations,
"sortby_list" => $sortby_list,
"sortby" => $sortBy,
"immobles" => $immobles,
"text_seo_operacio" => $text_seo_operacio,
"url_zona" => $url_zona,
"descriptions" => $description,
"filtres" => $filtres,
"pagesGroup" => $pagesGroup,
"idsupertipus" => $idSuperTipus,
"params_url" => array(
"operacio" => $operacio,
"supertipus" => $supertipus,
"province" => $province,
"locality" => $locality,
"zona" => $cerca_url_zona,
"features" => $features,
"subtipus" => $subtipus
)
]);
}
public function contenido_frase($lang)
{
switch($lang){
case "ca": $arrayfrase = array('txt_on' => " a ",
'txt_de' => " de ",
'txt_en' => " en ",
'cod_lang' => "ca_ES",
'breadcrumb_lang' => "");
break;
case "es": $arrayfrase = array('txt_on' => " en ",
'txt_de' => " de ",
'txt_en' => " en ",
'cod_lang' => "es_ES",
'breadcrumb_lang' => "/es");
break;
case "en": $arrayfrase = array('txt_on' => " in ",
'txt_de' => " of ",
'txt_en' => " ",
'cod_lang' => "en_ES",
'breadcrumb_lang' => "/en");
break;
case "ru": $arrayfrase = array('txt_on' => " ",
'txt_de' => " c ",
'txt_en' => " ",
'cod_lang' => "ru_RU",
'breadcrumb_lang' => "/ru");
break;
case "fr": $arrayfrase = array('txt_on' => " ",
'txt_de' => " de ",
'txt_en' => " à ",
'cod_lang' => "fr_FR",
'breadcrumb_lang' => "/fr");
break;
case "de": $arrayfrase = array('txt_on' => " ",
'txt_de' => " ",
'txt_en' => " ",
'cod_lang' => "de_DE",
'breadcrumb_lang' => "/de");
break;
case "ch": $arrayfrase = array('txt_on' => " ",
'txt_de' => " ",
'txt_en' => " ",
'cod_lang' => "zh_CN",
'breadcrumb_lang' => "/ch");
break;
case "ar": $arrayfrase = array('txt_on' => " ",
'txt_de' => " ",
'txt_en' => " ",
'cod_lang' => "ar_SA",
'breadcrumb_lang' => "/ar");
break;
default: $arrayfrase = array('txt_on' => " a ",
'txt_de' => " de ",
'txt_en' => " en ",
'cod_lang' => "ca_ES",
'breadcrumb_lang' => "");
}
return $arrayfrase;
}
public function obtener_url_idioma($idioma)
{
$url_idioma = "";
if ($idioma == "es") {
$url_idioma = "/es";
}
if ($idioma == "ca") {
$url_idioma = "/ca";
}
if ($idioma == "en") {
$url_idioma = "/en";
}
if ($idioma == "ru") {
$url_idioma = "/ru";
}
if ($idioma == "de") {
$url_idioma = "/de";
}
if ($idioma == "ch") {
$url_idioma = "/ch";
}
if ($idioma == "ar") {
$url_idioma = "/ar";
}
if ($idioma == "fr") {
$url_idioma = "/fr";
}
return $url_idioma;
}
public function makeUrl($options, $vars, $get_params = false, $exclude_features = false, $cerca_url_zona = "", $pagina = "")
{
$canonical_url = "";
if (isset($options['operacio']) && $options['operacio'] > 0)
$canonical_url .= $options['nom_operacio'] . "/";
if (isset($options["tipus"]))
$canonical_url .= $options['nom_supertipus'] . "/";
$canonical_url .= strtolower($options['nom_provincia']) . "/";
if (isset($options["localitat"]) && $options['idlocalitat'] > 0)
$canonical_url .= $options['nom_localitat'] . "/";
if ((isset($cerca_url_zona) && ($cerca_url_zona != '')) && $pagina != 'resultatCerca' && $pagina != 'features' && $pagina != 'sortby')
$canonical_url .= $cerca_url_zona . "/";
if ($get_params) {
$canonical_url .= "?";
$aToExclude = array(
'pagina',
'operacio',
'tipus',
'provincia',
'localitat',
'zona',
'p'
);
foreach ($vars as $k => $v) {
if (!in_array($k, $aToExclude)) {
if ($exclude_features == false || $k != 'features')
$canonical_url .= "&" . $k . "=" . $v;
}
}
}
return $canonical_url;
}
public function obtener_directorio_fotos($idInmueble)
{
$_add_on_directory = round($idInmueble/20000);
return $_add_on_directory;
}
public function get_property_title($prop_array, $idOperacio, $lang)
{
$codeLang = $this->getCodLang($lang);
if(! isset($idOperacio) || empty($idOperacio)){
$idOperacio = (isset($prop_array['precio_alquiler']) && !empty($prop_array['precio_alquiler'])) ? 2 : 1;
}
$en_array = array( "ca" => "a", "es" => "en", "en" => "in", "ru" => "in", "fr" => "à", "ch" => "在", "ar" => "في", "de" => "in");
$do_array = array( "ca" => "dorm", "es" => "dorm", "en" => "bedrooms", "ru" => "bedrooms", "fr" => "chambres", "ch" => "房間", "ar" => "الغرف", "de" => "räume");
$em = $this->getDoctrine()->getManager();
$apiPropertiesSubtypesRepo = $em->getRepository(ApiPropertiesSubtypes::class);
$tipusOperacioRepo = $em->getRepository(TipusOperacio::class);
$apiPropertiesTypes = $em->getRepository(ApiPropertiesTypes::class);
$apiPropertiesFeatures = $em->getRepository(ApiPropertiesFeatures::class);
$textsRepo = $em->getRepository(Textos::class);
$subtype = $apiPropertiesSubtypesRepo->get_subtipus_name($prop_array['id_properties_subtype'], $codeLang);
$operation = $tipusOperacioRepo->get_text_seo_by_codi($lang,$idOperacio);
$piso = $apiPropertiesSubtypesRepo->get_subtipus_name(1, $codeLang);
$casa = $apiPropertiesTypes->get_text_type($prop_array['id'], $codeLang);
$title = '';
if ( $idOperacio == 2) {
if ( $prop_array['id_properties_type'] == 2) {
if($lang == "ru")
{
$sub = $subtype;
}else{
$sub = mb_strtolower($subtype, 'UTF-8');
}
$title .= $casa . " (".$sub.")";
} else {
$title .= $subtype;
}
} else {
if ( $idOperacio == 1) {
if ( $prop_array['id_properties_type'] == 2) {
if($lang == "ru")
{
$sub = $subtype;
}else{
$sub = mb_strtolower($subtype, 'UTF-8');
}
$title .= ucfirst ($operation) . " " . $casa . " (". $sub.")";
} else {
if($lang == "ru")
{
$sub = $subtype;
}else{
$sub = mb_strtolower($subtype, 'UTF-8');
}
$title .= ucfirst ($operation) . " " . $sub;
}
} else {
if ($idOperacio == 3) {
if ( $prop_array['id_properties_type'] == 2) {
$title .= ucfirst ($operation) . " - " . $casa . " " . $en_array[$lang];
} else {
$title .= ucfirst ($operation) . " - " . $piso . " " . $en_array[$lang];
}
} else {
if ( $prop_array['id_properties_type'] == 2) {
if($lang == "ru")
{
$sub = $subtype;
}else{
$sub = mb_strtolower($subtype, 'UTF-8');
}
$title .= $casa . " " . $en_array[$lang] . " " . $sub;
} else {
$title .= $piso . " " . $en_array[$lang] . " " . mb_strtolower($operation, 'UTF-8');
}
}
}
}
/* Miramos si esta bien comunicado y any de construccion*/
$bien_comunicado = $apiPropertiesFeatures->estaBienComunicado($prop_array['id']);
$any_construcc = $apiPropertiesFeatures->get_by_id($prop_array['id'], 1);
$sumaKW = 0;
if ( $prop_array['superficie'] ) { $title .= ", " . $prop_array['superficie'] . " m²"; $sumaKW++; }
if ( (intval($prop_array['num_dorm'], 10) > 1) ) {
$title .= ", " . $prop_array['num_dorm'] . " " . $do_array[$lang];
$sumaKW++;
}
if (($any_construcc > 2000) && ($prop_array['obra_nueva'] == 0)) {
$semi_nuevo_text = $textsRepo->get_text($lang,"semi_nuevo");
$title .= ", " . $semi_nuevo_text; $sumaKW++;
}
if (($any_construcc > 2000) && ($prop_array['obra_nueva'] == 1)) {
$nuevo_text = $textsRepo->get_text($lang,"nuevo");
$title .= ", " . $nuevo_text; $sumaKW++;
}
if ( $sumaKW < 4 && $prop_array['situacion_concreta'] != '' ) {
$title .= ", " . $prop_array['situacion_concreta'];
$sumaKW++;
}
return $title;
}
function tiempoTranscurrido($datetime, $lang, $full = false)
{
$em = $this->getDoctrine()->getManager();
$textsRepo = $em->getRepository(Textos::class);
$text = $textsRepo->getTextosByLang($lang);
$now = new \DateTime();
$ago = new \DateTime($datetime);
$now->setTimezone(new \DateTimeZone('Europe/Madrid'));
$diff = $now->diff($ago);
$diff->w = floor($diff->d / 7);
$diff->d -= $diff->w * 7;
$string = array(
'y' => $text['date_year'],
'm' => $text['date_month'],
'w' => $text['date_week'],
'd' => $text['date_day'],
'h' => $text['date_hour'],
'i' => $text['date_minut'],
's' => $text['date_second'],
);
$stringPlural = array(
'y' => $text['date_years'],
'm' => $text['date_months'],
'w' => $text['date_weeks'],
'd' => $text['date_days'],
'h' => $text['date_hours'],
'i' => $text['date_minuts'],
's' => $text['date_seconds'],
);
foreach ($string as $k => &$v) {
if ($diff->$k) {
$texto = ($diff->$k == 1) ? $v : $stringPlural[$k];
$v = $diff->$k . ' ' . $texto;
} else {
unset($string[$k]);
}
}
if (!$full) $string = array_slice($string, 0, 1);
return $string ? $text['date_since'] . ' ' . implode(', ', $string) : $text['date_now'];
}
public function get_links_seo_cercador_avancat($lang, $provincia = "", $id_localidad = "", $operacion = 0, $supertipus = "", $subtipo = "", $zona = "", $idSubtipus = "")
{
$em = $this->getDoctrine()->getManager();
$textsRepo = $em->getRepository(Textos::class);
$apiPropertiesSupertypeI18nRepo = $em->getRepository(ApiPropertiesSupertypeI18n::class);
$apiPropertySuperTypeRepo = $em->getRepository(ApiPropertiesSupertype::class);
$apiLocationsRepo = $em->getRepository(ApiLocations::class);
$apiZonesRepo = $em->getRepository(ApiZones::class);
$tipusOperacioRepo = $em->getRepository(TipusOperacio::class);
$codeLang = $this->getCodLang($lang);
//Diccionario.
$alquiler_text = $textsRepo->get_text($lang,"cercador_lloguer");
$alquilar_text = $textsRepo->get_text($lang,"alquilar");
$venta_text = $textsRepo->get_text($lang,"tabs_venda");
$comprar_text = $textsRepo->get_text($lang,"comprar_text");
$duplex_text = $textsRepo->get_text($lang,"cercador_duplex");
$atics_text = $textsRepo->get_text($lang,"cercador_atic");
$inmuebles_text = $textsRepo->get_text($lang,"signia_trobats");
$this->array_links = array();
$pisos_text = $apiPropertiesSupertypeI18nRepo->get_friendly_name($codeLang,1);
$casas_text = $apiPropertiesSupertypeI18nRepo->get_friendly_name($codeLang,2);
$atics_url = $apiPropertiesSupertypeI18nRepo->get_friendly_name($codeLang,19);
$duplex_url = $apiPropertiesSupertypeI18nRepo->get_friendly_name($codeLang,35);
$arr_supertipus = $apiPropertySuperTypeRepo->get_all_supertipus($codeLang);
$localidad_array = $apiLocationsRepo->get_friendly_and_name($id_localidad);
$localidad_friendly = $localidad_array['friendly'];
$localidad_name = $localidad_array['name'];
$zona_id = null;
$query_zona = null;
if ($zona != "") {
$array_zona = $apiZonesRepo->get_for_gangway($zona, $id_localidad);
if($array_zona){
$cerca_query_zona = "";
$result_zona = $apiZonesRepo->get_all_by_name($zona);
if (is_array($result_zona)){
$query_zona = implode(",", $result_zona);
$cerca_query_zona = $query_zona;
}
$zona_friendly = "/zona-".$array_zona['friendly'];
$zona_name = $array_zona['name'];
$zona_id = $array_zona['id'];
$query_zona = $cerca_query_zona;
$localidad_name = $zona_name;
}
}else{
$zona_friendly = "";
$zona_name = "";
$zona_id = "";
$query_zona = "";
}
$habitatges = 0;
$oficinas = 0;
$locales = 0;
$garages = 0;
$edificios = 0;
$terrenos = 0;
$industrial = 0;
$hotel = 0;
$otros = 0;
$idOperacio = $tipusOperacioRepo->get_by_name($lang, $operacion);
$idSuperTipus = $apiPropertySuperTypeRepo->get_by_name($operacion, $lang);
switch ($operacion) {
//Alquiler
case 1:
$array_subtipo = explode("|", $subtipo);
$friendly_operacion = $tipusOperacioRepo->get_friendly($lang,2);
//Calcula el link contrario a la operación según el supertipo.
switch ($supertipus)
{
case '1':
//Viviendas venta.
if ($idSuperTipus != 1 || ($idSuperTipus == 1 && $idOperacio == 1)) {
$total_immobles_viviendas_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"",$zona_id,$query_zona);
if($total_immobles_viviendas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$habitatges = 1;
}
break;
case '2':
//Oficinas venta.
if ($idSuperTipus != 2 || ($idSuperTipus == 2 && $idOperacio == 1))
{
$total_immobles_oficinas_venta = $this->get_num_by_type_immoble($id_localidad,2,2,"",$zona_id,$query_zona);
if($total_immobles_oficinas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$oficinas = 1;
}
break;
case '3':
//Locales venta.
if ($idSuperTipus != 3 || ($idSuperTipus == 3 && $idOperacio == 1))
{
$total_immobles_locales_venta = $this->get_num_by_type_immoble($id_localidad,2,3,"",$zona_id,$query_zona);
if($total_immobles_locales_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$locales = 1;
}
break;
case '4':
//Garages venta.
if ($idSuperTipus != 4 || ($idSuperTipus == 4 && $idOperacio == 1))
{
$total_immobles_garages_venta = $this->get_num_by_type_immoble($id_localidad,2,4,"",$zona_id,$query_zona);
if($total_immobles_garages_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$garages = 1;
}
break;
case '5':
//Edificios venta.
if ($idSuperTipus != 5 || ($idSuperTipus == 5 && $idOperacio == 1))
{
$total_immobles_edificios_venta = $this->get_num_by_type_immoble($id_localidad,2,5,"",$zona_id,$query_zona);
if($total_immobles_edificios_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$edificios = 1;
}
break;
case '6':
//Terrenos venta.
if ($idSuperTipus != 6 || ($idSuperTipus == 6 && $idOperacio == 1))
{
$total_immobles_terrenos_venta = $this->get_num_by_type_immoble($id_localidad,2,6,"",$zona_id,$query_zona);
if($total_immobles_terrenos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$terrenos = 1;
}
break;
case '7':
//Industrial venta.
if ($idSuperTipus != 7 || ($idSuperTipus == 7 && $idOperacio == 1))
{
$total_immobles_industrial_venta = $this->get_num_by_type_immoble($id_localidad,2,7,"",$zona_id,$query_zona);
if($total_immobles_industrial_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$industrial = 1;
}
break;
case '8':
//Hotel venta.
if ($idSuperTipus != 8 || ($idSuperTipus == 8 && $idOperacio == 1))
{
$total_immobles_hotel_venta = $this->get_num_by_type_immoble($id_localidad,2,8,"",$zona_id,$query_zona);
if($total_immobles_hotel_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$hotel = 1;
}
break;
case '9':
//Otros Inmuebles venta.
if ($idSuperTipus != 9 || ($idSuperTipus == 9 && $idOperacio == 1))
{
$total_immobles_otros_venta = $this->get_num_by_type_immoble($id_localidad,2,9,"",$zona_id,$query_zona);
if($total_immobles_otros_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$otros = 1;
}
break;
}
$friendly_operacion = $tipusOperacioRepo->get_friendly($lang,$operacion);
$friendly_supertipus = $apiPropertySuperTypeRepo->get_friendly(1,$codeLang);
//Pisos alquiler.
if ($idSubtipus == "" || (in_array("1", $array_subtipo) && $idOperacio == 2) || !in_array("1", $array_subtipo)) {
$total_immobles_pisos_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"1|28|32|10",$zona_id,$query_zona);
if($total_immobles_pisos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
//Casas alquiler.
if ($idSubtipus == "" || (in_array("2", $array_subtipo) && $idOperacio == 2) || !in_array("2", $array_subtipo)) {
$total_immobles_casas_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"2|11|20|29|33|36",$zona_id,$query_zona);
if($total_immobles_casas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
//Áticos alquiler.
if ($idSubtipus == "" || (in_array("19", $array_subtipo) && $idOperacio == 2) || !in_array("19", $array_subtipo)) {
$total_immobles_atics_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"19",$zona_id,$query_zona);
if($total_immobles_atics_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
//Duplex alquiler.
if ($idSubtipus == "" || (in_array("35", $array_subtipo) && $idOperacio == 2) || !in_array("35", $array_subtipo)) {
$total_immobles_duplex_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"35",$zona_id,$query_zona);
if($total_immobles_duplex_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Viviendas alquiler.
if ($idSuperTipus != 1 ||
(in_array("1", $array_subtipo) && $idOperacio == 1) ||
(in_array("2", $array_subtipo) && $idOperacio == 1) ||
(in_array("19", $array_subtipo) && $idOperacio == 1) ||
(in_array("35", $array_subtipo) && $idOperacio == 1)) {
$total_immobles_viviendas_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"",$zona_id,$query_zona);
if($total_immobles_viviendas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Oficinas alquiler.
if ($idSuperTipus != 2) {
$total_immobles_oficinas_alquiler = $this->get_num_by_type_immoble($id_localidad,1,2,"",$zona_id,$query_zona);
if($total_immobles_oficinas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Locales alquiler.
if ($idSuperTipus != 3)
{
$total_immobles_locales_alquiler = $this->get_num_by_type_immoble($id_localidad,1,3,"",$zona_id,$query_zona);
if($total_immobles_locales_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Garages alquiler.
if ($idSuperTipus != 4)
{
$total_immobles_garages_alquiler = $this->get_num_by_type_immoble($id_localidad,1,4,"",$zona_id,$query_zona);
if($total_immobles_garages_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Edificios alquiler.
if ($idSuperTipus != 5)
{
$total_immobles_edificios_alquiler = $this->get_num_by_type_immoble($id_localidad,1,5,"",$zona_id,$query_zona);
if($total_immobles_edificios_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Terrenos alquiler.
if ($idSuperTipus != 6)
{
$total_immobles_terrenos_alquiler = $this->get_num_by_type_immoble($id_localidad,1,6,"",$zona_id,$query_zona);
if($total_immobles_terrenos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Industrial alquiler.
if ($idSuperTipus != 7)
{
$total_immobles_industrial_alquiler = $this->get_num_by_type_immoble($id_localidad,1,7,"",$zona_id,$query_zona);
if($total_immobles_industrial_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Hotel alquiler.
if ($idSuperTipus != 8)
{
$total_immobles_hotel_alquiler = $this->get_num_by_type_immoble($id_localidad,1,8,"",$zona_id,$query_zona);
if($total_immobles_hotel_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Otros Inmuebles alquiler.
if ($idSuperTipus != 9)
{
$total_immobles_otros_alquiler = $this->get_num_by_type_immoble($id_localidad,1,9,"",$zona_id,$query_zona);
if($total_immobles_otros_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
$friendly_operacion = $tipusOperacioRepo->get_friendly($lang,2);
//Viviendas venta.
if ($idSuperTipus != 1 ||
($idSuperTipus == 1 && $idOperacio == 1) &&
$habitatges == 0) {
$total_immobles_viviendas_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"",$zona_id,$query_zona);
if($total_immobles_viviendas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
$friendly_supertipus = $apiPropertySuperTypeRepo->get_friendly(1,$codeLang);
//Pisos venta.
if ($idSubtipus == "" || (in_array("1", $array_subtipo) && $idOperacio == 1) || !in_array("1", $array_subtipo))
{
$total_immobles_pisos_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"1|28|32|10",$zona_id,$query_zona);
if($total_immobles_pisos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Casas venta.
if ($idSubtipus == "" || (in_array("2", $array_subtipo) && $idOperacio == 1) || !in_array("2", $array_subtipo))
{
$total_immobles_casas_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"2|11|20|29|33|36",$zona_id,$query_zona);
if($total_immobles_casas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Áticos venta.
if ($idSubtipus == "" || (in_array("19", $array_subtipo) && $idOperacio == 1) || !in_array("19", $array_subtipo))
{
$total_immobles_atics_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"19",$zona_id,$query_zona);
if($total_immobles_atics_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Duplex venta.
if ($idSubtipus == "" || (in_array("35", $array_subtipo) && $idOperacio == 1) || !in_array("35", $array_subtipo))
{
$total_immobles_duplex_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"35",$zona_id,$query_zona);
if($total_immobles_duplex_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Oficinas venta.
if ($idSuperTipus != 2 ||
($idSuperTipus == 2 && $idOperacio == 1) &&
$oficinas == 0)
{
$total_immobles_oficinas_venta = $this->get_num_by_type_immoble($id_localidad,2,2,"",$zona_id,$query_zona);
if($total_immobles_oficinas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Locales venta.
if ($idSuperTipus != 3 ||
($idSuperTipus == 3 && $idOperacio == 1) &&
$locales == 0)
{
$total_immobles_locales_venta = $this->get_num_by_type_immoble($id_localidad,2,3,"",$zona_id,$query_zona);
if($total_immobles_locales_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Garages venta.
if ($idSuperTipus != 4 ||
($idSuperTipus == 4 && $idOperacio == 1) &&
$garages == 0)
{
$total_immobles_garages_venta = $this->get_num_by_type_immoble($id_localidad,2,4,"",$zona_id,$query_zona);
if($total_immobles_garages_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Edificios venta.
if ($idSuperTipus != 5 ||
($idSuperTipus == 5 && $idOperacio == 1) &&
$edificios == 0)
{
$total_immobles_edificios_venta = $this->get_num_by_type_immoble($id_localidad,2,5,"",$zona_id,$query_zona);
if($total_immobles_edificios_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Terrenos venta.
if ($idSuperTipus != 6 ||
($idSuperTipus == 6 && $idOperacio == 1) &&
$terrenos == 0)
{
$total_immobles_terrenos_venta = $this->get_num_by_type_immoble($id_localidad,2,6,"",$zona_id,$query_zona);
if($total_immobles_terrenos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Industrial venta.
if ($idSuperTipus != 7 ||
($idSuperTipus == 7 && $idOperacio == 1) &&
$industrial == 0)
{
$total_immobles_industrial_venta = $this->get_num_by_type_immoble($id_localidad,2,7,"",$zona_id,$query_zona);
if($total_immobles_industrial_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Hotel venta.
if ($idSuperTipus != 8 ||
($idSuperTipus == 8 && $idOperacio == 1) &&
$hotel == 0)
{
$total_immobles_hotel_venta = $this->get_num_by_type_immoble($id_localidad,2,8,"",$zona_id,$query_zona);
if($total_immobles_hotel_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Otros Inmuebles venta.
if ($idSuperTipus != 9 ||
($idSuperTipus == 9 && $idOperacio == 1) &&
$otros == 0)
{
$total_immobles_otros_venta = $this->get_num_by_type_immoble($id_localidad,2,9,"",$zona_id,$query_zona);
if($total_immobles_otros_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if (count($this->array_links) > 0) {
foreach ($this->array_links as $key => $row) {
$aux[$key] = $row['num_inmuebles'];
}
array_multisort($aux, SORT_DESC, $this->array_links);
return $this->array_links;
}
break;
//Compra
case 2:
$array_subtipo = explode("|", $subtipo);
$friendly_operacion = $tipusOperacioRepo->get_friendly($lang,1);
//Calcula el link contrario a la operación según el supertipo.
switch ($supertipus)
{
case '1':
//Viviendas alquiler.
if ($idSuperTipus != 1 || ($idSuperTipus == 1 && $idOperacio == 2)) {
$total_immobles_viviendas_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"",$zona_id,$query_zona);
if($total_immobles_viviendas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$habitatges = 1;
}
break;
case '2':
//Oficinas alquiler.
if ($idSuperTipus != 2 || ($idSuperTipus == 2 && $idOperacio == 2))
{
$total_immobles_oficinas_alquiler = $this->get_num_by_type_immoble($id_localidad,1,2,"",$zona_id,$query_zona);
if($total_immobles_oficinas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$oficinas = 1;
}
break;
case '3':
//Locales alquiler.
if ($idSuperTipus != 3 || ($idSuperTipus == 3 && $idOperacio == 2))
{
$total_immobles_locales_alquiler = $this->get_num_by_type_immoble($id_localidad,1,3,"",$zona_id,$query_zona);
if($total_immobles_locales_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$locales = 1;
}
break;
case '4':
//Garages alquiler.
if ($idSuperTipus != 4 || ($idSuperTipus == 4 && $idOperacio == 2))
{
$total_immobles_garages_alquiler = $this->get_num_by_type_immoble($id_localidad,1,4,"",$zona_id,$query_zona);
if($total_immobles_garages_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$garages = 1;
}
break;
case '5':
//Edificios alquiler.
if ($idSuperTipus != 5 || ($idSuperTipus == 5 && $idOperacio == 2))
{
$total_immobles_edificios_alquiler = $this->get_num_by_type_immoble($id_localidad,1,5,"",$zona_id,$query_zona);
if($total_immobles_edificios_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$edificios = 1;
}
break;
case '6':
//Terrenos alquiler.
if ($idSuperTipus != 6 || ($idSuperTipus == 6 && $idOperacio == 2))
{
$total_immobles_terrenos_alquiler = $this->get_num_by_type_immoble($id_localidad,1,6,"",$zona_id,$query_zona);
if($total_immobles_terrenos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$terrenos = 1;
}
break;
case '7':
//Industrial alquiler.
if ($idSuperTipus != 7 || ($idSuperTipus == 7 && $idOperacio == 2))
{
$total_immobles_industrial_alquiler = $this->get_num_by_type_immoble($id_localidad,1,7,"",$zona_id,$query_zona);
if($total_immobles_industrial_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$industrial = 1;
}
break;
case '8':
//Hotel alquiler.
if ($idSuperTipus != 8 || ($idSuperTipus == 8 && $idOperacio == 2))
{
$total_immobles_hotel_alquiler = $this->get_num_by_type_immoble($id_localidad,1,8,"",$zona_id,$query_zona);
if($total_immobles_hotel_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$hotel = 1;
}
break;
case '9':
//Otros Inmuebles alquiler.
if ($idSuperTipus != 9 || ($idSuperTipus == 9 && $idOperacio == 2))
{
$total_immobles_otros_alquiler = $this->get_num_by_type_immoble($id_localidad,1,9,"",$zona_id,$query_zona);
if($total_immobles_otros_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
$otros = 1;
}
break;
}
$friendly_operacion = $tipusOperacioRepo->get_friendly($lang,$operacion);
$friendly_supertipus = $apiPropertySuperTypeRepo->get_friendly(1,$codeLang);
if ($idSubtipus == "" || (in_array("1", $array_subtipo) && $idOperacio == 1) || !in_array("1", $array_subtipo)) {
$total_immobles_pisos_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"1|28|32|10",$zona_id,$query_zona);
if($total_immobles_pisos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
//Casas venta.
if ($idSubtipus == "" || (in_array("2", $array_subtipo) && $idOperacio == 1) || !in_array("2", $array_subtipo)) {
$total_immobles_casas_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"2|11|20|29|33|36",$zona_id,$query_zona);
if($total_immobles_casas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
//Áticos venta.
if ($idSubtipus == "" || (in_array("19", $array_subtipo) && $idOperacio == 1) || !in_array("19", $array_subtipo)) {
$total_immobles_atics_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"19",$zona_id,$query_zona);
if($total_immobles_atics_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
//Duplex venta.
if ($idSubtipus == "" || (in_array("35", $array_subtipo) && $idOperacio == 1) || !in_array("35", $array_subtipo)) {
$total_immobles_duplex_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"35",$zona_id,$query_zona);
if($total_immobles_duplex_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Viviendas venta.
if ($idSuperTipus != 1 ||
(in_array("1", $array_subtipo) && $idOperacio == 2) ||
(in_array("2", $array_subtipo) && $idOperacio == 2) ||
(in_array("19", $array_subtipo) && $idOperacio == 2) ||
(in_array("35", $array_subtipo) && $idOperacio == 2)) {
$total_immobles_viviendas_venta = $this->get_num_by_type_immoble($id_localidad,2,1,"",$zona_id,$query_zona);
if($total_immobles_viviendas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Oficinas venta.
if ($idSuperTipus != 2) {
$total_immobles_oficinas_venta = $this->get_num_by_type_immoble($id_localidad,2,2,"",$zona_id,$query_zona);
if($total_immobles_oficinas_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Locales venta.
if ($idSuperTipus != 3)
{
$total_immobles_locales_venta = $this->get_num_by_type_immoble($id_localidad,2,3,"",$zona_id,$query_zona);
if($total_immobles_locales_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Garages venta.
if ($idSuperTipus != 4)
{
$total_immobles_garages_venta = $this->get_num_by_type_immoble($id_localidad,2,4,"",$zona_id,$query_zona);
if($total_immobles_garages_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Edificios venta.
if ($idSuperTipus != 5)
{
$total_immobles_edificios_venta = $this->get_num_by_type_immoble($id_localidad,2,5,"",$zona_id,$query_zona);
if($total_immobles_edificios_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Terrenos venta.
if ($idSuperTipus != 6)
{
$total_immobles_terrenos_venta = $this->get_num_by_type_immoble($id_localidad,2,6,"",$zona_id,$query_zona);
if($total_immobles_terrenos_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Industrial venta.
if ($idSuperTipus != 7)
{
$total_immobles_industrial_venta = $this->get_num_by_type_immoble($id_localidad,2,7,"",$zona_id,$query_zona);
if($total_immobles_industrial_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Hotel venta.
if ($idSuperTipus != 8)
{
$total_immobles_hotel_venta = $this->get_num_by_type_immoble($id_localidad,2,8,"",$zona_id,$query_zona);
if($total_immobles_hotel_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Otros Inmuebles venta.
if ($idSuperTipus != 9)
{
$total_immobles_otros_venta = $this->get_num_by_type_immoble($id_localidad,2,9,"",$zona_id,$query_zona);
if($total_immobles_otros_venta >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
$friendly_operacion = $tipusOperacioRepo->get_friendly($lang,1);
//Viviendas alquiler.
if ($idSuperTipus != 1 ||
($idSuperTipus == 1 && $idOperacio == 2) &&
$habitatges == 0) {
$total_immobles_viviendas_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"",$zona_id,$query_zona);
if($total_immobles_viviendas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
$friendly_supertipus = $apiPropertySuperTypeRepo->get_friendly(1,$codeLang);
//Pisos alquiler.
if ($idSubtipus == "" || (in_array("1", $array_subtipo) && $idOperacio == 2) || !in_array("1", $array_subtipo))
{
$total_immobles_pisos_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"1|28|32|10",$zona_id,$query_zona);
if($total_immobles_pisos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Casas alquiler.
if ($idSubtipus == "" || (in_array("2", $array_subtipo) && $idOperacio == 2) || !in_array("2", $array_subtipo))
{
$total_immobles_casas_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"2|11|20|29|33|36",$zona_id,$query_zona);
if($total_immobles_casas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Áticos alquiler.
if ($idSubtipus == "" || (in_array("19", $array_subtipo) && $idOperacio == 2) || !in_array("19", $array_subtipo))
{
$total_immobles_atics_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"19",$zona_id,$query_zona);
if($total_immobles_atics_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Duplex alquiler.
if ($idSubtipus == "" || (in_array("35", $array_subtipo) && $idOperacio == 2) || !in_array("35", $array_subtipo))
{
$total_immobles_duplex_alquiler = $this->get_num_by_type_immoble($id_localidad,1,1,"35",$zona_id,$query_zona);
if($total_immobles_duplex_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Oficinas alquiler.
if ($idSuperTipus != 2 ||
($idSuperTipus == 2 && $idOperacio == 2) &&
$oficinas == 0)
{
$total_immobles_oficinas_alquiler = $this->get_num_by_type_immoble($id_localidad,1,2,"",$zona_id,$query_zona);
if($total_immobles_oficinas_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Locales alquiler.
if ($idSuperTipus != 3 ||
($idSuperTipus == 3 && $idOperacio == 2) &&
$locales == 0)
{
$total_immobles_locales_alquiler = $this->get_num_by_type_immoble($id_localidad,1,3,"",$zona_id,$query_zona);
if($total_immobles_locales_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Garages alquiler.
if ($idSuperTipus != 4 ||
($idSuperTipus == 4 && $idOperacio == 2) &&
$garages == 0)
{
$total_immobles_garages_alquiler = $this->get_num_by_type_immoble($id_localidad,1,4,"",$zona_id,$query_zona);
if($total_immobles_garages_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Edificios alquiler.
if ($idSuperTipus != 5 ||
($idSuperTipus == 5 && $idOperacio == 2) &&
$edificios == 0)
{
$total_immobles_edificios_alquiler = $this->get_num_by_type_immoble($id_localidad,1,5,"",$zona_id,$query_zona);
if($total_immobles_edificios_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Terrenos alquiler.
if ($idSuperTipus != 6 ||
($idSuperTipus == 6 && $idOperacio == 2) &&
$terrenos == 0)
{
$total_immobles_terrenos_alquiler = $this->get_num_by_type_immoble($id_localidad,1,6,"",$zona_id,$query_zona);
if($total_immobles_terrenos_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Industrial alquiler.
if ($idSuperTipus != 7 ||
($idSuperTipus == 7 && $idOperacio == 2) &&
$industrial == 0)
{
$total_immobles_industrial_alquiler = $this->get_num_by_type_immoble($id_localidad,1,7,"",$zona_id,$query_zona);
if($total_immobles_industrial_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Hotel alquiler.
if ($idSuperTipus != 8 ||
($idSuperTipus == 8 && $idOperacio == 2) &&
$hotel == 0)
{
$total_immobles_hotel_alquiler = $this->get_num_by_type_immoble($id_localidad,1,8,"",$zona_id,$query_zona);
if($total_immobles_hotel_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if ($this->test_array_links($this->array_links)) { return $this->array_links; }
//Otros Inmuebles alquiler.
if ($idSuperTipus != 9 ||
($idSuperTipus == 9 && $idOperacio == 2) &&
$otros == 0)
{
$total_immobles_otros_alquiler = $this->get_num_by_type_immoble($id_localidad,1,9,"",$zona_id,$query_zona);
if($total_immobles_otros_alquiler >= $_ENV["NUM_MIN_PROPERTIES_SEO"])
{
$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);
array_push($this->array_links, $array_url);
}
}
if (count($this->array_links) > 0) {
foreach ($this->array_links as $key => $row) {
$aux[$key] = $row['num_inmuebles'];
}
array_multisort($aux, SORT_DESC, $this->array_links);
return $this->array_links;
}
break;
}
}
public function get_num_by_type_immoble($lang, $id_localidad = 0, $operacion = 0, $supertipus = 0, $subtipo = "", $id_zona = 0, $query_zona = "")
{
$em = $this->getDoctrine()->getManager();
$apiPropertiesRepo = $em->getRepository(ApiProperties::class);
$apiPropertiesRepo->operacio = $operacion;
$apiPropertiesRepo->addCensados = true;
$apiPropertiesRepo->localitat = $id_localidad;
$apiPropertiesRepo->supertipus = $supertipus;
$apiPropertiesRepo->subtipus = $subtipo;
$apiPropertiesRepo->zona = $id_zona;
$apiPropertiesRepo->query_zona = $query_zona;
$total_immobles = $apiPropertiesRepo->get_all_count();
return $total_immobles;
}
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){
$array_url['text'] = $operacion_text." ".$tipo_text." ".$localidad_name;
if($modo_text == 1)
{
$array_url['text'] = $tipo_text." ".$operacion_text." ".$localidad_name;
}
$array_url['url'] = $_ENV["WEBSITE_URL"]."/".$lang."/".$friendly_operacion."/".$friendly_supertipus."/".$provincia."/". $localidad_friendly.$zona_friendly."/".$tipo_url;
$array_url['num_inmuebles'] = $num_inmuebles;
return $array_url;
}
public function test_array_links($array_links = "")
{
if (count($this->array_links) == 5) {
foreach ($this->array_links as $key => $row) {
$aux[$key] = $row['num_inmuebles'];
}
array_multisort($aux, SORT_DESC, $this->array_links);
return true;
}else{
return false;
}
}
function paginate_api_static($lang, $canonical_url, $num_pag, $total_immobles, $immobles_pagina = 2) {
$pagination = "";
if ($total_immobles > 0 && $total_immobles > $immobles_pagina) {
$index_limit = 10;
$current = $num_pag;
$total_pages = ceil($total_immobles / $immobles_pagina);
$start = max($current - intval($index_limit / 2), 1);
$end = $start + $index_limit - 1;
if( substr($_SERVER['REQUEST_URI'], 0, 4) == '/'.$lang.'/' )
$url_actual = $_ENV["WEBSITE_URL"]. $_SERVER['REQUEST_URI'];
else
$url_actual = $_ENV["WEBSITE_URL"].'/' .$lang. $_SERVER['REQUEST_URI'];
if (strrpos($url_actual, '?') > -1)
$url_actual = substr($url_actual, 0, strrpos($url_actual, '?'));
if (strripos($url_actual , '/page-'))
$url_actual = substr($url_actual , 0, strripos ($url_actual , '/page-'));
$url_actual = str_replace('/ca/', '/', $url_actual);
$pagination.= '<ul class="pagination">';
if ($current == 1)
$pagination.= '<li class="disabled"><a aria-label="Previous"><span aria-hidden="true"><i class="fa fa-angle-left"></i></span></a></li>';
else {
$i = $current - 1;
$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>';
}
if ($total_pages > 0) {
if ($start > 1) {
$i = 1;
$pagination.= '<li><a href="' . $url_actual . '/page-'. $i . '" >' . $i . '</a></li>';
$pagination.= '<li><a>...</a></li>';
}
for ($i = $start; $i <= $end && $i <= $total_pages; $i++) {
if ($i == $current) $pagination.= '<li class="active"><a>' . $i . '</a></li>';
else $pagination.= '<li><a href="' . $url_actual . '/page-'. $i . '" >' . $i . '</a></li>';
}
if ($total_pages > $end) {
$i = $total_pages;
$pagination.= '<li><a>...</a></li>';
$pagination.= '<li><a href="' . $url_actual . '/page-'. $i . '" >' . $i . '</a></li>';
}
} else {
if ($current > 2) {
$pagination.= '<li><a href="' . $url_actual . '/page-1" >1</a></li>';
$pagination.= '<li><a>...</a></li>';
}
$pagination.= '<li class="active"><a>' . $current . '</a></li>';
}
if(isset($total_pages))
{
if ($total_pages < 0 || $current < $total_pages) {
$i = $current + 1;
$pagination.= '<li><a href="' . $url_actual . '/page-'. $i . '" ><span aria-hidden="true"><i class="fa fa-angle-right"></i></span></a></li>';
} else {
$pagination.= '<li class="disabled"><a aria-label="Next"><span aria-hidden="true"><i class="fa fa-angle-right"></i></span></a></li>';
}
}
$pagination.= '</ul>';
}
return $pagination;
}
public function friendly_url($n)
{
$n = mb_strtolower($n, "UTF-8"); // Pasar a minúsculas con utf-8
$ent = array(
"á",
"à",
"ä",
"é",
"è",
"ë",
"í",
"ì",
"ï",
"ó",
"ò",
"ö",
"ú",
"ù",
"ü",
"ç",
"ñ",
" "); // Caracteres a convertir, faltan algunos
$sal = array(
"a",
"a",
"a",
"e",
"e",
"e",
"i",
"i",
"i",
"o",
"o",
"o",
"u",
"u",
"u",
"c",
"n",
"-");
$n = str_replace($ent, $sal, $n);
$n = preg_replace("[^a-z0-9]", "-", $n); // Pasar todo lo que no sean caracteres a un guion
while (strpos($n, "--"))
$n = str_replace("--", "-", $n); // Convertir dos guiones en uno
$n = trim($n, "-");
return $n;
}
public function mb_ucfirst($string, $encoding)
{
$strlen = mb_strlen($string, $encoding);
$firstChar = mb_substr($string, 0, 1, $encoding);
$then = mb_substr($string, 1, $strlen - 1, $encoding);
return mb_strtoupper($firstChar, $encoding) . $then;
}
public function validate_url($filters, $checked, $setLang = true, $baseUrl = true)
{
$em = $this->getDoctrine()->getManager();
$apiPropertiesSubtypesRepo = $em->getRepository(ApiPropertiesSubtypes::class);
$tipusOperacioRepo = $em->getRepository(TipusOperacio::class);
$apiPropertySuperTypeRepo = $em->getRepository(ApiPropertiesSupertype::class);
$friendly_nom_operacio = isset($filters['e_operacio'])? $filters["e_operacio"] : '';
$friendly_nom_tipus = isset($filters['e_supertipus'])? $filters["e_supertipus"] : '';
$friendly_nom_provincia = isset($filters["e_province"])? $filters["e_province"] : '';
$friendly_nom_localitat = isset($filters["e_locality"])? $filters["e_locality"] : '';
$friendly_nom_zona = isset($filters["e_zona"])? $filters["e_zona"] : '';
$breadcrumb_lang = "";
$cod_lang = "ca_ES";
if ($filters["e_lang"] == "es") {
$breadcrumb_lang = "/es";
$cod_lang = "es_ES";
}
if ($filters["e_lang"] == "ca") {
$breadcrumb_lang = "/ca";
$cod_lang = "ca_ES";
}
if ($filters["e_lang"] == "en") {
$breadcrumb_lang = "/en";
$cod_lang = "en_US";
}
if ($filters["e_lang"] == "ru") {
$breadcrumb_lang = "/ru";
$cod_lang = "ru_RU";
}
if ($filters["e_lang"] == "de") {
$breadcrumb_lang = "/de";
$cod_lang = "de_DE";
}
if ($filters["e_lang"] == "ch") {
$breadcrumb_lang = "/ch";
$cod_lang = "ch_CH";
}
if ($filters["e_lang"] == "ar") {
$breadcrumb_lang = "/ar";
$cod_lang = "ar_AR";
}
if ($filters["e_lang"] == "fr") {
$breadcrumb_lang = "/fr";
$cod_lang = "fr_FR";
}
$idOperacio = $tipusOperacioRepo->get_by_name($filters["e_lang"], $friendly_nom_operacio);
$idSuperTipus = $apiPropertySuperTypeRepo->get_id_by_friendly($friendly_nom_tipus);
// dump($idOperacio);
// dd($friendly_nom_tipus);
$friendly_nom_operacio = $tipusOperacioRepo->get_friendly($filters["e_lang"], $idOperacio);
$friendly_nom_tipus = $apiPropertySuperTypeRepo->get_friendly($idSuperTipus, $cod_lang);
$html = "";
if($baseUrl) $html .= $filters["e_domain"];
if(!$baseUrl) $html .= "";
if($setLang) $html .= $breadcrumb_lang;
if($baseUrl) $html .= "/";
$html .= $friendly_nom_operacio . '/' . $friendly_nom_tipus . '/' . $friendly_nom_provincia . '/' . $friendly_nom_localitat . ( $friendly_nom_zona!= '' ? '/' . $friendly_nom_zona : '' );
// dd($html);
if (isset($filters["subTipoId"]) && $filters["subTipoId"] != '' )
{
$friendly_subtypus = $apiPropertiesSubtypesRepo->get_friendly_name($cod_lang,$filters["subTipoId"]);
if ( $checked == '') {
$friendly_subtypus = explode(',', $friendly_subtypus);
$friendly_subtypus = array_unique($friendly_subtypus);
$friendly_subtypus = implode(',', $friendly_subtypus);
$html .= '/' . $friendly_subtypus ;
} else {
// $c = str_replace($friendly_subtypus, "", $_SESSION['cerca_fre_subtipus']);
// $c = trim($c);
// if ( substr($c, -1) == "," ) $c = substr($c, 0, -1);
// if ( substr($c, 0, 1) == "," ) $c = substr($c, 1);
// $c = str_replace(",,", ",", $c);
// $c = explode(',', $c);
// $c = array_unique($c);
// $c = implode(',', $c);
// if ( $c != "" ) $html .= '/' . $c;
}
}
$features_fre = '';
if(isset($filters["h_piscina"]) && !empty($filters["h_piscina"])){
$features_fre .= 'piscina,';
}
if(isset($filters["h_terrassa"]) && !empty($filters["h_terrassa"])){
$features_fre .= 'terrassa,';
}
if(isset($filters["h_ascensor"]) && !empty($filters["h_ascensor"])){
$features_fre .= 'ascensor,';
}
if(isset($filters["h_parkings"]) && !empty($filters["h_parkings"])){
$features_fre .= 'parkings,';
}
if(isset($filters["h_traster"]) && !empty($filters["h_traster"])){
$features_fre .= 'traster,';
}
if(isset($filters["h_calefaccio"]) && !empty($filters["h_calefaccio"])){
$features_fre .= 'calefaccio,';
}
if(isset($filters["h_aire"]) && !empty($filters["h_aire"])){
$features_fre .= 'aire,';
}
if(isset($filters["h_balco"]) && !empty($filters["h_balco"])){
$features_fre .= 'balco,';
}
$features_fre = substr($features_fre, 0, -1);
if ($features_fre != ''){
if($cod_lang == "ca_ES"){
$html .= '/equipament-' .$features_fre;
} else {
$html .= '/equipamiento-' .$features_fre;
}
}
if(isset($filters['h_sortby']) && $filters['h_sortby'] != 'pdata' && $filters['h_sortby'] != ''){
if($cod_lang == "ca_ES"){
$html .= '/ordenat-per=' .$filters['h_sortby'];
} else {
$html .= '/ordenado-por=' .$filters['h_sortby'];
}
}
// if (isset($filters['change_sort']) && $filters['change_sort'] != ''){
// $filters['cerca_sortby'] = $filters['change_sort'];
// if($cod_lang == "ca_ES"){
// $html .= '/ordenat-per=' .$filters['cerca_sortby'];
// } else {
// $html .= '/ordenado-por=' .$filters['cerca_sortby'];
// }
// }else {
// if(isset($filters['cerca_sortby']) && $filters['cerca_sortby'] != 'pdata' && $filters['cerca_sortby'] != ''){
// if($cod_lang == "ca_ES"){
// $html .= '/ordenat-per=' .$filters['cerca_sortby'];
// } else {
// $html .= '/ordenado-por=' .$filters['cerca_sortby'];
// }
// }
// }
return $html;
}
public function getUrlPropertie($item, $lang){
$em = $this->getDoctrine()->getManager();
$langc = $this->getCodLang($lang);
$localitat = $em->getRepository(ApiLocations::class)->get_friendly($item["localidad"]);
$provincia = $em->getRepository(ApiProvinces::class)->get_friendly($item["provincia"]);
$tipo = $em->getRepository(ApiPropertiesSupertype::class)->get_friendly($item["id_properties_supertype"], $langc);
$operacion_seo = $em->getRepository(TipusOperacio::class)->get_friendly_by_codi($lang, $item["operation"]);
$token = $this->contenido_frase($lang);
$token_lang = $token['breadcrumb_lang'];
return $token_lang."/".$operacion_seo."/".$tipo."/".$provincia."/".$localitat."/".$item["id"];;
}
public function getTitleDetail($item, $lang = "ca"){
$em = $this->getDoctrine()->getManager();
$cod_lang = $this->getCodLang($lang);
$superficie_title = "";
$situacion_title = "";
$localitat_title = "";
$provincia_title = "";
$zona = $em->getRepository(ApiZones::class)->obtenirZona($item["zona"]);
$localitat = $em->getRepository(ApiLocations::class)->obtenirLocalitat($item["localidad"]);
$provincia = $em->getRepository(ApiProvinces::class)->obtenirProvincia($item["provincia"]);
$tipo = $em->getRepository(ApiPropertiesTypes::class)->get_text_type($item["id"], $cod_lang);
$referencia = ($item['referencia']) ? '['.$item['referencia'].'] ' : '';
$frase_nexo = array_map('trim', $this->contenido_frase($lang));
if($item['superf_constr'])
$superficie_title = " ".$frase_nexo['txt_de']." ".$item['superf_constr']." m2";
elseif($item['superf_util'])
$superficie_title = " ".$frase_nexo['txt_de']." ".$item['superf_util']." m2";
if($item['situacion_concreta'])
$situacion_title = " ".$frase_nexo['txt_on']." ".mb_strtolower($item['situacion_concreta'], 'UTF-8');
if($localitat)
$localitat_title = " ".$frase_nexo['txt_on']." ".ucfirst($localitat);
if ($zona)
$localitat_title = $localitat_title." ,".$zona;
if($provincia)
$provincia_title = ", ".ucfirst($provincia);
return $referencia.$tipo.$superficie_title.$situacion_title.$localitat_title.$provincia_title;
}
/**
* @Route("/tracking/click", name="track_click", methods={"POST"})
*
*/
public function trackingClick(Request $request, ManagerRegistry $doctrine): Response
{
$em = $doctrine->getManager();
$post = $request->getContent();
// dd();
$sessionId = $request->getSession()->get("session_id");
if (!empty($request->getContent())) {
$post = (array) json_decode($request->getContent());
if (count($post) == 0) {
$post = (array) $request->request->all();
}
} else {
$post = (array) $request->request->all();
}
try{
$trackClick = new Tracking();
$trackClick->setTrackingValue($post["clickValue"]);
$trackClick->setType($post["redirection"]);
$trackClick->setSession($sessionId);
$trackClick->setDateCreated(new \DateTime("now"));
// dd($post["redirection"]);
$em->persist($trackClick);
$em->flush();
}catch(\Exception $e){
return new JsonResponse([
"status" => "error",
"message" => $e->getMessage()
]);
}
//Rep dades
return new JsonResponse([
"status" => "success"
]);
}
/**
* @Route("/api/agencyUpdate", name="api_agency_update", methods={"POST"})
*
*/
public function agencyUpdate(Request $request)
{
if (!empty($request->getContent())) {
$post = (array) json_decode($request->getContent());
if (count($post) == 0) {
$post = (array) $request->request->all();
}
} else {
$post = (array) $request->request->all();
}
$formData = array();
parse_str($post["form"], $formData);
// dd($formData);
$result = null;
$em = $this->getDoctrine()->getManager();
$preferencesRepo = $em->getRepository(ApiPreferences::class);
$apiAgencyRepo = $em->getRepository(ApiAgency::class);
$agencyLangRepo = $em->getRepository(ApiAgencyLang::class);
if(isset($post['step_1'])) {
$preferencesRepo->updatePreferences(2);
}
if(isset($post['step_2'])) {
$preferencesRepo->updatePreferences(3);
}
try{
if(isset($post['step_3'])) {
$emAdmin = $this->getDoctrine()->getManager("admin");
$agencyLicenseRepo = $emAdmin->getRepository(AgencyLicense::class);
$result = $agencyLicenseRepo->findOneBy(array("license" => $_ENV["LICENSE"]));
if($result){
$dominio = urlencode($result->getDomain());
$url = 'http://tickets.ghestia.cat/endpoints.php?endpoint=add_ticket&codigo='.$result->getNumberProvincial().'&domain='.$dominio.'&plan='.$result->getPlan().'&tema='.$result->getTema().'&license='.$_ENV["LICENSE"];
$options = [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
]
];
file_get_contents($url, false, stream_context_create($options));
$preferencesRepo->updatePreferences(0);
}
}
$address = $formData['address0'];
// if ($post['total_address'] > 0) {
// for ($i=1; $i<=$post['total_address']; $i++ ){
// if (($post['address'.$i])!='')
// $post['address'] .= '||'. $post['address'.$i] ;
// }
// }
$result = $apiAgencyRepo->updateAgency($formData);
if ($result){
if(isset($post['lang_ca']) && $post['lang_ca']){
$agencyLangRepo->updateVisible($post['lang_ca'], "ca");
}
}
if ($result){
if(isset($post['lang_en']) && $post['lang_en']){
$agencyLangRepo->updateVisible($post['lang_en'],"en");
}
}
if ($result){
if(isset($post['lang_es']) && $post['lang_es']){
$agencyLangRepo->updateVisible($post['lang_es'],"es");
}
}
if ($result){
if(isset($post['lang_fr']) && $post['lang_fr']){
$agencyLangRepo->updateVisible($post['lang_fr'],"fr");
}
}
if($result && isset($post['lang_default'])){
$default_lang = $post['lang_default'];
$getpredeterminado = $agencyLangRepo->findOneBy(array("predeterminado" => 1));
if($getpredeterminado && ($getpredeterminado->getCod() !== $default_lang)){
$reset_predeterminado = $agencyLangRepo->updatePredeterminado($getpredeterminado->getCod(), 0);
}
if((isset($reset_predeterminado) && $reset_predeterminado) || $getpredeterminado == false){
$result = $reset_predeterminado = $agencyLangRepo->updatePredeterminado($default_lang, 1);
if(isset($_SESSION['idioma']) && $_SESSION['idioma'] != $default_lang){
$_SESSION['idioma'] = $default_lang;
}
}
}
}catch(\Exception $e){
return new JsonResponse([
"status" => "error",
"type" => "error",
"message" => "Ha surgido un error al enviar la petición, prueba mas tarde."
], 200);
}
// return $result;
return new JsonResponse([
"status" => "success",
"type" => "success",
"message" => "Petición enviada"
], 200);
}
public function langURL($lang, $cod_lang, $url){
$url = explode('/', $url);
$em = $this->getDoctrine()->getManager();
$tipusOperacioRepo = $em->getRepository(TipusOperacio::class);
$apiPropertySuperTypeRepo = $em->getRepository(ApiPropertiesSupertype::class);
$url[1] = $apiPropertySuperTypeRepo->get_seolang_to_seo($cod_lang, $url[1]);
$url[0] = $tipusOperacioRepo->get_seolang_to_seo($lang, $url[0]);
$url = implode('/', $url);
return $url;
}
}