|
|
|
| Я уже в онлайн почти час, а новые сообщения как были новыми так и остались. Почему так? И почему если написать url без http:// то при нажатии на него возникает милое окошко softtime.ru ошибка 404 (не буду уточнять что это значит :) ). Вот например:
[url]www.mail.ru[/url]
http://www.mail.ru | |
|
|
|
|
|
|
|
для: Евгений Петров
(11.08.2005 в 22:44)
| | Новые сообщени отмечаются как прочитанные, если вас не было на форуме более 20 минут или вы явно их отмечаете ссылкой "Отметить всё". Ссылки исправим, спасибо, они значатся в плане - дело в том, что такая ситуация обрабатывается в URL, но к сожалению, пока не обрататывается при использовании тэгов. | |
|
|
|
|
|
|
|
для: cheops
(11.08.2005 в 23:39)
| | >Новые сообщени отмечаются как прочитанные, если вас не было на форуме более 20 минут
Почему, когда я захожу утром то все что с вечера не просмотрел у меня новое, а через 20 минут они станут старыми, а вот сегодня что то никак.
И ещё в mozilla кнопка "цитировать" не работает. | |
|
|
|
|
|
|
|
для: Евгений Петров
(11.08.2005 в 23:47)
| | >Почему, когда я захожу утром то все что с вечера не
>просмотрел у меня новое, а через 20 минут они станут
>старыми, а вот сегодня что то никак.
Вероятно сегодня интервалы между загрузками страниц, меньше 20 минут - форум отметит сообщения как прочитанные, если вы не будете загружать страницы в течении 20 минут... но вы можете не ждать этого момента, а просто нажать кнопку "Отметить всё" - все сообщения будут помечены как прочитанные.
>И ещё в mozilla кнопка цитировать не работает.
Блин... к сожалению с JavaScript всегда так, то там не работает, то там... | |
|
|
|
|
|
|
|
для: cheops
(11.08.2005 в 23:58)
| | А еще в moziila не работает "Используйте тэги для выделения текста:"
:)) Как надо. Т.е. если текст выделить, то он окажеться не внутри тега | |
|
|
|
|
|
|
|
для: Akira
(12.08.2005 в 00:06)
| | Это и в Opera так... а нет ли какого способа реализовать это в Opera/Mozila или это только для IE возможно? | |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 00:12)
| | Где то тут (http://softtime.ru/forum/read.php?id_forum=4&id_theme=2593&page=1) че то подобное. Правда не уверен на счет браузеров. А вообще при нажатии на кнопку цитировать вставляется весь текст из поста выше или только выделенный? Помоему второй вариант лучше. | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.08.2005 в 00:32)
| | Нет происходит цитирование всего текста... | |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 00:35)
| | А смысл? | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.08.2005 в 00:37)
| | Что бы можно было вставить цитату. | |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 00:43)
| | А если я напримерзахочу процитировать конретный кусок текста. Помоему лучше было бы сделать что то вроде [comment][/comment] и чтоб они выводились в отдельной таблице. | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.08.2005 в 15:43)
| | Это потребует выделение цитаты рамкой, которая будет оттягивать внимение к цитате от текста сообщения. | |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 16:29)
| | Можно тогда выделить другим цветом (менее броским). Это ещё лучше и проще помоему. | |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 00:12)
| | А вот в Opera8 все прекрасно работает как надо :)
И выделение
И цитирование
>Это и в Opera так... а нет ли какого способа реализовать это
>в Opera/Mozila или это только для IE возможно? | |
|
|
|
|
|
|
|
для: Akira
(12.08.2005 в 14:41)
| | /"Вздыхая и печально поглядывая на скин Metal Blue"/ Нужно переходить на Opera 8... | |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 16:16)
| | Да :) Кстате я думаю, надо применить к Opera ne политику которая применяеться к Firefox :) Т.е. привлекать людей к этому браузеру. | |
|
|
|
|
|
|
|
для: Akira
(12.08.2005 в 16:20)
| | Они для сотовых телефонов пишут браузер, поэтому они вряд ли будут экспериментировать с бесплатными проектами... | |
|
|
|
|
|
|
|
для: cheops
(11.08.2005 в 23:58)
| | >Вероятно сегодня интервалы между загрузками страниц, меньше 20 минут
Я б так не сказал. Я их загружал с интервалом примерно в минуту, а то и чаще. | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.08.2005 в 00:17)
| | Ну тогда всё правильно, если интервал меньше 20 минут, то и не срабатывает сервис, отмечающий сообщения прочитанными. | |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 00:34)
| | ААА! Чувствую я никогда не разберусь как у вас устроена эта система... :) | |
|
|
|
|
|
|
|
для: Евгений Петров
(12.08.2005 в 00:37)
| | В нём и не нужно разбираться :))) Сервис заботится, чтобы вы заметили новые сообщения и они не пропали пока вы отвечаете на них - как только вы уходите с форума более чем на 20 минут сообщения помечаются как прочитанные. Если вы не хотите ждать 20 минут - можете просто нажать "Отметить всё" и сообщения будут отмечены как прочитанные. | |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 00:42)
| | Ещё фишка: я никогда небыл (до сегодняшнего дня) в Форуме о форуме, но для меня там значилось всего 2 новых сообщения.
Ещё: я захожу на форум, выбираю тему, потом жму "Список тем" (возвращаюсь) - те сообщения, которые были для меня новыми в этой теме, новыми для меня и остались. А я её просмотрел.
P.S.: Если честно, я уже не обращаю внимания, что там пишется про новые сообщения, стараюсь сам запомнить, что смотрел :) | |
|
|
|
|
|
|
|
для: OZ_
(17.08.2005 в 05:23)
| | Время посещения учитывается "в общем", а не для каждого форума в отдельности. | |
|
|
|
|
|
|
|
для: OZ_
(17.08.2005 в 05:23)
| | "Новыми" сообщения остаются пока вы не покинете форум и вас не будет на нём более 20 минут, так как привязка новых сообщений идёт именно по времени вашего посещения. | |
|
|
|
|
|
|
|
для: cheops
(17.08.2005 в 12:48)
| | Практика эта не вполне правильная: появляюсь я после выходных, вижу две сотни новых вообщений и уже не могу уйти не прочтя их все, так как если я зайду спустя пол часа, то придется рыть самому - что читал а что нет.
Предлагаю такую схему: в базу записыватся номер форума и дата последнего просмотреного сообщения. все сообщения которые раньше этой даты - считаются прочитанными. Есть неудобство: топики придется просматривать снизу вверх. Зато сразу видно что читал, а что - нет. | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 13:45)
| | А я вот подумал, а нельзя в куки записывать непрочитанные темы? Прочитал - удалилась кука. Так глядишь и базу разгрузить можно и пользователям удобно. | |
|
|
|
|
|
|
|
для: Axxil
(17.08.2005 в 13:58)
| | То есть когда я впервые вхожу на форум, мне записывается кука на 40000 сообщений? А если кука удалена: как определить была ли она вообще? А впротивном случае, надо держать в куках перечень всех прочитанных сообщений. А если я захожу на форум с нескольких копрьютеров?
Не... это не вариант. | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 14:27)
| | Я имею ввиду тем кто хочет.
Не хочешь - не надо, предварительно спросить разрешение.
Кука не удаляется! Она ПЕРЕПИСЫВАЕТСЯ. Удаляется она только по сроку давности.
И кто тут собрался все поля таблицы с сообщениями в куку писать?
Во первых достаточно id темы(даже при 40000 ~ 200Кб). Да и этого не надо :)
Можно хранить темы только скажем за месяц.
В куку пишется массив с номерами новых тем, и помере прочтения кука обновляется и тема удаляется из массива. А если куки нет значит в первый раз или давно не был. Тогда запишем ему пустую куку и с этого дня начнём считать новые темы.
В случае других компьютеров, то это да, слабое место, можно организовать временное хранение где-нибудь на сервере.
Короче ИМХО личные настройки пользователей должны хранится на их личных компьютерах, а не засорять и без того не маленькую базу. | |
|
|
|
|
|
|
|
для: Axxil
(17.08.2005 в 14:44)
| | 200кб? ну ну... тока вот кука ограничена всего 4кб:) | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 15:20)
| | Да ну? Не знал :)
Да двести Кб и не нужно будет. Если 4 кб мало будет можно разбить на несколько кук
PS Это единственное возражение? | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 13:45)
| | Даже не номер форума, а id темы. Т.е. user_id | theme_id | last_visit_time и апдейтить при запросе любой темы (read.php, если не ошибаюсь). Правда, табличка получится немаленькая=) Но можно удалять записи месячной, к примеру, давности. | |
|
|
|
|
|
|
|
для: Киналь
(17.08.2005 в 14:00)
| | Табличка получится не немаленькая, а офигенная! Кроме того, как вы себе это представляете? При создании новой темы добавлять столбец к таблице непрочитанных? Неспортивно;) | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 14:14)
| | Ну, таблица счетчика не меньше=) А системы вы не так поняли. Как истые программисты. будем разговаривать кодом:-)
$un_q="SELECT user FROM visits
WHERE theme_id='$topic' AND user='$_COOKIE[nick]'";
$un_res=mysql_query($un_q);
if (mysql_num_rows($un_res) > 0)
{
mysql_query("UPDATE visits SET last_visit=NOW()
WHERE user='$_COOKIE[nick]' AND theme_id='$topic'");
}
else
{
mysql_query("INSERT INTO visits VALUES
('$_COOKIE[nick]', '$topic', NOW())") or die(mysql_error());
}
}
|
| |
|
|
|
|
|
|
|
для: Киналь
(17.08.2005 в 14:32)
| | Думаю, вас не затруднит привести структуру таблицы visits:)))
Заодно помножить количество топиков на количество зарегистрированных участников, а так же прикинуть сколько будет дополнительных запросов к базе при формировании списка тем:) | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 15:41)
| | =)
nick | theme_id | last_visit_time
Размер - большой, конечно; однако и вы, в свою очередь, прикиньте размер таблицы того же Power Counter;-) | |
|
|
|
|
|
|
|
для: Киналь
(17.08.2005 в 16:26)
| | А если в таблицу users этого форума добавить поле readed , куда записывать serialize массив idшек прочитанных сообщений? То есть идти от противного: когда пользователь заходит первый раз, readed=NULL, следовательно ничего он не читал. И только если он будет очень активно читать все темы, readed имеет шанс стать заметно большим.
Ещё вариант: для каждого сообщения хранить поле readers - serialize массив idшек тех, кто его прочитал. Фактически, вероятность того, что каждое сообщение будет прочитано каждым посетителем, очень мала (хоть это и очень хороший форум), а вот вероятность прочтения одним из посетителей всех сообщений более реальна (хотя тоже не велика). Кроме того, сообщений всегда больше, чем посетителей, следовательно, в любом случае, поле readers будет (теоритически) меньше, чем readed. | |
|
|
|
|
|
|
|
для: OZ_
(17.08.2005 в 16:42)
| | А что делать если в теме появился новый ответ? Стирать из базы все пометки о прочтении данной темы? | |
|
|
|
|
|
|
|
для: Киналь
(17.08.2005 в 16:26)
| | Э-э-э... извините, Power Counter вызывается только админом - если отчет формируется минуту - он это переживет. А тут надо в реальном времени формировать подобную конструкцию для десятка (сотни?) пользователей... | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 17:37)
| | Loki. если вы это по поводу моего варианта, то все гораздо проще - при заходе человека на форум для каждой темы надо смотреть, сколько сообщений имеют дату бОльшую, чем сохраненная в таблице для этой темы и этого юзера. | |
|
|
|
|
|
|
|
для: Киналь
(17.08.2005 в 17:46)
| | Вот меня и смущает, что при построении списка тем добавляется по одному поисковому запросу (по немаленькой базе) для каждой темы.
То есть алгоритм получается следующий:
Получаем список тем, в цикле вызываем сначала дату последнего посещения темы, затем количество сообщений в теме с датой больше заданного. То есть у нас запросы к 4 таблицам. Из них, к двум он будет повторяться циклически 30 раз (столько тем за раз отображается)
Я же предлагаю вариант проще: получаем список тем, если дата последнего ответа в тему больше заданной, то помечаем тему как непрочитанную. В итоге запрос всего к 2 таблицам. Причем, не надо гонять никаких циклов. | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 17:58)
| | Так, конечно, проще, но я когда это писал, предполагал запись типа "Сообщений - 20, из них новых - 18". Но вы правы - здесь вполне достаточно самого факта наличия новых сообщений. | |
|
|
|
|
|
|
|
для: Loki
(17.08.2005 в 17:58)
| | Мне идея Loki про хранение даты для каждого из форумов понравилась - тогда действительно, если долго человека не было на форуме можно каждый форум поэтапно прочесть (на это потребуется дополнительно 0.5 Мб в базе), про темы не очень понравилось - дорого для каждого посетителя хранить непрочитанные темы - для этого понадобится около 64 Мб (для того числа посетителей и тем, что сейчас на форуме и эта цифра будет расти с каждым посетителем и темой), это при том, что сам форум занимает 20 Мб. Потребоность такая есть и общая дата датя для всех форумов родилась не случайно, а из-за того, что форум необходимо было разместить в одной базе данных. | |
|
|
|
|
|
|
|
для: cheops
(17.08.2005 в 19:04)
| | А почему данные о непрочитанных или прочитанных сообшениях нельзя храниться в cookie? | |
|
|
|
|
|
|
|
для: Akira
(17.08.2005 в 19:54)
| | Есть ограничение на количество и общий объем cookie.
ЗЫ В защиту моей идеи скажу, что она не моя=) Она вполне рабочая, и применяется, к примеру, здесь: http://forums.ag.ru/ Для уменьшения размера можно объявлять прочитанными старые темы. Кстати, сейчас собственные сообщения считаются новыми... | |
|
|
|
|
|
|
|
для: Киналь
(17.08.2005 в 22:42)
| | Моя идея тоже давно обкатана на форуме http://dervish.ru/forum.php:)
Правда, там она базируется на cookie, что не очень удобно. | |
|
|
|
|
|
|
|
для: Киналь
(17.08.2005 в 22:42)
| | 4 kb = 4096 байт -> 4096 цифры так как номера тем пока четырёхзначные делим на 4 получаем 1024. Это максимально колличество возможных тем для запоминания.
Но мы забыли про разделители:
Составляем систему уравнений
у - количество тем 4*y - количество байт на темы
x - количество разделителей по одному байту
x + 4y=4096
x=2y (два разделителя на одну тему. Пренебрегаем двумя байтами отсутствия конечных разделителей :))
решая систему получаем: y ~ 682 темы.
Неужели не хватит? | |
|
|
|
|
|
|
|
для: Axxil
(18.08.2005 в 11:04)
| | Ещё имя автора, его пароль, названия переменных, да и конструкция многоэтажная получится... давайте сначала форумы разделим. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2005 в 13:22)
| | Хех, раз пошла такая пьянка... Сделайте заодно и постраничную навигацию=) | |
|
|
|
|
|
|
|
для: Киналь
(18.08.2005 в 14:28)
| | На линейный форум постраничную навигацию вполне можно сделать, а вот на структурный - это проблема - нечего хорошего из этой затеи не выйдет. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2005 в 22:13)
| | А как насчет идеи:
отказаться от структурного вида форума.
Помоему это уже пережиток прошлого. | |
|
|
|
|
|
|
|
для: Artem S.
(18.08.2005 в 22:29)
| | Хм... а помоему шаг назад. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2005 в 22:46)
| | Ну... Как говориться, без обид, но... Так и правда не удобно. Все привыкли, но когда приходится читать строки вдвое меньше экрана, думаешь, что лучше бы по другому. Да и в длинной теме искать новые где-то в середине тоже не очень удобно. | |
|
|
|
|
|
|
|
для: Киналь
(18.08.2005 в 22:58)
| | То что строки на пол экрана - это поправимо (сверху есть кнопка). А вот то что ответы иногда бывают в самом низу - это не совсем удобно и не всегда понятно на чье это сообщение ответ. Поэтому лучше просто писать имя того на чье сообщение ответили. | |
|
|
|