{% extends 'base.html.twig' %}
{% block title %} - {{ agent.name }}{% endblock %}
{% block meta_description %}{{ agent.bioCleaned|raw }}{% endblock %}
{% block content %}
{#
<section class="container-fluid p-0">
<div id="agent_estates_map" class="map_container"></div>
</section>
#}
<section id="agent" style="padding-top:60px ;background-image: url({{ asset('assets/media/agents/agent_bg.jpg') | imagine_filter('runtime', {"thumbnail": {"size": [2000 ], 'mode': 'outbound' }})}}); background-position: center center; background-size: cover;background-repeat: no-repeat;" >
<div class="container bg-white">
<div class="row pt-3">
<div class="col-md-4 col-lg-6 pt-1 position-relative mb-3 mb-md-5 ">
<div class="portrait border">
{% if agent.video != "" %}
<video
id="video_agent"
poster="{{ vich_uploader_asset(agent, 'imageFile')|imagine_filter('agent_thumb') }}"
class="video-js vjs-16-9 shadow"
style="width:100%;">
<source src="{{ agent.video }}" type="video/mp4"></source>
</video>
<div id="video_buttons">
<button id="btn_sound" class="vjs-icon-volume-mute"></button>
<button id="btn_full_screen" class="vjs-icon-fullscreen-enter" data-fancybox href="{{ agent.video }}"></button>
</div>
{% else %}
<img class="img-fluid" src="{{ vich_uploader_asset(agent, 'imageFile')|imagine_filter('agent_thumb') }}" />
{% endif %}
</div>
</div>
<div class="col-md-8 col-lg-6 pt-2">
<h1 class="h3 font-weight-bold">{{ agent.name }}</h1>
<p><i class="icon-location"></i>{{ agent.secteur }}</p>
{% if agent.bio != "" %}
<div class="bio pb-3_">{{ agent.bio|raw }}</div>
{% else %}
<div class="bio pb-3_">
<p class="pb-3_">Nous vous proposons d'associer l'expérience et la technique pour réussir votre projet immobilier. Des outils performants (photos professionnelles, visite virtuelle, plans, aménagement virtuel, etc...) et une connaissance du marché immobilier local vous garantissent une transaction dans les meilleures conditions.</p>
<p>Ne laissez pas le hasard décider de votre avenir !</p>
</div>
{% endif %}
<div class="d-flex justify-content-between mb-3">
<div>
<a id="realtor_call" class="btn btn-sm btn-primary mr-3" href="tel:{{ agent.telephone }}"> <i class="icon-phone-left"></i> <span class="d-none d-xl-inline"></span>{{ agent.telephone|phone }}</a>
{% if agent.whatsapp != "" %}
<a id="realtor_whatsapp" class="btn btn-sm btn-success" href="https://api.whatsapp.com/send?phone={{ agent.whatsapp }}"> <i class="icon-webcam"></i> WhatsApp</a>
{% endif %}
</div>
<div class="text-lg-right">
<button class="btn_social btn_contact_agent btn btn-outline-primary" title="contact" ><i class="icon-mail"></i></button>
{% if agent.facebook != "" %}
<a class="btn_social btn_facebook" title="facebook" target="_blank" href="{{ agent.facebook }}"><i class="icon-facebook"></i></a>
{% else %}
<a class="btn_social btn_facebook" title="facebook" target="_blank" href="{{ socials.facebook }}"><i class="icon-facebook"></i></a>
{% endif %}
{# {% if agent.twitter != "" %}
<a class="btn_social btn_twitter" title="twitter" target="_blank" href="{{ agent.twitter }}"><i class="icon-twitter"></i></a>
{% else %}
<a class="btn_social btn_twitter" title="twitter" target="_blank" href="{{ socials.twitter }}"><i class="icon-twitter"></i></a>
{% endif %}
#}
{% if agent.linkedin != "" %}
<a class="btn_social btn_linkedin" title="linkedin" target="_blank" href="{{ agent.linkedin }}"><i class="icon-linkedin"></i></a>
{% else %}
<a class="btn_social btn_linkedin" title="linkedin" target="_blank" href="{{ socials.linkedin }}"><i class="icon-linkedin"></i></a>
{% endif %}
{# <a class="btn_social btn_linkedin" title="linkedin" target="_blank" href="{{ socials.linkedin }}"><i class="icon-linkedin"></i></a> #}
{% if agent.instagram != "" %}
<a class="btn_social btn_instagram" title="instagram" target="_blank" href="{{ agent.instagram }}"><i class="icon-instagram"></i></a>
{% else %}
<a class="btn_social btn_instagram" title="instagram" target="_blank" href="{{ socials.instagram }}"><i class="icon-instagram"></i></a>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</section>
<section id="agent_estimer" class="container pt-5">
<div class="row">
<div class="col-md-8">
<iframe id="estimation_iframe" src="https://modelo-insight.lovable.app" scrolling="yes" frameborder="no" style="overflow: hidden; height: 470px;"></iframe>
</div>
<div class="col-md-4 text-secondary small d-flex flex-column">
<div class="card mt-4 mb-4">
<div class="card-body">
<h6>Pourquoi estimer ?</h6>
<ul class="list-unstyled mb-0">
<li>Une fourchette de prix en 2 minutes</li>
<li>Des données de marché localisées</li>
<li>Un conseiller vous recontacte pour affiner</li>
<li>Vos données restent confidentielles</li>
</ul>
</div>
</div>
<div class="bg-dark rounded text-white text-center p-4">
<h6 class="text-white mb-3">Vous préférez un échange directe ?</h6>
<a class="btn btn-sm btn-light" href="tel:{{ agent.telephone }}"> <i class="icon-phone-left"></i> <span class="d-none d-xl-inline"></span>{{ agent.telephone|phone }}</a>
</div>
</div>
</div>
</section>
<section id="contact_agent" class="container pt-5">
<div class="card bg-lighter border-primary">
<div class="card-body ">
<div class="clearfix mx-1">
<h4 id="show_contact" class="lora-600 float-lg-left mb-3">Contactez-moi !</h4>
<div class="float-lg-right ">
<button type="button" class="btn btn-primary mb-3" data-toggle="collapse" data-target="#contact_form_rdv" aria-expanded="false" aria-controls="contact_form_rdv"><i class="icon-calendar"></i> Proposer un RDV ?</button>
</div>
</div>
{{ render(controller('App\\Controller\\Front\\MessageController::contactForm', { 'context': 'agent', 'display' : 'agent_page', 'agent_id': agent.id })) }}
</div>
</div>
</section>
{% if reviews|length > 0 %}
<section class="container pt-5">
<div class="row">
<div class="col-md-4">
<div id="os_card" class="card m-1">
<div class="card-body text-center d-flex align-items-center justify-content-center" style="min-height:186px">
<div>
<div class="rating_ratio">{{ agent.rating |number_format(1, ',', ' ') }}<span>/5</span></div>
<img class="d-inline-block my-3" src="{{ asset('assets/img/OS-Blanc-1024x413.png') }}" height="43" width="107" />
<p class="mb-0"><a href="https://www.opinionsystem.fr/fr-fr/certificate/c/{{ agent.cosId }}" target="_blank">basé sur {{ reviews|length }} avis clients</a></p>
</div>
</div>
</div>
</div>
<div class="col-md-8">
<div id="testimonies" class="owl-carousel small comments">
{% for review in reviews %}
<div class="card m-1">
<div class="card-header d-flex bg-white px-2">
<img class="mr-2" width="36px" height="36px" src="{{ asset('assets/media/accueil/OIP.png') }}">
<div><b>{{ review.author }}</b><div class="text-secondary">{{ review.shortSubject }}</div></div>
</div>
<div class="card-body text-secondary p-2" >
<cite class="card-text">{{ review.shortComment }}</cite>
<div class="d-flex justify-content-between align-items-center pt-2">
{{ review.rating|stars }}
<div class="date">{{ review.date|format_date(locale='fr') }}</div>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</section>
{% endif %}
<section class="container pt-5">
<h4 class="lora-600">Liste de bien(s)</h4>
<ul class="nav nav-pills mb-3" id="estates_tab" role="tablist">
<li class="nav-item" role="presentation">
<a class="nav-link active" id="on_sale
_estates-tab" data-toggle="tab" href="#on_sale_estates" role="tab" aria-controls="on_sale_estates" aria-selected="false">Ventes ({{ totaux.Ventes }})</a>
</li>
<li class="nav-item" role="presentation">
<a class="nav-link{% if totaux.Vendus == 0 %} disabled{% endif %}" id="sold_estates-tab" data-toggle="tab" href="#sold_estates" role="tab" aria-controls="sold_estates" aria-selected="false">Vendus ({{ totaux.Vendus }})</a>
</li>
</ul>
<div class="tab-content" id="estates_tabContent">
<div class="tab-pane fade show active" id="on_sale_estates" role="tabpanel" aria-labelledby="on_sale_estates-tab">
<div class="row pt-4 align-items-stretch estates_container">
{% for estate in estates %}
{% if estate.statut not in ["Sous compromis", "Vendu"] %}
{% include 'front/_common/_estate.html.twig' with {'col': 'col-md-6 col-lg-4', 'with_agent' : false, 'with_modal' : true} %}
{% endif %}
{% endfor %}
</div>
</div>
<div class="tab-pane fade" id="sold_estates" role="tabpanel" aria-labelledby="sold_estates-tab">
<div class="row pt-4 align-items-stretch estates_container">
{% for estate in estates %}
{% if estate.statut in ["Sous compromis", "Vendu"] %}
{% include 'front/_common/_estate.html.twig' with {'col': 'col-md-6 col-lg-4', 'with_agent' : false, 'with_modal' : false, 'not_hover' : true, 'with_carrousel':false} %}
{% endif %}
{% endfor %}
</div>
</div>
</div>
</section>
<div id="contact_modal_agent" class="modal contact_modal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-dialog-centered modal-xl" role="document">
<div class="modal-content">
<div class="modal-body p-0">
<div class="container-fluid">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<div class="row d-flex">
<div class="col-lg-5 col-xl-6 bg-dark px-0">
<div class="text-white h-100">
<div class="d-flex flex-column h-100">
<img class="img-fluid " src="{{ vich_uploader_asset(agent, 'imageFile')|imagine_filter('agent_thumb') }}" />
<div class="py-4 px-4">
<h4 class="lora m-0 text-white">{{ agent.name }}</h4>
<ul id="contact_modal_agent_" class="list-unstyled">
<li><i class="icon-location"></i>{{ agent.secteur }}</li>
<li><i class="icon-phone-left"></i>{{ agent.telephone|phone }}</li>
</ul>
</div>
{# <div class="text-center mt-auto">
<img class="mt-4 mb-4 img-fluid text-center" src="{{ asset('assets/img/logo_blanc.png') | imagine_filter('runtime', {"thumbnail": {"size": [150,], 'mode': 'outbound' }}) }}" />
</div> #}
</div>
</div>
</div>
<div id="contact_form_container" class="col-lg-7 col-xl-6 px-4 pt-5 pb-3">
<div class="d-flex justify-content-end">
<button type="button" class="btn btn-primary mb-3" data-toggle="collapse" data-target="#contact_form_rdv" aria-expanded="false" aria-controls="contact_form_rdv"><i class="icon-calendar"></i> Proposer un RDV ?</button>
</div>
{{ render(controller('App\\Controller\\Front\\MessageController::contactForm', { 'context': 'agent' , 'display' : 'contact_modal_agent', 'agent_id': agent.id })) }}
</div>
</div>
</div>
</div>
</div>
</div>
<div id="contactForm_source" style="display: none;">{{ render(controller('App\\Controller\\Front\\MessageController::contactForm', { 'context': 'agent', 'display' : 'agent_modal' })) }}</div>
{{ source('front/acheter/modal-template.html') }}
{# {{ source('front/acheter/estate-infobox-template.html') }} #}
{# {{ source('front/agents/estate-infobox-template.html') }} #}
{% endblock %}
{% block stylesheets %}
{{ parent() }}
<link href="{{ asset('assets/vendor/bootstrap-4-master/build/css/tempusdominus-bootstrap-4.min.css') }}" rel="stylesheet"/>
<link href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" rel="stylesheet" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
<link href="{{ asset('assets/css/dpe_ges.css') }}" rel="stylesheet"/>
<link href="{{ asset('assets/vendor/OwlCarousel2-2.3.4/dist/assets/owl.carousel.min.css') }}" rel="stylesheet" />
<link href="{{ asset('assets/vendor/OwlCarousel2-2.3.4/dist/assets/owl.theme.default.min.css') }}" rel="stylesheet" />
<link href="//vjs.zencdn.net/7.8.2/video-js.min.css" rel="stylesheet">
<style>
#agent .portrait #video_buttons{
position: absolute;
right: 5px;
bottom: 0px;
}
#agent .portrait #video_buttons button{
position: relative;
background: none;
border: none;
color: #fff;
font-size: 20px;
right: initial;
bottom: initial;
}
</style>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('bundles/fosjsrouting/js/router.min.js') }}"></script>
<script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/lazyload@2.0.0-rc.2/lazyload.js"></script>
<script src="{{ asset('assets/vendor/swag.min.js') }}"></script>
<script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script>
<script src="{{ asset('assets/vendor/OwlCarousel2-2.3.4/dist/owl.carousel.min.js') }}"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js" integrity="sha512-qTXRIMyZIFb8iQcfjXWCO8+M5Tbc38Qi5WzdPOYZHIlZpzBHG3L3by84BBBOiRGiEb7KKtAOAs5qYdUiZiQNNQ==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/locale/fr.min.js" integrity="sha512-RAt2+PIRwJiyjWpzvvhKAG2LEdPpQhTgWfbEkFDCo8wC4rFYh5GQzJBVIFDswwaEDEYX16GEE/4fpeDNr7OIZw==" crossorigin="anonymous"></script>
<script src="{{ asset('assets/vendor/bootstrap-4-master/build/js/tempusdominus-bootstrap-4.js') }}"></script>
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
<script src="https://leaflet.github.io/Leaflet.markercluster/dist/leaflet.markercluster-src.js"></script>
<script src="{{ asset('assets/js/base_map.js?v1.0') }}"></script>
<script src="{{ asset('assets/js/estates_map.js?v1.1') }}"></script>
{# <script src="{{ asset('assets/js/rrose.js') }}"></script> #}
<script src="//vjs.zencdn.net/7.8.2/video.min.js"></script>
<script>
var current_page = '{{ current_page }}';
var current_route = Routing.generate('show_agent', { slug: '{{agent.slug}}' } );
var datas = {{ datas|json_encode()|raw }};
// var source_infobox;
// var template_infobox;
var source_modal;
var template_modal;
jQuery(document).ready(function(){
if($('#video_agent').length > 0){
var video_agent_player = videojs('video_agent', {
"autoplay": true,
"controls":false,
"muted": true,
"loop":true,
"fluid": true
},
function onPlayerReady() {
setTimeout(function(){
video_agent_player.play();
$('#btn_sound').click(function(){
// video_agent_player.MuteToggle();
toggleVideoMute(video_agent_player);
});
}, 500);
});
}
//ouverture du formulaire de contact
$('.btn_contact_agent').click(function(){
$('#contact_modal_agent').modal('show');
});
initHandlebars();
// source_infobox = $("#infobox-template").html();
// template_infobox = Handlebars.compile(source_infobox);
$('#btn_bio').popover({
customClass: 'popover_bio',
html: true,
sanitize: false,
template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-body"></div></div>'
});
source_modal = $("#modal-template").html();
template_modal = Handlebars.compile(source_modal);
//Ouverture par url
var parts = window.location.pathname.split('/');
if( parts.length == 4 ) {
var refannonce = parts[3];
var estate = datas.estates.find(estate => String(estate.refannonce) === String(refannonce));
if( estate === undefined){ //ajax
getEstate(refannonce);
}
else{
displayEstate(estate);
}
}
// setMap('agent_estates_map', 8, 8, 16 );
// map.touchZoom.disable();
// map.doubleClickZoom.disable();
// map.boxZoom.disable();
// map.keyboard.disable();
// map.scrollWheelZoom.disable();
// map.zoomControl.remove();
// map.dragging.disable();
// addMarkers(datas.estates, true, true);
var itemCount = $("#testimonies").children().length;
$("#testimonies").owlCarousel({
loop:itemCount > 2,
autoplay:true,
autoplayTimeout:owl_speed,
autoplayHoverPause:true,
smartSpeed:500,
margin:0,
nav:false,
// items:1,
responsive:{
0:{items:1},
// 767:{items:2},
992:{items:2}
}
});
initContactForm($('#contact_agent #contact_form'));
$('.estates_container .estate_carousel').each(function(){
initEstateCarousel($(this));
});
$('#estates_tab a').on('click', function (event) {
event.preventDefault();
$(this).tab('show');
});
$('.open_modal').on('click', function(e) {
e.preventDefault();
e.returnValue = false;
openEstateModal($(this).data('id'));
return false;
});
});
function centerMe(e) {
return;
var pixelPosition = map.latLngToLayerPoint(e.target.getLatLng());
var new_y = $('#agent_estates_map').height() /2;
pixelPosition.y = pixelPosition.y - new_y + 50 ;
var new_latlng = map.layerPointToLatLng(pixelPosition);
map.setView(new_latlng);
}
function toggleVideoMute(video_player){
var is_muted = video_player.muted();
if (is_muted == true) {
video_player.muted(false);
$('#btn_sound').removeClass('vjs-icon-volume-mute').addClass('vjs-icon-volume-high');
}
else {
video_player.muted(true);
$('#btn_sound').removeClass('vjs-icon-volume-high').addClass('vjs-icon-volume-mute');
}
}
</script>
{% endblock %}