сайт на данный момент является архивом информации по форуму phpbb 3.0. объяснения и помощь больше не предоставляются. старый сайт

Белк на PhpBB 3.0.14

информация по этому форуму. bbcode, моды и прочее, проверенное Белком. (перенос данных продолжается...)

Сегодня на конференции было 65 посетителей :: 1 зарегистрированный, 0 скрытых, 1 бот и 63 гостей (основано на активности посетителей за последние 24 часа)




 [ Сообщений: 2 ] 
Автор Сообщение
Не в сети
  (Андрей)
Администратор
Аватара пользователя

Стаж: 5 месяцев 21 день
Сообщения: 228
Откуда: здешние мы

Стиль сайта: subsilver2
Настоящее имя: Андрей


вывод информации о предупреждениях пользователю в его минипрофиль в теме

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

сейчас происходит тестирование самого хака. как будет появляться время - буду продолжать писать. (с временем сейчас напряги).

для информации выложу сканы получившегося творения:

Вложение:
ban1.png
ban1.png [ 18.48 КБ | Просмотров: 58 ] ban1.png



Вложение:
ban2.png
ban2.png [ 18.73 КБ | Просмотров: 58 ] ban2.png



Вложение:
ban3.png
ban3.png [ 15.83 КБ | Просмотров: 58 ] ban3.png



В минипрофиль пользователя в теме выводится информация о вынесении ему предупреждений за какие-либо нарушения на форуме. считается, что даётся 2 китайских предупреждения, вслед за чем (при повторном нарушении) объявляется БАН и понижение в правах доступа.

Решил немного добавить информации: сейчас посмотрел на получившееся творение и подумал: профиль участника форума ведь всё-равно остаётся. в минипрофиле темы выводится вся информация, но, при переходе оттуда для просмотра профиля пользователя - ничего такого нет. в профиле выводится количество предупреждений (стандартно), но вот того, что теперь пользователь заБАНен - нет. решил исправить это несоответствие.
получилось так:

Вложение:
profil_ban.png
profil_ban.png [ 47.56 КБ | Просмотров: 58 ] 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>&nbsp;</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 -->


В строку

Код: Выделить всё

                                       <td>&nbsp;</td>


Вместо &nbsp; можете написать предупреждение о Бане. тогда оно будет выводиться там же, где и остальные надписи.


Вывод информации о БАНе в профиле пользователя:

Открыть 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">


Заменить на

Код: Выделить всё

      <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) прописано прямо в шаблоне.

И ещё: вся эта "красивость" - чисто информационная и никакими "репрессиями" нарушителю не грозит. после "объявления БАНа" вам надо самим либо понизить пользователя в правах, либо внести его в "Чёрный список форума" вообще закрыв ему доступ. его профиль с висящей на нём надписью БАН покажет остальным пользователям что произошло и почему он не отвечает.

Если ещё чего смогу "приделать" к данной теме для расширения возможностей - напишу.


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Не в сети
  (Андрей)
Администратор
Аватара пользователя

Стаж: 5 месяцев 21 день
Сообщения: 228
Откуда: здешние мы

Стиль сайта: subsilver2
Настоящее имя: Андрей


Цитата:
Обнаружился недочет который ставит под сомнение всю идею данного мода.
Дело в том, что на любом форуме phpbb3 есть счетчик с количеством дней, после которых предупреждения снимаются, что логично. А раз снимаются предупреждения, то и графический бан тоже
Неразумно обнулять счетчик. У пользователя таким образом на всю жизнь останется эта метка, что не есть гуд.
Как то можно модифицировать?
Например, если ты получил 3 предупреждения и бан, то не смотря на снятие предупреждений автоматических, красный бан остается навсегда и не снимается.


думаю, что вряд ли. Бан (или последнее наказание) появляется в профиле только потому, что вы прописываете данного пользователя в группе Бан. данная группа никаким местом с системой предупреждений не связана и пока вы вручную пользователя с этой группы не уберёте - картинка будет висеть. а предупреждения, само собой, снимутся спустя определённое время.


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ Сообщений: 2 ] 

Кто сейчас на конференции:

Всего посетителей: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (63) здесь было 23 май 2026, 12:35

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Часовой пояс: UTC + 3 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

cron

Текущее время: 27 июн 2026, 23:54

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB.