Конвертер сайта с uCoz на DLE 9.7 + Bullet Energy

Автор: Tonich от 22-11-2012, 10:36

Сегодня я расскажу вам как я переносил сайт radioaktiv.ru с ucoz на DLE 9.7 + Bullet Energy Forum 1.3, а заодно и поделюсь с вами самописным скриптом для конвертации ucoz в dle. Когда укоз как хостинг-провайдер меня целиком и полностью достал, я решил перенести свой сайт на DLE, а в качестве форума был выбран Bullet Energy. Около месяца работ и результат был достигнут. Вдохновлённый результатом хочу поделиться своими наработками и возможными проблемами.
Конвертер сайта с uCoz на DLE 9.7 + Bullet Energy

Итак у вас есть сайт на укозе, но вам хотелось бы перенести его на платный хостинг(либо на бесплатный с нормальной поддержкой PHP и MySQL), что же для этого нужно:
1- Установить DLE и Bullet energy на локальный сервер(denwer), вопросы "как это сделать?" прошу не задавать, всё это обсуждалось на многих порталах, поэтому не вижу смысла повторять давно пройденный материал. Доменное имя сайта на denwer должно совпадать с тем, которое впоследствии вы будете использовать в сети. Это необходимо для правильной активации движка и в дальнейшем приведёт к меньшему количеству проблем.

2- Скачать файл бэкапа ucoz-сайта (Панель управления - Резервное копирование (backup)), файл можно получить только с 00:00 до 07:00, сохранять необходимо всё(файлы и базы данных)

3- Создаём в корне нового сайта папку ucoz и распаковываем в неё архив бэкапа.

4- Скачиваем convert.rar [221,23 Kb] (cкачиваний: 1062) и распаковываем архив с конвертером в корень нового сайта в папку convert, открываем файл /convert/config.php и настраиваем его под свой сайт.

5- Теперь необходимо немного подготовить бэкап. Перемещаем папки _bl, _nw, _pu, _ld, _fr из папки ucoz в uploads/post. Для правильного отображения картинок в каждой подпапке этих каталогов(0, 1, 2...) нужно создать папку thumbs и переместить в неё все картинки, имена которых начинаются с буквы "s", после чего необходимо переименовать эти картинки удалив букву "s" в начале имени(сделать это быстро можно с помощью группового переименования например в Total Commander). Также необходимо переместить всё содержимое папки ucoz/avatar в папку uploads/fotos.

6- Для конвертации смайлов необходимо скачать с укоза файл ваш_старый_сайт/index/35-23-0 и поместить его в папку convert.

7- Подготовка закончена приступим к самому главному. Сделайте бэкап базы данных DLE, а затем в адресной строке браузера набираем ваш_новый_сайт/convert/, откроется каталог в котором будут лежать файлы:
0_convert_users.php
1_convert_blog.php
2_convert_news.php
3_convert_publ.php
4_convert_load.php
5_convert_forum_category.php
6_convert_forum_themes.php
7_convert_forum_post.php
8_convert_comments.php

Запустите их строго соблюдая последовательность 0-8. Ни в коем случае не обновляйте страницу во время и по окончании работы скрипта. Обязательно дождитесь окончания работы, после чего в браузере нажимайте кнопку назад, чтобы вернуться в каталог.
В случае если что-то пошло не так, лучше начать конвертацию заново.

8- После успешного конвертирования всего, что было на сайте запустите файл smiles.php, выполните действия которые необходимы для конвертации смайлов. Чтобы не скачивать смайлы вручную, сохраните страницу из баузера и импортируйте её в менеджер закачек(например download master)

9- Когда всё прошло нормально сделайте бэкап базы данных, удалите из корня сайта папки ucoz и convert, скопируйте все файлы на хостинг, настройте файл /engine/data/dbconfig.php для подключения к базе данных на хостинге.

10- Зайдите в панель управления DLE, нажмите список всех разделов - bullet energy - обслуживание и запустите подряд все доступные опции. После чего удалите кеш форума и сайта. Всё сайт готов!

Опережая некоторые вопросы скажу, что скрипт может конвертировать не всё. Чаще всего остановка скрипта связана с кодировками, а именно если в тексте материалов присутствуют спецсимволы UTF-8. Если же заменить спецсимволы на их HTML- аналоги, то всё конвертируется нормально. Аналоги спецсимволов можно посмотреть в файле convert/замена спецсимволов.htm. Просьба не задавать вопросов не связанных с работой скрипта конвертера, идеи и предложения рассмотрю в личных сообщениях.
Удачи в конвертировании.

Скачать скрипт convert.rar [221,23 Kb] (cкачиваний: 1062)

Теги: ucoz, dle, конвертор

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
  • igoora

  • 6 декабря 2012 22:12
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
При замене символа " на " воопше не конвертируется пишет
Лог ковертирования
Конвертация файлов завершена!
Что делать? Возможно проблема в том что я в блокноте заменяю и когда сохраняю пишет что кодировка UTF-8.

--------------------
  • Tonich

  • 7 декабря 2012 10:34
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Кодировка у бэкапа ucoz и должна быть UTF-8, возможно dom запись добавляется, редактируйте noterpad ++ или ещё чем нибудь.
  • igoora

  • 7 декабря 2012 21:27
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
Как перенести ЧПУ на новый сайт и почему не переносятся ссылки для скачивания?!!!
П.С. На почту еще вопрос!!!

Проблему с ЧПУ решил осталось узнать как перенести ссылки для скачивания!!!

--------------------
  • Tonich

  • 7 декабря 2012 22:13
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
igoora, ссылки на скачивание переносятся, в укозе две ссылки, а именно скачивание с сервера и скачивание с удалённого сервера...Если у вас для ссылок используются дополнительные поля, тогда надо править скрипт

А это уже адаптация под определённый ресурс smile

Из комментариев в файлах всё можно понять
  • igoora

  • 7 декабря 2012 23:11
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
Если я скачал DLE 9.7 NULLED то для работы сайта с хостинга нужно лицензированую DLE 9.7? И тоже самое с форумом Bullet-Energy-1.3. Или можно так заливать?

--------------------
  • Tonich

  • 8 декабря 2012 09:21
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
igoora, DLE 9.7 NULLED наверное можно, просто потом будет больше проблем с обновлением , ну и как там с безопасностью... Bullet-Energy-1.3 - бесплатен, лицензия нужна только чтобы снять копирайты
  • igoora

  • 8 декабря 2012 17:15
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
Еще вопрос как скопировать полное описание файла на главную страницу в краткое описани? И почему не видно ссылки на скачивание если при редактировании новости ссылка есть!! Вот скрины [url=http://market-apk.com/novyj_tochechnyj_risunok.bmp]1[/url] [url=http://market-apk.com/novyj_tochechnyj_risunok1.bmp]2[/url]

--------------------
  • Tonich

  • 8 декабря 2012 23:33
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Цитата: igoora
Еще вопрос как скопировать полное описание файла на главную страницу в краткое описани? И почему не видно ссылки на скачивание если при редактировании новости ссылка есть!! Вот скрины [url=http://market-apk.com/novyj_tochechnyj_risunok.bmp]1[/url] [url=http://market-apk.com/novyj_tochechnyj_risunok1.bmp]2[/url]

Дело вот в чём, скрипт я писал для своего сайта, и Div id=downarod у меня в стилях прописан как кнопка загрузки... Исправь скрипт под себя...Замени в скрипте строку:
$flink = ("<a href=''$arr[22]''><div id=''downarod'' title=''Скачать удалённо $arr[23]''></div></a>");

Например на:
$flink = ("<a href=''$arr[22]''>Скачать удалённо $arr[23]</a>");


А скопировать в краткое описание можно изменив в запросе:
$query = "INSERT IGNORE INTO {$prefix}_post (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `approve`, `fixed`, `allow_br`, `symbol`, `tags`, `metatitle`, `topic_id`) VALUES
('0', '$arr[26]', '$dat_e', '', '$arr[32]<br>$link $flink', '', '$arr[15]', '', '', '4', 'load_{$arr[0]}', '$arr[8]', '1', '1', '1', '0', '1', '', '0', '0', '0');";

одну строку:
$query = "INSERT IGNORE INTO {$prefix}_post (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `approve`, `fixed`, `allow_br`, `symbol`, `tags`, `metatitle`, `topic_id`) VALUES
('0', '$arr[26]', '$dat_e', '$arr[32]<br>$link $flink', '$arr[32]<br>$link $flink', '', '$arr[15]', '', '', '4', 'load_{$arr[0]}', '$arr[8]', '1', '1', '1', '0', '1', '', '0', '0', '0');";
  • igoora

  • 9 декабря 2012 23:52
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
Можите дать скрипт с вашего сайта для "кнопка загрузки..." а то оно ссылку на скачивание в описание кидает а ето плохо)

--------------------
  • igoora

  • 10 декабря 2012 00:01
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
можите дать скрипт на кнопку загрузки и еще можно ли както ограничить длину краткого описания?

--------------------
  • Tonich

  • 10 декабря 2012 08:07
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Цитата: igoora
Можите дать скрипт с вашего сайта для "кнопка загрузки..." а то оно ссылку на скачивание в описание кидает а ето плохо)


Так я этим скриптом и конвертировал, ограничить краткое описание можно, но надо смотреть как...
P.S. Что значит на кнопку загрузки?
  • igoora

  • 10 декабря 2012 13:46
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
ну чтобы ссылка на скачивание не была в описании к файлу а отдельнов своем поле. например есть функция "Дополнительные поля новостей" если там создать поле то можно както ссылку конвертировать сразу в ето поле

--------------------
  • Tonich

  • 10 декабря 2012 18:18
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Сделать можно всё, но зачем, по умолчанию в dle нет доп полей, их можно создать путём некоторых манипуляций. Т.Е. скрипт-конвертер будет нуждаться в настройке движка, а это как-то некультурно что-ли. По умолчанию скрипт добавляет файлы только в полное описание, а делает это он только потому, что на моём укозовском сайте не было краткого описания. Если нужно что-то конкретное(под твой сайт), то редактируй код скрипта, благо там можно разобраться. А генерировать доп-поля опираясь на укоз не хочется(заморочек много). Ссылки же есть? - есть. А выводить их можно стилями...

Да, если не хочешь, чтобы ссылки выводились в краткой новости, то замени строку:
$query = "INSERT IGNORE INTO {$prefix}_post (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `approve`, `fixed`, `allow_br`, `symbol`, `tags`, `metatitle`, `topic_id`) VALUES
('0', '$arr[26]', '$dat_e', '', '$arr[32]<br>$link $flink', '', '$arr[15]', '', '', '4', 'load_{$arr[0]}', '$arr[8]', '1', '1', '1', '0', '1', '', '0', '0', '0');";

не на то, что в предыдущем комменте, а на:
$query = "INSERT IGNORE INTO {$prefix}_post (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `approve`, `fixed`, `allow_br`, `symbol`, `tags`, `metatitle`, `topic_id`) VALUES
('0', '$arr[26]', '$dat_e', '$arr[32]', '$arr[32]<br>$link $flink', '', '$arr[15]', '', '', '4', 'load_{$arr[0]}', '$arr[8]', '1', '1', '1', '0', '1', '', '0', '0', '0');";


$link и $flink это и есть ссылки на скачивание

P.S. Все доп поля укоза можно вывести
P.P.S. У тебя на козе есть предварительное описание?
  • igoora

  • 10 декабря 2012 19:57
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
Да есть с описанием я уже разобрался. Пока вопросов нету...

--------------------
  • Tonich

  • 10 декабря 2012 20:07
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
igoora, описание в отдельный arr[] загоняется, его можно легко достать
  • igoora

  • 10 декабря 2012 21:12
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
да я уже сделал)

--------------------
  • igoora

  • 11 декабря 2012 01:18
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
как добавить такой блок как у Вас "Новое в блоге" и например топ 10 скачиваных файлов?

--------------------
  • Tonich

  • 11 декабря 2012 06:50
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
igoora, загугли blockpro для dle.
p.s.
Просьба не задавать вопросов не связанных с работой скрипта конвертера, идеи и предложения рассмотрю в личных сообщениях.
  • igoora

  • 12 декабря 2012 20:22
  • Группа: Посетители
  • ICQ:
  • Регистрация: 6.12.2012
  • Статус: Пользователь offline
  • Комментариев: 11
  • Публикаций: 0
^
сПАСИБО оч помогли!

--------------------
  • afrkiev

  • 28 февраля 2013 22:50
  • Группа: Посетители
  • ICQ:
  • Регистрация: 28.02.2013
  • Статус: Пользователь offline
  • Комментариев: 1
  • Публикаций: 0
^
Подскажите такой вопрос: при импорте модуля news импортируется только 90 новостей из более 1000 в базе. В чем может быть проблема? С остальным все ок
  • Tonich

  • 1 марта 2013 14:34
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
afrkiev, Добавьте в 2_convert_news.php после
$dat_e = date('Y-m-d G:i:s' ,$arr[8]);

строку
echo join("<br>", $arr);

И посмотрите на каком отрывке текста скрипт останавливается, далее необходимо залезть в файл бэкапа, проверить нет ли в этом месте спецсимволов, и если есть заменить их на html аналоги...
Сейчас собираюсь с силами модернизировать скрипт для нормальной смены кодировок.

afrkiev, замените строку

$bufer = iconv("UTF-8", "Windows-1251", "$bufer");

На этот код, тогда не придётся искать спецсимволы
//смена кодировки	


function UTF82entities($str,$charset='CP1251'){ // by SiMM
  static $table = array();
  $p = &$table[$charset];
  if (empty($p))
    for ($i = 0x100; $i--;)
      if ('' !== $c = iconv($charset,'UTF-16BE//IGNORE',chr($i)))
        $p[$c] = chr($i);
  $str = iconv('UTF-8','UTF-16BE',$str);
  $ret = '';
  $len = strlen($str);
  for ($i = 0; $i<$len; $i += 2)
    if (isset($p[$s = substr($str,$i,2)])) $ret .= $p[$s];
    else $ret .= '&#'.hexdec(bin2hex($s)).';';
  return $ret;
}

$bufer = UTF82entities("$bufer");
  • sergey

  • 5 апреля 2013 12:46
  • Группа: Посетители
  • ICQ:
  • Регистрация: 5.04.2013
  • Статус: Пользователь offline
  • Комментариев: 3
  • Публикаций: 0
^
При конвертации новостей выдаёт ошибку

MySQL вернула ошибку

Column count doesn't match value count at row 1

Вероятно, текст содержит недопустимые символы, в частности, кавычки
  • Tonich

  • 5 апреля 2013 17:17
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Цитата: sergey
При конвертации новостей выдаёт ошибку

MySQL вернула ошибку

Column count doesn't match value count at row 1

Вероятно, текст содержит недопустимые символы, в частности, кавычки


количество перечисленных полей не соответствует количеству перечисленных значений, какая версия DLE? У вас база не стандартная для 9.7. Могу платно настроить и конвертировать...
  • sergey

  • 5 апреля 2013 18:14
  • Группа: Посетители
  • ICQ:
  • Регистрация: 5.04.2013
  • Статус: Пользователь offline
  • Комментариев: 3
  • Публикаций: 0
^
Пробовал на 9.8, 9.0, 8.5 конвертировать не получалось.
Цена вопроса если платно?
  • Tonich

  • 5 апреля 2013 18:39
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
Цена сугубо индивидуальная, зависит от количества модулей, количества материалов, необходимости переносить дизайн и т.д. Дальнейшее обсуждение в ЛС. А вообще, если сайт качественный, то около 100$
  • sergey

  • 5 апреля 2013 18:53
  • Группа: Посетители
  • ICQ:
  • Регистрация: 5.04.2013
  • Статус: Пользователь offline
  • Комментариев: 3
  • Публикаций: 0
^
Нужно только новости и всё.
  • xkasab

  • 26 июля 2013 18:19
  • Группа: Посетители
  • ICQ:
  • Регистрация: 26.07.2013
  • Статус: Пользователь offline
  • Комментариев: 1
  • Публикаций: 0
^
Нормальное ли это поведение скрипта?
  • Tonich

  • 26 июля 2013 18:49
  • Группа: Администраторы
  • ICQ:
  • Регистрация: 18.10.2012
  • Статус: Пользователь offline
  • Комментариев: 160
  • Публикаций: 320
^
xkasab, Нет это не нормальное поведение скрипта, насколько я знаю укоз сейчас ещё и narod.ru, вы случайно не от туда? Если нужна помощь добро пожаловать в ЛС, по этим данным ошибку не распознать
  • Группа: Посетители
  • ICQ:
  • Регистрация: 31.12.2013
  • Статус: Пользователь offline
  • Комментариев: 1
  • Публикаций: 0
^
Все никак не могу решить задачу с ЧПУ
  • Группа: Посетители
  • ICQ:
  • Регистрация: 4.12.2013
  • Статус: Пользователь offline
  • Комментариев: 1
  • Публикаций: 0
^
Сделал все согласно выше указанной инструкции, Но при запуске в адресной строке такие ошибки каждого файла:
"Сервер базы данных сейчас недоступен. Повторите попытку позже."
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.