CiD Опубликовано 26 Октября 2004 Жалоба Поделиться Опубликовано 26 Октября 2004 Народ часто просить сделать, чтобы можно было просмотреть на наличие новых сообщений только в тех темах, в которых они отвечали.есть ли мод? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mitos Опубликовано 26 Октября 2004 Жалоба Поделиться Опубликовано 26 Октября 2004 CiD хак закладки мог бы подойти - добавляют нужную тему в закладки и смотрят по ней Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
CiD Опубликовано 27 Октября 2004 Автор Жалоба Поделиться Опубликовано 27 Октября 2004 не то, народ - зверь ленивый.Подобие новых сообщений надо, только отображались бы только темы, в которых когда-то отвечал. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mitos Опубликовано 27 Октября 2004 Жалоба Поделиться Опубликовано 27 Октября 2004 тада придется самому писать так как такого мода вроди нету Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 CiD в верху форума "Новые сообщения". Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 Song в верху форума "Новые сообщения".Это просмотр всех новых с момента последнего визита.Есть act=Search&CODE=getreplied, но это просмотр новых в темах которые вы начали.Можно по аналогии наверное сделать темы в которых вы отвечали... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 urisoft CiD надо в запрос новых добавить and p.author_id='".$ibforums->member['id']."'"и будет именно так как надо. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 Song надо в запрос новых добавить and p.author_id='".$ibforums->member['id']."'"и будет именно так как надо.Только этот p надо еще в where добавить... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 urisoft ну так это я имел ввиду. Куда ещё кроме WHERE ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 Song Во блин... ОписАлся... В FROM конечно... ibf_posts p Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 urisoft а там оно уже есть Вот запрос из оригинального форума$DB->query("SELECT topic_id FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND post_date > '".$ibforums->member['last_visit']."'");только не хватает буковки p Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 Song Это в какой версии форума ? В 2.0 $DB->simple_construct( array( 'select' => 't.*, t.title as topic_title', 'from' => 'topics t', 'where' => "t.approved=1 AND t.forum_id IN($forums) AND t.last_post > {$last_time}", 'order' => "t.last_post DESC" ) ); В 1.3F $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']."'"); Добавлено в [mergetime]1098987389[/mergetime] Может я не там смотрю ??? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 urisoft в 1.2 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 Song в 1.2Действительно... CiD Попробуй это: Файл ./sources/Search.php Для 1.2F: Найти: $DB->query("SELECT topic_id FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND post_date > '".$ibforums->member['last_visit']."'"); Заменить на: if ($ibforums->input['mypost'] and $ibforums->member['id']) { $DB->query("SELECT topic_id FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND post_date > '".$ibforums->member['last_visit']."' AND author_id='".$ibforums->member['id']."' GROUP BY topic_id"); } else { $DB->query("SELECT topic_id FROM ibf_posts WHERE queued <> 1 AND forum_id IN($forums) AND post_date > '".$ibforums->member['last_visit']."'"); } Для 1.3F: Найти: $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']."'"); Заменить на: if ($ibforums->input['mypost'] and $ibforums->member['id']) { $DB->query("SELECT t.tid FROM ibf_topics t, ibf_posts p WHERE t.approved=1 AND t.forum_id IN($forums) AND t.last_post > '".$ibforums->member['last_visit']."' AND (p.topic_id=t.tid) AND p.author_id='".$ibforums->member['id']."' GROUP BY t.tid"); } else { $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']."'"); } Для 2.0F: Найти: $DB->simple_construct( array( 'select' => 't.*, t.title as topic_title', 'from' => 'topics t', 'where' => "t.approved=1 AND t.forum_id IN($forums) AND t.last_post > {$last_time}", 'order' => "t.last_post DESC" ) ); Заменить на: if ($ibforums->input['mypost'] and $ibforums->member['id']) { $DB->simple_construct( array( 'select' => 't.*, t.title as topic_title', 'from' => 'topics t, ibf_posts p', 'where' => "t.approved=1 AND t.forum_id IN($forums) AND t.last_post > {$last_time} AND p.topic_id=t.tid AND p.author_id='{$ibforums->member['id']}' GROUP BY t.tid", 'order' => "t.last_post DESC" ) ); } else { $DB->simple_construct( array( 'select' => 't.*, t.title as topic_title', 'from' => 'topics t', 'where' => "t.approved=1 AND t.forum_id IN($forums) AND t.last_post > {$last_time}", 'order' => "t.last_post DESC" ) ); } Добавить кнопку типа "Новое в темах где я отвечал" Ну имя сам придумай...И ссылка вида index.php?act=Search&CODE=getnew&mypost=1Должно работать... Добавлено в [mergetime]1098993730[/mergetime] Блин... в коде \$ заменить на $ - это тэг PHP так работает... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Cepera Опубликовано 28 Октября 2004 Жалоба Поделиться Опубликовано 28 Октября 2004 отлично, работает меню приняло вид:(Мои) Новые сообщения Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 29 Октября 2004 Жалоба Поделиться Опубликовано 29 Октября 2004 Я после того как посмотрел что в 1.3 этот запрос сделан более качественно, переделал его, т.к. обращение к ibf_topics происходит несомненно быстрей чем к ibf_postsВот мой кусок кода:// Song * new and mine new messages if ( $mine ) { $query = "SELECT t.tid as topic_id, t.last_post, t.forum_id FROM ibf_topics t, ibf_posts p WHERE p.queued<>1 and p.author_id='".$ibforums->member['id']."' and p.topic_id=t.tid and p.post NOT LIKE '[mod]%' and t.approved=1 AND t.forum_id IN ($forums) AND t.last_post > '".$ibforums->member['last_visit']."'"; // $query = "SELECT p.topic_id, t.last_post, p.forum_id FROM ibf_posts p, ibf_posts pp, ibf_topics t // WHERE pp.queued<>1 and pp.author_id='".$ibforums->member['id']."' and pp.topic_id=t.tid and // pp.post NOT LIKE '[mod]%' and p.queued<>1 AND // p.topic_id=t.tid and p.forum_id IN(".$forums.") AND // p.post_date > '".$ibforums->member['last_visit']."'"; } else { $query = "SELECT t.tid as topic_id, t.last_post, t.forum_id FROM ibf_topics t WHERE t.approved=1 AND t.forum_id IN($forums) AND t.last_post > '".$ibforums->member['last_visit']."'"; // $query = "SELECT p.topic_id, t.last_post, p.forum_id FROM ibf_posts p, ibf_topics t // WHERE p.queued <> 1 AND t.tid=p.topic_id and p.forum_id IN(".$forums.") AND // p.post_date > '".$ibforums->member['last_visit']."'"; } // Song * new and mine new messages Заременые строки - это старые.на 'mod' я проверяю потому что если модератор написал в посте [mod]Хватит флеймить[/mod], то это не должно считаться, что он туда ответил и этот топик не должен выводится ему как топик где он отвечал. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 29 Октября 2004 Жалоба Поделиться Опубликовано 29 Октября 2004 Song А где GROUP BY ?Неужели с таким запросом если больше одного твоего ответа в теме, он тебе только одну ссылку выдает ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 29 Октября 2004 Жалоба Поделиться Опубликовано 29 Октября 2004 urisoft одну конечно.Ведь это запрос на сбор данных. Вывод осуществляется в другом месте (show_results), если ты его посмотришь то поймёшь почему нет повторов. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
urisoft Опубликовано 29 Октября 2004 Жалоба Поделиться Опубликовано 29 Октября 2004 Song одну конечно.Ведь это запрос на сбор данных. Вывод осуществляется в другом месте (show_results), если ты его посмотришь то поймёшь почему нет повторов.Да я знаю, что вывод в другом месте. В 2.0 не все так радужно. Выводит столько раз ссылку на тему, сколько раз в ней отвечал. Без GROUP BY Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
CiD Опубликовано 13 Ноября 2004 Автор Жалоба Поделиться Опубликовано 13 Ноября 2004 вообще в 2,0 такая фишка работает если в сеарч просто автора ввести, тогда показывает все темы , где отвечал.Потом уже увидел как и что )вот просто надо функцию теперь сделать отдельной Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
CiD Опубликовано 6 Января 2005 Автор Жалоба Поделиться Опубликовано 6 Января 2005 urisoft только заметил, выдаёт количество страниц такое же, что и в "Новых сообщениях", а постов значительно меньше. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.