Сбой работы пагинации при вызове getTickets

Здравствуйте! В ходе работы с модулем Tickets возникла необходимость в подсчете количества выводимых по запросу тикетов. Контент страницы успешно формируется следующим вызовом pdoPage:
[[!pdoPage?
	&tpl=`tmpl.Tickets.resume.row`
	&element=`getTickets`
	&includeContent=`1`
	&parents=`42`
	&includeTVs=`employeesName, resumeCategory, education, specialty,
	age, moreAbout, desiredVacancy, currency, multiplicityList, summList,
	result, email, telephone1, telephone2, note` 
        &tplPageFirst=`@INLINE <li class="first"><a href="[[+href]]"></a></li>`
        &tplPageFirstEmpty=`@INLINE <li class="first inactive"><a href="javascript:void(0);"></a></li>`
        &tplPageLast=`@INLINE <li class="last"><a href="[[+href]]"></a></li>`
        &tplPageLastEmpty=`@INLINE <li class="last inactive"><a href="javascript:void(0);"></a></li>`
        &tplPagePrev=`@INLINE <li class="control"></li>`
        &tplPageNext=`@INLINE <li class="control" style="display: none"><a href="[[+href]]" id="pageNext"></li>`
        &tplPagePrevEmpty=`@INLINE <li class="control"></li>`
        &tplPageNextEmpty=`@INLINE <li class="control"></li>`
        &limit=`5`
        &sortby=`{"publishedon":"DESC"}`
]]
В документации к Tickets я не нашел параметра, который отвечал бы за вывод общего количества тикетов в разделе (в дальнейшем нужно будет считать количество тикетов, выведенных при различных значениях tv-параметра).

Для решения задачи придумал следующий костыль:
Перед выводом контента, я делаю дублирующий вывод всех тикетов раздела.
[[!pdoPage?
     &tpl=`tmpl.Tickets.positions.counter`
     &element=`getTickets`
     &parents=`42`
     &limit=`all`
]]
В шаблоне tmpl.Tickets.positions.counter содержится лишь вызов js-функции, увеличивающeй счетчик.


Прилагаю листинг:
var counter = 0;

function incCounter()
{
    counter = counter + 1;
}
В результате работы скрипт успешно считает количество вызовов пустого шаблона и выводит счетчик в нужный мне блок-див. Но возникает проблема: работавшая ранее пагинация, которая создавалась после формирования контента страницы вызовом pdoPage — не работает. Вернее, происходит следующее: формируется список страниц, содержащих &limit тикетов на каждой. Для каждого элемента навигации присваиваются валидные ссылки. Но при попытке перехода по ним нужная страница с тикетами не прогружается, а возвращает первую.

Прилагаю результат работы [[!+page.nav]]
<!-- begin page navigation -->    
        <!--<div class="page_navigation">                            
                <ul>
                    <div class="pagination">
			<ul class="pagination">
				<li class="first inactive">
					<a href="javascript:void(0);"></a>
				</li><li class="control"></li>
				<li class="active">
					<a href="/rezyume/">1</a>
				</li>
				<li>
					<a href="/rezyume/?page=2">2</a>
				</li>
				<li>
					<a href="/rezyume/?page=3">3</a>
				</li>
				<li>
					<a href="/rezyume/?page=4">4</a>
				</li>
				<li>
					<a href="/rezyume/?page=5">5</a>
				</li>
				<li class="control" style="display: none">
					<a href="/rezyume/?page=2" id="pageNext">
				</li>
				<li class="last"><a href="/rezyume/?page=5"></a></li>
		</ul>
	</div>
                </ul>
            </div>-->
        <!-- page navigation eof -->
Возникает вопрос: с чем это может быть связано, и есть ли более «изящный» способ подсчета выводимых тикетов? Был бы рад Вашим объяснениям и/или советам.

P.S.: Закрадывается подозрение, что результат работы page.nav как-то пересекается с дублирующим вызовом pdoPage при параметре limit=`all`. Как этого можно избежать?
Денис Райх
05 декабря 2014, 03:33
modx.pro
1 181
+1

Комментарии: 4

Максим Кузнецов
05 декабря 2014, 06:37
1
+2
Для pdoPage есть плейсхолдер [[+page.total]]
    Денис Райх
    05 декабря 2014, 06:54
    0
    Большое спасибо! Плейсхолдер [[+page.total]] помог. Но проблема с подсчетом результатов по другим выборкам остаётся — ведь там придется применять мой неработающий костыль. Хотя, если есть возможность пробежаться по всем результатам выборки, в качестве увеличителя счетчика используя значение tv-параметра — это было бы решением. Но я пока не представляю, как можно при помощи js проанализировать результаты выборки, разбитой на n страниц =)
      Денис Райх
      05 декабря 2014, 07:33
      0
      Большое спасибо, Василий! Ваша статья помогла решить поставленную задачу.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4