Миграция сайта с DLE на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Миграция сайта с DLE на 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1167
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    563
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    743
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Миграция сайта с DLE на 1С-Битрикс

DataLife Engine (DLE) — движок, который массово использовался для новостных сайтов и порталов в 2005–2015 годах. Многие такие ресурсы накопили за это время десятки тысяч публикаций, обширную базу пользователей и комментариев. Перенос на 1С-Битрикс требует работы с хорошо задокументированной, но специфической структурой базы данных DLE.

Структура базы данных DLE

DLE хранит данные в относительно простой схеме, что упрощает миграцию:

  • dle_post — основная таблица публикаций: id, title, short_story (анонс), full_story (полный текст), date, category, alt_name (URL-slug), autor
  • dle_post_extras — дополнительные поля и расширенные данные
  • dle_category — категории (иерархическая структура с parentid)
  • dle_comments — комментарии к публикациям
  • dle_users — пользователи: name, email, password (MD5 или sha256), user_group
  • dle_tags — теги публикаций (через dle_post_tags)
  • dle_files — прикреплённые файлы
  • dle_xfields — дополнительные поля (аналог Custom Fields)

Структура прозрачна и хорошо подходит для прямого SQL-экспорта.

Перенос публикаций в инфоблок

Публикации из dle_post переносятся в инфоблок «Новости» или «Статьи» Битрикс. Маппинг полей:

DLE (dle_post) Битрикс (инфоблок)
title NAME
short_story PREVIEW_TEXT (тип html)
full_story DETAIL_TEXT (тип html)
date ACTIVE_FROM
alt_name CODE
approve=1, category ACTIVE, IBLOCK_SECTION_ID

Категории создаются первыми как разделы инфоблока через CIBlockSection::Add(), с сохранением дерева (поле parentidIBLOCK_SECTION_ID родительского раздела).

Дополнительные поля (xfields)

DLE поддерживает расширяемые поля, настраиваемые через extra_fields в dle_post. Формат хранения: field1|value1||field2|value2. Для каждого дополнительного поля в Битрикс создаётся свойство инфоблока соответствующего типа, значения парсятся и загружаются отдельно.

// Парсинг extra_fields из DLE
$extraFields = [];
foreach (explode('||', $row['xfields']) as $pair) {
    [$key, $val] = explode('|', $pair, 2);
    $extraFields[$key] = $val;
}

Пользователи и комментарии

База пользователей DLE мигрирует в Битрикс через CUser::Add(). Проблема с паролями: DLE использует MD5 (устаревший) или sha256. Битрикс хранит пароли в собственном формате. Прямой перенос хешей невозможен — либо пользователям отправляется письмо для сброса пароля, либо реализуется временный шим-модуль аутентификации, который проверяет старый хеш до первой смены пароля.

Комментарии переносятся в модуль комментариев Битрикс или в сторонний модуль (Disqus). Если сайт использует Disqus уже на DLE — история комментариев сохраняется без потерь.

Медиа: фото и галереи

DLE хранит изображения в /uploads/posts/YYYY-MM/. Превью генерируются в /uploads/posts/YYYY-MM/<имя>_small.jpg. В Битрикс изображения загружаются через CFile::SaveFile():

$fileId = CFile::SaveFile([
    'name'       => $filename,
    'type'       => 'image/jpeg',
    'tmp_name'   => $sourcePath,
    'MODULE_ID'  => 'iblock',
], 'iblock');

Ссылки на изображения внутри текста full_story обновляются: старые пути вида /uploads/posts/2019-05/image.jpg заменяются новыми путями в /upload/iblock/.

SEO и URL

DLE использует ЧПУ вида /<category>/<alt_name>.html или /<id>-<alt_name>.html в зависимости от настроек. Все старые URL нужно перенаправить 301-редиректами на новые адреса в Битрикс. Мета-теги title/description из DLE хранятся в dle_post_extras — переносятся в SEO-свойства инфоблока.

Типичные сроки

Объём сайта Срок
до 5 000 публикаций, без дополнительных полей 2–4 недели
5 000–50 000 публикаций, xfields, пользователи 5–8 недель
50 000+ публикаций, галереи, комментарии 2–4 месяца

При переносе новостного портала с большим архивом особое внимание уделяется производительности: инфоблок с 50 000+ элементами требует настройки индексов и кэширования в Битрикс.