theIggs Опубликовано 18 Августа 2004 Жалоба Поделиться Опубликовано 18 Августа 2004 Название: Отметка топиков прочитанным, прочитан / не прочитанДобавил: theIggsДобавлен: 18 Авг 2004Обновлен: 03 Мар 2005Категория: IP.Board 1.x.x Вы, конечно, замечали, что стоит ненадолго закрыть окошко браузера,как при следующем входе на форум все темы уже отмечены как прочитанные,хотя вы даже не успели их прочесть. То же самое происходит, если нажать ссылку "Выход", а потом войти снова.Данная модификация исправляет этомаленькое недоразумение.Теперь темы будут считаться непрочитанными до тех пор, пока вы ихдействительно не прочтёте, либо же до истечения заданного интервала(который каждый пользователь может установить в своём Профиле). © 2004 Vanish ( http://www.ibresource.ru/ ) Читайте тему поддержки, там важная информация! Нажмите здесь, чтобы скачать файл Ссылка на комментарий Поделиться на других сайтах Прочее
const Опубликовано 18 Августа 2004 Жалоба Поделиться Опубликовано 18 Августа 2004 После установки данной модификации на "IPB 1.3 русский модифицированный" и пропатченный до 1.3.1 перестала работать функция "Отметить все сообщения прочитанными". Также очень неудобно, что: если ты заходишь в какой-нибудь форум, но не читаешь сообщения, а сразу переходишь на главную страницу, либо в другой форум, то иконка форума меняется на прочитанный, однако внутри темы непрочитаны... Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 19 Августа 2004 Автор Жалоба Поделиться Опубликовано 19 Августа 2004 После установки данной модификации на "IPB 1.3 русский модифицированный" и пропатченный до 1.3.1 перестала работать функция "Отметить все сообщения прочитанными".Надо подумать над доработкой... Также очень неудобно, что: если ты заходишь в какой-нибудь форум, но не читаешь сообщения, а сразу переходишь на главную страницу, либо в другой форум, то иконка форума меняется на прочитанный, однако внутри темы непрочитаны...Вопрос можно? А нафига заходить в форум-то, если ты там ничего читать не собираешься? Имхо, так оно правильней всего.А по твоему как должно быть? Зашёл в форум, заинтересовался парой тем, прочёл их. Больше ничего интересного для тебя в форуме нет - а форум горит непрочитанным. ? Ссылка на комментарий Поделиться на других сайтах Прочее
arigoda Опубликовано 19 Августа 2004 Жалоба Поделиться Опубликовано 19 Августа 2004 theIggs при всем уважении к тебе, имхо, const прав в формулировках.... часто в раздел заходишь по "последнему непрочитанному"... но ведь это не значит, что из темы ты прыгнешь на галвную раздела, а не главную всего форума... а потом уже и не поймешь - читал-не читал... то есть в данном случае, имхо, можно как считать как с PM'ом... зашел, но все новые не прочитал. правильно - в шапке горит "0 НОВЫХ писем". Новых на самом деле нет, но НЕПРОЧИТАННЫЕ есть... тогда наверное лучше сразу в макросах править.... чтоб не путать никого формулировками Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 19 Августа 2004 Автор Жалоба Поделиться Опубликовано 19 Августа 2004 Да никаких возражений нет, предлагайте свои алгоритмы определения прочтения форума. Ссылка на комментарий Поделиться на других сайтах Прочее
const Опубликовано 19 Августа 2004 Жалоба Поделиться Опубликовано 19 Августа 2004 Все на самом деле просто: человек заходит на форум - видит непрочитанные форумы, заходит в них, видит кучу ответов/новых сообщений, читать ему влом, поэтому он закрывает форум и идеть спать с надеждой почитать их завтра, а на завтра он видит, что тот или иной форум уже отмечен прочитанным и не заходит в него... ИМХО надо сделать так, чтобы о тех пор пока в форуме остаются непрочитанные сообщения, сам форум, его иконка горела непрочитанной... И неплохо бы было починить функцию прочтения, о которой я говорил. Добавлено в [mergetime]1092925884[/mergetime] theIggs А по твоему как должно быть? Зашёл в форум, заинтересовался парой тем, прочёл их. Больше ничего интересного для тебя в форуме нет - а форум горит непрочитанным. ? Для этого есть - "Отметить форум прочитанным" и "Отметить все сообщения прочитанными" Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 19 Августа 2004 Жалоба Поделиться Опубликовано 19 Августа 2004 поэтому он закрывает форум и идеть спать с надеждой почитать их завтра, а на завтра он видит, что тот или иной форум уже отмечен прочитанным и не заходит в него...брееед, сообщения то остаются помеченными как непрочитанные. К выделенному. Раз с надеждой, то наверное запомнит где он почитать должен =))) Ссылка на комментарий Поделиться на других сайтах Прочее
const Опубликовано 19 Августа 2004 Жалоба Поделиться Опубликовано 19 Августа 2004 Vanish ну не знаю, это было мое имхо... Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 19 Августа 2004 Жалоба Поделиться Опубликовано 19 Августа 2004 Сделать это можно, но по опыту говорю, что возрастёт нагрузка на мускул. Хотя конечно как реализовать. Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 19 Августа 2004 Жалоба Поделиться Опубликовано 19 Августа 2004 Хотя конечно как реализовать.простейший способ, через классовую переменную new_post, если она меньше 1 то отмечать форум как прочитанный. Ссылка на комментарий Поделиться на других сайтах Прочее
arigoda Опубликовано 19 Августа 2004 Жалоба Поделиться Опубликовано 19 Августа 2004 хм... а ведь и в самом деле - на картинках в категориях (ну и на главной) так и написано - новые сообщения, а не непрочитанные так что может и говорить не о чем - разработчики имели в виду одно, а мы тут обсуждаем совсем другое то бишь этот мод просто исправляет недоразумение в том, что внутри форумов называется "непрочитанными темами"... а переделать "есть новые сообщения в форуме" в "есть непрочитанные..." - это предмет совсем другой модификации... уфф... что-то я загнался... Добавлено в [mergetime]1092936265[/mergetime] извините за совсем тупой вопрос... в чистом functions.php у 1.2.Final нет строки "m.sub_end," она как там появляется? после шага 0. что ли? Добавлено в [mergetime]1092936700[/mergetime] собственно, единственный запрос где есть работа с "m.энисинг," в этом скрипте у 1.2.final - вот этот: $DB->query("SELECT moderator.mid as is_mod, moderator.allow_warn, m.id, m.name, m.mgroup, m.password, m.email, m.restrict_post, m.view_sigs, m.view_avs, m.view_pop, m.view_img, m.auto_track, m.mod_posts, m.language, m.skin, m.new_msg, m.show_popup, m.msg_total, m.time_offset, m.posts, m.joined, m.last_post, m.last_visit, m.last_activity, m.dst_in_use, m.view_prefs, m.org_perm_id, m.temp_ban, g.* FROM ibf_members m LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) LEFT JOIN ibf_moderators moderator ON (moderator.member_id=m.id OR moderator.group_id=m.mgroup ) WHERE m.id=$member_id"); куда тут все это дело можно втиснуть? Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 19 Августа 2004 Автор Жалоба Поделиться Опубликовано 19 Августа 2004 собственно, единственный запрос где есть работа с "m.энисинг," в этом скрипте у 1.2.final - вот этот:Да, это оно. Под 1.2 я не тестировал.Вставляй после m.email, Ссылка на комментарий Поделиться на других сайтах Прочее
arigoda Опубликовано 20 Августа 2004 Жалоба Поделиться Опубликовано 20 Августа 2004 мдя.... и запроса DB->query("SELECT t.tid FROM ibf_topics t WHERE t.approved=1 AND t.forum_id IN($forums) AND t.last_post > '".$ibforums->member['last_visit']."'"); в Search.php у 1.2 тоже нету...есть один почти такой, но дальше код идет совершенно другой.если я правильно понимаю, речь идет вот об этом куске (если кто другой будет читать - будьте осторожнее, в Search.php есть несколько почти одинаковых таких участков).... //------------------------------------------------ // Get the topic ID's to serialize and store into // the database //------------------------------------------------ $DB->query("SELECT topic_id FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND post_date > '".$ibforums->member['last_visit']."'"); $max_hits = $DB->get_num_rows(); $posts = ""; while ($row = $DB->fetch_row() ) { $posts .= $row['topic_id'].","; } $DB->free_result(); оффтоп: theIggs, пошто такого клевого красненького зверушку убил? Ссылка на комментарий Поделиться на других сайтах Прочее
arigoda Опубликовано 21 Августа 2004 Жалоба Поделиться Опубликовано 21 Августа 2004 мдя... что-то я дествительно тормознул... там выбор из другой таблицы... а там где из нужной, в которой есть поле last_post, дальше в коде вместо $posts - $topics... Ссылка на комментарий Поделиться на других сайтах Прочее
Extazy Опубликовано 22 Августа 2004 Жалоба Поделиться Опубликовано 22 Августа 2004 А чё-то не понял прикол?! Я поставил себе на форум этот мод. И теперь у меня все темы горят как непрочитанные Мне чё теперь надо их всех прочитать чтоли, чтоб они перестали светиться как "Непрочитанные"??? Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 23 Августа 2004 Жалоба Поделиться Опубликовано 23 Августа 2004 Extazy внизу страницы есть "Отметить форум как непрочитанный". Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 23 Августа 2004 Жалоба Поделиться Опубликовано 23 Августа 2004 Song она не сработает, здесь еще не выложили изменения в login.php Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 23 Августа 2004 Автор Жалоба Поделиться Опубликовано 23 Августа 2004 Модификация обновлена, добавлено исправление функции "Пометить прочитанным..."============================================================== 9. Добавление от 23.08.2004 - исправление функции "Пометить все прочитанным". ============================================================== Открыть файл sources/Login.php ============================================================== Найти ДВАЖДЫ: ============================================================== $DB->query("UPDATE ibf_members SET last_visit='".time()."', last_activity='".time()."' WHERE id='".$ibforums->member['id']."'"); ============================================================== Заменить на: ============================================================== $DB->query("UPDATE ibf_members SET board_read='".time()."' WHERE id='".$ibforums->member['id']."'"); ============================================================== Найти: ============================================================== if ( $ibforums->input['i'] == 1 ) { ============================================================== Заменить на: ============================================================== if (!$forums_read = unserialize($ibforums->member['forums_read'])) $forums_read = array(); /* if ( $ibforums->input['i'] == 1 ) { ============================================================== Найти: ============================================================== while ( $r = $DB->fetch_row() ) { $ibforums->forum_read[ $r['id'] ] = time(); } } //-------------------------------------- // Reset cookie (yum) //-------------------------------------- $ibforums->forum_read[ $ibforums->input['f'] ] = time(); $std->hdl_forum_read_cookie('set'); ============================================================== Заменить на: ============================================================== while ( $r = $DB->fetch_row() ) { $forums_read[ $r['id'] ] = time(); $fid .= ','.$r['id']; } }*/ //-------------------------------------- // Reset cookie (yum) //-------------------------------------- $forums_read[$ibforums->input['f']] = time(); $forums_read = serialize($forums_read); if (isset($ibforums->forum_read[$ibforums->input['f']])) { $DB->query("UPDATE ibf_log_forums SET logTime='".time()."' WHERE fid='".$ibforums->input['f']."' AND mid='".$ibforums->member['id']."'"); } else { $DB->query("INSERT INTO ibf_log_forums VALUES('".$ibforums->member['id']."', '".$ibforums->input['f']."','".time()."')"); } $DB->query("UPDATE ibf_members SET forums_read = '".$forums_read."' WHERE id = '".$ibforums->member['id']."'"); Ссылка на комментарий Поделиться на других сайтах Прочее
Simplez Опубликовано 2 Сентября 2004 Жалоба Поделиться Опубликовано 2 Сентября 2004 под 2.0.х слабо сделать? Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 5 Сентября 2004 Жалоба Поделиться Опубликовано 5 Сентября 2004 А чего в 2.0 такой фичи всё ещё не сделали? Ссылка на комментарий Поделиться на других сайтах Прочее
arigoda Опубликовано 8 Сентября 2004 Жалоба Поделиться Опубликовано 8 Сентября 2004 подскажите плз кто-нибудь... как все это заточить под 1.2?возвращаясь к прежним постам... в Search.php у 1.2. нет такого:$DB->query("SELECT t.tid FROM ibf_topics t WHERE t.approved=1 AND t.forum_id IN($forums) AND t.last_post > '".$ibforums->member['last_visit']."'"); на тех же примерно строчках находится вот что: $DB->query("SELECT topic_id FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND post_date > '".$ibforums->member['last_visit']."'"); вроде бы выполняет те же функции. но в таблице ibf_posts нет поля last_post, а выбор из такового нужно добавить при установке. как обойти? просто заменить старый запрос на новый, к ibf_topics ? Ссылка на комментарий Поделиться на других сайтах Прочее
arigoda Опубликовано 9 Сентября 2004 Жалоба Поделиться Опубликовано 9 Сентября 2004 Так, вроде все поставилось.Спасибо за нужную модификацию! На всякий случай - вдруг кто будет под 1.2 ставить - отличия уже выше обсудили, их два - 1. В functions.php нет m.sub_end, 2. В Search.php ищем немного другой запрос (см. чуть выше) и заменяем все как в инструкции. Вроде функциональность не страдает от этого. ну и еще мелочь... если префикс таблиц не ibf_, то запросы из шага 0 соответственно должны выглядить несколько иначе... Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 9 Сентября 2004 Жалоба Поделиться Опубликовано 9 Сентября 2004 но в таблице ibf_posts нет поля last_post,это как это?Это одно из основных полей таблицы!! Ссылка на комментарий Поделиться на других сайтах Прочее
arigoda Опубликовано 10 Сентября 2004 Жалоба Поделиться Опубликовано 10 Сентября 2004 Song, слюшай, мамой клянусь, нету, да? но локальном, чистом, специально перепроверил... ibf_posts: pid - собсно номер постаappend_edit - наверное, есть ли надпись "Отредактировано"edit_time - время едитировкиauthor_id - авторauthor_name - его имяuse_sig - есть ли подпись use_emo - юзать ли смайлыip_address - ясноpost_date - времяicon_id - иконка у постаpost - собственно текст queued - требует ли подтвержденияtopic_id - где торчитforum_id - в каком форумеattach_id - не знаю, но явно не ласт-пост ) attach_hits - скока людей смотрели аттачattach_type - mimeattach_file - наверное, адрес к файлу? post_title - х.з. - наверное, если тему начинаешь..new_topic - ну собственно - первый ли это пост в темеedit_name - кто перепахивал этот пост... да и нафиг там ластпост? кабы такое поле было, проблемы бы не было с редиректом на него с главной страницы )) но это уже оффтоп Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 10 Сентября 2004 Автор Жалоба Поделиться Опубликовано 10 Сентября 2004 last_post - важное поле в ibf_topics и ibf_forums, а в posts-то оно зачем? Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения