Очистка списка пользователей и счетчик сообщений
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Очистка списка пользователей и счетчик сообщений
Столкнулся с интересным геморроем.
Есть форумы, в которых у пользователей отключен счетчик сообщений.
Дабы не накручивать нетематическую часть.
Сегодня хотел сделать очистку списка пользователей и обнаружил, что при выставлении количества сообщений =0 предлагается удалить пользователей, у которых физически есть сообщения.
Т.е. в профиле в статистике в счетчике пользователя стоит 0, но при этом поиск сообщений пользователя дает на выходе физически существующие посты.
На мой взгляд, это глубоко нелогично.
Так и задумано или это у меня какой-то баг?
Есть ли возможность его обойти, чтобы не удалять пользователей, у которых физически есть хоть одно сообщение?
Есть форумы, в которых у пользователей отключен счетчик сообщений.
Дабы не накручивать нетематическую часть.
Сегодня хотел сделать очистку списка пользователей и обнаружил, что при выставлении количества сообщений =0 предлагается удалить пользователей, у которых физически есть сообщения.
Т.е. в профиле в статистике в счетчике пользователя стоит 0, но при этом поиск сообщений пользователя дает на выходе физически существующие посты.
На мой взгляд, это глубоко нелогично.
Так и задумано или это у меня какой-то баг?
Есть ли возможность его обойти, чтобы не удалять пользователей, у которых физически есть хоть одно сообщение?
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Очистка списка пользователей и счетчик сообщений
Хм...
Информация о количестве постов в списке берется из таблицы
Для поиска реального количества нужно прошерстить всю таблицу, ну или по лимиту, и потом пробежаться по полученному списку и подсчитать количество сообщений пользователей из списка (в цикле)
Мильён запросов...
Информация о количестве постов в списке берется из таблицы
users, ну например запросом, причем одним
Код: Выделить всё
SELECT * FROM phpbb_users WHERE user_posts = 0Код: Выделить всё
SELECT COUNT(post_id) AS total FROM phpbb_posts WHERE poster_id = ид_юзераОбщие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Очистка списка пользователей и счетчик сообщений
Да, это понятно.
Как я понимаю, это всё же не мой баг, а нелогичность движка, что непосчитанные сообщения считаются за 0?
Как мне тогда быть? Изменять настройки для каждого форума, делать пересчеты, потом удалять пользователей и после этого снова восстанавливать настройки счетчиков? ((
Добавлено спустя 10 минут 51 секунду:
Тогда сразу насущный вопрос, не поможете составить sql, чтобы включить счетчик для всех групп во всех разделах?
Как я понимаю, это всё же не мой баг, а нелогичность движка, что непосчитанные сообщения считаются за 0?
Как мне тогда быть? Изменять настройки для каждого форума, делать пересчеты, потом удалять пользователей и после этого снова восстанавливать настройки счетчиков? ((
Добавлено спустя 10 минут 51 секунду:
Тогда сразу насущный вопрос, не поможете составить sql, чтобы включить счетчик для всех групп во всех разделах?
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Очистка списка пользователей и счетчик сообщений
Ну.... некоторая нелогичность имеет место быть. Стоило бы в таблице
users ввести еще поле, куда заносилось бы реальное, а не отображаемое количество.
В таком случае пользователь, у которого один засчитанный пост и один не учтенный, после восстановления будет иметь два учтенных. Понел...?romeo_piter писал(а):снова восстанавливать настройки счетчиков?
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Очистка списка пользователей и счетчик сообщений
В правах написано, что:Sheer писал(а):В таком случае пользователь, у которого один засчитанный пост и один не учтенный, после восстановления будет иметь два учтенных. Понел...?
Это означает, что пересчет не поможет?Счётчик сообщений включён
Учтите, что данная установка эффективна только при создании новых сообщений.
Как в первом случае, т.е. включении счетчика, так и во втором ((((((
Идиотизм, блин.
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Очистка списка пользователей и счетчик сообщений
Вкратце так. Если счетчик включен, то при отправке сообщение значение в поле
user_posts в таблице users будет увеличено на единицу. Если нет, значит нет. А при пересчете, откуда движку знать, что неделю назад ты включал счетчик, а через два часа снова включил.Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Очистка списка пользователей и счетчик сообщений
Ну по логике пересчет должен пересчитывать физические посты в зависимости от некоторых условий, в данном случае, в зависимости от переключателя в счетчике.Sheer писал(а):А при пересчете, откуда движку знать, что неделю назад ты включал счетчик, а через два часа снова включил.
А так хрень получается, например, был у меня раздел относительно нетематический, в нем был отключен счетчик, раздел разросся и превратился в тематический.
А сообщения в нем получается не учесть, и если например пользователь постил только в этом разделе, то он легко сносится при установке 0.
Хорошо меня чуйка не подвела, как чувствовал подвох, удалил юзверей, проверил, а тут такое веселье. (((
Добавлено спустя 4 минуты 50 секунд:
Судя по поиску у нас и на офе я чуть ли не единственный считаю подобное поведение проблемой )))
Хотя это реально проблема, особенно если не знаешь об этой особенности, а потом хочешь удалить 5000 юзверей )))
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Очистка списка пользователей и счетчик сообщений
У меня созрел вопрос, как происходит пересчет, если не по физическим сообщениям?Sheer писал(а):А при пересчете, откуда движку знать, что неделю назад ты включал счетчик, а через два часа снова включил.
Если мы обнулим поле user_posts, а потом сделаем пересчет - как будет происходить пересчет?
-
Sheer
- Former team member
- Сообщения: 12113
- Стаж: 19 лет 7 месяцев
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2756 раз
Re: Очистка списка пользователей и счетчик сообщений
А... ну.... надо в коде посмотреть. Вероятно по форумам, где включен счетчик. А тогда твой вариант сработает. Но придется обнулять
user_postsОбщие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Очистка списка пользователей и счетчик сообщений
Проверил.
Не работает оно так.
Изменил право, пересчитал всё что можно было на главной странице админки - та же фигня.
Что примечательно, по ссылке Найти сообщения пользователя сверху видно общее реальное число (результаты поиска).
Ну разве не хрень?
Добавлено спустя 9 минут 54 секунды:
Вот нашел интересную тему на эту тему, только понимания больше не стало.
Пересчёт количества сообщений
И никто нигде внятно не описал механизм с этими несчастными счетчиками
Не работает оно так.
Изменил право, пересчитал всё что можно было на главной странице админки - та же фигня.
Что примечательно, по ссылке Найти сообщения пользователя сверху видно общее реальное число (результаты поиска).
Ну разве не хрень?
Добавлено спустя 9 минут 54 секунды:
Вот нашел интересную тему на эту тему, только понимания больше не стало.
Пересчёт количества сообщений
И никто нигде внятно не описал механизм с этими несчастными счетчиками
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Очистка списка пользователей и счетчик сообщений
Нашел тему на офе, пишут, что пересчет не помогает и если в разделе был отключен счетчик, то посты помечаются каким-то волшебным образом и при пересчете всё равно не будут учтены.
Вопрос, где они помечаются?
Тема вот: https://www.phpbb.com/community/viewtop ... #p13096944
Добавлено спустя 6 минут 45 секунд:
Ееееееееееее!!
Товарищи, нашел, извините мою бурную реакцию.
Вот решение: https://www.phpbb.com/community/viewtop ... #p12957631
Добавлено спустя 1 минуту 18 секунд:
Помечать пост или нет находится в таблице сообщений, ячейка post_postcount = 0
Если 0 - при синхронизации постов пост не считается
Если 1 - пост считается
Добавлено спустя 2 минуты 27 секунд:
Продолжаем мысли вслух, в моей ситуации надо сначала все сообщения форума сделать физическими, те всем присвоить 1
Произвести пересчет, после этого очистить список пользователей.
И теперь снова появляется загвоздка, как после этого вернуть всё на круги своя? Т.е. присвоить взад нули, там где счетчик сообщений отключен?
Добавлено спустя 10 минут 30 секунд:
Вижу такой алгоритм.
1. Создаем дополнительное поле post_realpostcount
2. В него кладем текущие значения из post_postcount
3. Всем значениям post_postcount присваиваем 1
4. Делаем синхронизацию поств
5. Производим манипуляции по удалению пользователей (т.к. все посты учтены)
6. После этого возвращаем значения из post_realpostcount в post_postcount
Дело за скриптом )
Вопрос, где они помечаются?
Тема вот: https://www.phpbb.com/community/viewtop ... #p13096944
Добавлено спустя 6 минут 45 секунд:
Ееееееееееее!!
Товарищи, нашел, извините мою бурную реакцию.
Вот решение: https://www.phpbb.com/community/viewtop ... #p12957631
Добавлено спустя 1 минуту 18 секунд:
Помечать пост или нет находится в таблице сообщений, ячейка post_postcount = 0
Если 0 - при синхронизации постов пост не считается
Если 1 - пост считается
Добавлено спустя 2 минуты 27 секунд:
Продолжаем мысли вслух, в моей ситуации надо сначала все сообщения форума сделать физическими, те всем присвоить 1
Произвести пересчет, после этого очистить список пользователей.
И теперь снова появляется загвоздка, как после этого вернуть всё на круги своя? Т.е. присвоить взад нули, там где счетчик сообщений отключен?
Добавлено спустя 10 минут 30 секунд:
Вижу такой алгоритм.
1. Создаем дополнительное поле post_realpostcount
2. В него кладем текущие значения из post_postcount
3. Всем значениям post_postcount присваиваем 1
4. Делаем синхронизацию поств
5. Производим манипуляции по удалению пользователей (т.к. все посты учтены)
6. После этого возвращаем значения из post_realpostcount в post_postcount
Дело за скриптом )
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Стаж: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Очистка списка пользователей и счетчик сообщений
Sheer сваял скрипт для данного случая, за что ему огромное спасибо.
Скрипт поможет тем, кто хочется заняться удалением мертвых душ и не бояться, что случайно удалятся пользователи, имеющие сообщения при нулевом счетчике.
Скрипт поможет тем, кто хочется заняться удалением мертвых душ и не бояться, что случайно удалятся пользователи, имеющие сообщения при нулевом счетчике.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

