Резьбовые / Вложенные комментарии
Кто-нибудь знает, как создать многопоточную / вложенную систему комментариев? Я хотел бы узнать, как сделать это для моего блога, над которым я работаю. Я просто не могу найти ничего полезного там. Кто-то наверняка должен знать, как это делается.
3 ответа
Трудно поверить, что после 8 лет работы asp.net никто не удосужился написать простую статью или учебник о том, как делается нечто вроде многопоточных комментариев, которые так часто используются в миллионах блогов. Поисковые системы ничего не дают, кроме мусора, как обычно. С другой стороны, Google - бесполезная часть, вы знаете что.
Вот почему Asp.net занимает так много времени, чтобы учиться. Дело не в том, что это операция на головном мозге, а в том, что невозможно выйти за рамки того, что есть в книгах, потому что информации не существует.
Я провел целый день, думая об этом, и, наконец, решил проблему, используя одну таблицу для комментариев, две хранимые процедуры, обрабатывающие комментарии и ответы по отдельности, представление списка для отображения комментариев с отступом в том месте, в котором они находятся, и другое представление списка для формы комментариев. Лучше всего то, что глубина потоков не ограничена, а комментарии кэшируются.
В моей таблице базы данных комментариев я создал новый столбец, в котором хранится значение сортировки, вычисленное в хранимых процедурах. Для комментариев значение сортировки устанавливается равным его собственному значению идентификатора комментария, а для комментариев - значение устанавливается равным родительскому идентификатору сортировки, соединенному с собственным идентификатором комментария, разделенным точкой. Если у идентификатора сортировки нет точек, это комментарий верхнего уровня. Одна точка равна глубине одного уровня, две равны глубине двух уровней и т. Д.
Итак, единственный код, который мне пришлось написать, - это две простые хранимые процедуры и немного C#, чтобы получить количество точек и назначить соответствующее значение css для отступа. Мне не нужно было несколько таблиц с внешними ключами, идентификаторами "родитель-потомок", сложным кодом или какими-либо экзотическими рекомендациями, обычно предлагаемыми немногими, которые фактически пытаются ответить на форумах.
Быстро, эффективно и работает как шарм. Правила здравого смысла!
Если вы принимаете предложения для редактора, как насчет использования оружия массового поражения: Редактор разметки Wysiwym
WMD - это простой и легкий редактор HTML для комментариев в блогах, сообщений на форуме и базового управления контентом. Вы можете добавить ОМУ к любой текстовой области с помощью одной строки кода. Добавить предварительный просмотр на одну строку больше. WMD работает практически во всех современных браузерах и теперь полностью бесплатен для использования.
Что касается модели данных, вам придется решить, среди прочих соображений, насколько глубокой будет эта группа комментариев.
public interface IComment
{
public int ID;
public string Body;
public string OwnerID;
public DateTime CreatedOn;
...
}
Учтите, что здесь есть некоторые проблемы, по которым вам нужно будет разобраться. Спам, регистрация, масштаб и т. Д.
Если вы хотите использовать какое-то готовое решение, подумайте:
Ment-O-Matic - позволяет пользователям платформы ASP.NET легко добавлять средства комментирования в существующий блог или аналогичное веб-программное обеспечение. Предупреждение! .NET 1.1
черпайте вдохновение в любых блог-проектах на CodePlex.
используйте Subkismet для фильтрации спам-комментариев.