Тестирование мигратора INSTANTCMS1.1.* - INSTANTCMS2.7.1

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Очередной мигратор

#16 28 февраля 2017 в 11:09


@iKrym, тип контента, туда тип поля — файл.
Но как это дело мигрировать..

Jestik


а несколько файлов можно?
ведь много фото есть, ))
#17 28 февраля 2017 в 22:45

Не вариант. Первая категория — root_category. Если её занять, дерево категорий превратится в бонсай.
У себя вручную просто создал новую категорию и заменил у тем категорию 1 на номер новой категории. Но думаю, как это автоматизировать.

Ris
я не предлагаю перенести ее с id=1, предлагаю перенести ее со свободным id, последним. При переносе все равно будут проблемы с переиндексацией всего форума. Поэтому от перемены мест id хуже не станет.
#18 4 марта 2017 в 17:00
Еще не апдейтится счетчик друзей.
Не критично, но все же



И снова форум.
В списке разделов у большинства тем в колонке "Последнее сообщение" не определен id у пользователя. И ссылка просто users.
В ячейке базы

---
post_id: 50771
date_pub: 2017-01-12 19:09:43
user_id: null
user_nickname: Администратор
thread_title: >
А ведь сегодня
пятница 13...

Не считается также количество сообщений форума



Хотя пересчет произойдет сразу после написанного нового сообщения, так что тоже некритично.
#19 4 марта 2017 в 22:11
Еще вопрос автору мигратора, по какому принципу переносятся картинки в папку old?
Просто наблюдаю в мигрированном форуме как картинки с адресами
/upload/old/forum/3e5d35c19f0fec6d9932e6f72851be66.jpg
так и
/upload/forum/763f2354dcfe8ae855350d0b1c9cee43.jpg
#20 4 марта 2017 в 22:16

Просто наблюдаю в мигрированном форуме как картинки с адресами
/upload/old/forum/3e5d35c19f0fec6d9932e6f72851be66.jpg
так и
/upload/forum/763f2354dcfe8ae855350d0b1c9cee43.jpg

Zau4man

Буду разбираться значит.
#21 4 марта 2017 в 23:16
Ris, а еще можно в мигратор впилить что-то типа

  1.  
  2. preg_match_all('/\/go\/url=(.*?)\"/is', $text, $matches);
  3. $text = str_replace('/redirect?url=', '/redirect?url=', $text);
  4. foreach ($matches[1] as $match){
  5. $url = str_replace(array('--q--',' '), array('?','+'), $match);
  6. if(mb_strpos($url, '-') === 0){
  7. }
  8. $text = str_replace($match, $url, $text);
  9. }
  10.  
За код не пинать, уже второй час ночи. 43 тысячи сообщений форума так прогнал за минуту...
Так избавимся от ссылок с go…
#22 4 марта 2017 в 23:38
Zau4man,
Можно, конечно.
Вы вот целую функцию написали, а я лентяй, тупо поменял бы прямо в базе
UPDATE cms_comments SET content = REPLACE(content, 'go/url=', 'url=')
Собственно там и сейчас так сделано.
  1. //-----------------------------------------------------------------------------------------------------//
  2. // ЗАМЕНА ТЕГОВ В КОНТЕНТЕ
  3. //-----------------------------------------------------------------------------------------------------//
  4.  
  5. public function tagsReplace($table, $column = 'content') {
  6.  
  7. $this->replace($table, $column, '/upload/', '/upload/old/');
  8.  
  9. $this->replace($table, $column, '/images/', '/upload/old/');
  10.  
  11. }
На самом деле структура таблиц очень разная со множеством нюансов (типа новостей — категории статей в первой ветке и форумов, как категорий во второй), поэтому костылей пришлось втыкать немеряное количество. Можно сказать, что весь мигратор состоит из костылей.
Отсюда и такая масса различных глюков, которые я записал в список по устранению и буду устранять.
#23 5 марта 2017 в 00:24
Ris, со ссылками так нельзя.
там часть ссылок декодировать надо. не помню в какой версии ввели.
#24 5 марта 2017 в 00:30

там часть ссылок декодировать надо. не помню в какой версии ввели.

Zau4man

Вот это ценная информация! Спасибо!
У меня еще на 1.9 сайт и такого нет. Завтра изучу этот вопрос.
Ну наверняка можно еще одну функцию в модели приделать для декодирования поля контент и отправлять текст перед инсертом в эту функцию.
#25 5 марта 2017 в 15:43


Ris, а еще можно в мигратор впилить что-то типа

  1.  
  2. preg_match_all('/\/go\/url=(.*?)\"/is', $text, $matches);
  3. $text = str_replace('/redirect?url=', '/redirect?url=', $text);
  4. foreach ($matches[1] as $match){
  5. $url = str_replace(array('--q--',' '), array('?','+'), $match);
  6. if(mb_strpos($url, '-') === 0){
  7. }
  8. $text = str_replace($match, $url, $text);
  9. }
  10.  
За код не пинать, уже второй час ночи. 43 тысячи сообщений форума так прогнал за минуту...
Так избавимся от ссылок с go...

Zau4man


А как форумные сообщения влить в статьи? Например, создать тип контента — форум и влить туда все посты с форума? Хотя-бы первые?
то же самое, можно сделать с блогами, с объявлениями
#26 5 марта 2017 в 20:42
И еще. Вопрос, требующий обсуждения.

Зачем переносить фотки форума, статей в папку old? Пусть они лежат в папке upload/forum. Так мы получим кучу 404, переиндексации изображений, потери в поиске по картинкам...
Фотки форума в 1.10.х итак лежат в папке upload/forum, а форум в 2.0 использует встроенный механизм. Не перепутать.
Аналогично с фотками статей. В своем миграторе переносить не стал никуда, пусть лежат в images. Images в 2ке также не используется.
Проблема исключительно с компонентом фото. Тут да, требуется, чтобы файлы переехали в папку upload. По уму их нужно ресайзить по новой, как сделано в миграторе с 2.5.1 на 2.6.0. Получим копии фото, зато старые фотки из индекса не вылетят. А новые постепенно зайдут по новой.

В общем, с огромным уважением к вашему труду, но сижу пишу экшн для дополнения вашего мигратора (из него использую перенос пользователей и форума).
Пока там:
1. правки по url описанные выше
2. отмена переноса в old
#27 5 марта 2017 в 20:58

Зачем переносить фотки форума, статей в папку old?

Zau4man
Просто потому, что так сделано в миграторе от разработчиков.
Тестировал одновременно на одном сайте два мигратора. И чтобы не создавать миллион папок с картинками...
smile

2. отмена переноса в old

Zau4man
Поправить всего три файла:
\system\controllers\emigrator\model.php
\system\controllers\emigrator\migrate\comments\endcomments.php
\system\controllers\emigrator\frontend.php
#28 5 марта 2017 в 21:05
Кстати, тут подумалось. После переноса если настроить редиректы в .htaccess то проблем с переиндексацией картинок быть не должно…
#29 7 марта 2017 в 19:10
так и не понял, как мигрировать?
столько букв написано много

скачал мигратор, дальше что делать?
#30 7 марта 2017 в 19:33
@iKrym, см. 10 сообщение в этой теме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.