1. При помощи собственной маршрутизации реализовать виртуальную страницу пользователя вида
/users/имя_пользователя, после чего в плагине на событие OnPageNotFound перехватывать имя пользователя и при совпадении с реальным пользователем — выводить информацию.
Таким способом реализованы страницы пользователей на этом сайте.
2. Плагином на событие OnUserActivate создавать полноценную страницу для пользователя, а на OnUserSave — синхронизировать данные.
В обоих случаях в чанке pdoUsers нужно будет сымитировать итоговую ссылку:
href="[[~2]]/[[+username}]]"
— где 2 = страница-контейнер для пользователей (users).
Посмотрите, что выдает [[+publishedon]] без модификаторов — скорее всего, у вас он по умолчанию возвращает дату, которую впоследствии не может переварить :date=``.
C другой стороны, все упирается в то, насколько сильно отличается контент/заголовки внутренних страниц между собой — возможно, что создать руками в итоге окажется самым корректным решением.
Хорошо, давайте подойдем с другой стороны — jQuery на сайте подключен?
В противном случае, попробуйте начать с минимального вызова, последовательно дополняя его вашими параметрами:
Ну и версию pdoTools можно проверить, на случай, если загружена устаревшая версия.
[[%pdopage_more]] вернет только лексикон надписи в кнопке, но не саму кнопку.
Выставите для &ajaxTplMore дефолтное значение, или вообще избавьтесь от этого параметра.
Скорее всего, где-то проблема с путями. В любом случае рабочая последовательность такая:
1. Создаете папку elements в core
2. В системной настройке pdotools_elements_path указываете {core_path}elements/
3. Переносите/создаете внутри директории необходимые чанки. Допустим, создадим внутри elements директорию chunks и внутри нее файл item.tpl
4. Прописываете в сниппетах путь в таком виде:
5. Чистите кэш
После этих шагов, файловые чанки должны корректно перевариваться сниппетами pdo.
Если вопрос в том, как в таких запросах фильтровать по tv-полям, то вначале их необходимо приджоинить к запросу.
docs.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.where
1. При помощи собственной маршрутизации реализовать виртуальную страницу пользователя вида
/users/имя_пользователя, после чего в плагине на событие OnPageNotFound перехватывать имя пользователя и при совпадении с реальным пользователем — выводить информацию.
Таким способом реализованы страницы пользователей на этом сайте.
2. Плагином на событие OnUserActivate создавать полноценную страницу для пользователя, а на OnUserSave — синхронизировать данные.
В обоих случаях в чанке pdoUsers нужно будет сымитировать итоговую ссылку:
— где 2 = страница-контейнер для пользователей (users).
htmlbook.ru/html/attr/dir
(после подключенного jQuery)
Что же до createdon, скорее всего, формула :strtotime:date=`%d.%m.%Y` для него сработает.
Посмотрите, что выдает [[+publishedon]] без модификаторов — скорее всего, у вас он по умолчанию возвращает дату, которую впоследствии не может переварить :date=``.
Или таким образом через fenom:
Возможно, можно попробовать упростить структуру, вынеся часть переменных в тв-поля (города, категории), но в таком случае иерархия будет менее разграничена и свалена в кучу.
А маршрутизацию и доступность по тому или иному URL'y реализовать через свою маршрутизацию из ссылки выше.
Переменные $link, $cat_icon и прочие будут доступны в tpl, tplInnerRow и тд.
C другой стороны, все упирается в то, насколько сильно отличается контент/заголовки внутренних страниц между собой — возможно, что создать руками в итоге окажется самым корректным решением.