winnie Опубликовано 8 Августа 2004 Жалоба Поделиться Опубликовано 8 Августа 2004 когда юзверей под 2 тыс и кол-во постов переваливает за много сотен тыс... тормоза обеспечены большие.. Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 8 Августа 2004 Жалоба Поделиться Опубликовано 8 Августа 2004 а для небольших форумов(например в сетке маленькой)? может всё равно кто-нибудь сделает? Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 8 Августа 2004 Жалоба Поделиться Опубликовано 8 Августа 2004 дык на форуме вообще то есть встроенная фича по пересчету постов у юзеровв разделе Maintenance -> Recount & Rebuild Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 8 Августа 2004 Жалоба Поделиться Опубликовано 8 Августа 2004 это я знаю. я хочу, чтобы плиз кто-нибудь написал задание для таскменеджера (пхпшку) чтобы пересчёт выполнялся автоматически.. а то каждый раз лень это делать вручную.... Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 8 Августа 2004 Жалоба Поделиться Опубликовано 8 Августа 2004 вообще фича с форумами в которых отключены счетчики потов ИМХО не доделана.. например если мы переносим тему из такого форума в другой - нормальный (со счетчиком), то ни какого рекаунта не происходит .. кхм.. вообщем есть одна идея как организовать.. но изменений .. не мало..1. добавить новое поле к таблице топиков2. при удалении модератором из основного места жительства топика ставить метку в новое поле откуда была удалена тема, при удалении тдельных топиков тоже содаются отдельные темы в корзине и им тоже ставить метку откуда они ...ну а при очистке корзины просто делать проверку по этому полю.. Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 9 Августа 2004 Жалоба Поделиться Опубликовано 9 Августа 2004 люди не страдайте ерундой, ага? Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 9 Августа 2004 Жалоба Поделиться Опубликовано 9 Августа 2004 кхм.. вобщем сделал.. изменений конечно прилично .. сюда выкладывать не буду, работает теперь и с корзиной и без нее, с форумами без счетчиков и с нимивот архив http://www.hitv.ru/prog/post_dec_count.rar можете просто заменить соответсвующий файлы (три файла) либо сравнить с исходниками например программой Total Commander и сделать соответсвующие изменения..в кратце как работает добавил талице ibf_topics еще одно поле inc_postcount tinyint(1)по умолчанию оно пустое... теперь если мы удаляем пост/топик и у нас включена корзина, то делаем проверку на то какой форум с счетчиком или без и если БЕЗ счетчика, то пишем в поле 1(единицу), если со счетчкиом- ничего не пишем.. при удалении из корзины проверяем это поле на наличие 1 (единицы)...вот такой принцип...тестил- работает во всех комбинациях...если кто будет тестить - отпишитесь здесь пожалуйста как работает заранее спасибо! Vanish люди не страдайте ерундой, ага?это Вы к чему? Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 winnie это Вы к чему?это он мне..... Добавлено в [mergetime]1092121900[/mergetime] winnie а ты эти файлы изменял от какой версии? PF2? Добавлено в [mergetime]1092122926[/mergetime] чё то я ничего не понял с этим полем...mySQL query error: UPDATE ibf_topics SET forum_id=5,inc_postcount='' WHERE forum_id=2 AND tid=11 mySQL error: Unknown column 'inc_postcount' in 'field list' mySQL error code: Date: Tuesday 10th of August 2004 11:29:04 AM распиши плиз, как его добавлять. что писать в phpmyadmin'еа точнее поля ПолеТипДлины/Значения*АтрибутыНольПо умолчанию**Дополнительно Добавлено в [mergetime]1092123316[/mergetime] так.. с полем я разобрался но всё равно при удалении темы в корзину вылазиетmySQL query error: UPDATE ibf_topics SET forum_id=5,inc_postcount='' WHERE forum_id=2 AND tid IN(11) mySQL error: Unknown column 'inc_postcount' in 'field list' mySQL error code: Date: Tuesday 10th of August 2004 11:35:56 AM Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 Aleks а ты эти файлы изменял от какой версии? PF2?да ПФ2чё то я ничего не понял с этим полем...ALTER TABLE `ibf_topics` ADD `inc_postcount` TINYINT( 1 ) DEFAULT NULL ; так.. с полем я разобрался но всё равно при удалении темы в корзину вылазиетпри удалении только топиков?при удалении постов вылезает ошибка?версия MySQL какая?проверил у себя на разных базах - все работает Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 сейчас, проверю заново и всё напишу. Добавлено в [mergetime]1092130249[/mergetime] а. всё. сорри. всё работает. это меня просто проглючило и я не в ту таблицу его добавил( поле)... спсибо. Добавлено в [mergetime]1092130328[/mergetime] ты бы в ридми в архиве своём лучше так написал. (ALTER TABLE `ibf_topics` ADD `inc_postcount` TINYINT( 1 ) DEFAULT NULL а то вдруг ещ кто запутается. Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 как работает? - потестите во всех комбинациях - расскажитеты бы в ридми в архиве своём лучше так написал. (ALTER TABLE `ibf_topics` ADD `inc_postcount` TINYINT( 1 ) DEFAULT NULLа то вдруг ещ кто запутается.ОФФ лень - ленивый я до ужаса.. я вообще делал все на базе постгре.. поэтому под мускуль лень было... расписыватьв принципе если все будет работать, то сделаю полное подробное описание Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 нашёл новый глюкобаг. допустим у меня есть тема. в ней 3 поста. ( но в форуме показывается, что два, т.к. первый пост темы не считается.) так вот. при удалении этой темы из общей статистики форума списывается не 3 поста, а 2... в результате статистику всё равно надо пересчитывать. а при удалении темы из одного сообщения статистика и вовсе не меняется( так как первый пост не считается, хоть он и единственный) Добавлено в [mergetime]1092130955[/mergetime] winnie потестите во всех комбинациях - расскажитевот я потестил.... где то один пост твой механизм недотирает. Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 зы боюсь это глюк не от моих изменений, а от того как сделана процедура пересчета статистики после переноса топиков из одного форума в другой.. на мелких форумах, до сотни постов она работает нормально, на тех же где больше сотни- глюк начинаются.. причем в админке все нормально сделаносмысл разных типов пересчета статистики мне пока не понятен.. если не разберусь для чего они так сделали- переделаю под то как сделали в админке Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 так..... это не от твоего мода.. (да и на форуме у меня всего 5 постов)..так вот.. глюк был вот в чём . у меня в табле ибф_топикс оказалась битая строчка. как она там могла получится совершенно непонятно. id у неё есть, а обязательное для воода topic_title - нету...... и причём пересчёт в админке эту строчку почему то пропускал......... всё очень запутано. Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 угу и в этой строчке в колонке posts записано -1 и forum_id=0у меня тоже такие были, НО это еще не все.. вообщем нашел место где один лишний запрос и причем он не совсем тот.. Добавлено в [mergetime]1092135927[/mergetime] баг (может нет) со статистикой, но так точно нормально подсчитывает исправлениев файле sources\lib\modfunctions.phpищем функцию function stats_recount()и в ней находим такие строчки $topics = $DB->simple_exec_query( array( 'select' => 'COUNT(*) as tcount', 'from' => 'topics', 'where' => 'approved=1' ) ); $posts = $DB->simple_exec_query( array( 'select' => 'SUM(posts) as replies', 'from' => 'topics', 'where' => 'approved=1' ) ); $ibforums->cache['stats']['total_topics'] = $topics['tcount']; $ibforums->cache['stats']['total_replies'] = $posts['replies'];по этому поводу возникают вопросы в никуда наверное1. вопрос зачем делают два запроса когда можно один2. зачем делать рекаунт статистики екогда идет просто перемещение темы в корзину? ну да ладно вообщем код заменяем на этот $topics = $DB->simple_exec_query( array( 'select' => 'count(tid) as tcount', 'from' => 'topics', 'where' => "approved = 1" ) ); $posts = $DB->simple_exec_query( array( 'select' => 'count(pid) as replies', 'from' => 'posts', 'where' => "queued <> 1" ) ); $ibforums->cache['stats']['total_topics'] = intval($topics['tcount']); $ibforums->cache['stats']['total_replies'] = intval($posts['replies'])-intval($topics['tcount']); Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 10 Августа 2004 Жалоба Поделиться Опубликовано 10 Августа 2004 зы вообщем предыдущее исправление можно и не делать.. прсто странно почему в админке один способ пересчета, а постоянный способ совсем другой.. ну да ладно тут не об этом...хак на счет снятия кол-ва постов вроде работает - проверял по всякому.. теперь надо думать как переводить в нижнбб группу если включен переход от кол-ва постов в другую группу..вообщем это как оказалось не совсем так уж просто.. придется делать запросы лишние вообщем пока наработки такие1. делаем запрос типа select g_id, g_title from ibf_groups where g_promotion LIKE '{$g_id_old}&%'где $g_id_old это старая группа пользователя (та в которой он сейчас)2. по результатам запросаесли ничего не вернул запрос, то пользователь так и остается в этой группеесли что то вернул, тот тут такая ситуация может возникнуть... может вернуться несколько строк, то есть мы можем настроить переход в НЫНЕШНЮЮ группу из ДВУХ РАЗНЫХgroup1---\ group3 group2---/ так вот возникает вопрос - как определить куда засунуть пользователя в group1 или в group2?ситуация конечно маловероятная, но она может быть если есть у кого каие идеи- поделитесь Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 11 Августа 2004 Жалоба Поделиться Опубликовано 11 Августа 2004 может создать в табле ibf_members дополнительное поле, в которое заставить форум писать предыдущую группу? Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 11 Августа 2004 Жалоба Поделиться Опубликовано 11 Августа 2004 да вариант хороший и лекго реализуемый, НО это вариант подходит тем кто ставит форум с нуля, как быть с теми кто обновляет форум.. Ссылка на комментарий Поделиться на других сайтах Прочее
d1pro Опубликовано 11 Августа 2004 Жалоба Поделиться Опубликовано 11 Августа 2004 Селектишь первую попавшуюся ... Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 11 Августа 2004 Жалоба Поделиться Опубликовано 11 Августа 2004 да видимо это будет самым оптимальным вариантом.. хоть и не самый лучший.. ладно будем реализовывать Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 14 Августа 2004 Жалоба Поделиться Опубликовано 14 Августа 2004 так! я нашёл на форуме в другом месте глюк со счётчиком.... если я склеиваю допустим два своих сообщения, то у меня число сообщений остается такоеже, а на форуме общее число сообщений снижается..... Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 14 Августа 2004 Жалоба Поделиться Опубликовано 14 Августа 2004 гы.. здесь будет еще сложнее учитывать кому снижать счетчик, так как объединять можно сообщения разных пользователей.. ИМХО не нужно в данном случае это Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 14 Августа 2004 Жалоба Поделиться Опубликовано 14 Августа 2004 не сложнее. там ведь можно выбрать, к какому юзеру посты приклеятся, следовательно у остальных вычитать. я так понял ЭТО не собираетесь исправлять? эх.. придётся каждый раз пересчитывать статистику. Ссылка на комментарий Поделиться на других сайтах Прочее
winnie Опубликовано 14 Августа 2004 Жалоба Поделиться Опубликовано 14 Августа 2004 ОФФ если обясните мне смысл в объединении постов разных юзверей, то может сделаю.. Ссылка на комментарий Поделиться на других сайтах Прочее
Aleks Опубликовано 15 Августа 2004 Жалоба Поделиться Опубликовано 15 Августа 2004 ну а хотя бы у одного юзера если объелинять? Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения