История создания одного сайта на движке DLE

Статус
В этой теме нельзя размещать новые ответы.

Slayter

Гуру форума
Регистрация
8 Апр 2006
Сообщения
231
Реакции
55
Lyrics по .ru



Мне было поручено разработать новую версию проекта Для просмотра ссылки Войди или Зарегистрируйся на основе движка "DLE" (DataLife Engine).

Существующий по указанному адресу проект представлял из просто ужас: был разработан на самописном движке (без backend'a), который работал на файлах. Тот сайт вели несколько человек, поэтому в данных, опубликованных на нём, была кромешная путаница - где забыли автора указать, где указывали но в разных вариациях одного и того же человека.

Вообщем, что было сделано:


1. ИМОРТЁР.

1.1. Написан импортёр для уже существующего сайта в формат БД CMS DLE.

1.2. С помощью магии регулярных выражений отпарсил непосредственно текстовое содержимое из которого повырывал авторов, закопанных в текст.

1.3. Прогнал по куче условий авторов вырванных из текстового поля и, сделав в этих условиях определённые логически выводы, обновил информацию в базе данных.


2. ПРИКРУТКА ДИЗАЙНА.

2.1. Для того, чтобы прикрутить уже существующий дизайн к DLE пришлось править довольно большое количество файлов (в т.ч. и непосредственно скриптов). Так что самое забавное - в DLE код совершенно не структурирован. Шаблонизатор представляет из себя полную жопу, которая при _каждом_ открытии страничк парсит _КУЧЕЙ_ регулярных выражений шаблон. Причём, для короткой версии поста и полной набор регулярок один и тот же, но, он дублируется в этих файлах. Про стиль написания я вообще промолчу (его нет, авторы движка не придерживаются никаких стандартов кодирования. Пишут под настроение!?). Местами HTML вообще _ВНАГЛУЮ_ засунут глубоко в скрипты (чего стоит только один рейтинг или генерация xFields). Вообще огромное количество притензий к этому движку. Но дизайн прикрутил. В точности скопировал оригинальную версию сайта. Кроме того все стандартные элементы оформления движка постарался переделать. От формы восстановления пароля до системы личных сообщений.

2.3. В оригинальной версии использовался вывод переводов по "популярности". Реализовал модуль (крайне примитивная штука).

2.4. Необходимо было создать дополнительные поля для добавления новостей и импортировать команду переводчиков (вся инф-я о к-й так же хранилась в текстовых файлах). Сказано - сделано.

2.5. У-у-у. А краткое содержание нам вовсе необязательно... да и заголовок тоже (он генерируется на основе введённых в текстовые поля исполнителя и названия композиции). Что же делать? А обязательно ещё форму для добавления создать максимально удобную (которая представлена на скрнишоте). Ответ прост - переписать к херам всё что отвечает за добавление. Сказано - сделано. Получилось хорошо, имхо.

2.6. О-ла-ла, да как я посмотрю если в DLE не ввести содержимого для какого-либо доп.поля то случается задница. Кстати способ хранения доп.полей в DLE вообще жуть какой отвратительный - в базе все текстовые поля хранятся в одном поле типа TEXT в формате "name_of_xfield|content_of_xfield||name_of_xfield2|content_of_xfield2" - понимающие люди тут же представят к чему приведёт explode по || для доп.поля без содержимого (т.е. "name_of_xfield|||name_of_xfield2|content_of_xfield2") - в значении ничего не окажется, но именем следующего доп. поля уже будет не name_of_xfield2 а |name_of_xfield2. Короче жопа. Пришлось и это переделывать.

2.7. Тут ещё всплыла задница - там какая-то "защита" есть от спама. При включении к-й (по-умолчанию включена в админке) при добавлении вываливается ошибка "ANTISPAM: User ID not valid". Погуглил - ошибка распространённая. Временно просто отключил эту "защиту".

Резюмируя: автор DLE конченный дебил с полностью отсутствующим мозгом. Но его бизнес успешен, за это ему, безусловно, респект ;-)

Время на разработку: 2 недели (так долго из-за того, что пришлось возиться с неструктурированным контентом а так же вносить изменения в программную составляющую DLE).

ps. скриншот формы добавления можно посмотреть здесь: Для просмотра ссылки Войди или Зарегистрируйся

pps. в пнд проект будет выложен в сети на основном домене (сейчас тоже висит, но на промежуточном, на к-м проводилась разработка), ссылку выложу, чтобы смогли посмотреть.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху