Помогите разобраться почему &pageLinkScheme не работает
        Здравствуйте, делал все по инструкции и не работает, помогите пожалуйста разобраться.
сниппет как в инструкции тоже добавлял.
хотелось такие урлы как в примере на сайте
вместо /?page=2 что бы были:
/man/page-2
/man/page-3
такой вызов корректно работает и все устраивает.
т.е. выводит товары и по клику на кнопку загрузить еще товары добавляет.
    
    
                                                                                
            сниппет как в инструкции тоже добавлял.
хотелось такие урлы как в примере на сайте
вместо /?page=2 что бы были:
/man/page-2
/man/page-3
такой вызов корректно работает и все устраивает.
т.е. выводит товары и по клику на кнопку загрузить еще товары добавляет.
[[!mFilter2?
        &class=`msProduct`
        &element=`msProducts`
    	&parents=`[[*id]]`
    	&limit=`3`
    	&ajax=`1`
        &setMeta=`1`
        &paginator=`pdoPage`
    	&filters=`ms|vendor:vendors`
    	&aliases=`
            ms|vendor==vendor`
    	&tplOuter=`tpl.mFilter2.outer_new`
    	&tpl=`tpl.msProducts.row_new`
    	&includeTVs=`download,app_bonus`
    	&where=`{"class_key":"msProduct"}`
    	&ajaxMode=`button`
    	&strictMode=`1`
        &filterOptions=`{
                "autoLoad":0,
                "more": ".main-catalog__more-button",
                "more_tpl": "<div class=\"tc dark-beige mb3\"><button style=\"background: 0;\" class=\"button main-catalog__more-button br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige\">[[%pdopage_more]]</button>"
            }`
    	&tplFilter.outer.vendor=`tpl.mFilter2.filter.outer_vendor`
    	&tplFilter.row.vendor=`tpl.mFilter2.filter.checkbox_vendor`
    ]]если добавить &pageLinkScheme=`[[+pageVarKey]]-[[+page]]` в сниппет то кнопка загрузить еще не работает. а если поставить &ajaxMode=`default` то и постраничная навигация не работает. Погуглив я не нашел решения и решил написать сюда. пробовал разные варианты уже. Пишите вопросы если есть я отвечу. Спасибо    Комментарии: 8
                ну кто то же сталкивался с таким?            
                    
                Специально для вас попробовал сделать тоже самое, но со скроллом.
Ставлю
Значит из коробки работать не должно.
Значит дело в плагине и его надо переделывать под ваши нужды.
Предположу, что ajax не может подгружать страницы, которых по факту нет.
А контент подгружается при непосредственном переходе по ссылке (срабатывает плагин).
К сожалению это все, чем могу помочь.
                    Ставлю
'pageLinkScheme' => '[[+pageVarKey]]-[[+page]]/', не работает, убираю — работает.Значит из коробки работать не должно.
Значит дело в плагине и его надо переделывать под ваши нужды.
Предположу, что ajax не может подгружать страницы, которых по факту нет.
&pageLinkScheme=`/[[+pageVarKey]]-[[+page]]`Просто проставляет ссылки на страницы (посчитали сколько всего, поделили на limit, проставили ссылки)А контент подгружается при непосредственном переходе по ссылке (срабатывает плагин).
К сожалению это все, чем могу помочь.
                а то, что у меня просто пагинация не работает если ставлю &ajaxMode=`default` и &ajax=`0` норм?
или у вас так же?
                    или у вас так же?
                Ну второй раз я воссоздавать сие уже не буду. С &ajaxMode=`scroll` работало, думаю и так тоже будет.
Пример надо полностью приводить, работа пагинации с ajax зависит от того, в какие div обернута конструкция.
                    Пример надо полностью приводить, работа пагинации с ajax зависит от того, в какие div обернута конструкция.
[[!mFilter2?
        &class=`msProduct`
        &element=`msProducts`
        &parents=`[[*id]]`
        &limit=`3`
        &tplOuter=`tpl.mFilter2.outer_new`
    	&tpl=`tpl.msProducts.row_new`
    	
    	&tplPageWrapper=`@INLINE <div class="pagination tc dark-beige mb3">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</div>`
    	&tplPageFirstEmpty=`@INLINE <span></span>`
    	&tplPageLastEmpty=`@INLINE <span></span>`
    	&tplPagePrevEmpty=`@INLINE <span></span>`
    	&tplPageNextEmpty=`@INLINE <span></span>`
    	&tplPageFirst=`@INLINE <span></span>`
    	&tplPageActive=`@INLINE <span></span>`
    	&tplPage=`@INLINE <span></span>`
    	&tplPageLast=`@INLINE <span></span>`
    	&tplPagePrev=`@INLINE <a href="[[+href]]" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige">Previous page</a>`
    	&tplPageNext=`@INLINE <a href="[[+href]]" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige "> Next page </a>`
    ]]добавляю &pageLinkScheme=`/[[+pageVarKey]]-[[+page]]`и пагинация не работает. убираю и работает.
ну и плагин на событие «OnPageNotFound» как в инструкции:
При переходе по этим ссылкам (кроме первой) MODX будет выдавать ошибку 404, потому что страниц с этими адресами не существует. Так что, нам нужно написать плагин для их обработки:
<?php
// Реагируем только на событие OnPageNotFound
if ($modx->event->name == 'OnPageNotFound') {
    // Определяем ключ запроса из настроек
    $req = $modx->getOption('request_param_alias');
    // Ловим нужный ключ страницы
    $pageVarKey = 'page';
    // Если в запросе повторяется наш шаблон "pageVarKey-page", то работаем дальше
    if (preg_match("#.*?({$pageVarKey}-(\d+))#", $_REQUEST[$req], $matches)) {
        // Отрезаем ЧПУ строку и получаем точный адрес текущей страницы
        $uri = str_replace($matches[1], '', $matches[0]);
        // Ищем страницу по этому адресу
        $id = 0;
        // Сначала как есть, со слешем на конце
        if (!$id = $modx->findResource($uri)) {
            // Если не находим - то пробуем отрезать слэш и ищем повторно
            $id = $modx->findResource(rtrim($uri, '/'));
        }
        // Если ресурс найден
        if ($id) {
            // Добавляем номер страницы в глобальные массивы, чтобы pdoPage их там увидел
            $_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
            // И загружаем эту страницу
            $modx->sendForward($id);
        }
        // Если ресурс не был найден - ничего не делаем, возможно запрос поймает другой плагин
    }
}            
                в общем mfilter2 не работает с этой настройкой…
работает корректно только так:
                    работает корректно только так:
[[!pdoPage?
        &class=`msProduct`
        &element=`msProducts`
        &parents=`[[*id]]`
        &limit=`3`
    	&tpl=`@INLINE <p>[[+idx]] <a href="/[[+uri]]">[[+pagetitle]]</a></p>`
    	&pageVarKey=`page`
    	&pageLinkScheme=`[[+pageVarKey]]-[[+page]]`
    	&tplPageWrapper=`@INLINE <div class="pagination tc dark-beige mb3">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</div>`
    	&tplPageFirstEmpty=`@INLINE <span></span>`
    	&tplPageLastEmpty=`@INLINE <span></span>`
    	&tplPagePrevEmpty=`@INLINE <span></span>`
    	&tplPageNextEmpty=`@INLINE <span></span>`
    	&tplPageFirst=`@INLINE <span></span>`
    	&tplPageActive=`@INLINE <span></span>`
    	&tplPage=`@INLINE <span></span>`
    	&tplPageLast=`@INLINE <span></span>`
    	&tplPagePrev=`@INLINE <a href="[[+href]]" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige">Previous page</a>`
    	&tplPageNext=`@INLINE <a href="[[+href]]" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige "> Next page </a>`
    ]]
[[!+page.nav]]            
                А если сделать так:
                    [[!mFilter2?
        &class=`msProduct`
        &element=`msProducts`
        &parents=`[[*id]]`
        &limit=`3`
        &tplOuter=`tpl.mFilter2.outer_new`
    	&tpl=`tpl.msProducts.row_new`
    	&pageVarKey=`page`
    	
    	&filters=`ms|vendor:vendors`
    	&aliases=`
            ms|vendor==vendor`
    	&includeTVs=`download,app_bonus`
    	&where=`{"class_key":"msProduct"}`
    	&strictMode=`1`
        &filterOptions=`{
                "autoLoad":0,
                "more": ".main-catalog__more-button",
                "more_tpl": "<div class=\"tc dark-beige mb3\"><button style=\"background: 0;\" class=\"button main-catalog__more-button br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige\">[[%pdopage_more]]</button>"
            }`
    	&tplFilter.outer.vendor=`tpl.mFilter2.filter.outer_vendor`
    	&tplFilter.row.vendor=`tpl.mFilter2.filter.checkbox_vendor`
    	
    	&pageLinkScheme=`[[+pageVarKey]]-[[+page]]`
    	&tplPageWrapper=`@INLINE <div class="pagination tc dark-beige mb3">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</div>`
    	&tplPageFirstEmpty=`@INLINE <span></span>`
    	&tplPageLastEmpty=`@INLINE <span></span>`
    	&tplPagePrevEmpty=`@INLINE <span></span>`
    	&tplPageNextEmpty=`@INLINE <span></span>`
    	&tplPageFirst=`@INLINE <span></span>`
    	&tplPageActive=`@INLINE <span></span>`
    	&tplPage=`@INLINE <span></span>`
    	&tplPageLast=`@INLINE <span></span>`
    	&tplPagePrev=`@INLINE <a href="[[+href]]" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige">Previous page</a>`
    	&tplPageNext=`@INLINE <a href="[[+href]]" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige "> Next page </a>`
    ]]
[[!+page.nav]]тогда пагинация работает а фильтры нет            
                в общем вот конечный результат:
допустим я тут /test/?vendor=5 и пагинация предлагает переход сюда /test/page-2 и фильтр получается теряется.
и если результатов фильтра больше лимита на странице их никогда нельзя будет посмотреть… я не знаю как это решить пока. может кто поможет?
                    [[!mFilter2?
        &class=`msProduct`
        &element=`msProducts`
        &parents=`[[*id]]`
        &limit=`3`
        &tplOuter=`tpl.mFilter2.outer_new`
    	&tpl=`tpl.msProducts.row_new`
    	&pageVarKey=`page`
    	&paginator=`pdoPage`
        &setMeta=`1`
    	&filters=`ms|vendor:vendors`
    	&aliases=`
            ms|vendor==vendor`
    	&includeTVs=`download,app_bonus`
    	&where=`{"class_key":"msProduct"}`
    	&strictMode=`1`
        
    	
    	&pageLinkScheme=`[[+pageVarKey]]-[[+page]]`
    	&tplPageWrapper=`@INLINE <div class="pagination tc dark-beige mb3">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</div>`
    	&tplPageFirstEmpty=`@INLINE <span></span>`
    	&tplPageLastEmpty=`@INLINE <span></span>`
    	&tplPagePrevEmpty=`@INLINE <span></span>`
    	&tplPageNextEmpty=`@INLINE <span></span>`
    	&tplPageFirst=`@INLINE <span></span>`
    	&tplPageActive=`@INLINE <span></span>`
    	&tplPage=`@INLINE <span></span>`
    	&tplPageLast=`@INLINE <span></span>`
    	&tplPagePrev=`@INLINE <a href="[[+href]]" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige">Previous page</a>`
    	&tplPageNext=`@INLINE <a href="[[+href]]" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 b--dark-beige dark-beige "> Next page </a>`
    	
    	&tplFilter.outer.vendor=`tpl.mFilter2.filter.outer_vendor`
    	&tplFilter.row.vendor=`tpl.mFilter2.filter.checkbox_vendor`
    ]]вот tpl.mFilter2.outer_new<div class="backgroundGambleLargeOpacity msearch2" id="mse2_mfilter">
    <div class="pt4 center">
        <h1 class="ttu ph3 f2 f1-l tc mb3"><strong><span class="mse2_total">[[+total:default=`0`]]</span> Top-Apps</strong> for you</h1>
        <div class="tc dark-beige mb3">
            <a href="#" class="br3 ttu inline-flex items-center justify-center b tc nowrap no-underline pa3 bw1 b--solid f5 washed-yellow js-filter-toggle bg-dark-beige b--dark-beige pv2 ">
                Filter Apps <i class="material-icons">filter_list</i>
            </a>                
        </div>
        <form action="[[~[[*id]]]]" method="post" id="mse2_filters" class="js-filter-form center dn">
			<div class="pa3 f2 tc ttu bb b--beige">
                <div class="flex items-center mw6-ns center-ns">
                    <div class="flex-auto tc">
                        Filtered: <strong><span id="mse2_total">[[+total:default=`0`]]</span> Apps </strong> [[-on 10 pages]]
                    </div>
                    <div class="js-filter-close pointer mi-close dib"></div>
                </div>
            </div>
            <div class="js-filter-section">
                <div class="pa3 f3 bb b--beige">
                    <div class="js-filter-section-toggle pointer flex items-center mw6-ns center-ns">
                        <div class="flex-auto">
                            <strong>Software</strong>
                        </div>
                        <div class="js-filter-section-toggle pointer mi-keyboard-arrow-down dib f2"></div>
                    </div>
                </div>
                [[+filters]]
            </div>
            <div class="pa3 flex flex-row items-center mw6-ns center-ns"></div>
		</form>
    </div>
    <div id="pdopage" class="mwmedns mw6 pa2 center h-100 pa3-l  ">
        <div class="nl2 nr2">
            <div class="sf_introtext">[[!+sf.introtext]]</div>
            <h2 class="sf_h1">[[!+sf.h1:default=`[[*pagetitle]]`]]</h2>
            <div id="mse2_results" class="js-filter-results flex flex-column flex-row-l flex-wrap-l justify-center items-center items-stretch-l w-100 justify-start-l flex-wrap-ns">
    			[[+results]]
            </div>
        </div>
        <div class="">
			[[!+page.nav]]
		</div>
    </div>        
</div>с учетом &pageLinkScheme=`[[+pageVarKey]]-[[+page]]` получается лажа с фильтрами и пагинациейдопустим я тут /test/?vendor=5 и пагинация предлагает переход сюда /test/page-2 и фильтр получается теряется.
и если результатов фильтра больше лимита на странице их никогда нельзя будет посмотреть… я не знаю как это решить пока. может кто поможет?
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.