Тема не новая, весеннее обострение, супермодератор с правами удаления сообщений из БД грохнул 40 тем, права убрал, но поздно, в общем задача темы восстановить. Нашел старую закрытую тему Восстановить удаленные сообщения с форума .
Собственно вопросы, помогите, пожалуйста.
Имеется рабочая БД имя "BASE", префикс "bb_", резервная копия развернута в другую БД, имя "DUMP", префикс "bb_"
1. Скрипты для phpBB 3.0.х актуальны и для 3.(1-3).х? Или нужно допилить код скрипта?
Код скрипта
Код: Выделить всё
<?php
/**
*
* install / repair / maintenance script
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Настройки Базы Данных, откуда будут браться данные для восстановления
$res_db_name = 'test_db'; // вставьте сюда имя вашей БД вместо test_db
$res_db_prefix = 'phpbb_'; // префикс БД, обычно phpbb_ . измените на свой, если у вас отличается
// ID нужных вам тем для восстановления, через запятую
$res_array = array(9, 70);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$this_url = append_sid(generate_board_url() . "/topics_restore.$phpEx");
// We only allow a founder to run this script
if ($user->data['user_type'] != USER_FOUNDER)
{
if (!$user->data['is_registered'])
{
login_box($this_url, $user->lang['NOT_AUTHORISED']);
}
trigger_error('NOT_AUTHORISED');
}
foreach ($res_array as $topic_id)
{
$db->sql_query('INSERT INTO ' . TOPICS_TABLE . ' SELECT * FROM ' . $res_db_name . '.' . $res_db_prefix . 'topics WHERE topic_id = ' . $topic_id);
$db->sql_query('INSERT INTO ' . POSTS_TABLE . ' SELECT * FROM ' . $res_db_name . '.' . $res_db_prefix . 'posts WHERE topic_id = ' . $topic_id);
}
$message = 'Работа скрипта успешно завершена!<br /><br />';
$message .= 'Очистите кеш конференции, синхронизируйте форумы и пересоздайте поисковые индексы.<br /><br />';
$message .= 'Удалите этот скрипт с вашего сервера!';
trigger_error($message);
?>
$res_db_name = 'DUMP';
$res_db_prefix = 'bb_';