Prime Trash Bin

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Prime Trash Bin

Сообщение Пчелкин »

Это к моду - NV Newspage v1.0.5.1...вверху исправил
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
ArtTeam
phpBB 2.0.0
Сообщения: 200
Стаж: 16 лет 4 месяца
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Prime Trash Bin

Сообщение ArtTeam »

А при просмотре удаленного сообщение должно показывать только текст сообщения или аватар тоже должен отображаться ?
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Prime Trash Bin

Сообщение Пчелкин »

Минипрофиль урезанный , ава если есть - показывается...после восстановление - пожалуйста, будет весь...
В списке тем - ничего...какие бы моды вывода ав и прочего не стояли...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
IIyx
phpBB 1.0.0
Сообщения: 4
Стаж: 14 лет 4 месяца

Re: Prime Trash Bin

Сообщение IIyx »

Поставил Prime Trash Bin 1.1.6 на board 3.0.10. Темы удаляются в корзину. Здесь все работает. Но обратно из корзины они не восстанавливаются. Путем поисков обнаружено некорректная работа функции are_topics_stifled в prime_trash_bin_b.php

Код: Выделить всё

	function are_topics_stifled($topic_ids)
	{
		global $db;

		$topic_ids = !is_array($topic_ids) ? array($topic_ids) : $topic_ids;
		$sql = 'SELECT topic_id'
				. ' FROM ' . TOPICS_TABLE
				. ' WHERE topic_deleted_time > 0'
				. ' AND ' . $db->sql_in_set('topic_id', $topic_ids);
		$result = $db->sql_query($sql);
		$stifled_count = $db->sql_affectedrows();
		$db->sql_freeresult($result);
		return(($stifled_count === count($topic_ids)) ? true : $stifled_count);
	}
$db->sql_affectedrows() возвращает 0; хотя сам запрос срабатывает нормально и возвращает topic_id
База данных - sqlite 2.8.17. Как исправить эту функцию? В коде есть еще несколько подобных функций.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Prime Trash Bin

Сообщение Пчелкин »

У всех нормально восстанавливает, а у вас нет...право восстанавливать дано?
Синхронизацию форумов давно делали?
В СТК есть опция - исправление границ значений ID...как-то помогла на одном форуме...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
IIyx
phpBB 1.0.0
Сообщения: 4
Стаж: 14 лет 4 месяца

Re: Prime Trash Bin

Сообщение IIyx »

Право восстанавливать дано, синхронизация не помогла. По документации affectedrows() не работает с SELECT
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Prime Trash Bin

Сообщение Pazh »

MySQL(i) 5.0.51a-24 + PHP Version 5.2.6-1 строка

Код: Выделить всё

$stifled_count = $db->sql_affectedrows();
возвращает правильное значение аналогичное $result->num_rows
Если на Вашей БД не срабатывает то попробуйте заменить на

Код: Выделить всё

$stifled_count = ($result !== false) ? $result->num_rows : 0;
или вообще запрос поменять

Код: Выделить всё

		$sql = 'SELECT topic_id'
				. ' FROM ' . TOPICS_TABLE
				. ' WHERE topic_deleted_time > 0'
				. ' AND ' . $db->sql_in_set('topic_id', $topic_ids);
		$result = $db->sql_query($sql);
		$stifled_count = $db->sql_affectedrows();
на

Код: Выделить всё

		$sql = 'SELECT count(topic_id) kol'
				. ' FROM ' . TOPICS_TABLE
				. ' WHERE topic_deleted_time > 0'
				. ' AND ' . $db->sql_in_set('topic_id', $topic_ids);
		$result = $db->sql_query($sql);
		$stifled_count = $db->sql_fetchfield('kol');
Помощь в ЛС/email только за WM или ЮMoney
IIyx
phpBB 1.0.0
Сообщения: 4
Стаж: 14 лет 4 месяца

Re: Prime Trash Bin

Сообщение IIyx »

Спасибо! Сделал через num_rows();
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Prime Trash Bin

Сообщение Pazh »

IIyx вот так правильней

Код: Выделить всё

$stifled_count = ($result !== false) ? $result->num_rows : 0;
т.к. если ничего запрос не вернул, то значение $result будет булево false
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 8 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Prime Trash Bin

Сообщение Alecto »

Парни, как быть?
Вот чистит кто-то свои темы, потом посты "висят" как удаленные, но их можно восстановить.
Одно дело, когда темка маленькая и таких постов можно по пальцам считать.
А если ежедневно редактируются сотни многостраничных тем?
Что можно придумать, чтобы "одним нажатием" очищать всю тему?
Ну или хотя бы sql-скриптик какой сконструировать и запускать его раз в месяц по крону?
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 16 лет 10 месяцев
Благодарил (а): 42 раза
Поблагодарили: 506 раз

Re: Prime Trash Bin

Сообщение Pazh »

Код: Выделить всё

DELETE FROM phpbb_posts WHERE post_deleted_time>0
- удалит все отмеченные удаленными сообщения на форуме

Код: Выделить всё

DELETE FROM phpbb_posts WHERE post_deleted_time>0 and topic_id=XXXX
- удалит все отмеченные удаленными сообщения в теме с id=XXX

Код: Выделить всё

DELETE FROM phpbb_posts WHERE post_deleted_time>0 and forum_id=XXXX
- удалит все отмеченные удаленными сообщения в форуме с id=XXX
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 8 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Prime Trash Bin

Сообщение Alecto »

Pazh
запрос чистит все посты - все справедливо, поскольку я в своем вопросе более ничего не уточнял :)

можно ли подправить запрос таким образом: если помеченный удаленным пост является первым сообщением темы - его не удалять (такая тема и так находится в корзине, ее никто кроме админов не видит и она рано или поздно попадет под автоочистку).

ну и возможно, мой вопрос покажется глупым: безопасно ли таким образом выполнять очистку помеченных удаленными постов? в плане, может где по другим таблицам останется мусор? хотя тот же мод спасибок потом сам обновляет данные... вобщем, стоит ли опасаться появления багов?
Аватара пользователя
misterleks
phpBB 2.0.9
Сообщения: 715
Стаж: 16 лет 1 месяц
Откуда: Великий Новгород
Благодарил (а): 103 раза
Поблагодарили: 38 раз

Re: Prime Trash Bin

Сообщение misterleks »

Все счетчики придется обновлять.
Продаю комиксы, продаю инструмент, продаю товары для охоты и рыбаков... и администрирую форум!
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 16 лет 8 месяцев
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза

Re: Prime Trash Bin

Сообщение Alecto »

misterleks
проверил. да, статистика не обновляется.
но количество постов пользователя минусуется еще на этапе удаления их в корзину (помечаются удаленными).
ArtTeam
phpBB 2.0.0
Сообщения: 200
Стаж: 16 лет 4 месяца
Благодарил (а): 7 раз
Поблагодарили: 3 раза

Re: Prime Trash Bin

Сообщение ArtTeam »

При удалении пользователя заметил новую функцию "Навсегда удалить должностей".
Что данная функция делает ?

Вернуться в «Поддержка модов для phpBB 3.0.x»