![]() |
Реализация форума
Пока я не начал проектировать таблицы для форума интересует следующий вопрос: Как реализовать возможность подсветки непрочитанных сообщений? И нюансы, возникающие в связи с этим.
|
Ответ: Реализация форума
в таблице сообщений добавлять поле Shown. Или что-то типа того.
Если true - подсвечивать сообщение. |
Ответ: Реализация форума
Интересно как это сделать для каждого пользователя?
|
Ответ: Реализация форума
O_o
+--------------+----------------+-------------+----------+ | Message ID | UserFrom ID | UserTo ID | Readed | +--------------+----------------+-------------+----------+ |........... 1 |............. 2 |.......... 5 |....... 0 | Логика Код:
write "<class id=\" "; Код:
unreaded {color: #00f; background: #ddd} |
Ответ: Реализация форума
эээ я вообще-то говорил не о личных сообщениях, а о сообщениях форума... и тему так назвал...
|
Ответ: Реализация форума
Насчёт вывода новых - тут просто:
Когда пользователь выходит с форума, ему назначается номер (возрастающий), последнего поста, далее, когда он заходит, ему выводят все темы, где есть сообщения выше номером. Насчёт не прочитанных - то тут, у каждого пользователя таблица нужна. Одно глобальное значение, для оптимизации, которое хранит номер самого старого не прочитанного сообщения. Если нажать кнопку - Все сообщения прочитаны, то это число будет номером последнего сообщения на форуме. Далее, в этой таблице, есть простая запись: номер сообщения, и тру, если прочитан. Если не прочитано, то записи естественно не будет. Ну и для оптимизации, стимулировать пользователя, почаще жать - все сообщения прочитаны. Вроди как нормально должно быть.. Я правдо форумов не писал, хз если честно, есть ли лучше вариант? =) |
Ответ: Реализация форума
2MoKa
Спасибо за мысль, буду думать по этому поводу :) интересно, как поймать выход пользователя )) считать каждое его действие выходом? Если у кого есть еще мысли, то не молчите пожалуйста! |
Ответ: Реализация форума
Полюбому, на форуме должны быть процессы, которые выполняются периодически, хотя бы чтобы отловить прерывание сессии - тогда и пишем.
Ну можно обновлять и когда угодно, хотя бы при каждом переходе по любой ссылке на форуме (обработчик в начале, всяких запросов и сессии). Но я хз если честно, насколько это плохо/хорошо, делать записи в MySQL каждые например 2 секунды, от каждого пользователя (думаю вроди как нормально :) ) |
Ответ: Реализация форума
Я думаю вряд ли такие процессы есть, скорее всего часть информации обновляется когда пользователь занимается серфингом по форуму, а часть когда заходит через определенный промежуток времени, например более чем за 5 - 15 минут как на булке считается количество пользователей онлайн...
|
Ответ: Реализация форума
Процессы, такие существуют, и есть ряд библиотек для работы с ними. Но в данном случае, тоже не уверен что они актуальны..
Но список обновления юзверей онлайн - это опять же, лучше делать таким процессом, чем делать запросы по пользователям, постоянно! И также например дни рождения, зачем делать выборки каждый раз показывая дни рождения, если приложение, запускаемое раз в сутки, будет откладывать маленькую инфу, в отдельную табличку - много шустрее, неправда ли? |
Ответ: Реализация форума
Так то оно так, но vBulletin написан на PHP и я пока не представляю как скриптовый движок может выполнять такие задачи... разве что выполнять их при первом запросе пользователя на новый день...
|
Ответ: Реализация форума
форум-это просто )тема старая, но нужная, поделюсь идеями и решениями ) писал как на файлах, так и на БД форумы.
|
Ответ: Реализация форума
|
Ответ: Реализация форума
Не буду молчать)) скажу, да.будет интересен. так как каждый день кто то решает перейти на РНР , писать что то свое, задумывается о создании форума, и как каждому новичку нужен "пинок" =) а я рад это сделать ))))) даже спустя и года два)))
|
Ответ: Реализация форума
мм... Ajax каждую минуту, на определенный скрипт, обновляющий бд? и отдельный процесс, который парсит ВНЕЗАПНУЮ потерю связи с клиентом?
|
Часовой пояс GMT +4, время: 18:11. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot