Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 29
logicerror Сообщение 15/09/2007 17:20 Копия темы
есть новые посты или нет . Народ, подскажите пожалуйста как вообще такое реализовать. Ну как здесь на фрилансе. Комментарии горит жирным если есть сообщения которых я еще не видел, а не жирным если их нет. Как оно вообще такое делается? Заранее благодарен.
Ever Сообщение 15/09/2007 17:21 Копия темы
.
Думаю очень легко.

logicerror Сообщение 15/09/2007 17:21 Копия темы
.
ах ты меня преследуешь! )) я тоже думаю что не так уж и сложно... а вот как? ))

Ever Сообщение 15/09/2007 17:22 Копия темы
.
Ну я не прогер. Сейчас кто нибудь расскажет.

logicerror Сообщение 15/09/2007 17:23 Копия темы
.
ухахахахах )))))))

Ever Сообщение 15/09/2007 17:25 Копия темы
.
Без истерики. Вот я не прогер и знаю что несложно, а ты да и не знаешь, странно, да?

logicerror Сообщение 15/09/2007 17:25 Копия темы
.
что значит а я нет? )

logicerror Сообщение 15/09/2007 17:26 Копия темы
.
ути шустрый какой! )

pavlick Сообщение 15/09/2007 17:39 Копия темы
.
по какому-нибудь параметру: просмотрено сообщение или нет

logicerror Сообщение 15/09/2007 17:40 Копия темы
.
ну так а пользователей дохера, и сообщений столько же... как быть...?

phozzer Сообщение 15/09/2007 17:45 Копия темы
.
Полагаю, каждое сообщение имеет порядковый номер, чем позже отправлено сообщение в топик тем большее его номер. В таблице у пользователя для каждого топика есть номер последнего просмотренного сообщения. Когда ты попадаешь на страницу «Блоги» для каждого блога сравнивается кол-во комментариев и номер последнего просмотренного тобой.
По крайней мере я бы сделал так.

logicerror Сообщение 15/09/2007 17:50 Копия темы
.
Понял, хорошо, а другие варианты?

pavlick Сообщение 15/09/2007 17:51 Копия темы
.
и что? могу еще предложить вариант... наверняка у каждого пользователя есть айдишник. Так вот, ввести у каждого сообщения строковый параметр со списком всех пользователей, читавших сообщение... и смотреть по этому параметру.... пойдет?:)

logicerror Сообщение 15/09/2007 17:52 Копия темы
.
А кстати кол-во не обязательно сравнивать.. Я вот думаю отдельную табличку. Три поля – id пользователя, id темы, id последнего просмотренного сообщ. А id сообщ чем позднее тем больше..?

phozzer Сообщение 15/09/2007 17:54 Копия темы
.
А по другому как?? Это едиственный нормальный вариант имхо.
Используя этот вариант для каждого пользователя ты хранишь столько числовых записей, сколько пользователь посещал топиков за свою жизнь. Не думаю, что есть более экономный или эффективный вариант. Да и на выборку данных и определение непрочитанных сообщений при таком подходе много времени не тратится.

logicerror Сообщение 15/09/2007 17:57 Копия темы
.
Это не критика, я полностью с вами согласен ;) просто может у кого есть еще какие нибудь идеи?

phozzer Сообщение 15/09/2007 18:02 Копия темы
.
Я наверное немного сумбурно все объяснил)

Смотри. Ты создал топик.
Первый в нем оставил комментарий Женя. Порядковый номер его сообщения – 1.
Вторым ответил Павел. Порядковый номер его сообщения – 2.
Потом ты прокомментировал ответ Жени. 3

То есть порядковый номер не всегда совпадает с положением на странице:
Женя(1)
Ты(3)
Павел(2).

Для каждого пользователя создается отдельная таблица с двумя полями: id топика, id последнего прочитанного.

Затем, когда ты заходишь на страницу «Блоги» происходит выборка кол-ва сообщений (a) для каждого топика (b). И для каждого b происходит выборка из твоей пользовательской таблицы
SELECT id_последнего_прочитанного FROM logicerror WHERE id_топика=b

Потом результат запроса сравнивается с а(кол-вом сообщений). Если а больше чем id_последнего_прочитанного, то комменты подсвечиваются жирным

FenixDeveloper Сообщение 15/09/2007 20:05 Копия темы
.
элементарно: когда заходит человек в тему, отмечается для него дата захода, когда заходит в следующий раз сообщения который были позже этой даты (со временем естественно) подсвечиваются. Всё. Пользуйтесь.

Adroit Сообщение 16/09/2007 05:15 Копия темы
Cookies .
Собсна, а больше и никак

logicerror Сообщение 16/09/2007 08:39 Копия темы
.
не всё так просто.. по ваше схеме –
тема 1 – 16 число
тема 2 – 17 число
тема 3 – 18 число

допустим у пользователя записано 16, так? для него новыми являются темы 2 и 3, он заходит в третью, ему записываются 18, и 17 у него уже не высвечивается как новая :(

logicerror Сообщение 16/09/2007 08:40 Копия темы
.
так тут уже интереснее, спасибо, буду думать

logicerror Сообщение 16/09/2007 08:42 Копия темы
.
то есть если пользователей 1000 то в этом строковом параметре будет: 567 984 234 598 123 456 789 354 999 777 888 666 555 444 333 и так много много много.. а представляешь если тему прочитали все 1000 пользователей? причем это не только для каждой темы, а для каждого поста...

pavlick Сообщение 16/09/2007 08:58 Копия темы
.
я просто предлоил ко всему, что уже сказали

FenixDeveloper Сообщение 16/09/2007 09:01 Копия темы
.
Внимательно читайте. – даты (со временем естественно) дату + время!

typhoon Сообщение 17/09/2007 16:19 Копия темы
.
Значит так.
Необходимо комбинировать новые по времени (как рекомендовал Alex Martinov [FenixDeveloper]) и новые по просмотрам.
Создается таблица, состоящая из id юзера, id коммента и времени просмотра. В эту таблицу по мере просмотра вставляются записи просмотренных комментов данным юзером в данное время. Если этот коммент уже просмотрен, можно ничего не вставлять, а можно и обновить дату, на выбор. А в таблицу юзера вставляется время последного захода. В таблицу комментов вставляется время создания.
Теперь, надо определить, через какое время (день) коммент считается устаревшим (т.е. уже не показывается как новый). В зависимости от этого времени в самом начале запуска скрипта удаляются все записи в новой таблице старше этого времени.
Запрос(ы) необходимо сформировать таким образом, чтобы показывать юзеру комменты не старше указанной даты (допустим 2 дня) и не просмотрено им еще на основе новой таблицы.
Надеюсь, смысль понятен)

netrain Сообщение 19/09/2007 10:42 Копия темы
.
В любом случае мы смотрим по датам и времени создания тем и сообщений внутри тем (можно еще и по id дополнительно, на случай совпадения времени и дат для нескольких сообщений – просто подстраховка, которая не потребует больших ресурсов).
Все темы учитывать не стоит – большой объем данных, да и зачем хранить информацию о просмотре тем 10-летней давности? Просто старые темы автоматом делаем прочитанными.
Для новых (скажем, за последние 2 недели/месяц/2 месяца) – ставим куки с указанием даты последнего просмотренного сообщения (если постраничный вывод, то в куки ставим только дату последнего сообщения на последней просмотренной странице, или ее id можно).
Далее по куки смотрим для новых тем, какое сообщение было последним в теме и какое последним просмотрел пользователь. Отсюда делаем вывод, помечать тему или нет как прочитанную.
Для зарегистрированных пользователей можно завести таблицу в БД о прочитанных сообщениях по тому же принципу. Регулярно чистим ее, удаляя старые записи (можно по крону, можно при первом заходе на сайт раз в неделю где-нибудь, как удобнее будет и что сервер позволит, чтобы не тормозило; универсальный вариант – крон). При регулярных чистках данных в таблице будет не настолько много, чтобы значительно замедлить работу сайта. Заодним позволим зарегистрированным пользователям сохранять информацию о прочитанных темах вне зависимости от наличия куки на компе (могут с любого компа зайти или почистить кэш браузера – на виде тем это уже не скажется).
Вот и вся премудрость.

logicerror Сообщение 13/10/2007 11:23 Копия темы
.
но ведь фриланс не хранит ничего такова в кукисах..?

Adroit Сообщение 14/10/2007 05:33 Копия темы
.
Cookie: b=b; id=20397; name=Adroit; pwd=...; PHPSESSID=...; hotlog=1
Похоже, что не хранит, да, как вариант www.aspnetmania.com/Forum..

logicerror Сообщение 03/11/2007 15:10 Копия темы
.
не, но смотрите.. получается если у меня человечек просмотрел самую последнюю тему, то получается что он просмотрел абсолютно все темы.. её же дата позднее всех будет.. тут помоему мудрить с id надо, и куда то их записывать что ли.. я в растерянности...

0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"