- Автор темы
- #1
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. в пнд проект будет выложен в сети на основном домене (сейчас тоже висит, но на промежуточном, на к-м проводилась разработка), ссылку выложу, чтобы смогли посмотреть.
Мне было поручено разработать новую версию проекта Для просмотра ссылки Войди
Существующий по указанному адресу проект представлял из просто ужас: был разработан на самописном движке (без 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. в пнд проект будет выложен в сети на основном домене (сейчас тоже висит, но на промежуточном, на к-м проводилась разработка), ссылку выложу, чтобы смогли посмотреть.