INICIAL:
<?php
$home = '<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt">
<head>
'.$mainData['configHead'].'
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charset="UTF-8">' ;
//favicon
$home .= '<link rel="icon" href="">';
//SEO
$home .= '
<title>Catálogo de Produtos de '.$mainData['siteName'].'</title>
<meta name="description" content="Veja o catálogo de produtos completo de '.$mainData['siteName'].' e encontre as melhores ofertas. Estamos a total disposição para atendê-los">
<link rel="canonical" href="'.$mainData['configPath'].'">
<meta name="keywords" content="">
<meta name="author" content="'.$mainData['siteName'].'">
<meta name="geo.position" content="">
<meta name="ICBM" content="">
<meta name="geo.placename" content="">
<meta name="geo.region" content="">
<meta name="robots" content="index,follow">
<meta name="rating" content="General">
<meta name="revisit-after" content="7 days">
<base href="'.$mainData['configPath'].'">
<meta property="og:region" content="Brazil">
<meta property="og:title" content="Catálogo de Produtos de '.$mainData['siteName'].'">
<meta property="og:type" content="article">
<meta property="og:image" content="">
<meta property="og:url" content="'.$mainData['configPath'].'">
<meta property="og:description" content="Veja o catálogo de produtos completo de '.$mainData['siteName'].' e encontre as melhores ofertas. Estamos a total disposição para atendê-los">
<meta property="og:site_name" content="'.$mainData['siteName'].'">
<meta property="twitter:description" content="Veja o catálogo de produtos completo de '.$mainData['siteName'].' e encontre as melhores ofertas. Estamos a total disposição para atendê-los">
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:title" content="Catálogo de Produtos de '.$mainData['siteName'].'">
<meta property="twitter:image" content="">
<script data-schema="Organization" type="application/ld+json">
{
"@type":"Organization",
"@context":"http://schema.org",
"name": "'.$mainData['siteName'].'",
"url": "http://'.$mainData['siteDomain'].'",
"logo": {
"@type": "ImageObject",
"url": "",
"width": "300",
"height": "300"
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Store",
"address": {
"@type": "PostalAddress",
"addressLocality": "",
"addressRegion": "",
"postalCode": "",
"streetAddress": ""
},
"name": "",
"openingHours": [
"Mon-Fri 08:00-18:00",
""
],
"priceRange": "$",
"telephone": "",
"url": "'.$mainData['siteName'].'",
"image" : ""
}
</script>
';
//custom css
$home .= '
<!-- Bootstrap -->
'.getBlockData(5170).'
<!-- Global CSS -->
'.getBlockData(5171).'
<!-- Nav CSS -->
'.getBlockData(5172).'
<!-- GTM Head -->
'.getBlockData(5167).'';
// STYLE FOR CATEGORIES NAVBAR
$home .='
<style>
/*DEFAULT MENU*/
#catalogToggleButton {
display: none;
}
#categoriesNavBar {
background-color: #163d4f;
box-shadow: 0px 10px 10px rgb(0 0 0 / 15%);
}
#categoriesNavBar .menuItemQtd {
display: none;
}
#categoriesNavBar .menu {
display: flex;
align-items: center;
width: 100%;
justify-content: flex-start;
margin-block: 0px;
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
}
#categoriesNavBar .menuList {
list-style: none;
display: flex;
margin: 0px;
}
#categoriesNavBar .menuItem a {
text-decoration: none;
color: #fff;
font-size: 14px;
transition: 0.3s ease;
display: block;
height: 100%;
padding: 15px;
}
#categoriesNavBar .menuItem a:hover {
color: #fff;
background-color: #07212b;
}
@media (min-width: 576px) {
#categoriesNavBar .menu {
max-width: 540px;
}
}
@media (min-width: 768px) {
#categoriesNavBar .menu {
max-width: 720px;
}
}
@media (min-width: 992px) {
#categoriesNavBar .menu {
max-width: 960px;
}
}
@media (min-width: 1200px) {
#categoriesNavBar .menu {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
#categoriesNavBar .menu {
max-width: 1320px;
}
}
@media (max-width: 992px) {
/* Scroll Navbar */
#categoriesNavBar .menu {
white-space: nowrap;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
scroll-snap-type: x mandatory;
overflow-x: scroll;
}
/* Width */
#categoriesNavBar .menu::-webkit-scrollbar {
width: 3px;
height: 3px;
}
/* Track */
#categoriesNavBar .menu::-webkit-scrollbar-track {
background: #f1f1f1;
}
/* Handle */
#categoriesNavBar .menu::-webkit-scrollbar-thumb {
background: #888;
}
/* Handle on hover */
#categoriesNavBar .menu::-webkit-scrollbar-thumb:hover {
background: #555;
}
}
</style>';
// STYLE FOR BANNER SLIDER
$home .= '
<style>
@keyframes tonext {
75% {
left: 0;
}
95% {
left: 100%;
}
98% {
left: 100%;
}
99% {
left: 0;
}
}
@keyframes snap {
96% {
scroll-snap-align: center;
}
97% {
scroll-snap-align: none;
}
99% {
scroll-snap-align: none;
}
100% {
scroll-snap-align: center;
}
}
/* AUTOPLAY CONFIGURATION - CHANGE LEFT ATTRIBUTE BASED IN SLIDER QUANTITY */
@keyframes tostart {
75% {
left: 0;
}
95% {
left: -300%;
}
98% {
left: -300%;
}
99% {
left: 0;
}
}
.sectionBanner.iCarouselModel01 {
height: 450px;
position: relative;
}
.sectionBanner.iCarouselModel01 ol,
li {
list-style: none;
margin: 0;
padding: 0;
}
.sectionBanner.iCarouselModel01 .carouselViewport {
position: absolute;
height: 100%;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: flex;
overflow-x: scroll;
counter-reset: item;
scroll-behavior: smooth;
scroll-snap-type: x mandatory;
}
.sectionBanner.iCarouselModel01 .carouselSlide {
position: relative;
flex: 0 0 100%;
width: 100%;
counter-increment: item;
}
.sectionBanner.iCarouselModel01 .carouselSnapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
scroll-snap-align: center;
z-index: -1;
}
/* ARROWS CSS */
.sectionBanner.iCarouselModel01 .carouselPrev,
.sectionBanner.iCarouselModel01 .carouselNext {
position: absolute;
top: 0;
bottom: 0;
margin: auto;
width: 2rem;
height: 2rem;
border-radius: 50%;
font-size: 0;
outline: 0;
z-index: 5;
}
.sectionBanner.iCarouselModel01.carousel::before,
.sectionBanner.iCarouselModel01 .carouselPrev {
left: 0.3rem;
}
.sectionBanner.iCarouselModel01.carousel::after,
.sectionBanner.iCarouselModel01 .carouselNext {
right: 0.3rem;
}
.sectionBanner.iCarouselModel01.carousel::before,
.sectionBanner.iCarouselModel01.carousel::after {
content: "";
z-index: 1;
background-repeat: no-repeat;
background-position: center center;
color: #fff;
line-height: 4rem;
text-align: center;
pointer-events: none;
background-size: 6px;
box-shadow: 5px 5px 9px rgb(0 0 0 / 12%);
}
.sectionBanner.iCarouselModel01.carousel::before {
background-image: url("https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-angle-left.svg");
position: absolute;
top: 0;
bottom: 0;
margin: auto;
width: 20px;
height: 20px;
border-radius: 50%;
font-size: 0;
outline: 0;
background-color: #fff;
}
.sectionBanner.iCarouselModel01.carousel::after {
background-image: url("https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-angle-right.svg");
position: absolute;
top: 0;
bottom: 0;
margin: auto;
width: 20px;
height: 20px;
border-radius: 50%;
font-size: 0;
outline: 0;
background-color: #fff;
}
/* SCROLL BAR CSS */
.sectionBanner.iCarouselModel01 .carouselViewport::-webkit-scrollbar {
width: 0px;
height: 0px;
}
/* REMOVE COMMENT TO EDIT SCROLL BAR */
/*.sectionBanner.iCarouselModel01 .carouselViewport::-webkit-scrollbar-track {
background: #f1f1f1;
}
.sectionBanner.iCarouselModel01 .carouselViewport::-webkit-scrollbar-thumb {
background: #888;
}
.sectionBanner.iCarouselModel01 .carouselViewport::-webkit-scrollbar-thumb:hover {
background: #555;
}*/
/* AUTOPLAY CSS */
.sectionBanner.iCarouselModel01 .carouselViewport[data-icarousel="autoplay"] .carouselSnapper {
animation-name: tonext, snap;
animation-timing-function: ease;
animation-duration: 6s;
animation-iteration-count: infinite;
}
.sectionBanner.iCarouselModel01 .carouselViewport[data-icarousel="autoplay"] .carouselSlide:last-child .carouselSnapper {
animation-name: tostart, snap;
}
.sectionBanner.iCarouselModel01.carousel:hover .carouselViewport[data-icarousel="autoplay"] .carouselSnapper,
.sectionBanner.iCarouselModel01.carousel:focus-within .carouselViewport[data-icarousel="autoplay"] .carouselSnapper {
animation-name: none;
}
/* IMAGE CONTENT CSS */
.sectionBanner.iCarouselModel01 .carouselSlide img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: left;
position: absolute;
z-index: -1;
}
.sectionBanner.iCarouselModel01 .carouselSlide .sliderLink {
display: block;
width: 100%;
height: 100%;
}
/* SLIDER MOBILE CSS */
@media (max-width: 992px) {
.sectionBanner.iCarouselModel01 {
height: 200px;
}
}
</style>';
// STYLE FOR CARDS
$home .='
<style>
/* CSS Cartões Categorias */
.iCategoriesModel01 h1 {
font-size: 25px;
margin-top: 0px;
}
.iCategoriesModel01 img {
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
transition: all 0.3s ease-in-out;
}
.iCategoriesModel01 a:hover img {
transform: scale(1.05);
}
.iCategoriesModel01 .cardBox {
position: relative;
height: 250px;
box-shadow: 10px 10px 30px #00000020;
border-radius: 5px;
overflow: hidden;
}
.iCategoriesModel01 .cardBox h1 {
position: absolute;
font-weight: 600;
bottom: 0;
padding: 15px;
margin: 0px;
color: #fff;
z-index: 1;
}
.iCategoriesModel01 .cardBox:before {
content: "";
display: block;
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
background: rgb(0,0,0);
background: -moz-linear-gradient(0deg, rgba(0,0,0,0.7010154403558299) 0%, rgba(255,255,255,0) 100%);
background: -webkit-linear-gradient(0deg, rgba(0,0,0,0.7010154403558299) 0%, rgba(255,255,255,0) 100%);
background: linear-gradient(0deg, rgba(0,0,0,0.7010154403558299) 0%, rgba(255,255,255,0) 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#ffffff",GradientType=1);
}
</style>';
// STYLE FOR CATALOG IN LIST
$home .= '
<style>
/* CSS Cartões M1 Lista */
.iCardModel01 h1 {
font-size: 25px;
margin-top: 0px;
}
.iCardModel01 .cardRealState {
border-radius: 10px;
box-shadow: 5px 5px 35px rgb(0 0 0 / 10%);
background-color: #fff;
}
.iCardModel01 .cardRealState a {
color: #1e1e1e;
display: flex;
gap: 10px;
align-items: center;
}
.iCardModel01 .cardRealState .cardRealStateDsc {
padding: 20px;
position: relative;
padding-bottom: 15px;
}
.iCardModel01 .cardRealState .cardRealStateImage {
overflow: hidden;
height: 260px;
width: 260px;
}
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: inherit;
border-radius: 10px 0px 0px 10px;
}
.iCardModel01 .cardRealState .cardRealStateDsc p {
margin-block: 10px;
color: #000;
}
.iCardModel01 .cardRealState .cardRealStateDsc p.realStateLocal {
font-size: 15px;
color: #999;
}
.iCardModel01 .cardRealState .cardRealStateDsc .realStateComplement {
font-weight: bold;
color: #333;
font-size: 16px;
}
.iCardModel01 .cardRealState .cardRealStateDsc .realStateLocation {
font-weight: bold;
background-color: #163d4f;
max-width: 90px;
text-align: center;
padding: 5px;
border-radius: 4px;
color: #fff;
font-size: 14px;
}
.iCardModel01 .cardRealState .realStateId {
color: #444;
font-size: 14px;
font-weight: bold;
}
.iCardModel01 .cardRealState .realStatePrice {
font-size: 24px;
font-weight: bold;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li {
text-align: center;
font-size: 14px;
margin-inline: 10px;
display: flex;
gap: 8px;
align-items: center;
color: #888;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
gap: 10px;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li img {
filter: brightness(0) invert(0.6);
}
.iCardModel01 .realStateCity {
font-weight: bold;
}
@media (max-width: 992px) {
.iCardModel01 .row {
grid-gap: 5px;
}
.iCardModel01 .cardRealState .cardRealStateDsc p {
font-size: 14px;
margin-block: 6px;
}
.iCardModel01 .cardRealState .realStatePrice {
font-size: 16px;
}
.iCardModel01 .cardRealState .cardRealStateDsc {
padding: 10px;
padding-bottom: 10px;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li {
margin-inline: 0px;
gap: 5px;
}
.iCardModel01 .cardRealState .cardRealStateImage {
height: 200px;
width: 100%;
position: relative;
}
.iCardModel01 .cardRealState .realStateId {
font-size: 12px;
}
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: 100%;
border-radius: 0px;
position: absolute;
}
}
@media (max-width: 992px) and (min-width: 552px) {
.iCardModel01 .cardRealState {
border-bottom: solid 1px #eee;
border-radius: 0px;
padding-bottom: 10px;
margin-bottom: 5px;
background-color: transparent;
box-shadow: none;
}
}
@media (max-width: 552px) {
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: inherit;
border-radius: 10px 10px 0px 0px;
}
.iCardModel01 .cardRealState a {
color: #1e1e1e;
display: flex;
gap: 10px;
align-items: center;
flex-direction: column;
}
.iCardModel01 .cardRealState {
margin-top: 15px;
min-height: 450px;
}
}
</style>
</head>
<body>
<!-- GTM Body -->
'.getBlockData(5168).'';
$home .= '
<main>
'.getBlockData(5173).'
<div id="categoriesNavBar">
</div>
<section class="carousel sectionBanner iCarouselModel01">
<ol class="carouselViewport" data-icarousel="autoplay">
<li id="carouselSlide1"
tabindex="0"
class="carouselSlide active">
<a href="#1" class="sliderLink" title="Link Imagem">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/104/mc//Design Teste" alt="Imagem de fundo Eco Webdesign" />
</a>
<div class="carouselSnapper">
</div>
<a href="#carouselSlide4"
class="carouselPrev">Voltar para o item anterior</a>
<a href="#carouselSlide2"
class="carouselNext">Ir para o próximo item</a>
</li>
<li id="carouselSlide2"
tabindex="0"
class="carouselSlide">
<a href="#2" class="sliderLink" title="Link Imagem">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/104/mc//Design Teste" alt="Imagem de fundo Eco Webdesign" />
</a>
<div class="carouselSnapper"></div>
<a href="#carouselSlide1"
class="carouselPrev">Voltar para o item anterior</a>
<a href="#carouselSlide3"
class="carouselNext">Ir para o próximo item</a>
</li>
<li id="carouselSlide3"
tabindex="0"
class="carouselSlide">
<a href="#3" class="sliderLink" title="Link Imagem">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/104/mc//Design Teste" alt="Imagem de fundo Eco Webdesign" />
</a>
<div class="carouselSnapper"></div>
<a href="#carouselSlide2"
class="carouselPrev">Voltar para o item anterior</a>
<a href="#carouselSlide4"
class="carouselNext">Ir para o próximo item</a>
</li>
<li id="carouselSlide4"
tabindex="0"
class="carouselSlide">
<a href="#4" class="sliderLink" title="Link Imagem">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/104/mc//Design Teste" alt="Imagem de fundo Eco Webdesign" />
</a>
<div class="carouselSnapper"></div>
<a href="#carouselSlide3"
class="carouselPrev">Voltar para o item anterior</a>
<a href="#carouselSlide1"
class="carouselNext">Ir para o próximo item</a>
</li>
</ol>
</section>
<section class="iCategoriesModel01 py-5">
<div class="container">
<div class="row">
<div class="col-12">
<h1>Navegue por Interesses</h1>
</div>
<div class="col-lg-4 col-md-4 col-12">
<a href="#" rel="nofollow noopener noreferrer" title="Acessar categoria MUDAR NOME">
<div class="cardBox">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/104/mc//casas-01" width="550" height="300"/>
<h1>Visualizar Casas</h1>
</div>
</a>
</div>
<div class="col-lg-4 col-md-4 col-12">
<a href="#" rel="nofollow noopener noreferrer" title="Acessar categoria MUDAR NOME">
<div class="cardBox">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/104/mc//apartamentos" width="550" height="300"/>
<h1>Visualizar Apartamentos</h1>
</div>
</a>
</div>
<div class="col-lg-4 col-md-4 col-12">
<a href="#" rel="nofollow noopener noreferrer" title="Acessar categoria MUDAR NOME">
<div class="cardBox">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/104/mc//lotes" width="550" height="300"/>
<h1>Visualizar Lotes</h1>
</div>
</a>
</div>
</div>
</div>
</section>
<section class="iCardModel01 py-5">
<div class="container">
<div class="row">
<div class="col-12">
<h1>Nossos imóveis em destaque</h1>
</div>';
$productListData = listCustomProducts($mainData['siteId'], 0, 0, 10, 0, 0, 0, "47,48,49,50,51,52");
foreach($productListData as $k => $v) {
$product = json_decode($v, true);
$productImg = '';
$productPrice = '';
$product['img'] == '' ? $productImg = 'https://cdn.interago.com.br/img/png/w_0_q_8/1/mc/cdn//productGeneric' : $productImg = $product['img'];
$productImg = str_replace('w_0_', 'w_380_', $productImg);
$product['price'] == '0.00' ? $productPrice = '' : $productPrice = $product['price'];
// Bring product additional information - lines 851 ~ 971
$filterKey = "47"; /* Quartos */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdQuartos = $product[$filterKey]["filterValue"];
} else {
$qtdQuartos = '';
}
} else {
$qtdQuartos = '';
}
$filterKey = "48"; /* Vagas */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdVagas = $product[$filterKey]["filterValue"];
} else {
$qtdVagas = '';
}
} else {
$qtdVagas = '';
}
$filterKey = "49"; /* Banheiros */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdBanheiros = $product[$filterKey]["filterValue"];
} else {
$qtdBanheiros = '';
}
} else {
$qtdBanheiros = '';
}
$filterKey = "50"; /* Área M2 */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$areaM2 = $product[$filterKey]["filterValue"];
} else {
$areaM2 = '';
}
} else {
$areaM2 = '';
}
$filterKey = "51"; /* Comprar ou Alugar */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$buyOrSell = $product[$filterKey]["filterValue"];
} else {
$buyOrSell = '';
}
} else {
$buyOrSell = '';
}
$filterKey = "52"; /* Localização */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$local = $product[$filterKey]["filterValue"];
} else {
$local = '';
}
} else {
$local = '';
}
$home .= '
<div class="col-12">
<div class="cardRealState">
<a href="'.$mainData['configPath'].'/item/'.$product['url'].'" title="Acessar o produto '.$product['title'].'">
<div class="cardRealStateImage">
<img class="imgFluid" src="'.$productImg.'" alt="Imagem do produto '.$product['title'].'">
</div>
<div class="cardRealStateDsc">
<span class="realStateId">23955</span>';
if ($buyOrSell != "") {
$home .= '<p class="realStateLocation">'.$buyOrSell.'</p>';
}
$home .= '<p><span class="realStateComplement">'.$product['title'].'</p>';
if ($local != "") {
$home .= '<p class="realStateLocal">'.$local.'</p>';
}
$home .= '<h2 class="realStatePrice" value="'.$productPrice.'">'.$productPrice.'</h2>
<ul>';
if ($qtdQuartos != "") {
$home .= '<li class="realStateBedroom"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-bed.svg" width="16" height="16" alt="Ícone Banheiro" /><span>'.$qtdQuartos.'</span> Quartos</li>';
}
if ($qtdVagas != "") {
$home .= '<li class="realStateGarage"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-car.svg" width="16" height="16" alt="Ícone Vagas" /><span>'.$qtdVagas.'</span> Vagas</li>';
}
if ($qtdBanheiros != "") {
$home .= '<li class="realStateWashroom"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-bath.svg" width="16" height="16" alt="Ícone Banheiro" /><span>'.$qtdBanheiros.'</span> Banheiro</li>';
}
if ($areaM2 != "") {
$home .= '<li class="realStateArea"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-ruler-combined.svg" width="16" height="16" alt="Ícone Área" /><span>'.$areaM2.'</span> m²</li>';
}
$home .= '</ul>
</div>
</a>
</div>
</div>';
}
$home .= '</div>
</div>
</section>
</main>
'.getBlockData(5175).'
</body>
'.$mainData['configBody'].'
'.getBlockData(5174).'
<script>
if (navigator.onLine) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// LOAD MENU WITH NAVBAR - DELETE BELOW IF DONT USE
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
if(xmlhttp.status == 200){
let data = xmlhttp.responseText;
document.getElementById("categoriesNavBar").innerHTML = data;
console.log("menu ok");
}
}
}
let url = "'.$mainData['configPath'].'/menu.html"
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setTimeout = 6000; //6s
xmlhttp.ontimeout = function() {
console.log("🚨 tempo esgotado - impossível enviar");
}
xmlhttp.send();
} else {
console.log("🚨 navegador offline");
}
</script>
<!-- Price Format BRL -->
<script>
document.addEventListener("DOMContentLoaded", function() {
var prices = document.querySelectorAll(\'.realStatePrice:not(.no-value)\');
for (var i = 0; i < prices.length; i++) {
var actualPrice = prices[i].innerHTML.replace(\'R$\',\'\');
var f = parseInt(actualPrice).toLocaleString(\'pt-br\',{style: \'currency\', currency: \'BRL\'});
prices[i].innerHTML = f;
}
});
</script>
</html>
';
?>
LISTAS DE PRODUTOS:
<?php
$list = '<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt">
<head>
'.$mainData['configHead'].'
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charset="UTF-8">' ;
//favicon
$list .= '<link rel="icon" href="">';
//SEO
$list .= '
<title>'.$categoryData['categoryName'].' em '.$mainData['siteName'].'</title>
<meta name="description" content="'.$categoryData['categoryDescription'].' - '.$mainData['siteName'].'">
<link rel="canonical" href="https://'.$mainData['configPath'].'/cat'.$categoryData['categoryUrl'].'">
<meta name="keywords" content="'.str_replace(' ', ',', $categoryData['categoryName']).'">
<meta name="author" content="'.$mainData['siteName'].'">
<meta name="geo.position" content="">
<meta name="ICBM" content="">
<meta name="geo.placename" content="">
<meta name="geo.region" content="">
<meta name="robots" content="index,follow">
<meta name="rating" content="General">
<meta name="revisit-after" content="7 days">
<base href="'.$mainData['configPath'].'">
<meta property="og:region" content="Brazil">
<meta property="og:title" content="Catálogo de Produtos de '.$mainData['siteName'].'">
<meta property="og:type" content="article">
<meta property="og:image" content="">
<meta property="og:url" content="'.$mainData['configPath'].'/'.$categoryData['categoryUrl'].'">
<meta property="og:description" content="'.$categoryData['categoryDescription'].' - '.$mainData['siteName'].'">
<meta property="og:site_name" content="'.$mainData['siteName'].'">
<meta property="twitter:description" content="'.$categoryData['categoryDescription'].' - '.$mainData['siteName'].'">
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:title" content="'.$categoryData['categoryName'].' em '.$mainData['siteName'].'">
<meta property="twitter:image" content="">
<script data-schema="Organization" type="application/ld+json">
{
"@type":"Organization",
"@context":"http://schema.org",
"name": "'.$mainData['siteName'].'",
"url": "http://'.$mainData['siteDomain'].'",
"logo": {
"@type": "ImageObject",
"url": "",
"width": "300",
"height": "300"
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Store",
"address": {
"@type": "PostalAddress",
"addressLocality": "",
"addressRegion": "",
"postalCode": "",
"streetAddress": ""
},
"name": "",
"openingHours": [
"Mon-Fri 08:00-18:00",
""
],
"priceRange": "$",
"telephone": "",
"url": "'.$mainData['siteName'].'",
"image" : ""
}
</script>
';
//custom css
$list .= '
<!-- Bootstrap -->
'.getBlockData(5170).'
<!-- Global CSS -->
'.getBlockData(5171).'
<!-- Nav CSS -->
'.getBlockData(5172).'
<!-- GTM Head -->
'.getBlockData(5167).'';
// STYLE FOR CATEGORIES NAVBAR
$list .='
<style>
/*DEFAULT MENU*/
#categoriesNavBar #catalogToggleButton {
display: none;
}
#categoriesNavBar {
background-color: #163d4f;
box-shadow: 0px 10px 10px rgb(0 0 0 / 15%);
}
#categoriesNavBar .menuItemQtd {
display: none;
}
#categoriesNavBar .menu {
display: flex;
align-items: center;
width: 100%;
justify-content: flex-start;
margin-block: 0px;
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
}
#categoriesNavBar .menuList {
list-style: none;
display: flex;
margin: 0px;
}
#categoriesNavBar .menuItem a {
text-decoration: none;
color: #fff;
font-size: 14px;
transition: 0.3s ease;
display: block;
height: 100%;
padding: 15px;
}
#categoriesNavBar .menuItem a:hover {
color: #fff;
background-color: #07212b;
}
@media (min-width: 576px) {
#categoriesNavBar .menu {
max-width: 540px;
}
}
@media (min-width: 768px) {
#categoriesNavBar .menu {
max-width: 720px;
}
}
@media (min-width: 992px) {
#categoriesNavBar .menu {
max-width: 960px;
}
}
@media (min-width: 1200px) {
#categoriesNavBar .menu {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
#categoriesNavBar .menu {
max-width: 1320px;
}
}
@media (max-width: 992px) {
/* Scroll Navbar */
#categoriesNavBar .menu {
white-space: nowrap;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
scroll-snap-type: x mandatory;
overflow-x: scroll;
}
/* Width */
#categoriesNavBar .menu::-webkit-scrollbar {
width: 3px;
height: 3px;
}
/* Track */
#categoriesNavBar .menu::-webkit-scrollbar-track {
background: #f1f1f1;
}
/* Handle */
#categoriesNavBar .menu::-webkit-scrollbar-thumb {
background: #888;
}
/* Handle on hover */
#categoriesNavBar .menu::-webkit-scrollbar-thumb:hover {
background: #555;
}
}
</style>';
// STYLE FOR LATERAL MENU
$list .= '
<style>
/* CSS MENU LATERAL */
.iCardModel01 .sideMenu {
padding: 15px 15px;
border-radius: 5px;
background-color: #fff;
border: solid 1px #eee;
height: 100%;
}
.iCardModel01 .sideMenu .menuList {
margin: 0px;
}
.iCardModel01 .sideMenu .menuList li {
border-bottom: solid 1px #eee;
padding: 10px 0px;
}
.iCardModel01 .sideMenu .menuList li:last-child {
border-bottom: none;
}
.iCardModel01 .sideMenu .menuList li a {
color: #1e1e1e;
font-weight: 600;
}
.iCardModel01 .sideMenu .menuList li a:hover {
color: #0098db;
}
.iCardModel01 .sideMenu .menuList li .menuItemQtd {
margin-left: 10px;
background-color: #163d4f;
padding: 0px;
width: 18px;
height: 18px;
line-height: 10px;
border-radius: 50px;
font-size: 12px;
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
}
.iCardModel01 .menuToogle {
display: none;
}
@media (max-width: 992px) {
.iCardModel01 .sideMenu {
padding: 15px 15px;
border-radius: 5px;
background-color: #fff;
border: solid 1px #eee;
height: auto;
margin-bottom: 25px;
}
.iCardModel01 .menuToogle {
display: block;
}
.iCardModel01 .sideMenu #catalogMenu {
visibility: hidden;
opacity: 0;
transition: all 0.3s ease-in-out;
overflow: hidden;
height: 0px;
}
.iCardModel01 .sideMenu #catalogToggleButton {
padding: 10px;
background-color: #0071e3;
color: #fff;
font-weight: 600;
border-radius: 5px;
cursor: pointer;
}
}
</style>';
// STYLE FOR CATALOG IN LIST
$list .= '
<style>
/* CSS Cartões M1 Lista */
.iCardModel01 h1, .iCardModel01 h2 {
font-size: 25px;
margin-top: 0px;
}
.iCardModel01 h3 {
font-size: 15px;
font-weight: 400;
padding-bottom: 15px;
border-bottom: solid 1px #eee;
color: #777;
}
.iCardModel01 .cardRealState {
border-radius: 10px;
box-shadow: 5px 5px 35px rgb(0 0 0 / 10%);
background-color: #fff;
}
.iCardModel01 .cardRealState a {
color: #1e1e1e;
display: flex;
gap: 10px;
align-items: center;
}
.iCardModel01 .cardRealState .cardRealStateDsc {
padding: 20px;
position: relative;
padding-bottom: 15px;
}
.iCardModel01 .cardRealState .cardRealStateImage {
overflow: hidden;
height: 260px;
width: 260px;
}
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: inherit;
border-radius: 10px 0px 0px 10px;
}
.iCardModel01 .cardRealState .cardRealStateDsc p {
margin-block: 10px;
color: #000;
}
.iCardModel01 .cardRealState .cardRealStateDsc p.realStateLocal {
font-size: 15px;
color: #999;
}
.iCardModel01 .cardRealState .cardRealStateDsc .realStateComplement {
font-weight: bold;
color: #333;
font-size: 16px;
}
.iCardModel01 .cardRealState .cardRealStateDsc .realStateLocation {
font-weight: bold;
background-color: #163d4f;
max-width: 90px;
text-align: center;
padding: 5px;
border-radius: 4px;
color: #fff;
font-size: 14px;
}
.iCardModel01 .cardRealState .realStateId {
color: #444;
font-size: 14px;
font-weight: bold;
}
.iCardModel01 .cardRealState .realStatePrice {
font-size: 24px;
font-weight: bold;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li {
text-align: center;
font-size: 14px;
margin-inline: 10px;
display: flex;
gap: 8px;
align-items: center;
color: #888;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
gap: 10px;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li img {
filter: brightness(0) invert(0.6);
}
.iCardModel01 .realStateCity {
font-weight: bold;
}
@media (max-width: 992px) {
.iCardModel01 .row {
grid-gap: 5px;
}
.iCardModel01 .cardRealState .cardRealStateDsc p {
font-size: 14px;
margin-block: 6px;
}
.iCardModel01 .cardRealState .realStatePrice {
font-size: 16px;
}
.iCardModel01 .cardRealState .cardRealStateDsc {
padding: 10px;
padding-bottom: 10px;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li {
margin-inline: 0px;
gap: 5px;
}
.iCardModel01 .cardRealState .cardRealStateImage {
height: 200px;
width: 100%;
position: relative;
}
.iCardModel01 .cardRealState .realStateId {
font-size: 12px;
}
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: 100%;
border-radius: 0px;
position: absolute;
}
}
@media (max-width: 1399px) and (min-width: 552px) {
.iCardModel01 .cardRealState {
border-bottom: solid 1px #eee;
border-radius: 0px;
padding-bottom: 10px;
margin-bottom: 5px;
background-color: transparent;
box-shadow: none;
}
}
@media (max-width: 552px) {
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: inherit;
border-radius: 10px 10px 0px 0px;
}
.iCardModel01 .cardRealState a {
color: #1e1e1e;
display: flex;
gap: 10px;
align-items: center;
flex-direction: column;
}
.iCardModel01 .cardRealState {
margin-top: 15px;
min-height: 450px;
}
}
</style>';
// STYLE FOR BREADCRUMBS
$list .= '
<style>
.sectionBreadcrumbs {
background-color: #f9f9f9;
padding-block: 15px;
}
.sectionBreadcrumbs .container {
display: flex;
justify-content: space-between;
}
.sectionBreadcrumbs .container h1.pageIdentify {
font-size: 20px;
}
.sectionBreadcrumbs .container ol#breadcrumb {
display: flex;
gap: 10px;
list-style: none;
padding: 0px;
}
.sectionBreadcrumbs .container ol#breadcrumb li {
display: flex;
gap: 10px;
}
.sectionBreadcrumbs .container ol#breadcrumb li a {
color: #000;
}
.sectionBreadcrumbs .container ol#breadcrumb li a:hover {
color: #0098db;
}
.sectioNBreadcrumbs .container #pageName {
text-transform: capitalize;
}
@media (max-width: 772px) {
.sectionBreadcrumbs .container {
display: flex;
justify-content: space-between;
flex-direction: column;
flex-wrap: wrap;
align-items: center;
}
}
</style>
';
$list .='</head>
<body>
<!-- GTM Body -->
'.getBlockData(5168).'';
$list .= '
<main>
<!-- HEADER -->
'.getBlockData(5173).'
<div id="categoriesNavBar">
</div>
<!-- BREADCRUMBS -->
<section class="sectionBreadcrumbs">
<div class="container">
<h1 class="pageIdentify">'.$categoryData['categoryName'].'</h1>
<ol id="breadcrumb" vocab="http://schema.org/" typeof="BreadcrumbList">
<li property="itemListElement" id="linkInicial" typeof="ListItem">
<a property="item" id="pageInitialUrl" typeof="WebPage" href="">
<span property="name" id="pageInitialName">Inicial</span></a> /
<meta property="position" content="1">
</li>
<!--<li property="itemListElement" typeof="ListItem" class="lastItem">
<a property="item" id="pageUrl" typeof="WebPage" href="catalogo/index">
<span property="name" class="active"><span id="pageName">Catálogo<br /></span></span></a> /
<meta property="position" content="2">
</li>-->
<li property="itemListElement" typeof="ListItem" class="lastItem">
<a property="item" id="pageUrl" typeof="WebPage" href="catalogo/cat'.$categoryData['categoryUrl'].'">
<span property="name" class="active"><strong id="pageName">'.$categoryData['categoryName'].'<br /></strong></span></a>
<meta property="position" content="3">
</li>
</ol>
</div>
</section>
<section class="iCardModel01 py-5">
<div class="container">
<div class="row">
<div class="col-12 col-md-3">
<div class="sideMenu" id="loadSideMenu"></div>
</div>
<div class="col-12 col-md-9">
<div class="row">
<div class="col-12">
<h2>'.$categoryData['categoryName'].'</h2>
<h3>'.$categoryData['categoryDescription'].'</h3>
</div>';
$productListData = listCustomProducts($mainData['siteId'], $categoryData['categoryId'], 0, 250, 0, 0, 0, "47,48,49,50,51,52");
if($productListData[0] != '{}') {
foreach($productListData as $k => $v) {
$product = json_decode($v, true);
$productImg = '';
$productPrice = '';
$product['img'] == '' ? $productImg = 'https://cdn.interago.com.br/img/png/w_0_q_8/1/mc/cdn//productGeneric' : $productImg = $product['img'];
$productImg = str_replace('w_0_', 'w_380_', $productImg);
$product['price'] == '0.00' ? $productPrice = '' : $productPrice = $product['price'];
// Bring product additional information - lines 552 ~ 672
$filterKey = "47"; /* Quartos */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdQuartos = $product[$filterKey]["filterValue"];
} else {
$qtdQuartos = '';
}
} else {
$qtdQuartos = '';
}
$filterKey = "48"; /* Vagas */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdVagas = $product[$filterKey]["filterValue"];
} else {
$qtdVagas = '';
}
} else {
$qtdVagas = '';
}
$filterKey = "49"; /* Banheiros */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdBanheiros = $product[$filterKey]["filterValue"];
} else {
$qtdBanheiros = '';
}
} else {
$qtdBanheiros = '';
}
$filterKey = "50"; /* Área M2 */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$areaM2 = $product[$filterKey]["filterValue"];
} else {
$areaM2 = '';
}
} else {
$areaM2 = '';
}
$filterKey = "51"; /* Comprar ou Alugar */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$buyOrSell = $product[$filterKey]["filterValue"];
} else {
$buyOrSell = '';
}
} else {
$buyOrSell = '';
}
$filterKey = "52"; /* Localização */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$local = $product[$filterKey]["filterValue"];
} else {
$local = '';
}
} else {
$local = '';
}
$list .= '
<div class="col-12">
<div class="cardRealState">
<a href="'.$mainData['configPath'].'/item/'.$product['url'].'" title="Acessar o produto '.$product['title'].'">
<div class="cardRealStateImage">
<img class="imgFluid" src="'.$productImg.'" alt="Imagem do produto '.$product['title'].'">
</div>
<div class="cardRealStateDsc">
<span class="realStateId">23955</span>';
if ($buyOrSell != "") {
$list .= '<p class="realStateLocation">'.$buyOrSell.'</p>';
}
$list .= '<p><span class="realStateComplement">'.$product['title'].'</p>';
if ($local != "") {
$list .= '<p class="realStateLocal">'.$local.'</p>';
}
$list .= '<h2 class="realStatePrice" value="'.$productPrice.'">'.$productPrice.'</h2>
<ul>';
if ($qtdQuartos != "") {
$list .= '<li class="realStateBedroom"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-bed.svg" width="16" height="16" alt="Ícone Banheiro" /><span>'.$qtdQuartos.'</span> Quartos</li>';
}
if ($qtdVagas != "") {
$list .= '<li class="realStateGarage"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-car.svg" width="16" height="16" alt="Ícone Vagas" /><span>'.$qtdVagas.'</span> Vagas</li>';
}
if ($qtdBanheiros != "") {
$list .= '<li class="realStateWashroom"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-bath.svg" width="16" height="16" alt="Ícone Banheiro" /><span>'.$qtdBanheiros.'</span> Banheiro</li>';
}
if ($areaM2 != "") {
$list .= '<li class="realStateArea"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-ruler-combined.svg" width="16" height="16" alt="Ícone Área" /><span>'.$areaM2.'</span> m²</li>';
}
$list .= '</ul>
</div>
</a>
</div> <!-- cardrealState -->
</div>';
}
}
else {
$list .= '<div class="col-12"><h3>Nenhum produto aqui 😞</h3></div>';
}
$list .= '</div> <!--row-->
</div> <!--9-->
</div> <!--row-->
</div> <!--container-->
</section>
</main>
'.getBlockData(5175).'
</body>
'.$mainData['configBody'].'
'.getBlockData(5174).'
<script>
if (navigator.onLine) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
if(xmlhttp.status == 200){
let data = xmlhttp.responseText;
document.getElementById("loadSideMenu").innerHTML = data;
document.getElementById("categoriesNavBar").innerHTML = data;
console.log("menu ok");
//menu toggle
function menuToggle() {
let catalogToggleButton = document.querySelector(".sideMenu #catalogToggleButton");
let catalogMenu = document.querySelector(".sideMenu #catalogMenu");
let menuToogleLabel = document.querySelector(".sideMenu #menuToogleLabel");
let width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
if(width < 766) {
console.log("mobile");
console.log(catalogToggleButton);
catalogToggleButton.style.visibility = "visible";
catalogMenu.style.visibility = "hidden";
catalogToggleButton.addEventListener("click", () => {
if ( catalogMenu.style.visibility == "" || catalogMenu.style.visibility == "visible" ) {
//hide
console.log("show");
catalogMenu.style.visibility = "hidden";
catalogMenu.style.opacity = "0";
catalogMenu.style.height = "0px";
menuToogleLabel.innerHTML = "+ Expandir Menu";
catalogMenu.classList.remove("menuTransition");
}else{
//show
console.log("hide");
catalogMenu.style.visibility = "visible";
catalogMenu.style.opacity = "1";
catalogMenu.style.height = "auto";
menuToogleLabel.innerHTML = "- Esconder Menu";
catalogMenu.classList.add("menuTransition");
}
})
}
else {
catalogMenu.style.display = "block";
}
}
menuToggle();
}
}
}
let url = "'.$mainData['configPath'].'/menu.html"
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setTimeout = 6000; //6s
xmlhttp.ontimeout = function() {
console.log("🚨 tempo esgotado - impossível enviar");
}
xmlhttp.send();
} else {
console.log("🚨 navegador offline");
}
</script>
<!-- Price Format BRL -->
<script>
document.addEventListener("DOMContentLoaded", function() {
var prices = document.querySelectorAll(\'.realStatePrice:not(.no-value)\');
for (var i = 0; i < prices.length; i++) {
var actualPrice = prices[i].innerHTML.replace(\'R$\',\'\');
var f = parseInt(actualPrice).toLocaleString(\'pt-br\',{style: \'currency\', currency: \'BRL\'});
prices[i].innerHTML = f;
}
});
</script>
</html>';
?>
MENU:
<?php
$menu = '';
$menuControl = [];
$menu .= '
<div class="menuToogle" id="catalogToggleButton"><a class="subTagItemList" style="width:100%;"><span id="menuToogleLabel">+ Expandir Menu</span></a></div>
<div class="menu" id="catalogMenu"><ul class="menuList" id="catalogMenuList">';
foreach($menuData as $k => $v) {
$menuItem = json_decode($v, true);
if($menuItem['qtd'] != 0) { //display only categories with products
$menuItem['categoryUrl'] == "0" ? $url = 'index' : $url = substr($menuItem['categoryUrl'], 1);
$menu .= '<li class="menuItem" cat="'.$menuItem['categoryId'].'" parent="'.$menuItem['categoryParentId'].'" id="item_'.$menuItem['categoryId'].'"><a href="'.$mainData['configPath'].''.$menuItem['categoryUrl'].'">'.$menuItem['categoryName'].'<span class="menuItemQtd">'.$menuItem['qtd'].'</span></a></li>';
}
}
$menu .= '</ul></div>';
?>
PÁGINA PRODUTO:
<?php
$item = '<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt">
<head>
'.$mainData['configHead'].'
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charset="UTF-8">' ;
//favicon
$item .= '<link rel="icon" href="">';
//SEO
$item .= '
<title>'.$productData['productTitle'].' - '.$mainData['siteName'].'</title>
<meta name="description" content="'.$productData['productDescription'].'">
<link rel="canonical" href="'.$mainData['configPath'].'/item/'.$productData['productUrl'].'">
<meta name="keywords" content="'.str_replace(' ', ',', $productData['productTitle']).'">
<meta name="author" content="'.$mainData['siteName'].'">
<meta name="geo.position" content="">
<meta name="ICBM" content="">
<meta name="geo.placename" content="">
<meta name="geo.region" content="">
<meta name="robots" content="index,follow">
<meta name="rating" content="General">
<meta name="revisit-after" content="7 days">
<base href="'.$mainData['configPath'].'">
<meta property="og:region" content="Brazil">
<meta property="og:title" content="'.$productData['productTitle'].' - '.$mainData['siteName'].'">
<meta property="og:type" content="article">
<meta property="og:image" content="'.$productData['productImg'].'">
<meta property="og:url" content="'.$mainData['configPath'].'/item/'.$productData['productUrl'].'">
<meta property="og:description" content="'.$productData['productDescription'].'">
<meta property="og:site_name" content="'.$mainData['siteName'].'">
<meta property="twitter:description" content="'.$productData['productDescription'].'">
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:title" content="'.$productData['productTitle'].' em '.$mainData['siteName'].'">
<meta property="twitter:image" content="">
<script data-schema="Organization" type="application/ld+json">
{
"@type":"Organization",
"@context":"http://schema.org",
"name": "'.$mainData['siteName'].'",
"url": "http://'.$mainData['siteDomain'].'",
"logo": {
"@type": "ImageObject",
"url": "",
"width": "300",
"height": "300"
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Store",
"address": {
"@type": "PostalAddress",
"addressLocality": "",
"addressRegion": "",
"postalCode": "",
"streetAddress": ""
},
"name": "",
"openingHours": [
"Mon-Fri 08:00-18:00",
""
],
"priceRange": "$",
"telephone": "",
"url": "'.$mainData['siteName'].'",
"image" : ""
}
</script>
';
//custom css
$item .= '
<!-- Bootstrap -->
'.getBlockData(5170).'
<!-- Global CSS -->
'.getBlockData(5171).'
<!-- Nav CSS -->
'.getBlockData(5172).'
<!-- GTM Head -->
'.getBlockData(5167).'';
// PRODUCT FANCYBOX IMAGE
$item .= '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.css" />';
// STYLE FOR CATEGORIES NAVBAR
$item .='
<style>
/*DEFAULT MENU*/
#categoriesNavBar #catalogToggleButton {
display: none;
}
#categoriesNavBar {
background-color: #163d4f;
box-shadow: 0px 10px 10px rgb(0 0 0 / 15%);
}
#categoriesNavBar .menuItemQtd {
display: none;
}
#categoriesNavBar .menu {
display: flex;
align-items: center;
width: 100%;
justify-content: flex-start;
margin-block: 0px;
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
}
#categoriesNavBar .menuList {
list-style: none;
display: flex;
margin: 0px;
}
#categoriesNavBar .menuItem a {
text-decoration: none;
color: #fff;
font-size: 14px;
transition: 0.3s ease;
display: block;
height: 100%;
padding: 15px;
}
#categoriesNavBar .menuItem a:hover {
color: #fff;
background-color: #07212b;
}
@media (min-width: 576px) {
#categoriesNavBar .menu {
max-width: 540px;
}
}
@media (min-width: 768px) {
#categoriesNavBar .menu {
max-width: 720px;
}
}
@media (min-width: 992px) {
#categoriesNavBar .menu {
max-width: 960px;
}
}
@media (min-width: 1200px) {
#categoriesNavBar .menu {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
#categoriesNavBar .menu {
max-width: 1320px;
}
}
@media (max-width: 992px) {
/* Scroll Navbar */
#categoriesNavBar .menu {
white-space: nowrap;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
scroll-snap-type: x mandatory;
overflow-x: scroll;
}
/* Width */
#categoriesNavBar .menu::-webkit-scrollbar {
width: 3px;
height: 3px;
}
/* Track */
#categoriesNavBar .menu::-webkit-scrollbar-track {
background: #f1f1f1;
}
/* Handle */
#categoriesNavBar .menu::-webkit-scrollbar-thumb {
background: #888;
}
/* Handle on hover */
#categoriesNavBar .menu::-webkit-scrollbar-thumb:hover {
background: #555;
}
}
</style>';
// STYLE FOR LATERAL MENU
$item .= '
<style>
/* CSS MENU LATERAL */
.iCardModel01 .sideMenu {
padding: 15px 15px;
border-radius: 5px;
background-color: #fff;
border: solid 1px #eee;
height: 100%;
}
.iCardModel01 .sideMenu .menuList {
margin: 0px;
}
.iCardModel01 .sideMenu .menuList li {
border-bottom: solid 1px #eee;
padding: 10px 0px;
}
.iCardModel01 .sideMenu .menuList li:last-child {
border-bottom: none;
}
.iCardModel01 .sideMenu .menuList li a {
color: #1e1e1e;
font-weight: 600;
}
.iCardModel01 .sideMenu .menuList li a:hover {
color: #0098db;
}
.iCardModel01 .sideMenu .menuList li .menuItemQtd {
margin-left: 10px;
background-color: #163d4f;
padding: 0px;
width: 18px;
height: 18px;
line-height: 10px;
border-radius: 50px;
font-size: 12px;
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
}
.iCardModel01 .menuToogle {
display: none;
}
@media (max-width: 992px) {
.iCardModel01 .sideMenu {
padding: 15px 15px;
border-radius: 5px;
background-color: #fff;
border: solid 1px #eee;
height: auto;
margin-bottom: 25px;
}
.iCardModel01 .menuToogle {
display: block;
}
.iCardModel01 .sideMenu #catalogMenu {
visibility: hidden;
opacity: 0;
transition: all 0.3s ease-in-out;
overflow: hidden;
height: 0px;
}
.iCardModel01 .sideMenu #catalogToggleButton {
padding: 10px;
background-color: #0071e3;
color: #fff;
font-weight: 600;
border-radius: 5px;
cursor: pointer;
}
}
</style>';
// CSS IMAGEM PRINCIPAL E ADICIONAIS
$item .= '
<style>
#mainCarousel {
width: 100%;
margin: 0 auto 1rem auto;
--carousel-button-color: #170724;
--carousel-button-bg: #fff;
--carousel-button-shadow: 0 2px 1px -1px rgb(0 0 0 / 20%),
0 1px 1px 0 rgb(0 0 0 / 14%), 0 1px 3px 0 rgb(0 0 0 / 12%);
--carousel-button-svg-width: 20px;
--carousel-button-svg-height: 20px;
--carousel-button-svg-stroke-width: 2.5;
}
.productItemImg {
position: relative;
}
#thumbCarousel {
max-width: 100%;
position: absolute;
}
#main
Carousel .carousel__slide {
width: 100%;
padding: 0;
overflow: hidden;
}
#mainCarousel .carousel__slide img {
height: 100%;
width: 100%;
object-fit: cover;
object-position: center;
}
#mainCarousel .carousel__button.is-prev {
left: -0.5rem;
}
#mainCarousel .carousel__button.is-next {
right: -0.5rem;
}
#mainCarousel .carousel__button:focus {
outline: none;
box-shadow: 0 0 0 1px #A78BFA;
}
#thumbCarousel .carousel__slide {
opacity: 0.5;
padding: 0;
margin: 0.25rem;
width: 96px;
height: 64px;
overflow: hidden;
}
#thumbCarousel .carousel__slide img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 4px;
}
#thumbCarousel .carousel__slide.is-nav-selected {
opacity: 1;
}
</style>';
// CSS PRODUTO - INFORMAÇÕES
$item .= '
<style>
.iCardModel01 .productItemInfo .productItemAdditional {
border-top: solid 1px #eee;
border-bottom: solid 1px #eee;
}
.iCardModel01 .productItemInfo .productItemAdditional ul {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
gap: 10px;
}
.iCardModel01 .productItemInfo .productItemAdditional ul li {
text-align: center;
font-size: 14px;
margin-inline: 10px;
display: flex;
gap: 8px;
align-items: center;
color: #4e4d4d;
font-weight: 600;
}
.iCardModel01 .productItemInfo .realStatePrice {
font-size: 25px;
font-weight: 800;
margin-top: 10px;
}
.iCardModel01 .productItemInfo .productItemAdditional .realStateAddress {
font-size: 15px;
color: #444;
font-weight: 600;
}
.iCardModel01 .productItemInfo .productItemAdditional .realStateAddress span {
font-weight: 400;
}
.iCardModel01 .productItemInfo .productItemTitle {
font-weight: bold;
color: #333;
font-size: 20px;
margin-bottom: 5px;
margin-top: 0px;
}
.iCardModel01 .productItemInfo .productItemAdditional img {
filter: brightness(0) invert(0.6);
}
.iCardModel01 .productItemInfo .productItemDescription {
font-weight: 400;
font-size: 14px;
}
.iCardModel01 .productItemInfo .realStateLocation {
font-weight: bold;
background-color: #163d4f;
max-width: 90px;
text-align: center;
padding: 5px;
border-radius: 4px;
color: #fff;
font-size: 14px;
margin-top: 0px;
}
</style>';
// CSS PRODUTO FORMULÁRIO
$item .= '
<style>
.iCardModel01 .iForm01 {
padding: 20px;
border: solid 1px #eee;
border-radius: 5px;
box-shadow: 5px 5px 35px rgb(0 0 0 / 10%);
background-color: #fff;
}
.iCardModel01 .iForm01 label {
font-weight: 600;
}
.iCardModel01 .iForm01 input, .iCardModel01 .iForm01 textarea {
padding: 10px 10px;
background-color: #f9f9f9;
border: solid 1px #ccc;
border-radius: 3px;
font-size: 12px;
}
.iCardModel01 .iForm01 input::placeholder {
color: #999;
}
.iCardModel01 .iForm01 .formLink {
width: 100%;
background-color: #0071E3;
border-radius: 2px;
font-weight: 500;
padding: 10px 15px;
display: flex;
align-items: center;
text-transform: uppercase;
justify-content: center;
}
.iCardModel01 .iForm01 .formLink:hover {
background-color: #00638e;
color: #fff;
}
.iCardModel01 .productItemForm h1 {
display: none;
}
@media (max-width: 992px) {
.iCardModel01 .iForm01 {
padding: 10px;
border: solid 1px #eee;
border-radius: 5px;
box-shadow: none;
}
.iCardModel01 .productItemForm h1 {
display: block;
}
}
</style>';
// STYLE FOR RELATED PRODUCTS
$item .= '
<style>
/* CSS Cartões M1 Grade */
.iCardModel01 h1, .iCardModel01 h2 {
font-size: 25px;
margin-top: 0px;
}
.iCardModel01 .cardRealState {
border-radius: 10px;
box-shadow: 5px 5px 35px rgb(0 0 0 / 10%);
background-color: #fff;
}
.iCardModel01 .cardRealState a {
color: #1e1e1e;
display: flex;
gap: 10px;
flex-direction: column;
align-items: center;
}
.iCardModel01 .cardRealState .cardRealStateDsc {
padding: 20px;
position: relative;
padding-bottom: 15px;
}
.iCardModel01 .cardRealState .cardRealStateImage {
overflow: hidden;
height: 200px;
width: 100%;
}
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: inherit;
border-radius: 10px 10px 0px 0px;
}
.iCardModel01 .cardRealState .cardRealStateDsc p {
margin-block: 10px;
color: #000;
}
.iCardModel01 .cardRealState .cardRealStateDsc p.realStateLocal {
font-size: 15px;
color: #999;
}
.iCardModel01 .cardRealState .cardRealStateDsc .realStateComplement {
font-weight: bold;
color: #333;
font-size: 16px;
}
.iCardModel01 .cardRealState .cardRealStateDsc .realStateLocation {
font-weight: bold;
background-color: #163d4f;
max-width: 90px;
text-align: center;
padding: 5px;
border-radius: 4px;
color: #fff;
font-size: 14px;
}
.iCardModel01 .cardRealState .realStateId {
color: #444;
font-size: 14px;
font-weight: bold;
}
.iCardModel01 .cardRealState .realStatePrice {
font-size: 24px;
font-weight: bold;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li {
text-align: center;
font-size: 14px;
margin-inline: 10px;
display: flex;
gap: 8px;
align-items: center;
color: #888;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
gap: 10px;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li img {
filter: brightness(0) invert(0.6);
}
.iCardModel01 .realStateCity {
font-weight: bold;
}
@media (max-width: 992px) {
.iCardModel01 .row {
grid-gap: 5px;
}
.iCardModel01 .cardRealState .cardRealStateDsc p {
font-size: 14px;
margin-block: 6px;
}
.iCardModel01 .cardRealState .realStatePrice {
font-size: 16px;
}
.iCardModel01 .cardRealState .cardRealStateDsc {
padding: 10px;
padding-bottom: 10px;
}
.iCardModel01 .cardRealState .cardRealStateDsc ul li {
margin-inline: 0px;
gap: 5px;
}
.iCardModel01 .cardRealState .cardRealStateImage {
height: 200px;
width: 100%;
position: relative;
}
.iCardModel01 .cardRealState .realStateId {
font-size: 12px;
}
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: 100%;
border-radius: 0px;
position: absolute;
}
}
@media (max-width: 1399px) and (min-width: 552px) {
.iCardModel01 .cardRealState {
border-bottom: none;
border-radius: 0px;
padding-bottom: 10px;
margin-bottom: 5px;
background-color: transparent;
box-shadow: none;
}
}
@media (max-width: 552px) {
.iCardModel01 .cardRealState .cardRealStateImage img {
object-fit: cover;
object-position: center;
width: 100%;
height: inherit;
border-radius: 10px 10px 0px 0px;
}
.iCardModel01 .cardRealState a {
color: #1e1e1e;
display: flex;
gap: 10px;
align-items: center;
flex-direction: column;
}
.iCardModel01 .cardRealState {
margin-top: 15px;
min-height: 450px;
}
}
</style>';
// STYLE FOR BREADCRUMBS
$item .= '
<style>
.sectionBreadcrumbs {
background-color: #f9f9f9;
padding-block: 15px;
}
.sectionBreadcrumbs .container {
display: flex;
justify-content: space-between;
}
.sectionBreadcrumbs .container h1.pageIdentify {
font-size: 20px;
}
.sectionBreadcrumbs .container ol#breadcrumb {
display: flex;
gap: 10px;
list-style: none;
padding: 0px;
}
.sectionBreadcrumbs .container ol#breadcrumb li {
display: flex;
gap: 10px;
}
.sectionBreadcrumbs .container ol#breadcrumb li a {
color: #000;
}
.sectionBreadcrumbs .container ol#breadcrumb li a:hover {
color: #0098db;
}
.sectioNBreadcrumbs .container #pageName {
text-transform: capitalize;
}
@media (max-width: 772px) {
.sectionBreadcrumbs .container {
display: flex;
justify-content: space-between;
flex-direction: column;
flex-wrap: wrap;
align-items: center;
}
}
</style>';
$item .= '</head>
<body>
<!-- GTM Body -->
'.getBlockData(5168).'';
$item .= '
<main>
<!-- HEADER -->
'.getBlockData(5173).'
<div id="categoriesNavBar">
</div>
<!-- BREADCRUMBS -->
<section class="sectionBreadcrumbs">
<div class="container">
<h1 class="pageIdentify">'.$productData['productTitle'].'</h1>
<ol id="breadcrumb" vocab="http://schema.org/" typeof="BreadcrumbList">
<li property="itemListElement" id="linkInicial" typeof="ListItem">
<a property="item" id="pageInitialUrl" typeof="WebPage" href="">
<span property="name" id="pageInitialName">Inicial</span></a> /
<meta property="position" content="1">
</li>
<!--<li property="itemListElement" typeof="ListItem" class="lastItem">
<a property="item" id="pageUrl" typeof="WebPage" href="catalogo/index/">
<span property="name" class="active"><span id="pageName">Catálogo<br /></span></span></a> /
<meta property="position" content="2">
</li>-->
<li property="itemListElement" typeof="ListItem" class="lastItem">
<a property="item" id="pageUrl" typeof="WebPage" href="catalogo/cat'.$productData['productUrl'].'">
<span property="name" class="active"><strong id="pageName">'.$productData['productTitle'].'<br /></strong></span></a>
<meta property="position" content="3">
</li>
</ol>
</div>
</section>
<section class="iCardModel01 py-5">
<div class="container">
<div class="row">';
$productImg = '';
$productPrice = '';
$productData['productImg'] == '' ? $productImg = 'https://cdn.interago.com.br/img/png/w_0_q_8/1/mc/cdn//productGeneric' : $productImg = $productData['productImg'];
$productData['productPrice'] == '0.00' ? $productPrice = '' : $productPrice = $productData['productPrice'];
if($productPrice != '') {
$productPrice = 'R$'.$productPrice;
$productPrice = str_replace('.', ',', $productPrice);
}
// Getting Additional Information
$qtdQuartos = json_decode(getFilterData(47, $productData['productId']), true);
$qtdVagas = json_decode(getFilterData(48, $productData['productId']), true);
$qtdBanheiros = json_decode(getFilterData(49, $productData['productId']), true);
$areaM2 = json_decode(getFilterData(50, $productData['productId']), true);
$buyOrSell = json_decode(getFilterData(51, $productData['productId']), true);
$local = json_decode(getFilterData(52, $productData['productId']), true);
// Getting Medias Images
$additionalImages = getFilterData(46, $productData['productId']);
// PRODUCT IMAGE
$item .= '
<div class="col-12 col-lg-4 productItemImg">';
/* <picture>
<source media="(min-width:300px;)" srcset="'.str_replace('w_0_', 'w_300_', $productImg).'">
<source media="(min-width:500px;)" srcset="'.str_replace('w_0_', 'w_500_', $productImg).'">
<source media="(min-width:700px;)" srcset="'.str_replace('w_0_', 'w_700_', $productImg).'">
<img class="imgFluid" src="'.$productImg.'" alt="Imagem de '.$productData['productImg'].'" title="Imagem de '.$productData['productImg'].'" />
</picture> */
$item .= '<div id="mainCarousel" class="carousel">
<div
class="carousel__slide"
data-src="'.$productImg.'"
data-fancybox="gallery"
>
<img class="imgFluid" src="'.$productImg.'" />
</div>';
if($additionalImages != '{}') {
foreach($additionalImages as $k => $v) {
$media = json_decode($v, true);
$item .= '<div
class="carousel__slide"
data-src="'.$media['productmediasUrl'].'"
data-fancybox="gallery">
<img src="'.$media['productmediasUrl'].'" />
</div>';
}
}
$item .= '</div> <!--mainCarousel-->
<div id="thumbCarousel" class="carousel">
<div class="carousel__slide">
<img class="panzoom__content" src="'.$productImg.'" />
</div>';
if($additionalImages != '{}') {
foreach($additionalImages as $k => $v) {
$media = json_decode($v, true);
$item .= '<div class="carousel__slide">
<img class="panzoom__content" src="'.$media['productmediasUrl'].'" />
</div>';
}
}
$item .='</div> <!--thumbCarousel-->
</div> <!--4 productItemImg-->';
// PRODUCT INFO
$item .= '<div class="col-12 col-lg-4 productItemInfo">';
if(array_key_exists('filterValue', $buyOrSell)) {
if($buyOrSell['filterValue'] != '') {
$item .= '<p class="realStateLocation">'.$buyOrSell['filterValue'].'</p>';
}
}
$item .= '<h1 class="productItemTitle">'.$productData['productTitle'].'</h1>
<p class="realStatePrice" value="'.$productPrice.'">'.$productPrice.'</p>
<div class="productItemAdditional">';
if(array_key_exists('filterValue', $local)) {
if($local['filterValue']) {
$item .= '<p class="realStateAddress">Endereço: <span>'.$local['filterValue'].'</span></p>';
}
}
$item .= '<ul>';
if(array_key_exists('filterValue', $qtdQuartos)) {
if($qtdQuartos['filterValue']) {
$item .= '<li class="realStateBedroom"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-bed.svg" width="16" height="16" alt="Ícone Banheiro" /><span>'.$qtdQuartos['filterValue'].'</span> Quartos</li>';
}
}
if(array_key_exists('filterValue', $qtdVagas)) {
if($qtdVagas['filterValue']) {
$item .= '<li class="realStateGarage"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-car.svg" width="16" height="16" alt="Ícone Vagas" /><span>'.$qtdVagas['filterValue'].'</span> Vagas</li>';
}
}
if(array_key_exists('filterValue', $qtdBanheiros)) {
if($qtdBanheiros['filterValue']) {
$item .= '<li class="realStateWashroom"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-bath.svg" width="16" height="16" alt="Ícone Banheiro" /><span>'.$qtdBanheiros['filterValue'].'</span> Banheiro</li>';
}
}
if(array_key_exists('filterValue', $areaM2)) {
if($areaM2['filterValue']) {
$item .= '<li class="realStateArea"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-ruler-combined.svg" width="16" height="16" alt="Ícone Área" /><span>'.$areaM2['filterValue'].'</span> m²</li>';
}
}
$item .= '</ul>
</div>
<h3 class="productItemDescription">'.nl2br($productData['productDescription']).'</h3>
</div>';
// PRODUCT FORM
$item .= '<div class="col-12 col-lg-4 mt-lg-0 mt-3 productItemForm">
<h1>Tem interesse? Deixe seu contato</h1>
<div class="iForm01">
<script src="https://www.interago.com.br/App/Extensions/1/tag/components/form.js"></script>
</div>
</div>';
// PRODUCT RELATED
$item .= '<div class="col-12 mt-lg-0 mt-3 productsList">
<div class="row">';
$productListData = listCustomProducts($mainData['siteId'], $productData['categoryId'], 0, 3, 0, 0, $productData['productId'], "47,48,49,50,51,52");
if($productListData[0] != '{}') {
$item .= '<div class="col-12">
<h1>Produtos Relacionados</h1>
</div>';
foreach($productListData as $k => $v) {
$product = json_decode($v, true);
$productImg = '';
$productPrice = '';
$product['img'] == '' ? $productImg = 'https://cdn.interago.com.br/img/png/w_0_q_8/1/mc/cdn//productGeneric' : $productImg = $product['img'];
$productImg = str_replace('w_0_', 'w_380_', $productImg);
$product['price'] == '0.00' ? $productPrice = '' : $productPrice = $product['price'];
// Bring product additional information - lines 910 ~ 1030
$filterKey = "47"; /* Quartos */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdQuartos = $product[$filterKey]["filterValue"];
} else {
$qtdQuartos = '';
}
} else {
$qtdQuartos = '';
}
$filterKey = "48"; /* Vagas */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdVagas = $product[$filterKey]["filterValue"];
} else {
$qtdVagas = '';
}
} else {
$qtdVagas = '';
}
$filterKey = "49"; /* Banheiros */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$qtdBanheiros = $product[$filterKey]["filterValue"];
} else {
$qtdBanheiros = '';
}
} else {
$qtdBanheiros = '';
}
$filterKey = "50"; /* Área M2 */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$areaM2 = $product[$filterKey]["filterValue"];
} else {
$areaM2 = '';
}
} else {
$areaM2 = '';
}
$filterKey = "51"; /* Comprar ou Alugar */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$buyOrSell = $product[$filterKey]["filterValue"];
} else {
$buyOrSell = '';
}
} else {
$buyOrSell = '';
}
$filterKey = "52"; /* Localização */
if(array_key_exists($filterKey, $product)) {
if($product[$filterKey]["filterValue"] != '') {
$local = $product[$filterKey]["filterValue"];
} else {
$local = '';
}
} else {
$local = '';
}
$item .= '
<div class="col-lg-4 col-12">
<div class="cardRealState">
<a href="'.$mainData['configPath'].'/item/'.$product['url'].'" title="Acessar o produto '.$product['title'].'">
<div class="cardRealStateImage">
<img class="imgFluid" src="'.$productImg.'" alt="Imagem do produto '.$product['title'].'">
</div>
<div class="cardRealStateDsc">
<span class="realStateId">23955</span>';
if ($buyOrSell != "") {
$item .= '<p class="realStateLocation">'.$buyOrSell.'</p>';
}
$item .= '<p><span class="realStateComplement">'.$product['title'].'</p>';
if ($local != "") {
$item .= '<p class="realStateLocal">'.$local.'</p>';
}
$item .= '<h2 class="realStatePrice" value="'.$productPrice.'">'.$productPrice.'</h2>
<ul>';
if ($qtdQuartos != "") {
$item .= '<li class="realStateBedroom"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-bed.svg" width="16" height="16" alt="Ícone Banheiro" /><span>'.$qtdQuartos.'</span> Quartos</li>';
}
if ($qtdVagas != "") {
$item .= '<li class="realStateGarage"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-car.svg" width="16" height="16" alt="Ícone Vagas" /><span>'.$qtdVagas.'</span> Vagas</li>';
}
if ($qtdBanheiros != "") {
$item .= '<li class="realStateWashroom"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-bath.svg" width="16" height="16" alt="Ícone Banheiro" /><span>'.$qtdBanheiros.'</span> Banheiro</li>';
}
if ($areaM2 != "") {
$item .= '<li class="realStateArea"><img src="https://www.interago.com.br/App/Sites/1/mc/001-Componentes - Mídias/svg-icons/Icon awesome-ruler-combined.svg" width="16" height="16" alt="Ícone Área" /><span>'.$areaM2.'</span> m²</li>';
}
$item .= '</ul>
</div>
</a>
</div> <!-- cardrealState -->
</div>';
}
}
$item .= '</div>
</div>
</div>
</div>
</div>
</main>
'.getBlockData(5175).'
</body>
'.$mainData['configBody'].'
'.getBlockData(5174).'
<script>
if (navigator.onLine) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// LOAD MENU WITH NAVBAR - DELETE BELOW IF DONT USE
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
if(xmlhttp.status == 200){
let data = xmlhttp.responseText;
document.getElementById("categoriesNavBar").innerHTML = data;
console.log("menu ok");
}
}
}
let url = "'.$mainData['configUrl'].'/menu.html"
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setTimeout = 6000; //6s
xmlhttp.ontimeout = function() {
console.log("🚨 tempo esgotado - impossível enviar");
}
xmlhttp.send();
} else {
console.log("🚨 navegador offline");
}
</script>
<!-- FANCYBOX JS -->
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.umd.js"></script>
<script>
// Initialise Carousel
const mainCarousel = new Carousel(document.querySelector("#mainCarousel"), {
Dots: false,
});
// Thumbnails
const thumbCarousel = new Carousel(document.querySelector("#thumbCarousel"), {
Sync: {
target: mainCarousel,
friction: 0,
},
Dots: false,
Navigation: false,
center: true,
slidesPerPage: 1,
infinite: false,
});
// Customize Fancybox
Fancybox.bind(\'[data-fancybox="gallery"]\', {
Carousel: {
on: {
change: (that) => {
mainCarousel.slideTo(mainCarousel.findPageForSlide(that.page), {
friction: 0,
});
},
},
},
})
</script>
<!-- Price Format BRL -->
<script>
document.addEventListener("DOMContentLoaded", function() {
var prices = document.querySelectorAll(\'.realStatePrice:not(.no-value)\');
for (var i = 0; i < prices.length; i++) {
var actualPrice = prices[i].innerHTML.replace(\'R$\',\'\');
var f = parseInt(actualPrice).toLocaleString(\'pt-br\',{style: \'currency\', currency: \'BRL\'});
prices[i].innerHTML = f;
}
});
</script>
</html>
';
?>
PÁGINA DE BUSCA:
<?php
$data = '
<?php
$method = \'subtag\';
if(isset($_GET[\'m\'])) {
$method = $_GET[\'m\'];
}
$query = \'Assuntos\';
if(isset($_GET[\'q\'])) {
if($_GET[\'q\'] != \'\') {
$query = $_GET[\'q\'];
}
}
?>
<!DOCTYPE HTML>
<html lang="pt-br">
<head>
'.$mainData['configHead'].'
<meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="ie=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php echo $query; ?> em '.$mainData['siteName'].'</title>
<meta name="description" content="Veja mais sobre <?php echo $query; ?> aqui em '.$mainData['siteName'].' para encontrar o que você procura">
<link rel="canonical" href="'.$mainData['configPath'].'/q.php?m=<?php echo $method; ?>&q=<?php echo $query; ?>">
<base href="'.$mainData['configPath'].'">
<meta property="og:type" content="article">
<meta property="og:description" content="Veja mais sobre <?php echo $query; ?> aqui em '.$mainData['siteName'].' para encontrar o que você procura">
<meta property="og:title" content="<?php echo $query; ?> em '.$mainData['siteName'].'">
<meta property="og:locale" content="pt_BR">
<meta property="og:site_name" content="'.$mainData['siteName'].'">
<meta property="og:image" content="https://cdn.interago.com.br/img/png/w_0_q_8/1/mc//interago">
<meta property="og:image:width" content="630">
<meta property="og:url" content="'.$mainData['configPath'].'/q.php?m=<?php echo $method; ?>&q=<?php echo $query; ?>">
<script data-schema="Organization" type="application/ld+json">
{
"@type":"Organization",
"@context":"http://schema.org",
"name": "'.$mainData['siteName'].'",
"url": "https://'.$mainData['siteDomain'].'",
"logo": {
"@type": "ImageObject",
"url": "https://cdn.interago.com.br/img/png/w_0_q_8/1/mc//interago",
"width": "1000",
"height": "1000"
}
}
</script>';
//custom css
$data .= '
<!-- Bootstrap -->
'.getBlockData(5170).'
<!-- Global CSS -->
'.getBlockData(5171).'
<!-- Nav CSS -->
'.getBlockData(5172).'
<!-- GTM Head -->
'.getBlockData(5167).'';
// STYLE FOR CATEGORIES NAVBAR
$data .='
<style>
/*DEFAULT MENU*/
#categoriesNavBar #catalogToggleButton {
display: none;
}
#categoriesNavBar {
background-color: #163d4f;
box-shadow: 0px 10px 10px rgb(0 0 0 / 15%);
}
#categoriesNavBar .menuItemQtd {
display: none;
}
#categoriesNavBar .menu {
display: flex;
align-items: center;
width: 100%;
justify-content: flex-start;
margin-block: 0px;
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
}
#categoriesNavBar .menuList {
list-style: none;
display: flex;
margin: 0px;
}
#categoriesNavBar .menuItem a {
text-decoration: none;
color: #fff;
font-size: 14px;
transition: 0.3s ease;
display: block;
height: 100%;
padding: 15px;
}
#categoriesNavBar .menuItem a:hover {
color: #fff;
background-color: #07212b;
}
@media (min-width: 576px) {
#categoriesNavBar .menu {
max-width: 540px;
}
}
@media (min-width: 768px) {
#categoriesNavBar .menu {
max-width: 720px;
}
}
@media (min-width: 992px) {
#categoriesNavBar .menu {
max-width: 960px;
}
}
@media (min-width: 1200px) {
#categoriesNavBar .menu {
max-width: 1140px;
}
}
@media (min-width: 1400px) {
#categoriesNavBar .menu {
max-width: 1320px;
}
}
@media (max-width: 992px) {
/* Scroll Navbar */
#categoriesNavBar .menu {
white-space: nowrap;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
scroll-snap-type: x mandatory;
overflow-x: scroll;
}
/* Width */
#categoriesNavBar .menu::-webkit-scrollbar {
width: 3px;
height: 3px;
}
/* Track */
#categoriesNavBar .menu::-webkit-scrollbar-track {
background: #f1f1f1;
}
/* Handle */
#categoriesNavBar .menu::-webkit-scrollbar-thumb {
background: #888;
}
/* Handle on hover */
#categoriesNavBar .menu::-webkit-scrollbar-thumb:hover {
background: #555;
}
}
</style>';
// STYLE FOR LATERAL MENU
$data .= '
<style>
/* CSS MENU LATERAL */
.iCardModel01 .sideMenu {
padding: 15px 15px;
border-radius: 5px;
background-color: #fff;
border: solid 1px #eee;
height: 100%;
}
.iCardModel01 .sideMenu .menuList {
margin: 0px;
}
.iCardModel01 .sideMenu .menuList li {
border-bottom: solid 1px #eee;
padding: 10px 0px;
}
.iCardModel01 .sideMenu .menuList li:last-child {
border-bottom: none;
}
.iCardModel01 .sideMenu .menuList li a {
color: #1e1e1e;
font-weight: 600;
}
.iCardModel01 .sideMenu .menuList li a:hover {
color: #0098db;
}
.iCardModel01 .sideMenu .menuList li .menuItemQtd {
margin-left: 10px;
background-color: #163d4f;
padding: 0px;
width: 18px;
height: 18px;
line-height: 10px;
border-radius: 50px;
font-size: 12px;
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
}
.iCardModel01 .menuToogle {
display: none;
}
@media (max-width: 992px) {
.iCardModel01 .sideMenu {
padding: 15px 15px;
border-radius: 5px;
background-color: #fff;
border: solid 1px #eee;
height: auto;
margin-bottom: 25px;
}
.iCardModel01 .menuToogle {
display: block;
}
.iCardModel01 .sideMenu #catalogMenu {
visibility: hidden;
opacity: 0;
transition: all 0.3s ease-in-out;
overflow: hidden;
height: 0px;
}
.iCardModel01 .sideMenu #catalogToggleButton {
padding: 10px;
background-color: #0071e3;
color: #fff;
font-weight: 600;
border-radius: 5px;
cursor: pointer;
}
}
</style>';
// STYLE FOR CATALOG IN LIST
$data .= '
<style>
/* CSS Cartões M1 Lista */
.iCardModel01 h3 {
font-size: 25px;
margin-top: 0px;
}
.iCardModel01 #loadDynamicData .subtagLink {
border-radius: 10px;
box-shadow: 5px 5px 35px rgb(0 0 0 / 10%);
background-color: #fff;
display: flex;
margin-bottom: 30px;
color: #000;
width: 100%;
overflow: hidden;
}
.iCardModel01 #loadDynamicData .subTagArticle {
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: center;
width: 100%;
height: 170px;
}
.iCardModel01 #loadDynamicData .subTagArticleImage {
width: 20%;
float: left;
height: 100%;
object-fit: cover;
}
.iCardModel01 #loadDynamicData p {
width: 80%;
float: left;
padding-left: 20px;
margin-bottom: 0px;
margin-top: 10px;
}
.iCardModel01 #loadDynamicData p.subTagArticleP {
font-weight: bold;
color: #333;
font-size: 16px;
margin-top: 0px;
}
.iCardModel01 #loadDynamicData p.subTagArticlePrice {
font-size: 24px;
font-weight: bold;
}
.iCardModel01 #loadDynamicData p.subTagArticleDescription {
font-size: 15px;
color: #999;
display: -webkit-box;
max-width: 485px;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
@media (max-width: 768px) {
.iCardModel01 #loadDynamicData .subtagLink {
border-radius: 10px;
box-shadow: 5px 5px 35px rgb(0 0 0 / 10%);
background-color: #fff;
display: flex;
margin-bottom: 30px;
color: #000;
width: 100%;
overflow: hidden;
flex-direction: column;
}
.iCardModel01 #loadDynamicData .subTagArticle {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
width: 100%;
height: auto;
padding-bottom: 15px;
}
.iCardModel01 #loadDynamicData .subTagArticleImage {
width: 100%;
float: none;
height: 150px;
object-fit: cover;
}
.iCardModel01 #loadDynamicData p {
width: 100%;
float: none;
padding-inline: 20px;
margin-bottom: 0px;
margin-top: 10px;
}
.iCardModel01 #loadDynamicData p.subTagArticleP {
font-weight: bold;
color: #333;
font-size: 16px;
margin-top: 15px;
}
.iCardModel01 #loadDynamicData p.subTagArticleDescription {
font-size: 15px;
color: #999;
display: -webkit-box;
max-width: 485px;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
}
@media (max-width: 375px) {
.iCardModel01 #loadDynamicData p.subTagArticleDescription {
font-size: 15px;
color: #999;
display: -webkit-box;
max-width: 485px;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
}
</style>';
// STYLE FOR BREADCRUMBS
$data .= '
<style>
.sectionBreadcrumbs {
background-color: #f9f9f9;
padding-block: 15px;
}
.sectionBreadcrumbs .container {
display: flex;
justify-content: space-between;
}
.sectionBreadcrumbs .container h1.pageIdentify {
font-size: 20px;
}
.sectionBreadcrumbs .container ol#breadcrumb {
display: flex;
gap: 10px;
list-style: none;
padding: 0px;
}
.sectionBreadcrumbs .container ol#breadcrumb li {
display: flex;
gap: 10px;
}
.sectionBreadcrumbs .container ol#breadcrumb li a {
color: #000;
}
.sectionBreadcrumbs .container ol#breadcrumb li a:hover {
color: #0098db;
}
.sectioNBreadcrumbs .container #pageName {
text-transform: capitalize;
}
@media (max-width: 772px) {
.sectionBreadcrumbs .container {
display: flex;
justify-content: space-between;
flex-direction: column;
flex-wrap: wrap;
align-items: center;
}
}
</style>
';
$data .= '</head>
<body>
<!-- GTM Body -->
'.getBlockData(5168).'';
$data .='
<main>
'.getBlockData(5173).'
<div id="categoriesNavBar">
</div>
<!-- BREADCRUMBS -->
<section class="sectionBreadcrumbs">
<div class="container">
<h1 class="pageIdentify">Resultado para <?php echo $query; ?></h1>
<ol id="breadcrumb" vocab="http://schema.org/" typeof="BreadcrumbList">
<li property="itemListElement" id="linkInicial" typeof="ListItem">
<a property="item" id="pageInitialUrl" typeof="WebPage" href="">
<span property="name" id="pageInitialName">Inicial</span></a> /
<meta property="position" content="1">
</li>
<!--<li property="itemListElement" typeof="ListItem" class="lastItem">
<a property="item" id="pageUrl" typeof="WebPage" href="catalogo/index/">
<span property="name" class="active"><span id="pageName">Catálogo<br /></span></span></a> /
<meta property="position" content="2">
</li>-->
<li property="itemListElement" typeof="ListItem" class="lastItem">
<a property="item" id="pageUrl" typeof="WebPage">
<span property="name" class="active"><strong id="pageName"><?php echo $query; ?><br /></strong></span></a>
<meta property="position" content="3">
</li>
</ol>
</div>
</section>
<section class="iCardModel01 py-5">
<div class="container">
<section id="loadDynamicData"></section>';
$data .= '
</div> <!--container-->
</section>
</main>
'.getBlockData(5175).'
</body>
'.$mainData['configBody'].'
'.getBlockData(5174).'
<script src="https://www.interago.com.br/App/Extensions/5/tag/search.js" wId="'.$mainData['siteId'].'" wD="'.$mainData['siteDomain'].'" st="<?php echo $query; ?>" limit="0" m="<?php echo $method; ?>" interval="10"></script>
<script>
loadMore();
</script>
<script>
if (navigator.onLine) {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
if(xmlhttp.status == 200){
let data = xmlhttp.responseText;
document.getElementById("categoriesNavBar").innerHTML = data;
console.log("menu ok");
//menu toggle
function menuToggle() {
let catalogToggleButton = document.querySelector(".sideMenu #catalogToggleButton");
let catalogMenu = document.querySelector(".sideMenu #catalogMenu");
let menuToogleLabel = document.querySelector(".sideMenu #menuToogleLabel");
let width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
if(width < 766) {
console.log("mobile");
console.log(catalogToggleButton);
catalogToggleButton.style.visibility = "visible";
catalogMenu.style.visibility = "hidden";
catalogToggleButton.addEventListener("click", () => {
if ( catalogMenu.style.visibility == "" || catalogMenu.style.visibility == "visible" ) {
//hide
console.log("show");
catalogMenu.style.visibility = "hidden";
catalogMenu.style.opacity = "0";
catalogMenu.style.height = "0px";
menuToogleLabel.innerHTML = "+ Expandir Menu";
catalogMenu.classList.remove("menuTransition");
}else{
//show
console.log("hide");
catalogMenu.style.visibility = "visible";
catalogMenu.style.opacity = "1";
catalogMenu.style.height = "auto";
menuToogleLabel.innerHTML = "- Esconder Menu";
catalogMenu.classList.add("menuTransition");
}
})
}
else {
catalogMenu.style.display = "block";
}
}
menuToggle();
}
}
}
let url = "'.$mainData['configPath'].'/menu.html"
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setTimeout = 6000; //6s
xmlhttp.ontimeout = function() {
console.log("🚨 tempo esgotado - impossível enviar");
}
xmlhttp.send();
} else {
console.log("🚨 navegador offline");
}
</script>
<!-- Price Format BRL -->
<script>
document.addEventListener("DOMContentLoaded", function() {
var prices = document.querySelectorAll(\'.realStatePrice:not(.no-value)\');
for (var i = 0; i < prices.length; i++) {
var actualPrice = prices[i].innerHTML.replace(\'R$\',\'\');
var f = parseInt(actualPrice).toLocaleString(\'pt-br\',{style: \'currency\', currency: \'BRL\'});
prices[i].innerHTML = f;
}
});
</script>
</html>
';
?>
Você também pode gostar de ler
Guia completo para o catálogo de produtos (Extensão)
Instalação, passo a passo e guia prático para utilizar o catálogo no site dos clientes
Em 14/06/2022 às 13h38 - Atualizado em 11/04/2025 às 13h17
Guia da Extensão #11 Promoções
Uso da extensão que gerencia a exibição de preços, desconto por meios de pagamento, categorias e produtos e cupom (em breve)
Em 04/09/2023 às 10h41 - Atualizado em 12/02/2025 às 09h16
Carrinho de compras cart2.js
Extensão 6 do Interago para habilitar o uso de carrinho de compras ao website
Em 29/11/2022 às 12h54 - Atualizado em 03/02/2025 às 11h54
Buscas e Pesquisas no Catálogo de produtos
Script ativo é o search3.js. Buscas em cache com visualização no painel.
Em 01/03/2023 às 09h23 - Atualizado em 16/12/2024 às 11h48
Extensão #9 Envios e cálculos de frete
Extensão que utiliza a Fretnet, Correios, controle por estados e configurações gerais para controle de envios
Em 23/03/2023 às 20h22 - Atualizado em 15/09/2023 às 09h49
Checkout e Pedidos - Extensão #10
Guia para lojas virtuais utilizarem a extensão de checkout e suas especificações
Em 01/06/2023 às 14h35 - Atualizado em 18/08/2023 às 08h36
Estoque do Catálogo de Produtos - Layout, Uso e Consultas
Como adicionar informações de estoque no layoute realizar consultas assíncronas
Em 13/02/2023 às 14h40 - Atualizado em 07/08/2023 às 22h28
Catálogo de Produtos - Listar Produtos com AJAX
Como gerar listas de produtos diretamente da base de dados por ajax
Em 09/08/2022 às 11h03 - Atualizado em 26/12/2022 às 09h37
001. Catálogo em Lista - Formato Imobiliária
Visual de todas as páginas do catálogo de produtos em formato de lista - Ideal para imobiliárias
Em 29/06/2022 às 11h22 - Atualizado em 16/08/2022 às 09h09