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

Тема в разделе "Мегафлуд", создана пользователем Slayter, 18 окт 2008.

Статус темы:
Закрыта.
  1. Slayter

    Slayter

    Регистр.:
    8 апр 2006
    Сообщения:
    232
    Симпатии:
    52
    Lyrics по .ru



    Мне было поручено разработать новую версию проекта http://perevod.pesenki.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. скриншот формы добавления можно посмотреть здесь: http://weblancer.net/users/iSlayter/portfolio/409514.html

    pps. в пнд проект будет выложен в сети на основном домене (сейчас тоже висит, но на промежуточном, на к-м проводилась разработка), ссылку выложу, чтобы смогли посмотреть.
     
Статус темы:
Закрыта.