Перейти к контенту

Счётчик сообщений пользователя


theIggs

Рекомендуемые сообщения

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

:D вообще фича с форумами в которых отключены счетчики потов ИМХО не доделана.. например если мы переносим тему из такого форума в другой - нормальный (со счетчиком), то ни какого рекаунта не происходит ..

кхм.. вообщем есть одна идея как организовать.. но изменений .. не мало..

1. добавить новое поле к таблице топиков

2. при удалении модератором из основного места жительства топика ставить метку в новое поле откуда была удалена тема, при удалении тдельных топиков тоже содаются отдельные темы в корзине и им тоже ставить метку откуда они ...

ну а при очистке корзины просто делать проверку по этому полю..

Ссылка на комментарий
Поделиться на других сайтах

кхм.. вобщем сделал.. :D изменений конечно прилично .. сюда выкладывать не буду, работает теперь и с корзиной и без нее, с форумами без счетчиков и с ними

вот архив http://www.hitv.ru/prog/post_dec_count.rar можете просто заменить соответсвующий файлы (три файла) либо сравнить с исходниками например программой Total Commander и сделать соответсвующие изменения..

в кратце как работает

добавил талице ibf_topics еще одно поле

inc_postcount tinyint(1)

по умолчанию оно пустое...

теперь если мы удаляем пост/топик и у нас включена корзина, то делаем проверку на то какой форум с счетчиком или без и если БЕЗ счетчика, то пишем в поле 1(единицу), если со счетчкиом- ничего не пишем..

при удалении из корзины проверяем это поле на наличие 1 (единицы)...

вот такой принцип...

тестил- работает во всех комбинациях...

если кто будет тестить - отпишитесь здесь пожалуйста как работает ;)

заранее спасибо!

 

Vanish

люди не страдайте ерундой, ага?

это Вы к чему?

Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах

Aleks

а ты эти файлы изменял от какой версии? PF2?

да ПФ2

чё то я ничего не понял с этим полем...

ALTER TABLE `ibf_topics` ADD `inc_postcount` TINYINT( 1 ) DEFAULT NULL ;

 

 

так.. с полем я разобрался но всё равно при удалении темы в корзину вылазиет

при удалении только топиков?

при удалении постов вылезает ошибка?

версия MySQL какая?

проверил у себя на разных базах - все работает

Ссылка на комментарий
Поделиться на других сайтах

сейчас, проверю заново и всё напишу.

Добавлено в [mergetime]1092130249[/mergetime]

а. всё. сорри. всё работает. это меня просто проглючило и я не в ту таблицу его добавил( поле)... спсибо.

Добавлено в [mergetime]1092130328[/mergetime]

ты бы в ридми в архиве своём лучше так написал. (ALTER TABLE `ibf_topics` ADD `inc_postcount` TINYINT( 1 ) DEFAULT NULL :D а то вдруг ещ кто запутается.

Ссылка на комментарий
Поделиться на других сайтах

как работает? - потестите во всех комбинациях - расскажите

ты бы в ридми в архиве своём лучше так написал. (ALTER TABLE `ibf_topics` ADD `inc_postcount` TINYINT( 1 ) DEFAULT NULLа то вдруг ещ кто запутается.

ОФФ лень - ленивый я до ужаса:D.. я вообще делал все на базе постгре.. поэтому под мускуль лень было... расписывать;)

в принципе если все будет работать, то сделаю полное подробное описание

Ссылка на комментарий
Поделиться на других сайтах

нашёл новый глюкобаг. допустим у меня есть тема. в ней 3 поста. ( но в форуме показывается, что два, т.к. первый пост темы не считается.) так вот. при удалении этой темы из общей статистики форума списывается не 3 поста, а 2... в результате статистику всё равно надо пересчитывать. а при удалении темы из одного сообщения статистика и вовсе не меняется( так как первый пост не считается, хоть он и единственный)

Добавлено в [mergetime]1092130955[/mergetime]

winnie

потестите во всех комбинациях - расскажите

вот я потестил.... где то один пост твой механизм недотирает.

Ссылка на комментарий
Поделиться на других сайтах

:D зы боюсь это глюк не от моих изменений, а от того как сделана процедура пересчета статистики после переноса топиков из одного форума в другой.. на мелких форумах, до сотни постов она работает нормально, на тех же где больше сотни- глюк начинаются.. причем в админке все нормально сделано

смысл разных типов пересчета статистики мне пока не понятен.. если не разберусь для чего они так сделали- переделаю под то как сделали в админке

Ссылка на комментарий
Поделиться на других сайтах

так..... это не от твоего мода.. (да и на форуме у меня всего 5 постов)..

так вот.. глюк был вот в чём . у меня в табле ибф_топикс оказалась битая строчка. как она там могла получится совершенно непонятно. id у неё есть, а обязательное для воода topic_title - нету...... и причём пересчёт в админке эту строчку почему то пропускал......... всё очень запутано.

Ссылка на комментарий
Поделиться на других сайтах

угу и в этой строчке в колонке posts записано -1 и forum_id=0

у меня тоже такие были, НО это еще не все..

вообщем нашел место где один лишний запрос и причем он не совсем тот.. :D

Добавлено в [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']);

Ссылка на комментарий
Поделиться на других сайтах

зы вообщем предыдущее исправление можно и не делать..

прсто странно почему в админке один способ пересчета, а постоянный способ совсем другой..

ну да ладно тут не об этом...

хак на счет снятия кол-ва постов вроде работает - проверял по всякому.. теперь надо думать как переводить в нижнбб группу если включен переход от кол-ва постов в другую группу..

вообщем это как оказалось не совсем так уж просто.. :D

придется делать запросы лишние ;)

вообщем пока наработки такие

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?

ситуация конечно маловероятная, но она может быть :)

если есть у кого каие идеи- поделитесь

Ссылка на комментарий
Поделиться на других сайтах

да вариант хороший и лекго реализуемый, НО это вариант подходит тем кто ставит форум с нуля, как быть с теми кто обновляет форум..
Ссылка на комментарий
Поделиться на других сайтах

так! я нашёл на форуме в другом месте глюк со счётчиком.... если я склеиваю допустим два своих сообщения, то у меня число сообщений остается такоеже, а на форуме общее число сообщений снижается.....
Ссылка на комментарий
Поделиться на других сайтах

гы.. здесь будет еще сложнее учитывать кому снижать счетчик, так как объединять можно сообщения разных пользователей.. ИМХО не нужно в данном случае это
Ссылка на комментарий
Поделиться на других сайтах

не сложнее. там ведь можно выбрать, к какому юзеру посты приклеятся, следовательно у остальных вычитать. я так понял ЭТО не собираетесь исправлять? эх.. придётся каждый раз пересчитывать статистику.
Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.