fenom + pdopage
Возникли некоторый глюки при работе связки pdoPage + fenom:
1. непонятно как вывести плэйсхолдер [[!+page.nav]] через fenom
2. не работает ajax пагинация pdotools
3. совсем никак не работает mFilter2
под катом немного подробнее и мои некоторые соображения по такому странному поведению.
1. непонятно как вывести плэйсхолдер [[!+page.nav]] через fenom
пытаюсь сделать так:
2. при ajax пагинации на запрос с заголовком
3. При вызове mFilter2 он просто выдает:
Дак вот это только у меня такие глюки? Или пока мало кто опробовал все прелести скорости и гибкости работы fenom'а как шаблонизатора для modx?
1. непонятно как вывести плэйсхолдер [[!+page.nav]] через fenom
2. не работает ajax пагинация pdotools
под катом немного подробнее и мои некоторые соображения по такому странному поведению.
1. непонятно как вывести плэйсхолдер [[!+page.nav]] через fenom
пытаюсь сделать так:
{$_modx->getPlaceholder('page.nav')}
но ничего не выходит2. при ajax пагинации на запрос с заголовком
$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'
сервер отдает часть странички, затем только {"output":" ....
с результатами выборки для pdoTools — видимо это свзязано с тем, что fenom включен для шаблонов modx, и шаблон на лету, до вызова сниппета pdoPage генерит страничку и сразу отдает клиенту, а когда натыкается на pdoPage — выводит JSON ответ на AJAX запрос и завершает работу по коду:session_write_close();
exit($modx->toJSON($data));
string(14) "XMLHttpRequest"
Дак вот это только у меня такие глюки? Или пока мало кто опробовал все прелести скорости и гибкости работы fenom'а как шаблонизатора для modx?
Комментарии: 10
я так и думал) довольно таки простое решение — вынести pdoPage в начало странички, чтобы во время прервать её передачу и, тем самым, не подгадить AJAX ответ.
Спасибо!
а как быть с
и для mFilter2:
синтаксис fenom никак не хочет работать, даже с подтягиванием данных из плэйсхолдеров modx.
Спасибо!
а как быть с
[[!+page.nav]]
{$_modx->getPlaceholder('page.nav')}
для pdoPageи для mFilter2:
{$_modx->getPlaceholder("my.results")}
[[!+my.results]]
??синтаксис fenom никак не хочет работать, даже с подтягиванием данных из плэйсхолдеров modx.
Полагаю, что синтаксис здесь не при чем, а просто нечего получать.
Я не могу ответить на все вопросы на свете, извини.
Я не могу ответить на все вопросы на свете, извини.
Василий скинул же ответ. Вам нужно вызов сниппета сохранить в переменную, но вызывать это в самом начале чанка/шаблона, а потом уже использовать getPlaceholder(), а потом вставлять в нужное место сам сниппет.
Думаете, за полтора года он не разобрался?
А че бы нет?)
Ответ на первый вопрос:
{'page.nav' | placeholder}
Вот я пытаюсь сделать так:
{set $block1 = $_modx->runSnippet('pdoPage@msFilterParams', [
'element' => 'msProducts'
'sortby' => 'menuindex'
'limit' => '9'
'ajaxMode'=> 'scroll'
'tpl' => 'tpl.shop.Products.row'
'tplPageWrapper' => '@INLINE <ul id="mse2_pagination" class="pagination list-unstyled">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul>'
'tplPageActive' => '@INLINE <li class="active"><span class="active-text">[[+pageNo]]</span></li>'
])}
{set $block2 = $_modx->getPlaceholder('page.nav')}
А потом собственно вывожу данные переменные. Вопрос: Почему не работает ajax подгрузка?
предлагаю рабочее решение pdoPage под fenom с загрузкой ajax
<div id="pdopage">
<div class='row'>
{'!pdoPage' | snippet : [
'parents' => '0',
'limit' => '10',
...
'toPlaceholder' => 'result',
'ajaxMode' => 'button',
'ajaxElemWrapper' => '#pdopage'
'ajaxElemRows' => '#pdopage .row'
'ajaxElemPagination' => '#pdopage .pagination'
'ajaxTplMore' => '@INLINE <div class="text-center"><button class="btn btn-primary btn-more">Загрузить еще</button></div>'
]}
{'result' | placeholder}
</div>
{'page.nav' | placeholder}
</div>
ну и не забываем включить jquery на сайте
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.