Автор Тема: Конвертор с 1251 на UTF версию  (Прочитано 20898 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 473
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Конвертор с 1251 на UTF версию
« : 01 декабря 2010, 20:17:48 »
Чтобы никто не подумал, что разработчики удалились от дел и бросили санту на произвол судьбы - небольшой сюрприз :)
Санчез подготовил программу переноса старых движков (в 1251 кодировке) в новую генерацию (UTF-8).
Настоятельно рекомендуем всем пройти процедуру миграции, так как все автоматические обновления и т.п. будут работать только для UTF-версии.

Конвертор конвертит все. Включая каталог товаров. Естественно только в том случае, если вы ничего не меняли руками в коде модулей.

  Скрипт конвертирует:
  всю БД (кроме языковых меток, таблиц поиска и таблиц статистики)
  html,css,js файлы в папке /design/
  html-файлы в папках templates_user модулей
  html-файлы из content/pages (содержимое редактора контента)
  content/files/
  content/images/

Итак, порядок действий:

 -1) Конвертирование лучше делать на локальной машине. Установить set_time_limit(0). Скрипты будут работать долго. ИДЕАЛЬНЫЙ вариант - запускать из консоли.

  0) В корень 1251-версии помещаем скрипт 1251enumfix.php и запускаем его. Он отработает молча. Никаких надписей не будет.

  1) в ОТДЕЛЬНУЮ папку устанавливаем чистую UTF-8 версию (в ОТДЕЛЬНУЮ БД, не туда, где стоит старая 1251-версия),
     НЕ ставим галочку "все мои шаблоны в 1251", указываем ТАКОЙ ЖЕ БД-префикс, как и в 1251-версии

  2) создаём полный бэкап в 1251-версии - контент, системные файлы, таблицы, дизайн
     (для "облегчения" бэкапа можно добавить  /admin/ , /include/ и /templates_admin/ в "Игнорируемые пути",
      в "Список игнорируемых расширений" - php,
      в список игнорируемых таблиц - 4 таблицы поиска - PREFIX_search1_ ,
      в список игнорируемых таблиц - 10 таблиц статистики - PREFIX_stat_  ),

  3)  распаковываем полученный бэкап в папку _convert UTF8-версии (в ней должны быть обе папки - data и sql)

  4) переписываем этот файл в корень UTF8 версии и запускаем. если вылазят ошибки - что-то пошло не так

  5) в админке, в "Глобальных настройках" переустановить языковые переменные

  6) индексация для поиска НЕ переносится, поэтому после конвертации её необходимо запустить заново
  
Собственно все. После удачного конверта все воздаем хвалу Санчезу :)

P.S. Если у кого-то после обновления не работает карточка товара и там есть внутренние фильтры (%show_selection%) проверьте, чтобы после последнего параметра НЕ стояла ";"

P.P.S
и ещё нюансы
1) если у вас  на 1251-версии нету полей типа "набор значений" в каталоге товаров, то скрипт 1251enumfix.php можно не запускать.
он сделан для исправления возможных ошибок в таком типе полей. больше ничего он не делает.

2) оба скрипта лучше запускать из консоли, перенаправив вывод в текстовый файл, чтобы потом была возможность почитать всё, что выдаётся на экран, т.е. чтото вида
php converter.php >converter.txt

3) т.к. полный бэкап вещь часть непосильная для админки, лучше сразу делать его из консоли.
для этого сначала создать правило бэкапа в админке, учитывая рекомендации в начале поста, а потом запустить скрипт бэкапа из консоли:
php admin/backup_cron.php строковый_адишник_бэкап_правила
эта команда создаст zip-файл с бэкапом в папке /backup/
« Последнее редактирование: 01 декабря 2010, 22:04:29 от Oslix »

sanchez

  • Гость
Re: Конвертор с 1251 на UTF версию
« Ответ #1 : 01 декабря 2010, 20:28:24 »
Если что-то пошло не так (валятся ошибки или не работает сконвертированный сайт), можете постить сюда куски выводимых скриптом ошибок или описание проблем, гляну в свободное время

buisnesmen

  • Гость
Re: Конвертор с 1251 на UTF версию
« Ответ #2 : 01 декабря 2010, 20:41:58 »
Круто! Огромное спасибо! А то я давно хотел перевести сайт, но не знал как!

sanchez

  • Гость
Re: Конвертор с 1251 на UTF версию
« Ответ #3 : 01 декабря 2010, 20:49:11 »
и ещё нюансы
1) если у вас  на 1251-версии нету полей типа "набор значений" в каталоге товаров, то скрипт 1251enumfix.php можно не запускать.
он сделан для исправления возможных ошибок в таком типе полей. больше ничего он не делает.

2) оба скрипта лучше запускать из консоли, перенаправив вывод в текстовый файл, чтобы потом была возможность почитать всё, что выдаётся на экран, т.е. чтото вида
php converter.php >converter.txt

3) т.к. полный бэкап вещь часть непосильная для админки, лучше сразу делать его из консоли.
для этого сначала создать правило бэкапа в админке, учитывая рекомендации в начале поста, а потом запустить скрипт бэкапа из консоли:
php admin/backup_cron.php строковый_адишник_бэкап_правила
эта команда создаст zip-файл с бэкапом в папке /backup/

Оффлайн rsr-internet

  • RodSteR\RSR\R2S\@=
  • Местный лис
  • ***
  • Сообщений: 206
  • Авторитет: 5
  • Пол: Мужской
  • RodSteR\RSR\R2S\@=
    • Просмотр профиля
Re: Конвертор с 1251 на UTF версию
« Ответ #4 : 01 декабря 2010, 20:51:33 »
Ого большое спасибо, это очень нужная вещь!
Ручками это делать очень тяжело!

marka

  • Гость
Re: Конвертор с 1251 на UTF версию
« Ответ #5 : 02 декабря 2010, 04:22:51 »
Цитировать
Мы подготовили программу переноса старых движков (в 1251 кодировке) в новую генерацию (UTF-8).
Настоятельно рекомендуем всем пройти процедуру миграции, так как все автоматические обновления и т.п. будут работать только для UTF-версии.
Не пинайте сильно, ответьте на вопрос :)
В дальнейшем нужно будет поднимать сайты только на ЮТФ версии, я так понимаю?
Если планируешь и дальше работать с сантой?

Оффлайн bubek

  • Старый лис
  • *****
  • Сообщений: 615
  • Авторитет: 55
  • Пол: Мужской
    • Просмотр профиля
Re: Конвертор с 1251 на UTF версию
« Ответ #6 : 02 декабря 2010, 10:24:23 »
В дальнейшем нужно будет поднимать сайты только на ЮТФ версии, я так понимаю?
На версию 1251 больше не будут выходить обновления. Так что можете выбирать.

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 473
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Re: Конвертор с 1251 на UTF версию
« Ответ #7 : 02 декабря 2010, 10:45:27 »
Только на UTF. Но если Вам нравится работать с кодировкой 1251 просто ставьте при инсталляции галку "мои шаблоны в 1251". И она будет снаружи как старая санта, но обновляться будет нормально.

Оффлайн arteshuk

  • Разработчики
  • Ветеран
  • *****
  • Сообщений: 1 214
  • Авторитет: 130
  • Пол: Мужской
    • Просмотр профиля
Re: Конвертор с 1251 на UTF версию
« Ответ #8 : 06 декабря 2010, 10:05:29 »
Ну, кто-нить уже провернул подобное? :)

marka

  • Гость
Re: Конвертор с 1251 на UTF версию
« Ответ #9 : 06 декабря 2010, 12:55:05 »
провернул что ?
я вчера тупо поставил на два домена.
Как советовал Oslix с галочкой, что там ещё не смотрел...

Оффлайн arteshuk

  • Разработчики
  • Ветеран
  • *****
  • Сообщений: 1 214
  • Авторитет: 130
  • Пол: Мужской
    • Просмотр профиля
Re: Конвертор с 1251 на UTF версию
« Ответ #10 : 06 декабря 2010, 19:51:02 »
провернул что ?
я вчера тупо поставил на два домена.
Как советовал Oslix с галочкой, что там ещё не смотрел...

провернул обновление с 1251 до утф....

тупо ставить мы уже все научились :)

Marena

  • Гость
Re: Конвертор с 1251 на UTF версию
« Ответ #11 : 07 декабря 2010, 01:01:43 »
Попробовала. Ощутила себя тупой на 100%. Потому как не получилось от слова "совсем" =(

Оффлайн Oslix

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2 473
  • Авторитет: 346
  • Пол: Мужской
    • Просмотр профиля
Re: Конвертор с 1251 на UTF версию
« Ответ #12 : 07 декабря 2010, 14:23:06 »
В чем возникли проблемы?

Marena

  • Гость
Re: Конвертор с 1251 на UTF версию
« Ответ #13 : 07 декабря 2010, 17:08:50 »
Главным образом, с кривыми ручками. Я так и не научилась ставить виртуальную машину. Посему делала сразу на хостинге. Ставила ровнехонько по инструкции. За вычетом файла 1251enumfix.php, потому как нету каталога. Поставила в отдельную папку на том же хостинге, в отдельную базу. Инсталлятор начал выдавать кучу ошибок, причем список перманентно обновлялся. В итоге откатилась до предыдущей рабочей версии.

orcgod

  • Гость
Re: Конвертор с 1251 на UTF версию
« Ответ #14 : 21 декабря 2010, 00:14:31 »
Затыкается со следующим сообщением
incorrect 'catalog_item_props' query format: INSERT INTO `sf_catalog_item_props` VALUES ('40','0','catalog1','Pic1','1','pict','1','0','0','a:4:{s:9:\"pict_path\";s:0:\"\";s:6:\"source\";a:6:{s:5:\"isset\";b:1;s:5:\"width\";i:800;s:6:\"height\";i:600;s:9:\"water_add\";i:0;s:10:\"water_path\";s:0:\"\";s:14:\"water_position\";i:0;}s:3:\"big\";a:6:{s:5:\"isset\";b:1;s:5:\"width\";i:400;s:6:\"height\";i:300;s:9:\"water_add\";i:1;s:10:\"water_path\";s:0:\"\";s:14:\"water_position\";i:3;}s:5:\"small\";a:3:{s:5:\"isset\";b:1;s:5:\"width\";i:120;s:6:\"height\";i:0;}}','50')
что делать.. куда копать?