Personalización De Componente Ubicacion - Homlity Herramienta Para Páginas Web
View Categories

Personalización de Componente ubicacion

3 minutos de lectura

Este componente permite visualizar la ubicación del inmueble en un mapa interactivo con pestañas que alternan entre el mapa Leaflet y Google Street View.


🖼️ Ejemplo Visual #

mapa Homlity Herramienta para páginas web

📁 Ruta del Componente para Personalizar #

Ubicación en el plugin:

bashCopiarEditarcomponentes/detalleInmueble/ubicacion.php

Ruta para sobrescribirlo en tu tema hijo:

CopiarEditarvisualinmueble/
├── templates/
│   └── inmuebles/
│       └── componentes/
│           └── detalleInmueble/
│               └── ubicacion.php

🧩 Código Base #

<!--- <h3 class="visualinmueble-titulos-ubicacion">Ubicación de <?php // echo $nombre; ?></h3> ---->
<section>
<?php visualinmu_load_template("inmuebles/componentes/detalleinmueble/ubicacion-header.php",["mapa" => $mapa]);?>
    <ul class="nav nav-pills mb-3 tabs-media" id="pills-tab" role="tablist">
        <li class="nav-item" role="presentation">
            <button onclick="gtag('event', 'prop_mapa_tab', {
    'origin': 'property_ubicacion',
    'label': 'Mapa inmueble',
    'value': '<?php echo $nombre; ?>' // Este valor puede ser un número
  });" class="nav-link active" id="pills-home-tab" data-bs-toggle="pill" data-bs-target="#mapa" type="button"
                role="tab" aria-controls="mapa" aria-selected="true">
                <i class="icon icon-uniE9C1"></i> Mapa
            </button>
        </li>
        <li class="nav-item" role="presentation">
            <button onclick="gtag('event', 'prop_streeview_tab', {
    'origin': 'property_ubicacion',
    'label': 'Mapa inmueble',
    'value': '<?php echo $nombre; ?>' // Este valor puede ser un número
  });" class="nav-link" id="pills-street-view-tab" data-bs-toggle="pill" data-bs-target="#street-view" type="button"
                role="tab" aria-controls="street-view" aria-selected="true">
                <i class="icon icon-uniE91B"></i> Street View</a>
            </button>
        </li>
    </ul>
    <div class="tab-content" id="pills-tabContent">
        <div class="tab-pane fade show active" id="mapa" role="tabpanel" aria-labelledby="mapa-tab">
            <?php visualinmu_load_template("inmuebles/componentes/search/mapa.php", ["inmuebles" => $mapa['propiedadesSimilares']]); ?>
        </div>
        <div class="tab-pane fade" id="street-view" role="tabpanel" aria-labelledby="street-view-tab">
            <iframe
                src="https://www.google.com/maps/embed?pb=!4v1638990616651!6m8!1m7!1toZz0mw!2m2!1d<?php echo $mapa['latitud']; ?>!2d<?php echo $mapa['longitud']; ?>!3f90!4f0!5f0.7820865974627469"
                style="border:0; width: 100%; height: 60vh;" allowfullscreen="" loading="lazy"></iframe>
        </div>
    </div>
</section>

🎨 ¿Qué puedes personalizar? #

Elemento¿Se puede personalizar?Cómo hacerlo
Título superior✅ (comentado en el código)Descomentar o reemplazar el <h3>
Íconos de pestañasCambia las clases icon-uniE9C1 y icon-uniE91B
Colores de botones/tabUsa clases de Bootstrap (nav-link, active) o añade clases propias
Estilo del mapa (Leaflet)Edita mapa.php incluido desde search/mapa.php
Street View de GoogleModifica el iframe embebido o su estilo (height, border)
Mapa dinámico con marcadoresSe alimenta con propiedadesSimilares, puedes customizar esa lógica
Etiquetas de pestañasCambia el texto "Mapa" y "Street View" directamente

⚠️ Restricciones #

Elemento¿Se puede?Notas
Cambiar motor de mapa (ej. Google Maps en vez de Leaflet)🚫 (por defecto)Requiere reescribir lógica interna y API
Cambiar orden de pestañas dinámicamente🚫Está fijo en el HTML, pero puedes mover manualmente
Personalización de propiedadesSimilares⚠️Está ligada al plugin, podrías sobrescribir mapa.php para modificar su visualización

💡 Tips adicionales #

  • Añadir estilos personalizados con clases como .tabs-media para adaptar a la estética de tu sitio.
  • Agrega una leyenda o tooltip si quieres contextualizar el punto del mapa.
  • Puedes ocultar Street View si no hay coordenadas válidas o si no es necesario.
  • La función visualinmu_load_template() te permite mantener el código limpio dividiendo el componente en partes reutilizables.

Funciona con BetterDocs