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, но фильтр даже в закомментированом виде работает и перекрывает верхний.            
                    
                Та же история, дублируется товар или перезаписывает.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.