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: [Релиз] Массовое изменение сообщений по шаблону

(Please log in or register to see this URL)
почему у меня не получается?

(Please log in or register to see this URL)
(Please log in or register to see this URL)

Поделиться

8

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

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

hcs пишет:

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

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

Поделиться

9

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

Спасибо

(Please log in or register to see this URL)
(Please log in or register to see this URL)

Поделиться

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

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

Поделиться

11

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

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

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

Поделиться

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

Спасибо!

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

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

Поделиться

13

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

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

Моя (Please log in or register to see this URL) FluxBB 1.5, (Please log in or register to see this URL), (Please log in or register to see this URL).

Поделиться

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

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

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

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

Поделиться