Денис Усачев

Денис Усачев

Был в сети 08 сентября 2025, 16:16
Заказы не принимаю
iWatchYouFromAfar
iWatchYouFromAfar
Есть такой вариант:

1. В чанке где выводим комментарии делаем примерно так:
<a href="users/{$username}">
    <span style="color: {$_modx->runSnippet('@FILE snippets/checkUserGroup.php', ['userid' => $createdby])};">{$fullname}</span>
</a>
2. Делаем сниппет с названием checkUserGroup.

$user = $modx->getObject('modUser', array('active' => true, 'id' => $userid));

// Если пользователь не найден, ну мало ли?
if ($user == null)
    return 'inherit';

// Если пользователь Админ, делаем ник красным.
if ($user->isMember('Administrator')) {
    return 'red';

} // Или если пользователь член группы Users, наследуем обычный цвет.
elseif ($user->isMember('Users')) {
    return 'inherit';
}

return ($result);
3. Результат примерно такой



Т.е. в сниппете проверяем группу и на её основании подставляем нужный цвет. Дальше развивайте идею и стилизуйте то что вам необходимо.
Баха Волков
Баха Волков
Ссылку получать нужно так:

[[~id ресурса]]
{id ресурса | url}

// Прямое указание id ресурса
[[~2]]
{2 | url}

//  Динамичное указание id ресурса
[[~[[+id]]]]
{$id | url}
[[~[[*id]]]]    // Вдруг нужна циклическая ссылка :)
{$_modx->resource.id | url}    // Вдруг нужна циклическая ссылка :)

// ну а если ваш плейсхолдер [[!+gl.current.data.resource]] возвращает именно id, то
[[~[[!+gl.current.data.resource]]]]
{var $myplace = $_modx->getPlaceholder('gl.current.data.resource')}    // Вдруг еще понадобится
{$myplace | url}

// Кстати, для получения полей есть еще FastField
[[#id ресурса.поле или даже тв которое нужно вывести]]
{id ресурса | resource : 'поле или даже тв которое нужно вывести'}

// Пример
[[#1.pagetitle]]    // Получить pagetitle у ресурса с id = 1
{1 | resource : 'pagetitle'}

Как получить родителя по id?
[[*parent]]    // На странице ресурса
{$_modx->resource.parent}
[[+parent]]    // В чанках вывода
{$parent}
[[#[[!+gl.current.data.resource]].parent]]    // Тот случай когда нужно получить id по плейсхолдеру
{$_modx->getPlaceholder('gl.current.data.resource') | resource : 'parent'}
[[pdoField? &id=`[[!+gl.current.data.resource]]` &field=`parent`]]    // Ну или через pdoField
{var $myplace = $_modx->getPlaceholder('gl.current.data.resource')}
{$myplace | resource : 'parent'}

Для корректности, вашем случае нужно поступить вот так:
[[~[[#[[!+gl.current.data.resource]].parent]]]]
{$_modx->getPlaceholder('gl.current.data.resource') | resource : 'parent' | url}
// или
[[~[[pdoField? &id=`[[!+gl.current.data.resource]]` &field=`parent`]]]]
{var $myplace = $_modx->getPlaceholder('gl.current.data.resource')}
{$myplace | resource : 'parent' | url}

UPD
Забыл совсем про uri
Если, что в поле uri хранится ссылка на страницу, но никак не в alias
Сергей Малышев
Сергей Малышев
Добрый день!
Это было так давно…
Нужен файл fotorama.min.js, который входит в minishop2 свежей версии. Так что, скачанный Вами файл как лечить я Вам подсказать не могу.
Возьмите пакет из minishop2. Разверните fotorama.min.js в нормальный вид. Воспользуйтесь указанной ссылкой, там есть fotorama.dev.4.6.4-patched.js.zip. Посмотрите, как сделано там.
Raimei
Raimei
Воспользуйтесь решением от Vgrish modCKEditor.

Или моим форком (это конечно смешной форк, пока просто тему другую поставил).

Там используется Drag&Drop система. Тоесть, просто закидываете картинку и всё. Дальше оно автоматически загружается.
Андрей
Андрей
Потому что where это выборка по условию, так и будет работать. Если нужно чтобы были вверху, надо использовать параметр sortby, который принимает json массив, примерно как то так будет:

&sortby=`{"Data.popular":"desc", "Data.new":"desc", "publishedon":"desc"}`