OLD-idmessage-132256

#1946839
Данилка
Участник

[quote name='Valerik'][quote name='Данилка'] Предложение, связанное с банами.[/quote]Это все и так понятно. Конечно же она требует переделки. Весь вопрос в сроках.[/quote]Я думаю, что все это можно реализовать очень быстро и очень легко. Есть база данных. В ней хранятся булевы значения: тема закрыта, модератор, забаненый.Предположим, что в этих значениях используются значения True (истина), когда есть право записи и значение False – когда права записи нет.Например:Допустим в БД есть поле “Closed”, означающее, закрыта ли тема. Если значение “False” – права на запись нет, тема закрыта. Если True – тема открыта, право записи есть.Так вот, в настоящий момент в коде Комсити есть что-то вроде строчки:if Closed=false{ не выводить окошко для написания сообщений;написать “тема закрыта”;}Так вот, все что нужно сделать, это дописать пару строчек. Ввести новую переменную, назовем ее “Pravo”.Вычисляем ее значение: Pravo=Moderator or ClosedДопустим тема закрыта (Closed=False), но сообщение хочет написать модератор (Moderator=True).В этом случае результат выражения Pravo=True or Closed примет значение True.То есть несмотря на то, что тема закрыта, блок:if Pravo=false{ не выводить окошко для написания сообщений;написать “тема закрыта”;}не будет выполнен.Что касается конкретно бана, то точно такая же система. В таблице юзеров в БД должно быть поле “Banned”, так же принимающее значение True (не забанен, запись разрешена) или False (забанен, запись не разрешена).Только формула на этот раз будет:Pravo=(Moderator or Closed) And BannedПример. Пишет Модератор (Moderator=True) в открытую тему (Closed=True), но модератор забанен… бывает… Banned=FalseРезультат выраженияPravo=(True or True) And False примет значение False и блок if Closed=false{ не выводить окошко для написания сообщений;написать “тема закрыта”;}Будет выполнен. Таким образом, несмотря на то, что модератор, несмотря на то, что тема открыта, право записи все равно нет. Потому что забанен.Таким образом, на Комсити _уже_ реализована система запрета записи в тему, только в коде надо внести поправку – не выводить окошко не по значению “закрытости” темы, а не выводить благодаря логическому вычислению трех переменных. На самом деле – это буквально 3 новые строчки.Зато пользователи, несмотря на бан в форуме смогут пользоваться чатом (если еще там не забанят [smile badgrin] ), смогут читать форумы в привычном оформлении (мне нравится бело-голубое оформление “снегопад”), смогут полноценно пользоваться сервисом объявлений, смогут пользоваться личной перепиской и, наконец, смотреть правила форума в настройках.Кстати, еще один момент. На основании этих переменных, можно сделать так, что бы забаненому автоматически становился виден невидимый раздел “Мировой суд” на форуме с правом записи в него. Или создать новый скрытый раздел “обматери модератора” 🙂 , где можно будет поругаться в адрес сервера, модераторов, отвести душу и с чувством выполненого долга мужественно пережить бан. [smile cool]