Иконка для каждой категории в меню, не могу понять в чем проблема

Версия MODX 2.8.4

Создал TV «categoryicon»

Создал сниппет getCategoryIcon

<?php
$categoryId = $modx->resource->get('id'); // Получаем ID текущей категории
$category = $modx->getObject('modResource', $categoryId); // Получаем объект текущей категории
$iconSvg = $category->get('categoryicon'); // Получаем значение поля

if (!empty($iconSvg)) {
    return $iconSvg;
}


return 'assets/images/category/default.svg';
В header указал вызов сниппета

<div class="top-menu-wrapper [[++menuvar2:notempty=`var2`]]">
        <div class="container">
                    <div class="top-menu">
            <span class="top-menu-var2-btn">Меню</span>
            [[pdoMenu?
                &parents=`7`
                &level=`1`
                &tpl=`
                @CODE <li [[+classes]]>
                <span class="menu-icon">
                        <img src="[[!getCategoryIcon]]" alt="Icon">
                </span>
                <a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]
                </li>
                `]]
        </div>
        </div>
    </div>
Но почему-то всем категориям задается default.svg, заданные мной иконки не отображаются, что я делаю не так?
Samuil
11 октября 2023, 15:58
modx.pro
373
0

Комментарии: 3

Денис Усманов
11 октября 2023, 16:24
0
Зачем писать сниппет, если достаточно просто передать ТВ поле в pdoMenu?

[[pdoMenu?
        &parents=`7`
        &level=`1`
        &includeTVs=`categoryicon`
        &tpl=`liTpl`
]]

liTpl:
<li [[+classes]]>
        <span class="menu-icon">
                <img src="[[+categoryicon:default=`assets/images/category/default.svg`]]" alt="Icon">
        </span>
        <a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>
        [[+wrapper]]
</li>
    Samuil
    11 октября 2023, 16:35
    0
    Спасибо большое, сработало.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
3