вывод информации о предупреждениях пользователю в его минипрофиль в темепо совету пользователя решил создать данную тему. тема будет немного более расширенной, чем по названию. я постараюсь по полочкам разложить всю эту систему и вносимые изменения.
сейчас происходит тестирование самого хака. как будет появляться время - буду продолжать писать. (с временем сейчас напряги).
для информации выложу сканы получившегося творения:
Вложение:
Комментарий к файлу: 1 предупреждение
ban1.png [ 18.48 КБ | Просмотров: 3986 ]
ban1.png
Вложение:
Комментарий к файлу: 2 предупреждения
ban2.png [ 18.73 КБ | Просмотров: 3986 ]
ban2.png
Вложение:
Комментарий к файлу: объявление бана
ban3.png [ 15.83 КБ | Просмотров: 3986 ]
ban3.png
В минипрофиль пользователя в теме выводится информация о вынесении ему предупреждений за какие-либо нарушения на форуме. считается, что даётся 2 китайских предупреждения, вслед за чем (при повторном нарушении) объявляется БАН и понижение в правах доступа.
Решил немного добавить информации: сейчас посмотрел на получившееся творение и подумал: профиль участника форума ведь всё-равно остаётся. в минипрофиле темы выводится вся информация, но, при переходе оттуда для просмотра профиля пользователя - ничего такого нет. в профиле выводится количество предупреждений (стандартно), но вот того, что теперь пользователь заБАНен - нет. решил исправить это несоответствие.
получилось так:
Вложение:
Комментарий к файлу: вывод БАНа в профиле
profil_ban.png [ 47.56 КБ | Просмотров: 3980 ]
profil_ban.png
о предупреждениях
За какое-либо нарушение правил форума модератор (администратор) может вынести пользователю предупреждение. Предупреждение можно вынести через соответствующую кнопку в теме сообщения.
Список "правонарушений" и самих "нарушивших" имеется только в модераторском разделе и для общественности недоступен.
Предупреждений, похоже, можно выносить сколько угодно - я не нашёл где можно выставить ограничения.
Если предупреждению пользователю выдано - отменить его невозможно. Такой функции на форуме нет. Предупреждение будет автоматически снято через 90 дней (по стандартным настройкам форума).
Эта настройка находится Админка - Общие - Настройки конференции - Длительность предупреждений.
Эта настройка затрагивает всех пользователей.
Вроде всё.
Вся тема создана на основе информации с темы
Мини МОД предупреждение.
Я только переработал данные оттуда под свои нужды.
Для работы этого хака необходимо создать в административном разделе новую группу:
заходим по адресу:
Админка -
Пользователи и Группы -
Управление группами - Создать группу (назовём её Бан).
В настройках группы можете ставить сами, что вам нравится, главное в строке
Цвет группы:
Цвет имён пользователей — участников группы. Оставьте поле пустым для использования цвета по умолчанию.
необходимо прописать
000000, то есть чёрный цвет. (или не трогать, если он там уже стоит).
Добавлять "участников" в эту группу мы будем уже после 3 предупреждения. Эта поможет сменить цвет ника пользователя на чёрный и вывести надпись "вам объявлен БАН".
код вывода в шаблоне, который это и сделает:
Код: Выделить всё
<!-- IF postrow.POST_AUTHOR_COLOUR eq '#000000' -->информация<!-- ENDIF -->
а вот это условие позволяет выводить информацию, если пользователю объявлено предупреждение:
Код: Выделить всё
<!-- IF postrow.POSTER_WARNINGS eq '1' -->информация<!-- ENDIF -->
цифра
1 означает означает одно предупреждение. до БАНА вы можете сделать не два, как здесь, а больше, просто добавляя ещё один код (с
3 и так далее).
Вывод информации о предупреждениях и БАНе в минипрофиле (в отличии от оригинала) организован без вывода картинок.
Пока не могу написать код вывода для стандартных стилей - не протестировал, но у меня этот вывод организован так:
этот сайт
Вывод информации в минипрофиле пользователя в теме сообщения:
Открыть
viewtopic_body.htmlэто вывод цветной рамки вокруг минипрофиля:
Найти
Код: Выделить всё
<!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td valign="top" class="profile"
Вставить после найденного
Код: Выделить всё
<!-- IF postrow.POST_AUTHOR_COLOUR eq '#000000' -->style="border:1px dotted #BB0000;position:relative;"<!-- ELSE --><!-- IF postrow.POSTER_WARNINGS eq '1' -->style="border:1px solid #FFA500;"<!-- ENDIF --><!-- IF postrow.POSTER_WARNINGS eq '2' -->style="border:1px solid #FF6347;"<!-- ENDIF --><!-- ENDIF -->
Чтобы получилось вот так:
Код: Выделить всё
<!-- IF postrow.S_ROW_COUNT is even --><tr class="row1"><!-- ELSE --><tr class="row2"><!-- ENDIF -->
<td valign="top" class="profile" <!-- IF postrow.POST_AUTHOR_COLOUR eq '#000000' -->style="border:1px dotted #BB0000;position:relative;"<!-- ELSE --><!-- IF postrow.POSTER_WARNINGS eq '1' -->style="border:1px solid #FFA500;"<!-- ENDIF --><!-- IF postrow.POSTER_WARNINGS eq '2' -->style="border:1px solid #FF6347;"<!-- ENDIF --><!-- ENDIF -->>
Вывод сообщения
Вы заБАНены!:
Найти
Код: Выделить всё
<table cellspacing="4" align="center" width="220">
<!-- IF postrow.RANK_TITLE -->
Вставить перед найденным
Код: Выделить всё
<!-- IF postrow.POST_AUTHOR_COLOUR eq '#000000' --><span style="background:#fff;padding:5px;color:#bb0000;font-size:20px;position:absolute;top:30px;left:30px;">Вы заБАНены!</span><!-- ENDIF -->
Как видите, здесь используется абсолютное позиционирование относительно блока минипрофиля, поэтому, думаю, со стилем на основе prosilver'a могут быть проблемы.
а вот этот код выводит надписи-предупреждения. вообще-то можно и надпись БАН добавить туда же, если не хотите накладывать её поверх аватара:
Найти
Код: Выделить всё
<!-- IF postrow.POSTER_AVATAR -->
<tr>
<td>{postrow.POSTER_AVATAR}</div></td>
Вставить перед найденным
Код: Выделить всё
<!-- IF postrow.POST_AUTHOR_COLOUR eq '#000000' -->
<tr>
<td> </td>
</tr>
<!-- ELSE -->
<!-- IF postrow.POSTER_WARNINGS eq '1' -->
<tr>
<td align="center"><span style="color:#FFA500;font-size:15px;">Вам вынесено<br> предупреждение!</span></td>
</tr>
<!-- ENDIF -->
<!-- IF postrow.POSTER_WARNINGS eq '2' -->
<tr>
<td align="center"><span style="color:#FF6347;font-size:15px;">Вам вынесено второе<br> (последнее) предупреждение!</span></td>
</tr>
<!-- ENDIF -->
<!-- ENDIF -->
В строку
Вместо
можете написать предупреждение о Бане. тогда оно будет выводиться там же, где и остальные надписи.
Вывод информации о БАНе в профиле пользователя:
Открыть
memberlist_view.htmlНайти
Код: Выделить всё
<tr>
<th width="40%"><h4>{L_USER_PRESENCE}</h4></td>
<th width="60%" align="center"><h4>{L_USER_FORUM}</h4></td>
</tr>
<tr>
<td class="row1" align="center">
Часть строки
Заменить на
Код: Выделить всё
<td class="row1" align="center" style="position:relative;">
После этого кода, перед кодом
Код: Выделить всё
<table cellspacing="1" cellpadding="2" border="0">
Вставить сам вывод надписи:
Код: Выделить всё
<!-- IF USER_COLOR eq '#000000' --><span style="background:#fff;padding:5px;border:1px solid #bb0000;color:#bb0000;font-size:20px;position:absolute;top:100px;left:50px;">Пользователь заБАНен!</span><!-- ENDIF -->
Чтобы получилось
Код: Выделить всё
<td class="row1" align="center" style="position:relative;">
<!-- IF USER_COLOR eq '#000000' --><span style="background:#fff;padding:5px;border:1px solid #bb0000;color:#bb0000;font-size:20px;position:absolute;top:100px;left:50px;">Пользователь заБАНен!</span><!-- ENDIF -->
<table cellspacing="1" cellpadding="2" border="0">
Вот это:
position:absolute;top:100px;left:50px; - позиционирование надписи относительно блока с аватаркой. измените данные под свой вывод.
Всё. почистите кэш и готово.
Как это работает: после первых двух предупреждений будут выводиться соответствующие надписи и рамки жёлтого и оранжевого цветов. это происходит автоматически. но вот после объявления последнего (3) предупреждения необходимо пойти в администраторский раздел во вновь созданную группу (Бан) и добавить туда нового "жителя", прописав при добавлении, что это у него теперь
группа по умолчанию.
После этого ник пользователя станет чёрным и появится надпись
БАН!.
Написал вроде много и кажется мудрёным, но, на самом деле, всё довольно просто.
Сам код я попытался написать опять "как конструктор", чтобы каждый смог переделать его "под себя". всё оформление (css) прописано прямо в шаблоне.
И ещё: вся эта "красивость" - чисто информационная и никакими "репрессиями" нарушителю не грозит. после "объявления БАНа" вам надо самим либо понизить пользователя в правах, либо внести его в "Чёрный список форума" вообще закрыв ему доступ. его профиль с висящей на нём надписью БАН покажет остальным пользователям что произошло и почему он не отвечает.
Если ещё чего смогу "приделать" к данной теме для расширения возможностей - напишу.
в процессе написания...
(тестирование на стандартных стилях и прописка информации в теме).