Skip to content

Сниппеты, TV, Fenom

Fenom: рабочие практики проекта

Глобальные плейсхолдеры (через модификатор)

Для плейсхолдеров, которые выставляют сниппеты (toPlaceholder, totalVar, …), используется модификатор:

  • вывод: {'newsOuter'|placeholder}
  • проверка: {if ('newsOuter'|placeholder)?}...{/if}
  • числа: {if ('newsTotal'|placeholder) > 3}...{/if}

Важно: в chunks/tpls/*.tpl часто используется $_pls[...] — это плейсхолдеры элемента списка, не глобальные.

Получение полей/TV из другого ресурса

Вместо getObject('modResource', ID) используется Fenom‑модификатор |resource:

  • JSON TV: {var $comment = 12 | resource : "comment" | fromJSON}
  • поле/TV: {var $title = 8 | resource : "pagetitle"}

MIGX/TV JSON без getImageList

Если TV хранит JSON, его можно парсить прямо в шаблоне:

  • {var $items = $_modx->resource.someTv | fromJSON}
  • {foreach $items as $item} ... {/foreach}

Формы (AjaxForm/FormIt)

В footer.tpl определены модалки:

  • #feedback — форма AjaxForm.feedback
  • #callback — форма AjaxForm.callback

Плюс секция формы в contact-form.tpl:

  • форма AjaxForm.contact

Общий паттерн:

  • {'AjaxForm'|snippet:[ 'snippet'=>'FormIt', 'hooks'=>'email', ... ]}
  • validate обычно: fio:required, tel:required, message (без required)
  • после af_complete показывается #responseMessage (успех/ошибка)

Список “важных” TV/настроек (по коду проекта)

TV/данные:

  • gallery, docs, tables, question
  • case (кейсы)
  • nums (цифры)
  • footer (структура меню футера из MIGX/TV)
  • для sales.tpl: banners, actions

Системные настройки ($_modx->config.*) которые реально используются:

  • site_name, site_url
  • assets_url
  • logo, favicon
  • company_name
  • phone, schedule_phone
  • address, email
  • emailTo, emailFrom
  • mask_code
  • соцсети: youtube, vk, inst, whatsapp, viber, telegram