
Небольшие полезняшки для тех кто работает с Fenom для MODx. Список будет периодически дополняться.
Заполнение блока HEAD на Fenom
Самое первое и главное, сразу под <head>.
<base href="{$_modx->config.site_url}" />
Если заполнен Дополнительный заголовок в ресурсе, выводим его в title, иначе показываем Название поста. — {$_modx->config.site_name}
добавляет Название сайта через тире.
<title>{$_modx->resource.longtitle ?: $_modx->resource.pagetitle} — {$_modx->config.site_name}</title>
Если создано TV поле keywords для метатегов ресурса, можно сделать его отображение в случае заполнения. Не заполните, строки не будет.
{if $_modx->resource.keywords?}<meta name="keywords" content="{$_modx->resource.keywords}">{/if}
Если ключевыми словами можно пренебречь, то без description нам нельзя. Берётся с поля Описание в ресурсе.
<meta name="description" content="{$_modx->resource.description}">
Правила для роботов, если в настройках ресурса стоит Доступен для поиска, то index, follow, иначе — noindex, nofollow
{if $_modx->resource.searchable}<meta name="robots" content="index, follow"> {else}<meta name="robots" content="noindex, nofollow">{/if}
Каноническая ссылка для ресурса
<link rel="canonical" href="{$_modx->makeUrl($_modx->resource.id, '', '', 'full')}">
Часто нужно подключать дополнительный скрипт или стиль только на одну страницу. Например, слайдер есть только на Главной, и подключение стилей на других страничках выглядит не логичным. Чтобы не тянуть лишнее по всему сайту можно сделать так. В примере, если id ресурса = 1 (Главная), то добавляем ссылку на css. На всех остальных ресурсах его не будет.
{$_modx->resource.id == '1' ? '<link rel="stylesheet" href="/assets/theme/css/deafult.css">' : ' '}
Или связать не с конкретным ресурсом, а с шаблоном. На всех ресурсах с шаблоном id которого равно 5, будет подключаться нужный скрипт или стиль.
{$_modx->resource.template == '5' ? '<link rel="stylesheet" href="/assets/theme/css/deafult.css">' : ' '}
Блок HEADER
Ссылка с логотипа сайта актуальна только не на Главной. Оптимизируем. Если id ресурса не равно 1 (Главная), выводим лого с ссылкой на Главную, иначе просто картинка.
{if $_modx->resource.id != 1} <a href="/"> <img alt="{$_modx->config.site_name}" width="100" height="48" src="/assets/theme/img/logo.png"> </a> {else} <img alt="{$_modx->config.site_name}" width="100" height="48" src="/assets/theme/img/logo.png"> {/if}
Breadcrumbs (хлебные крошки) на Fenom
{'pdoCrumbs' | snippet : [ 'showHome' => 1, 'outputSeparator' => '', 'showCurrent' => '0', 'hideSingle' => '0', 'tplWrapper' => '@INLINE <ul itemscope="" itemtype="http://schema.org/BreadcrumbList" class="class-b">{$output}</ul>', 'tpl' => '@INLINE <li itemscope="" itemprop="itemListElement" itemtype="http://schema.org/ListItem"><a class="class-b" title="{$menutitle}" itemprop="item" href="{$link}"><span itemprop="name">{$menutitle}</span><meta itemprop="position" content="{$idx}"></a></li>', 'tplCurrent' => '@INLINE <li itemscope="" itemprop="itemListElement" itemtype="http://schema.org/ListItem" class="active"><a title="{$menutitle}" itemprop="item" href="{$link}"><span itemprop="name">{$menutitle}</span><meta itemprop="position" content="{$idx}"></a>', 'tplHome' => '@INLINE <li itemscope="" itemprop="itemListElement" itemtype="http://schema.org/ListItem"><a rel="nofollow" title="{$menutitle}" itemprop="item" href="{$link}"><span itemprop="name">{$menutitle}</span><meta itemprop="position" content="{$idx}"></a></li>' ]}
Другие вставки
Вывод текущего года на Fenom. Применяется чистая php функция .date
{$.php.date('Y')}
Comments (0)