{% set topProfile = profile_top_placement() %}
<div class="col-2">
<div id="right_column_metric">
<div class="card mb-1">
<div class="card-header">ТОП-Девушка</div>
{% if topProfile %}
{% set photo = topProfile|avatar %}
{% if photo %}
<img class="card-img-top" src="{{ asset(photo.path, photo.type == 'photo' ? 'profile_media' : 'profile_media_avatar') }}" alt="{{ topProfile.name }}">
{% endif %}
<div class="card-body">
<a href="{{ path('profile_preview.page', {'city': topProfile.city.uriIdentity, 'profile': topProfile.uriIdentity}) }}">
{{ topProfile.name }}
</a>
</div>
{% else %}
<div class="card-body">
<h5 class="card-title"><a href="{{ path('account.profile.top_placement') }}">Место свободно</a></h5>
</div>
{% endif %}
</div>
{# {% for placement in profile_ultra_vip_placements() %}
{% set isProfile = attribute(placement, 'profile') is defined %}
{% set entity = isProfile ? placement.profile : placement.saloon %}
<div class="card mb-1 sidebar-ultra-vip-metric" data-ultravipid="{{ placement.id }}">
<div class="card-header">{{placement_name_ultra_vip()}}</div>
{% set photo = isProfile ? entity|avatar : entity.thumbnail %}
{% if photo %}
{% if isProfile %}
<img class="card-img-top" src="{{ asset(photo.path, photo.type == 'photo' ? 'profile_media' : 'profile_media_avatar') }}" alt="{{ entity.name }}">
{% else %}
<img class="card-img-top" src="{{ asset(photo.path, 'saloon_media_thumb') }}" alt="{{ entity.name }}">
{% endif %}
{% endif %}
<div class="card-body">
{% if isProfile %}
<a href="{{ path('profile_preview.page', {'city': entity.city.uriIdentity, 'profile': entity.uriIdentity}) }}">
{{ entity.name }}
</a>
{% else %}
<a href="{{ path('saloon_preview.page', {'city': entity.city.uriIdentity, 'saloon': entity.uriIdentity}) }}">
{{ entity.name }}
</a>
{% endif %}
</div>
</div>
{% endfor %}#}
<div id="first_ultra_vip_placement"></div>
{% for placement in profile_vip_placements() %}
{% set isProfile = attribute(placement, 'profile') is defined %}
{% set entity = isProfile ? placement.profile : placement.saloon %}
<div class="card mb-1">
<div class="card-header sidebar-vip-metric">VIP</div>
{% set photo = isProfile ? entity|avatar : entity.thumbnail %}
{% if photo %}
{% if isProfile %}
<img class="card-img-top" src="{{ asset(photo.path, photo.type == 'photo' ? 'profile_media' : 'profile_media_avatar') }}" alt="{{ entity.name }}">
{% else %}
<img class="card-img-top" src="{{ asset(photo.path, 'saloon_media_thumb') }}" alt="{{ entity.name }}">
{% endif %}
{% endif %}
<div class="card-body">
{% if isProfile %}
<a href="{{ path('profile_preview.page', {'city': entity.city.uriIdentity, 'profile': entity.uriIdentity}) }}">
{{ entity.name }}
</a>
{% else %}
<a href="{{ path('saloon_preview.page', {'city': entity.city.uriIdentity, 'saloon': entity.uriIdentity}) }}">
{{ entity.name }}
</a>
{% endif %}
</div>
</div>
{% endfor %}
<div id="rest_ultra_vip_placement"></div>
</div>
</div>
<script src="{{ asset('ajax.js', 'js_script') }}"></script>
<script src="{{ asset('sidebar-extender.js', 'js_script') }}"></script>
<script>
;(function () {
document.addEventListener('DOMContentLoaded', function(){
// enlargeSidebar() - считает разницу в высоте основного контенкта и правой колонки
// !!! контейнеры колонок внутри обернул в div, по которым и считаю размер, т.к. внешние могут быть вытянуты до одинаковой высоты.
// для лейаута в 3 колонки - left_column_metric, center_column_metric, right_column_metric
// для лейаута в 2 колонки - main_column_metric, right_column_metric
// где right_column_metric - в контейнере самого сайдбара
// по принимаем параметрам SidebarExtender см. sidebar-extender.js
var sidebarEnlarger = enlargeSidebar();
function enlargeSidebar() {
var leftColumn = document.querySelector('#left_column_metric');
var centerColumn = document.querySelector('#center_column_metric');
var rightColumn = document.querySelector('#right_column_metric');
var mainColumn = document.querySelector('#main_column_metric');
var maxHeight;
if(leftColumn && centerColumn) {
maxHeight = Math.max(leftColumn.scrollHeight, centerColumn.scrollHeight);
} else if(mainColumn) {
maxHeight = mainColumn.scrollHeight;
} else {
console.log('Cannot detect content height for sidebar');
return;
}
var heightDiff = maxHeight - rightColumn.scrollHeight;
if(heightDiff <= 0)
return;
//подставить нужное
var ultraVipContainerHeight = 315; //,document.querySelector('.sidebar-ultra-vip-metric').scrollHeight,
var verticalPadding = 5; //подставить нужное
var toAdd = 0;
if (heightDiff >= verticalPadding + ultraVipContainerHeight)
toAdd = Math.floor(heightDiff / (verticalPadding + ultraVipContainerHeight));
var genders = [{{ gender_female() }}, {{ gender_male() }}, {{ gender_trans() }}];
let onlyProfile = null, onlyMasseur = null, onlySaloon = null;
{% if 'profile_list.list_by_gender' in app.request.get('_route') %}
{% if app.request.get('gender')|gender_value_by_uri == gender_male() %}
genders = [{{ gender_male() }}];
onlyProfile = true;
{% elseif app.request.get('gender')|gender_value_by_uri == gender_trans() %}
genders = [{{ gender_trans() }}];
onlyProfile = true;
{% endif %}
{% elseif 'masseur_list.page' in app.request.get('_route') %}
onlyMasseur = true;
{% elseif 'saloon_list' in app.request.get('_route') %}
onlySaloon = true;
{% endif %}
if(toAdd < 1)
toAdd = 1; //для Сани
var sidebarEnlarger = new SidebarExtender({
toAdd: toAdd,
restPlacementsContainer: document.querySelector('#rest_ultra_vip_placement'),
{% set current_city = app.request.attributes.get('city', default_city()) %}
ajaxUrl: '{{ path('api.sidebar.ultra_vip_list', {city:current_city.uriIdentity is defined ? current_city.uriIdentity : current_city, imageSize: '357x500'}) }}',
genders: genders,
onlyProfile: onlyProfile,
onlyMasseur: onlyMasseur,
onlySaloon: onlySaloon,
exclude: [], //Array.prototype.slice.apply(document.querySelectorAll('[data-ultravipid]')).map(function(el) {return el.dataset['ultravipid'];}),
template:
'<div class="card mb-1 sidebar-ultra-vip-metric">\n' +
' <div class="card-header">Ultra VIP</div>\n' +
' <img class="card-img-top" src="%PHOTO%" alt="%NAME%">\n' +
' <div class="card-body">\n' +
' <a href="%URL%">\n' +
' %NAME%\n' +
' </a>\n' +
' %PRICE%\n' +
' %STATION%\n' +
' <div class="approved%APPROVED%">Verified</div>\n' +
' %PHONE%\n' +
' </div>\n' +
'</div>'
});
//enlarge your sidebar
sidebarEnlarger.extend();
return sidebarEnlarger;
}
});
})();
</script>