MobileDetect и mFilter2
Здравствуйте!
Такая проблема:
Один шаблон, в нём два тега mobile и standard
В них вызывается mFilter2, т.е. для ПК и для мобильной версии.
Получается так, что фильтр, который ниже, он перезаписывает верхний и получается каша. Как с этим быть?
Причём, на других шаблонах все снипеты нормально функционируют, только этот снипет конфликтует.
Такая проблема:
Один шаблон, в нём два тега mobile и standard
В них вызывается mFilter2, т.е. для ПК и для мобильной версии.
Получается так, что фильтр, который ниже, он перезаписывает верхний и получается каша. Как с этим быть?
Причём, на других шаблонах все снипеты нормально функционируют, только этот снипет конфликтует.
Комментарии: 21
Так ведь, судя по вопросу, два фильтра не могут одновременно появиться на странице.
а они и не появляются на одной странице.
Между одним тегом standart фильтр
и между тегом mobile фильтр
Когда человек заходит с какого-то устройства, например, телефона, то всё, что в теге стандарт оно отсекается и у нас показывает всё в теге mobile.
Между одним тегом standart фильтр
и между тегом mobile фильтр
Когда человек заходит с какого-то устройства, например, телефона, то всё, что в теге стандарт оно отсекается и у нас показывает всё в теге mobile.
А как получается, что два фильтра на одной странице?
Потому что они в одном шаблоне для категории продуктов.
А ресурсу шаблон нельзя менять, т.к. шаблон мобильной версии он уникальный для других сайтов.
И всё это нужно проделать в одном шаблоне.
Поэтому я и пишу, что в теге standard один фильтр и он показывается для ПК, другой фильтр в mobile, он показывается для мобилок.
А ресурсу шаблон нельзя менять, т.к. шаблон мобильной версии он уникальный для других сайтов.
И всё это нужно проделать в одном шаблоне.
Поэтому я и пишу, что в теге standard один фильтр и он показывается для ПК, другой фильтр в mobile, он показывается для мобилок.
ссылкой поделишься?
Справа на слайдере потыкай фильтр
flowers-kurgan.ru/buketyi/
Когда появится список продуктов, то увидишь, что у них другое оформление, это как раз и будет оформление мобилки, а должно быть оформление как у сайта.
flowers-kurgan.ru/buketyi/
Когда появится список продуктов, то увидишь, что у них другое оформление, это как раз и будет оформление мобилки, а должно быть оформление как у сайта.
понял. А шаблона покажи где эти оба вызова происходят. У тебя они как я понял отличаются лишь tpl?
<!DOCTYPE html>
<html lang="ru">
[[$head]]
<body>
<standard>
<section>
[[$header]]
[[$menu]]
<div class="content" id="mse2_mfilter">
<article>
<p class="h2" style="margin-bottom: 20px;">[[*pagetitle]]</p>
<ul class="products" id="mse2_results">
[[+my.results]]
[[!myTovar]]
</ul>
<div class="text">
[[*content]]
</div>
</article>
<aside>
<div class="slider-comments">
<div class="left"></div>
<div class="right"></div>
<h3 class="title">Последние отзывы</h3>
<div class="wrap">
<div class="inline">
[[!getComments? &allowGuest=`1`&limit=`5`&tpl=`comment_row`&depth=`1`&level=`1`&sortdir=`DESC`&where=`{"parent":"0"}`]]
</div>
</div></div>
<div class="block-check">
<div class="head">
<p>Подобрать</p>
<p>по вашим параметрам:</p>
</div>
[[!mFilter2?
&limit=`1000`
&class=`msProduct`
&element=`msProducts`
&suggestions=`false`
&includeTVs=`akci`
&filters=`
msoption|VID,
msoption|SOB,
ms|price:number
`
&toPlaceholders=`my.`
&parents=`0`
&tpl=`tpl.Products`
&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
]]
<form id="mse2_filters" action="" method="post">
[[+my.filters]]
</form>
</div>
</aside>
<div class="clr"></div>
</div>
[[$footer]]
</section>
<div class="button-up"></div>
</standard>
<mobile>
<div class="container">
[[$mnavbar]]
<section>
<div class="head">
<h2>[[*pagetitle]]</h2>
</div>
<div class="items">
[[!msProducts?
&parents=`[[*id]]`
&tpl=`m.tpl.Products`
&sortby=`editedon`
&sortdir=`DESC`
]]
</div>
[[!mFilter2?
&limit=`1000`
&class=`msProduct`
&element=`msProducts`
&suggestions=`false`
&includeTVs=`akci`
&filters=`
msoption|VID,
msoption|SOB,
ms|price:number
`
&toPlaceholders=`my.`
&parents=`0`
&tpl=`m.tpl.Products`
&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
]]
<form id="mse2_filters" action="" method="post">
[[+my.filters]]
</form>
</section>
[[$mfooter]]
</div>
</mobile>
</body>
</html>
ого. ты весь контент засунул в эти теги. типа мобильной версии на одном и том же шаблоне. тут мало разметки, лучше бы ты скрывал и показывал стилями media queries, и вызов mfilter сделал бы 1, а уже внутри чанка tpl сделал mobile и standard
Стандартный шаблон и шаблон мобильной версии они совсем разные, поэтому контент и пихается в эти теги.
Через медиа запросы не будет работать, потому что ещё раз повторюсь, у мобильного шаблона один контент и это решение для всех сайтов, а у сайта совсем другой шаблон может быть и он не подходит для мобильного.
Если бы было всё так просто, я бы, естественно, менял стили, а тут не стили менять уже надо, а у ресурсов шаблон и теги.
Через медиа запросы не будет работать, потому что ещё раз повторюсь, у мобильного шаблона один контент и это решение для всех сайтов, а у сайта совсем другой шаблон может быть и он не подходит для мобильного.
Если бы было всё так просто, я бы, естественно, менял стили, а тут не стили менять уже надо, а у ресурсов шаблон и теги.
ну ок. подели хотябы контент на две части, главное чтобы вызов mfilter был 1.
<mobile>1 часть мобильного шаблона</mobile>
<standard>1 часть стандартного шаблона</standard>
[[!mfilter2]]
<mobile>2 часть мобильного шаблона</mobile>
<standard>2 часть стандартного шаблона</standard>
Попробовал разделить, в чанке в эти два тега распределил другой формат вывода, но теперь он их по два раза выводит и с тегом mobile тоже выводит.
то есть ты сделал 1 вызов mfilter, а в tpl засунул разметку для мобилы и десктопа
<mobile>html для товара на мобиле</mobile>
<standard>html для товара на десктопе</standard>
странно что не работает. Но тут на крайняк ты можешь скрывать через стили
Вот, что получилось
<!DOCTYPE html>
<html lang="ru">
[[$head]]
<body>
<standard>
<section>
[[$header]]
[[$menu]]
<div class="content" id="mse2_mfilter">
<article>
<p class="h2" style="margin-bottom: 20px;">[[*pagetitle]]</p>
<ul class="products" id="mse2_results">
[[+my.results]]
[[!myTovar]]
</ul>
<div class="text">
[[*content]]
</div>
</article>
<aside>
<div class="slider-comments">
<div class="left"></div>
<div class="right"></div>
<h3 class="title">Последние отзывы</h3>
<div class="wrap">
<div class="inline">
[[!getComments? &allowGuest=`1`&limit=`5`&tpl=`comment_row`&depth=`1`&level=`1`&sortdir=`DESC`&where=`{"parent":"0"}`]]
</div>
</div>
</div>
<!--<div class="slider-comments">
<div class="prev"></div>
<div class="next"></div>
<h3 class="title">Получатели букетов</h3>
<div id="owl-demo" class="owl-carousel owl-theme">
[[!ms2Gallery?
&parents=`0`
&resources=`481`
&tplOuter=`@INLINE [[+rows]]`
&tplRow=`@INLINE <div class="item"><img src="[[+300x300]]" alt=""></div>`
]]
</div>
</div>-->
<div class="block-check">
<div class="head">
<p>Подобрать</p>
<p>по вашим параметрам:</p>
</div>
</standard>
<mobile>
<div class="container">
[[$mnavbar]]
<section>
<div class="head">
<h2>[[*pagetitle]]</h2>
</div>
<div class="items">
[[!msProducts?
&parents=`[[*id]]`
&tpl=`m.tpl.Products`
&sortby=`editedon`
&sortdir=`DESC`
]]
</div>
</mobile>
[[!mFilter2?
&limit=`1000`
&class=`msProduct`
&element=`msProducts`
&suggestions=`false`
&includeTVs=`akci`
&filters=`
msoption|VID,
msoption|SOB,
ms|price:number
`
&toPlaceholders=`my.`
&parents=`0`
&tpl=`tpl.Products`
&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
]]
<form id="mse2_filters" action="" method="post">
[[+my.filters]]
</form>
<standard>
</div>
</aside>
<div class="clr"></div>
</div>
[[$footer]]
</section>
<div class="button-up"></div>
</standard>
<mobile>
</section>
[[$mfooter]]
</div>
</mobile>
</body>
</html>
tpl.Products а тут что?
Чанк вывода товара.
код
<standard>
<li class="product">
<form method="post" class="ms2_form">
<p class="buyoneclk" onclick="$(this).parents('.product').children('.fast-order').fadeIn(200);$('.b-b').fadeIn(200);">Купить в один клик</p>
[[+akci:is=`1`:then=`<div class="akcii"></div>`]]
<span class="add product_[[+id]]" onclick="add_favorite([[+id]],this,1);return false;"></span>
<a href="[[+uri]]"><img src="[[+thumb:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]" width="248" height="244" alt="[[+pagetitle]]"></a>
<strong>[[+pagetitle]]</strong>
<p>[[+introtext]]</p>
<div>
<strong>[[+price]] руб. [[+old_price:ne=`0`:then=`<span style="text-decoration:line-through;font-size:19px;color:#7B7B7B;">[[+old_price]] руб.</span>`]]</strong>
<div><button class="btn btn-default addcart" type="submit" name="ms2_action" value="cart/add">ЗАКАЗАТЬ</button></div>
</div>
<!--noindex-->
<input type="hidden" name="id" value="[[+id]]">
<input type="hidden" name="count" value="1">
<input type="hidden" name="options" value="[]">
<!--/noindex-->
</form>
<div class="fast-order">
<div class="title">
Быстрый заказ
<a onclick="$('.fast-order, .b-b').fadeOut(200);return false;" style="position:absolute;color: #000;font-size: 11px;top: 2px;right: 9px;" href="#">Закрыть</a>
</div>
[[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.fastOrder`
&hooks=`email`
&emailSubject=`Купить в один клик`
&emailTo=`vse.zackazy@yandex.ru`
&validate=`name:required,phone:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Заказ успешно отправлен`
&emailTpl=`sentEmailTpl2`
&id=`[[+id]]`
&thumb=`[[+thumb]]`
&pagetitle=`[[+pagetitle]]`
&price=`[[+price]]`
]]
</div>
</li>
</standard>
<mobile>
<div class="flip-container">
<div class="flipper">
<div class="front">
<form method="post" class="ms2_form">
<a href="/[[+uri]]" class="item">
<img src="[[+344x230]]" width="344" height="230">
<div class="pricetwo">
<span class="old-price">3 490 ₽</span>
<span class="price">[[+price]]₽</span>
</div>
<div class="three">
<p><span class="name">[[+pagetitle]]</span></p>
<p class="intro">[[+introtext]]</p>
<button class="buy" type="submit" name="ms2_action" value="cart/add">КУПИТЬ</button>
</div>
</a>
<input type="hidden" name="id" value="[[+id]]">
<input type="hidden" name="count" value="1">
<input type="hidden" name="options" value="[]">
</form>
</div>
<div class="back">
<img src="/m.flowers-kurgan.ru/img/flip/ok.png">
<p>Успех!</p>
<p>[[+pagetitle]] добавлен в корзину</p>
</div>
</div>
</div>
</mobile>
Такая же фигня, дублировался товар, потом закоментил мобайл все заработало как надо, раскомментил и все глючить перестало…
Пробовал закомментировать mobile, но фильтр даже в закомментированом виде работает и перекрывает верхний.
Та же история, дублируется товар или перезаписывает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.