Как сравнить User id администратора и Createby комментатора

Доброго времени суток!

На сайте стоит система тикетов в виде чата
В чате вывод сообщения пользователя необходимо сделать одного цвета, а вывод администратора другого.
(Администраторов может быть несколько)
Пытаюсь сделать методом подставки определенного класса

То-есть сравнить Admin и [[!+createdby]] в class=""
Предполагаю что надо сделать

[[!+ПроверкаАдминистратора:is=`[[!+createdby]]`:then=`admin`:else=`user`]]

Вопрос — как сделать проверку именно на администратора?
Андрей
18 января 2019, 16:24
modx.pro
1
689
0

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

Андрей
18 января 2019, 16:59
0
Можно на Fenom вот так:
{var $admins = [1,2,3]} //массив id существующих админов
	
{if $createdby in list $admins}
    admin
{else}
    user
{/if}
    Баха Волков
    18 января 2019, 18:11
    +1
    Вопрос — как сделать проверку именно на администратора?
    {if $createdby | ismember : 'Administrator'}
    Administrator
    {else}
    User
    {/if}
      Андрей
      18 января 2019, 18:14
      0
      А можно это как-то будет прописать именно сниппетом и в последствии его просто вывести в шаблоне? Чтобы кода лишнего в чанке не было
        Баха Волков
        18 января 2019, 18:22
        0
          Андрей
          18 января 2019, 18:35
          0
          Не особо к сожалению в php разбираюсь(
          Если есть возможность помочь с этим, поставлю большой + в карму
            iWatchYouFromAfar
            18 января 2019, 19:28
            1
            +1
            Есть такой вариант:

            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. Результат примерно такой



            Т.е. в сниппете проверяем группу и на её основании подставляем нужный цвет. Дальше развивайте идею и стилизуйте то что вам необходимо.
              Андрей
              18 января 2019, 19:55
              0
              Как раз именно то, что нужно было!
              Огромнейшее спасибо!)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7