Dipler.ru

Мы поделимся с тобой своим бесценным опытом

У нас ты найдешь только нужный и полезный контент

Информационный блог, посвящённый различным темам

Как стилизовать ники пользователей под цвет групп в DLE?

Стилизация никнеймов пользователей под цвет групп DLE

Предисловие

В очередной раз, когда я вносил небольшие поправки в оформление этого сайта, в частности в профилях пользователей, я понял, что никнеймы юзеров хорошо было бы привести к точно такому же виду, что и статусы пользователей. То есть мне хотелось видеть одно оформление, как на статусах пользователей, так и на их никах. Подобная система реализована на форумах. Я полез в админку сайта и понял, что реализовать свою идею мне не получится. Очень жаль, что celsoft не дал нам такую возможность. Полез в наш любимый поисковик, пролистал несколько десятков страниц, но толком ничего не нашел. Конечно выдало много сайтов, где был опубликован способ от некого RooTM, который подразумевает в себе следующий принцип: вставляем в любой js файл код и добавляем туда свой ник, затем стили для него. Согласитесь, это очень неудобно и не практично. Если у меня 1000 пользователей с уникальными стилями для никнеймов, мне делать 1000 записей? Глупость! Также был найден модуль от ShapeShifter, который, казалось бы, должен помочь мне реализовать идею, но есть неприятный нюанс, он платный. Я такой же любитель халявы, как и вы, поэтому мне данный способ не подошел, да и было лень мне искать слитые версии данного модуля, ибо как минимум, это некрасиво.

Я долго думал, как же мне реализовать стилизацию ников пользователей под их статусы, в итоге полез в корневые файлы движка и стал искать зацепки там. Думаю история о том, как я пытался реализовать свою идею, вам не интересна. Вы же пришли за готовым решением, не так ли?

Как стилизовать ники пользователей под цвет групп?

Сразу отмечу, что нижеприведенный способ работает только в профилях пользователей (userinfo.tpl)

Переходим в файл engine/modules/profile.php, далее находим строку:

$tpl->set( '{usertitle}', stripslashes( $row['name'] ) );

Ниже добавляем следующий код:

$tpl->set( '{username_title}', $user_group[$row['user_group']]['group_prefix'] . $row['name'] . $user_group[$row['user_group']]['group_suffix'] );

Тем самым мы создаем новый тег для вывода никнеймов, который имеет те же стили, что и название группы пользователей. Почему был сделан отдельный тег для этой цели? Дело в том, что Вы можете использовать тег {usertitle} для вывода определенной информации. К примеру у Вас в профилях пользователей, напротив ника, стоит вывод Онлайн/Оффлайн статусов, и при наведении на них выводится следующую информацию: Admin в сети. Не сложно догадаться, что если видоизменить основной тег {usertitle}, то выводя его в дополнительную информацию, Вы получите некорректное отображение (было проверено). Разумеется Вас это не устроит, поэтому и был создан отдельный тег, не мешающий основному. Теперь, в шаблоне userinfo.tpl, в том месте, где нужно вывести никнейм пользователя, вставляем тег {username_title}.

Как стилизовать ники пользователей под цвет групп в комментариях?

Переходим в файл engine/classes/comments.class.php, затем находим следующий код:

if( $config['allow_alt_url'] ) $tpl->set( '{author}', "<a {$go_page} href=\"" . $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/\">" . $row['name'] . "</a>" );
else $tpl->set( '{author}', "<a {$go_page} href=\"$PHP_SELF?subaction=userinfo&user=" . urlencode( $row['name'] ) . "\">" . $row['name'] . "</a>" );

Заменяем его на преобразованный код:

if( $config['allow_alt_url'] ) $tpl->set( '{author}', "<a {$go_page} href=\"" . $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/\">" . $user_group[$row['user_group']]['group_prefix'] . $row['name'] . $user_group[$row['user_group']]['group_suffix'] . "</a>" );                        else $tpl->set( '{author}', "<a {$go_page} href=\"$PHP_SELF?subaction=userinfo&user=" . urlencode( $row['name'] ) . "\">" . $user_group[$row['user_group']]['group_prefix'] . $row['name'] . $user_group[$row['user_group']]['group_suffix'] . "</a>" );

Принцип такой же, что и с профилем пользователей, только новый тег делать мы не стали, а видоизменили уже существующий. В комментариях можно вывести ник пользователя тегом {login}, для какой-либо дополнительной информации.
В итоге мы получаем желаемый нами результат.

В обоих случаях, перед и после переменной $row['name'], были добавлены переменные $user_group[$row['user_group']]['group_prefix'] и $user_group[$row['user_group']]['group_suffix'], которые отвечают за вывод стилей из админки. Теперь они стилизуют не только статус пользователя, но еще и его ник, как в профиле, так и в комментариях. 

После проделанных операций рекомендую почистить КЕШ сайта, для этого существует специальная кнопочка, на главной странице Админ-панели.

Не спорю, что существуют и другие аналогичные способы, как можно стилизовать ники пользователей под цвет групп, но я таковых не нашел, и из этого можно сделать вывод, что они глубоко зарыты в поисковых запросах и рядовому пользователю интернета будет сложно их найти. Также не буду утверждать, что это единственный правильный способ. Моя цель заключается в том, чтобы показать вам работающий метод, который вы можете использовать под себя и смело модернизировать его. Очень надеюсь, что данная статья окажется вам полезной. Буду рад, если вы изъявите желание зарегистрироваться у нас на сайте, ведь мы стараемся выпускать только качественный контент.

SaNeR

Автор: SaNeR

Автор: SaNeR

Опубликовано: 15.10.2018

847

0
0
+55

Информация:

Упс, кажется ты не сможешь оставить свой драгоценный комментарий под этой публикацией. Не спиши покидать страницу, это легко исправить, для этого пройди быструю регистрацию на нашем сайте или войди в уже существующий аккаунт.