Как правильно выводить тв-поля?
Всем здравствуйте. Не получается вывести значения тв-полей через феном. Чанк-шаблон для открытой работы выглядит так:
<div class="col">
<div class="image-block">
{'!Gallery'|snippet:['album'=>$_modx->resource.pagetitle]}
</div>
</div>
<div class="col">
<div class="description-block">
<p><b>Описание: </b>{$_modx->resource.description}</p>
<p><b>Дата выполнения работы: </b>{$_pls['$_modx->resource.portfolio-date']}</p>
<p><b>Список выполненных работ: </b>{$_pls['$_modx->resource.portfolio-completed_tasks']}</p>
<p><b>Комментарий к работе: </b>{$_pls['$_modx->resource.portfolio-comment']}</p>
<p><b>О клиенте: </b>{$_pls['$_modx->resource.portfolio-about']}</p>
<a href="{$_pls['$_modx->resource.portfolio-url']}" class="btn btn-primary">Перейти на сайт заказчика</a>
</div>
</div>Вроде бы код верный, читал документацию, но почему то не выводит. Что я упустил? Через теги наподобие [[*portfolio-date]] всё выводит. Также пробовал через getPlaceholder(), но не помогло. Пробовал и без $_pls — тоже не вышло Комментарии: 20
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Проверил — не влияет ли тире в названии чанка на работоспособность. Вроде не влияет.
— в вашем случае
Тогда почему бы не использовать верный синтаксис и переименовать переменные в соответствии с правилами?
по идее, теперь должно работать, но ни {$portfolio_url}, ни {$_modx->getPlaceholder('portfolio_url')} почему то не срабатывает. Он выводит только на главную страницу. в &includeTVs я исправил название тв-поля. До этого вроде срабатывал код {$_pls['portfolio-url']}. Может я забыл где то исправить значение тв?
Также можно сократить:
Исходя из того что в element pdoPage по дефолту стоит pdoResources, нужно обнулять префикс.
А вот код чанка-шаблона.
[[+thumbnail]] работает исправно. Вроде до этого {$_modx->getPlaceholder('thumbnail')} у меня нормально работал.
В консоли браузера пишет следующее:
А в самом исходном коде страницы выводит это:
Что я пробовал:
1. вставить этот код напрямую:2. пробовал написать {'thumbnail'|placeholder}
3. пробовал написать тупо {$thumbnail}
Как правильно вызывать плейсхолдер [[+thumbnail]]? Попробовал ещё добавить 'toPlaceholder'=>'thumbnail', но тоже ничего не вышло
Если это так важно, то можно использовать ms2Gallery или UserFiles,
Можно джойнить в pdoResources, примерно как то так:
Или же как писал выше пользоваться решениями которые умеют в fenom из коробки.
А насчёт скорости, можно сделать два шаблона с нужными вызовами и сравнить с помощью — debugParser. Ну и раздел с тестированием производительности есть в документации — https://docs.modx.pro/komponentyi/pdotools/parser