1

Тема: [Релиз] Массовое изменение сообщений по шаблону

Недавно пришлось решать проблему, возникшую после смены домена и переноса на другой хостинг одного крупного форума. При переносе не учли, что внутренние адреса, смайлы, картинки и прочие будут указывать на старый домен. После переноса, в силу высокой посещаемости и быстрого обновления бд сообщений, восстановление из преобразованного дампа уже не рассматривалось. Пришлось сделать скрипт, который "на живую" обходит все сообщения и меняет текст по шаблону. Скрипт ложится в админку и работает по запросу вида адрес_форума/admin/clean_post.php. Он не требует дополнительных мер защиты, т.к. защищается штатными средствами, т.е. воспользоваться скриптом может только админ.
В качестве шаблонов используются только регулярные выражение (пусть вас не смущает галка в настройках - она не работает), поэтому их надо соотвественно экранировать, причем внешние экранирующие символы не нужны, скрипт это сделает сам.
Т.е. например чтобы заменить доменное имя надо будет в шаблон вписать следующее:

http:\/\/my\-forum\.ru

Это соответствует _http://my-forum.ru
ВНИМАНИЕ!Для использования необходимо знать основы регулярных выражений!

ВНИМАНИЕ! АХТУНГ!
Если не хотите безвозвратно потерять БД, перед использованием сделайте копию БД! Проверьте вашу копию БД, что она содержит данные а не мусор!
Используйте на свой страх и риск, никакие претензии не принимаются!

Post's attachments

clean_post.zip 4.03 Кб, 19 скачиваний с 2010-07-20 

You don't have the permssions to download the attachments of this post.
Захочешь — найдешь время, не захочешь — найдешь причину.
+ art

Поделиться

2

Re: [Релиз] Массовое изменение сообщений по шаблону

Вопрос по расширению:
Как можно перекрыть определенный раздел старого контента, т.е. к примеру  http:\\мой сайт\статьи.ru? Или же скрипт преобразует все ссылки на старый сайт?

Поделиться

3

Re: [Релиз] Массовое изменение сообщений по шаблону

скрипт преобразует то что ему скажешь, а не только ссылки.
Я не понял сути вопроса - "Как можно перекрыть определенный раздел старого контента, т.е. к примеру  http:\\мой сайт\статьи.ru?"

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

4

Re: [Релиз] Массовое изменение сообщений по шаблону

Тогда может я не совсем понял принцип скрипта....Начну сначала. Что на что меняется? http:\\мой сайт.ru на _http:\\мой сайт.ru? Смайлы с текстовыми ссылками я бы обработал, а вот картинки жалко..

Поделиться

5

Re: [Релиз] Массовое изменение сообщений по шаблону

Меняется что угодно на что угодно, не только адреса сайтов. Например можно найти все словосочетания "админ дурак" и заменить на "админ душечка". Смайлы лежат в отдельной от других картинок папке, поэтому ссылки на них можно без проблем заменить, задав в шаблоне поиск старый путь до папки смайлов, а в строке замены новый путь, типа так:
ищем: http:\/\/старыйадрес\/img\/smilies
меняем: http://новыйадрес/images/coolsmilies
Ты я вижу не шаришь в регекспах, поэтому есть риск нанести урон своим данным. Перед тем как что-либо делать поэкспериментируй на локальной базе. Рабочую копию предварительно обязательно скопируй.

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

6

Re: [Релиз] Массовое изменение сообщений по шаблону

hcs, большое спасибо

Поделиться

7

Re: [Релиз] Массовое изменение сообщений по шаблону

http://youtu.be/MS_Z2W7zteM
почему у меня не получается?

Поделиться

8

Re: [Релиз] Массовое изменение сообщений по шаблону

потомучто положить надо в админ каталог и оттуда запускать

hcs пишет:

Скрипт ложится в админку и работает по запросу вида адрес_форума/admin/clean_post.php

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

9

Re: [Релиз] Массовое изменение сообщений по шаблону

Спасибо

Поделиться

Re: [Релиз] Массовое изменение сообщений по шаблону

Где можно скачать это расширение?

Поделиться

11

Re: [Релиз] Массовое изменение сообщений по шаблону

В первом сообщении

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

Re: [Релиз] Массовое изменение сообщений по шаблону

Спасибо!

Добавлено спустя 13 минут 33 секунды:

Запусти- угрохал полбазы.
Как восстановить?

Поделиться

13

Re: [Релиз] Массовое изменение сообщений по шаблону

С бэкапа базы.

Моя сборка FluxBB 1.5 * Parserus - BBCode parser

Поделиться

14 (03.10.2011 06:58 отредактировано Иван Иванов_1)

Re: [Релиз] Массовое изменение сообщений по шаблону

Бэкап немного староват smile Вовремя сообразил, что скрипт режет и остановил. Скрипт оказался умный, резал со старых постов, что и спасло.  Склеил старый дамп с остатком нового и все ок smile 

пс. Если у вас руки кривые как у меня, лучше этим скриптом не пользоваться smile

Поделиться