Так как я удаляю лишний код из шаблонов сборки, но не хочется лишать программистов примеров, публикую код здесь. {* Шаблон товара *} {extends file="layout.tpl"}
{block name=content}
{*
Есть два варианта получения данных товара:
1. Получить объект продукта через $modx->resource->getOne('Product')
2. Через вызов процессора. Второй способ используется чаще, так как в процессоре
может быть использована более мощная логика, нежели просто получение свойств товара.
К тому же единый на все процессор гарантирует актуальность данных и логики во всех местах вызова.
*}
{*
Способ №1. Через объект
*}
<h2>Способ №1</h2>
{* Получаем связанный объект товара (ShopmodxProduct) *}
{assign var=productObject value=$modx->resource->getOne('Product')}
{if $productObject}
{assign var=product value=$productObject->toArray()}
{/if}
<div class="relative" style="margin: 0 0 50px;">
{*
Проверяем наличие фото. Если нет, то выставляем картинку "Нет фото".
Я специально не стал вставлять фото по умолчанию в TV-шку, чтобы было больше примеров.
*}
{field name=image assign=image}
{if !$image}
{assign var=image value="{config name=assets_url}images/products/No-Photo.jpg"}
{/if}
{assign var=categoryObject value=$modx->resource->getOne('Parent')}
{if $categoryObject}
{assign var=category value=$categoryObject->toArray()}
{/if}
{* Ссылка на оригинальное фото *}
<a href="{$image}">
<img src="{snippet name=phpthumbof params="input=`{$image}`&options=`w=200`"}" title="{field name=pagetitle}" align="left"/>
</a>
<table>
<tbody>
<tr>
<td>Наименование: </td>
{*
{field name=pagetitle} - это альтернатива MODX-вому [[*pagetitle]]
Но в отличие от нативного тега обрабатывается не MODX-парсером,
а на уровне PHP, что более производительно.
К томуже если шаблон кешируемый, то в кеш документа попадет конечный HTML,
а не MODX-тег.
*}
<td>{field name=pagetitle}</td>
</tr>
<tr>
<td>Категория: </td>
{*
{link id=$category.id} Это альтернатива [[~id]], то есть $modx->makeUrl($id);
*}
<td><a href="{link id=$category.id}" title="{$category.pagetitle}">{$category.pagetitle}</a></td>
</tr>
<tr>
<td>Цена: </td>
<td>{$product.sm_price|number_format:2:".":" "} руб.</td>
</tr>
</tbody>
</table>
</div>
{*
Способ №2. Через процессор
*}
{assign var=params value=[
"where"=>["id"=>$modx->resource->id]
,"current" => true
]}
{processor action="web/catalog/products/getdata" ns="modxsite" params=$params assign=result}
{if $result.success}
{assign var=object value=$result.object}
{/if}
<h2>Способ №2</h2>
{include file="shop/products/list/layout.tpl"}
{/block}
Опечатка обрабатывается <strong>на</strong> MODX-парсером, а на уровне PHP
Спасибо, поправил. P.S. такие комменты лучше в личку. Здесь они мало для кого полезны.