Два способа вывода данных документа в modxSmarty

Так как я удаляю лишний код из шаблонов сборки, но не хочется лишать программистов примеров, публикую код здесь. {* Шаблон товара *} {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. такие комменты лучше в личку. Здесь они мало для кого полезны.