Миграция сайта с 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(), с сохранением дерева (поле parentid → IBLOCK_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+ элементами требует настройки индексов и кэширования в Битрикс.







