Предпложение по работе с непрочитанными предложениями на форуме:
1) Добавить возможность вывода непрочитанных тем с последнего посещения.
2) Добавить возможность индикации для подфорумов о новых сообщениях (например, изменением иконки).
3) Добавить возможность пометить все непрочитанные сообщения прочитанными.
Предложение по расширению функционала форума по управлению темами (по аналогии с юкозом):
1) Возможность разбиения темы на две.
2) Возможность соединения двух тем в одну.
3) Возможность перемещения сообщений в другие темы.
По-моему, исходя из структуры таблиц:
1) при разбиении темы на две (темы_1 на тему_1 и тему_2):
1.1) в таблице `themes` создать строку темы_2;
1.2) в таблице `posts` изменить поле `id_theme` на ID темы_2 для выбранных сообщений темы_1;
1.3) в таблице `themes` уменьшить поле `posts` для темы_1;
1.4) в таблице `themes` обновить поля `id_last_author` и `last_post` для темы_1;
1.5) в таблице `themes` увеличить поле `posts` для темы_2;
1.6) в таблице `themes` обновить поля `id_last_author` и `last_post` для темы_2.
2) при соединении двух тем в одну (в теме_1 выбрана функция присоединить к теме_2):
2.1) в таблице `posts` изменить поле `id_theme` на ID темы_2 для всех сообщений, относящихся к теме_1;
2.2) в таблице `themes` поле `posts` для темы_2 вычислить как сумма полей `posts` темы_1 и темы_2;
2.3) в таблице `themes` поле `views` для темы_2 вычислить как сумма полей `views` темы_1 и темы_2;
2.4) в таблице `themes` обновить поля `id_last_author` и `last_post` для темы_2;
2.5) в таблице `themes` удалить строку темы_1.
3) при переносе сообщений (из темы_1 в тему_2):
3.1) в таблице `posts` изменить поле `id_theme` на ID темы_2 для выбранных сообщений темы_1;
3.2) в таблице `themes` уменьшить поле `posts` для темы_1;
3.3) в таблице `themes` обновить поля `id_last_author` и `last_post` для темы_1;
3.4) в таблице `themes` увеличить поле `posts` для темы_2;
3.5) в таблице `themes` обновить поля `id_last_author` и `last_post` для темы_2.
После этих манипуляций, поскольку сообщения тем считываются отсортированными по ID, а более старые сообщения всегда имеют меньший ID, то все автоматически будет сортироваться по возрастанию даты написания сообщений. Поэтому в принципе возможна ситуация, что первое сообщение темы перестанет быть первым, но, по-моему, это правильнее принципа работы форума юкоза - там тема всегда связана с первым сообщением, которое нельзя перенести.
Добавлено 2011.02.05 23-09
Еще одно предложение по форуму:
модификация ссылки на сообщение - не привязываться как сейчас к теме, странице и номеру сообщения в теме (forum/view_theme/20?page=2#post15), а ориентироваться на ID сообщения, что позволит сохранить рабочие ссылки при переносе сообщений, объединении тем и т.п.
Относительно реализации предложу 2 пути:
1) автоматический вычисление темы, страницы и номера сообщения по ID и переход на эту страницу (более ресурсоемкий способ);
2) вывод только сообщения форума (аналогично тому, как это делает vBulletin) со ссылкой на полную тему.
Честно сказать, я не видел что бы такое где либо практиковалось. В смысле такой функционал есть в некоторых системах, но используется крайне редко, так как если юзать такие возможности всегда, возникнет конкретная путаница. Но это уже дело админов - юзать или нет, а возможность предоставить было бы не плохо. Так что со временем и это воплотим в жизнь.
Авот актуальный вопрос. Я сейчас заканчиваю с рейтингом для пользователей и хотел посоветоваться с алгоритмами его начисления. Пока так.
Можно дать либо +1, либо -1
Нельзя два раза подряд поменять рейтинг одному и тому же пользователю. Это типо защиты от накрута. Если вы дали мне +1, то не сможете дать еще, пока кто-то другой не даст + или -.
В смысле такой функционал есть в некоторых системах
Такой функционал есть практически во всех форумах.
Drunya пишет:
Так что со временем и это воплотим в жизнь
Ясно, буду думать над модом очередным.
По поводу рейтинга - есть предложение реализовать 2 вида:
1) Рейтинг пользователя (то, о чем писал Drunya) - каждый пользователь имеет возможность поставить один "+" или "-" другому пользователю, сопроводив это неким комментарием. При этом имеет смысл установить ограничение, чтобы одному и тому же пользователю можно было изменять рейтинг не чаще определенного периода (величина периода задается в админке).
2) Рейтинг сообщений/материалов (то, о чем писал ARMI) - каждый пользователь имеет возможность однократно отметить любое сообщение форума или материал сайта как "понравилось" или "не понравилось".
Естественно, в админке должна быть возможно отключать данные рейтинги, а в профиле пользователя - ссылка на комментарии и статистика "благодарностей". Ну и у админа должна быть возможность удалять комментарии с оценками (для ручной чистки от накруток).