Как НЕ ВЫВОДИТЬ разметку HTML при отсутствии результата pdoPage?

Если вызов pdoPage единственный на странице, то проще всего использовать параметр tplWrapper (в ином случае - решение ниже):

[[!pdoPage?
    &element=`getTickets`
    &tpl=`TicketPageMainMP`
    &includeContent=`1`
    &includeTVs=`tvrules`
    &where=`{ "tvrules:LIKE":"%mpPageMain[[*id]]mp%" }`
    &parents=`0`
    &ajaxMode=`button`
    &pageVarKey=`sheet`
    &sortdir=`ASC`
    &pageNavVar=`sheet.nav`
    &limit=`10`
    &setTotal=`1`
    &totalVar=`t_count`
    &tplWrapper=`@INLINE <div id="sheetpage" >
<div class="rows">
  [[+output]]
</div>
  [[!+sheet.nav]]
</div>`
]]

Еще, как вариант (и в случае, если вызовов pdoPage больше одного, то вывод будет идти во ВСЕ плейсхолдеры output, что НЕДОПУСТИМО) - использование сниппета для вставки нужного кода в зависимости от условия - обязательно меняйте плейсхолдер result для каждого вызова pdoPage на странице:

[[!pdoPage?
    &element=`getTickets`
    &tpl=`TicketPageMainMP`
    &includeContent=`1`
    &includeTVs=`tvrules`
    &where=`{ "tvrules:LIKE":"%mpPageMain[[*id]]mp%" }`
    &parents=`0`
    &ajaxMode=`button`
    &pageVarKey=`sheet`
    &sortdir=`ASC`
    &pageNavVar=`sheet.nav`
    &limit=`10`
    &setTotal=`1`
    &totalVar=`t_count`
    &toPlaceholder=`result`
]]


<div id="sheetpage" [[!showHide? &pls=`t_count`]]>
 <div class="rows">
  [[+result]]
 </div>
  [[!+sheet.nav ]]
</div>

И сам сниппет showHide:

<?php if($modx->getPlaceholder($pls) < 1) return 'style="display:none"';
    
Администратор 11 августа 2018, 15:21 MODx-полезности 0

page.maple4.ru





Рейтинг@Mail.ru