Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Модули Как правильно подключить свой модуль?

Как правильно подключить свой модуль?


     06.05.2015    Модули    934

вопрос
Доброго времени суток.
Написал модуль для личных нужд. Задача модуля: по указанному url в форме "Добавление новости" по клику на кнопку забирать картинки, оформлять их bb-кодом и подставлять в текстовое поле "Полное описание".
Ознакомившись с документацией по DLE, проделал следующее:
1) Поместил файл модуля mymodule.php по адресу /engine/modules/mymodule/
2) В файл движка addnews.php добавил поле ввода и кнопку, присвоил им id. Выше добавил jquery-скрипт, который по клику в созданную кнопку забирает url из строки ввода и передает его в файл mymodule.php, оттуда получает ответ и выводить его в #full_story.

В целом, модуль полностью выполняет свою задачу, но, очевидно, подключен не корректно: если добавить в файл mymodule.php рекомендованную в DLE запись
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

то этот самый Hacking attempt! и выводится. Если эту проверку убрать - работает без проблем. Соответственно, вопрос: как подключить корректно?

И второй вопрос: написанный jquery-скрипт обращается к моей кнопке по id, но по клику на нее, помимо моего скрипта, почему-то срабатывает скрипт добавления новости. Как обойти подобное дублирование?

p.s. на php пишу впервые ввиду случайной необходимости

Ответил: vitnet


1.0 При обращении к .php файлу через ajax данное условие не нужно использовать, либо если и делать то делать это с умом! (В вашем случае просто удалите)
if(!defined('DATALIFEENGINE')){die("Hacking attempt!");}
2.0 Добавьте после
function (data) {
   $('#full_story').html(data);
});

это
return false;
Отредактировал 6-05-2015, 16:36 - ПафНутиЙ
Причина: Дополнил ответ комментарием от Gameer

Комментарии пользователей (5)

vitnet
218

2171 | 930

vitnet - 6 мая 2015 14:28 - Эксперт

***Комментарий удален***

Heimdel
3

Heimdel - 6 мая 2015 14:48 - Юзер

1) Спасибо!
2) Код JS:
<script type="text/javascript">
        $(document).ready(function() {
            $("#myPushButton").click(function () {
                var url = $("#myLineEdit").val();
                $.post("http://test.ru/engine/modules/mymodule/mymodule.php",
                    {
                        url: url
                    },
                    function (data) {
                        $('#full_story').html(data);
                    });
            });
        });
</script>

По клику в кнопку с id="myPushButton" обращаюсь к строке с id="myLineEdit", беру содержимое и передаю его в файл mymodule.php. Полученный результат вывожу в текстовое поле движка с id="full_story". Параллельно по клику пытается добавиться новость (идет уведомление о не заполненном тайтле)

Gameer
225

1120 | 395

Gameer - 6 мая 2015 15:20 - Эксперт

***Комментарий удален***

Истина в противоречии.​

Heimdel
3

Heimdel - 6 мая 2015 15:28 - Юзер

Спасибо! Теперь всё работает идеально

ПафНутиЙ
1065

3394 | 2433

ПафНутиЙ - 6 мая 2015 16:36 - Админ

Добавил комментарии в ответ.

Каков вопрос - таков и ответ. Просто помните об этом.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы