Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Система редактирования Википедии
Форумы портала PHP.SU » PHP » Программирование на PHP » Система редактирования Википедии

Страниц (1): [1]
 

1. Toxa - 13 Января, 2011 - 00:36:18 - перейти к сообщению
Всем привет! Я как всегда ищу все возможные способы освободить себя от лишних обязанностей, и на данный момент решил сбросить бремя модерации.

Суть в том, что есть некий сайт, на котором появляется порядка сотни комментариев к различным статьям. Одному человеку отслеживать это довольно сложно, и потому я решил многих авторитетных пользователей сделать модераторами. Тем не менее доверия ни к кому нет, поэтому надо огородиться от "внезапного" удаления/редактирования всех комментов на сайте.

Думаю задача ясна. Итак, представим. Есть таблица всех комментариев.
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE  `database`.`comments` (
  2. `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  3. `user_id` INT UNSIGNED NOT NULL ,
  4. `topic_id` INT UNSIGNED NOT NULL ,
  5. `date` DATETIME NOT NULL ,
  6. `text` TEXT NOT NULL ,
  7. `deleted` BOOL NULL
  8. ) ENGINE = MYISAM ;


Способ №1
Добавляем в таблицу еще одно поле, отвечающее за актуальность комментария.
При редактировании комментария вместо изменения нужной записи добавляем в таблицу новую, а старую делаем неактуальной.
плюсы:
минусы: размер таблицы возрастает на порядок, что уменьшает скорость выборки

Способ №2
Создаем еще одну таблицу "edited_comments" с аналогичной структурой и, перед изменением записи основной таблицы, копируем предыдущий вариант в своеобразное хранилище неактуальных версий комментариев.
плюсы: снижается нагрузка на бд при выборке из основной таблицы
минусы: создание лишней таблицы

Какой способ выберите вы? Я больше склоняюсь ко второму. Может у кого-то есть более универсальный вариант? Я с удовольствием готов это обсудить!
2. grefon - 13 Января, 2011 - 00:46:42 - перейти к сообщению
У меня была подобная ситуация. Все решилось созданием дополнительной таблицы. Как по-мне так скорость работы будет выше, и если что нужно подправить - так удобней.
3. OrmaJever - 13 Января, 2011 - 00:49:14 - перейти к сообщению
Если по 100 коментариев за короткий срок то 2 способ не подойдёт.
Можно просто создать отдельное поле в таблице с коментариями в которое писать 1,2,3 (например)
1 - это сообщение есть но не проверено модератором и не выводится
2 - это сообщения которые проверили модераторы и они выводятся.
3 - сообщение удалено модератором
И когда модератор удаляет сообщение оно на самом деле не удаляется а просто ставится 3.
Затем в админке зделать вывод сообщений с меткой 3 и смотреть если сообщение удалено неверно то меняем флаг на 2. Затем проверил все сообщения и удалил все с флагом 3
4. grefon - 13 Января, 2011 - 01:01:39 - перейти к сообщению
Это самый оптимальный вариант, но только когда нужно менять только статус комментария! В моем случае в задачу модераторов входило не только проверять и одобрять сообщения, но и менять их содержание по необходимости. А тут дополнительным полем не обойтись, нужна целая таблица.
5. OrmaJever - 13 Января, 2011 - 02:09:10 - перейти к сообщению
grefon а толку с коментария если его изменили? Либо нужо формлять коментарий в оригинале либо удалять!
6. Toxa - 13 Января, 2011 - 10:05:50 - перейти к сообщению
спасибо всем участникам обсуждения! OrmaJever, ваш способ не плох, но в нем есть один минус. Что делать в том случае, если злой модератор напишет скрипт, который отредактирует ВСЕ комментарии и заменит их текст, скажем, одним нецензурным словом. Флаг тут уже не поможет, поэтому надо сохранять все версии комментариев я считаю.

З.Ы. на фоне открыт сайт http://gugo.com.ua/, музыка просто убойна! Подмигивание
7. OrmaJever - 13 Января, 2011 - 13:07:38 - перейти к сообщению
Toxa пишет:
Что делать в том случае, если злой модератор напишет скрипт

А у них ещё идоступ к серверу есть? А?! Дак тогда модератор может написать скрипт котрый удалит все с таблицы.
8. Toxa - 13 Января, 2011 - 14:13:35 - перейти к сообщению
нет, доступа к серверу ни у кого нет, я имею ввиду автоматизацию действий с помощью, скажем, curl. Быстро и просто отредактировать(удалить) все сообщения, ну вы поняли.
9. OrmaJever - 13 Января, 2011 - 14:29:29 - перейти к сообщению
А зачем разрешать редактировать коментарий? просто выводится тект коментария и 2 кнопки "Принять" и "Удалить".
10. Toxa - 13 Января, 2011 - 14:34:09 - перейти к сообщению
нужно внести некоторую ясность
    1) Комментарии пользователей добавляются сразу, без премодерации
    2) После добавления комментария у пользователя остается возможность редактирования
    3) Вследствии п.2 ту же возможность приходится давать и модераторам
    4) Модераторам тоже до конца доверять нельзя, поэтому приходится извращаться Улыбка
11. Itan - 13 Января, 2011 - 15:00:41 - перейти к сообщению
Если модераторы будут редактировать комментарии по своему желанию и усмотрению, то это уже не будут авторские комментарии. Если вы под "редактированием" понимаете "удаление или замена "ненужных" слов", то полистайте функции из раздела "Функции обработки строк" хотя бы.
12. OrmaJever - 13 Января, 2011 - 15:04:13 - перейти к сообщению
Toxa пишет:
1) Комментарии пользователей добавляются сразу, без премодерации
2) После добавления комментария у пользователя остается возможность редактирования
3) Вследствии п.2 ту же возможность приходится давать и модераторам
4) Модераторам тоже до конца доверять нельзя, поэтому приходится извращаться

а ну дак это меняет суть дела! Я думал коментарии как в wp
13. Toxa - 13 Января, 2011 - 15:21:38 - перейти к сообщению
Itan пишет:
Если модераторы будут редактировать комментарии по своему желанию и усмотрению, то это уже не будут авторские комментарии. Если вы под "редактированием" понимаете "удаление или замена "ненужных" слов", то полистайте функции из раздела "Функции обработки строк" хотя бы.


Из крайности в крайность. То есть по-вашему можно либо "редактировать комментарии по своему желанию и усмотрению", либо "удаление или замена \"ненужных\" слов". И тут же даете ссылку на основы языка, пытаясь, возможно, указать на низкий уровень знаний. Таких мудаков как вы в интернете называют "троллями", и именно от них я стараюсь избавиться с помощью описанной системы. Надеюсь, теперь все понятно.
14. OrmaJever - 13 Января, 2011 - 15:28:17 - перейти к сообщению
Toxa пишет:
То есть по-вашему можно либо "редактировать комментарии по своему желанию и усмотрению", либо "удаление или замена \"ненужных\" слов".

Коментарий это авторское мнение, м например мне было бы не очень приятно чтобы его меняли. А фильтр слов нужно делать полюбому темболее что
Цитата:
1) Комментарии пользователей добавляются сразу, без премодерации

 

Powered by ExBB FM 1.0 RC1