Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как реализовать модерирование форумов?
 
 автор: cyberface   (25.06.2006 в 17:29)   письмо автору
 
 

Вот такой вопрос. Сделал я простенький форум со своими особенностями, но теперь хочу сделать систему модерирования, и немного не понимаю как ее реализовать.
Хотелось бы сделать следущее:
админ, т.е. я или кто-то еще дает определенному пользователю права модератора, причем определяет конкретный форум, или форумы где этот пользователь должен модерировать.
Этот пользователь заходит на модерируемый форум как обычно, т.е. как все пользователи, только с возможносью редактирования/удаления тем и постов.
Я столкнулся с рядом труднойтей - самая главная - как в БД хранить ID модерируемых форумов.
Да и вообще, если кто-то сталкивался с проблемой релизации системы модерирования (а я уверен, что сталкивались) то раскажие как вы ее решили.
Надеюсь на вашу помощь, дорогие форумчане.

   
 
 автор: valenok   (25.06.2006 в 17:37)   письмо автору
 
   для: cyberface   (25.06.2006 в 17:29)
 

Делаешь таблицу: Морды.
Там делаешь пару колонок:
ник и форум1, форум2, форум три
Ну значит макс один содер может модерировать 3 форума.
Или в базу записывать id вот таким образом 17,21,4,5

   
 
 автор: cyberface   (25.06.2006 в 17:42)   письмо автору
 
   для: valenok   (25.06.2006 в 17:37)
 

Насчет таблицы это я допер.
Вариант с колонками не проходит, так как форумы могут прибавляться, а значит придется еще одно поле делать. Последний вариант более менее подходит, я думал над ним, вот только какой тип данных выбрать для этого? Обычные строковые типа text , char и т.д.?

   
 
 автор: valenok   (25.06.2006 в 17:47)   письмо автору
 
   для: cyberface   (25.06.2006 в 17:42)
 

varchar
255 символов -> 85 форумов для модерирования для каждого модератора

   
 
 автор: Trianon   (26.06.2006 в 09:43)   письмо автору
 
   для: cyberface   (25.06.2006 в 17:42)
 

Сделайте таблицу назначений модераторов:assign_table(id_assign, id_user,id_forum)
и добавляйте туда по строке для каждого назначения.

   
 
 автор: cyberface   (26.06.2006 в 12:32)   письмо автору
 
   для: Trianon   (26.06.2006 в 09:43)
 

Trianon , большое спасибо! Блин, как же я сам до этого не догадался. Предложенный вами вариант наиболее логичен. Еще раз спасибо =)

   
 
 автор: valenok   (26.06.2006 в 12:33)   письмо автору
 
   для: Trianon   (26.06.2006 в 09:43)
 

Большая таблица получается..

   
 
 автор: Trianon   (26.06.2006 в 12:40)   письмо автору
 
   для: valenok   (26.06.2006 в 12:33)
 

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

   
 
 автор: cyberface   (26.06.2006 в 14:50)   письмо автору
 
   для: Trianon   (26.06.2006 в 12:40)
 

Тогда еще такой вопрос - придется каждый раз делать запрос к БД при просмотре форума и тем любым юзверем, или можно один раз, например при авторизации запросить модерируемые форумы, и допустим, поместить их в сессию? Что выгоднее? Безопасен ли метод с сессией или лучше делать каждый раз запрос?

   
 
 автор: Unkind™   (26.06.2006 в 15:01)   письмо автору
 
   для: cyberface   (26.06.2006 в 14:50)
 

Мне кажется каждый раз делать подобный запрос (модер он или нет и какие подфорумы он модерирует) не такой уж и страшный...

   
 
 автор: cyberface   (26.06.2006 в 15:08)   письмо автору
 
   для: Unkind™   (26.06.2006 в 15:01)
 

Я тоже так думал, но только я всегда старался уменьшить нагрузку скрипта на сервер. Вот сейчас придумал компромиссный вариант - при логине выясняется статус юзера, если он модератор, то определаем сессию/куки со значением, например, 'INMODER' и потом сравниваем, если такое значение есть, значит перед нами модератор, и следует сделать запрос, если нет, то перед нами обычный юзверьи запрос не делаем...
Как на ваш взгляд - рационален ли такой подход? будет ли выгода в плане уменьшения нагрузки на сервак?

   
 
 автор: Trianon   (26.06.2006 в 15:11)   письмо автору
 
   для: cyberface   (26.06.2006 в 14:50)
 

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

   
 
 автор: cyberface   (26.06.2006 в 15:25)   письмо автору
 
   для: Trianon   (26.06.2006 в 15:11)
 

Точняк, я об этом тоже не подумал, снова спасибо за совет =)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования