Скачать Dle Ajax. Вступ
Здравствуйте, думаю многие из вас хотели бы написать приложение для DataLife Engine с использованием AJAX(без перезагрузки страниц), так давайте разберем пару функций и посмотрим пример маленького модуля...
Функции и переменные:
1. onshow (''); - функция которая показывает окно загрузки, вместо него можно и свое что-то сделать
2. encodeVAR - ну функция касающаяся кодировки
3. varsString - можно оставлять пустым (используется для отправки данных в скрипт)
4. setVar - тоже отправляет данные но лучше использовать эту функцию, а ту оставить пустой
5. requestFile - файл, который вызывает скрипт
6. method - метод отправки (POST, GET)
7. element - результат (отправляет результат в поле где id= значению поля)
8. onCompletion - можете использовать когда вы хотите чтобы после загрузки выполнялся еще одна функция
9. sendAJAX - переменные которые передаем
10. execute - оставляет все что до этого было в тегах с id который указался в element
11. add_html - не знаю), но юзаю
Пример мода:
Сейчас мы сделаем модуль который при нажатии в форме сабмит показывает данные которые отправились
1. Создаем engine/modules/mod.php
Пишем:
2. Создаем файл engine/ajax/mod.php
Пишем:
3. Создаем шаблон templates/шаб/mod.tpl
Пишем:
4. Открываем engine/engine.php
Найти:
После вставить:
5. Открываем engine/ajax/js_edit.js
В самом конце вставляем:
и теперь по адресу http://site.ru/?do=mod вы можете протестировать свой модуль, в следующей части я научу вас передавать несколько полей + делать мощные ajax запросы...
Спасибо за внимание...
Функции и переменные:
1. onshow (''); - функция которая показывает окно загрузки, вместо него можно и свое что-то сделать
2. encodeVAR - ну функция касающаяся кодировки
3. varsString - можно оставлять пустым (используется для отправки данных в скрипт)
4. setVar - тоже отправляет данные но лучше использовать эту функцию, а ту оставить пустой
5. requestFile - файл, который вызывает скрипт
6. method - метод отправки (POST, GET)
7. element - результат (отправляет результат в поле где id= значению поля)
8. onCompletion - можете использовать когда вы хотите чтобы после загрузки выполнялся еще одна функция
9. sendAJAX - переменные которые передаем
10. execute - оставляет все что до этого было в тегах с id который указался в element
11. add_html - не знаю), но юзаю
Пример мода:
Сейчас мы сделаем модуль который при нажатии в форме сабмит показывает данные которые отправились
1. Создаем engine/modules/mod.php
Пишем:
<font color=#FF0000><font color=#FF0000><?</font>php</font>
<font color=#0000FF>if</font>(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
<font color=#660000>$tpl</font>->load_template('mod.tpl');
<font color=#660000>$tpl</font>->compile('content');
<font color=#660000>$tpl</font>->clear();
<font color=#FF0000>?></font>
2. Создаем файл engine/ajax/mod.php
Пишем:
<font color=#FF0000><font color=#FF0000><?</font>php</font>
@session_start();
@error_reporting( E_ALL ^ E_NOTICE );
@ini_set( 'display_errors', <font color=#0000FF><font color=#0000FF>true</font></font> );
@ini_set( 'html_errors', <font color=#0000FF><font color=#0000FF>false</font></font> );
@ini_set( 'error_reporting', E_ALL ^ E_NOTICE );
define( 'DATALIFEENGINE', <font color=#0000FF><font color=#0000FF>true</font></font> );
define( 'ROOT_DIR', '../..' );
define( 'ENGINE_DIR', '..' );
<font color=#0000FF>include</font> ENGINE_DIR . '/data/config.php';
@header("Content-type: text/css; charset=".<font color=#660000>$config</font>['charset']);
<font color=#0000FF>if</font>( <font color=#660000>$config</font>['http_home_url']<font color=#8000FF> == </font>"" ) {
<font color=#660000>$config</font>['http_home_url']<font color=#8000FF> = </font>explode( "engine/ajax/mod.php", <font color=#660000>$_SERVER</font>['PHP_SELF'] );
<font color=#660000>$config</font>['http_home_url']<font color=#8000FF> = </font>reset( <font color=#660000>$config</font>['http_home_url'] );
<font color=#660000>$config</font>['http_home_url']<font color=#8000FF> = </font>"http://" . <font color=#660000>$_SERVER</font>['HTTP_HOST'] . <font color=#660000>$config</font>['http_home_url'];
}
<font color=#0000FF>echo</font> <font color=#660000>$_POST</font>['name'];
<font color=#FF0000>?></font>
3. Создаем шаблон templates/шаб/mod.tpl
Пишем:
<h2>Модуль от SOFTER</h2>
<br />
<form method="post" name="dle-mod-form" id="dle-mod-form" action="">
<input type="text" id="name" name="name" value="Введите имя">
<br /><input type="button" onclick="domod();" value="Отправить">
</form>
<br />
<div id="dle-mod-results"></div>
4. Открываем engine/engine.php
Найти:
<font color=#0000FF>switch</font> (<font color=#660000>$do</font>) {
После вставить:
<font color=#0000FF>case</font> "mod" :
<font color=#0000FF>include</font> ENGINE_DIR.'/modules/mod.php';
break;
5. Открываем engine/ajax/js_edit.js
В самом конце вставляем:
<font color=#0000FF>function</font> domod()
{
<font color=#0000FF>var</font> ajax<font color=#8000FF> = </font>new dle_ajax();
<font color=#0000FF>var</font> name<font color=#8000FF> = </font>ajax.encodeVAR( document.getElementById('dle-mod-form').name.value );
ajax.onShow ('');
<font color=#0000FF>var</font> varsString<font color=#8000FF> = </font>"name=" + name;
ajax.requestFile<font color=#8000FF> = </font>dle_root + "engine/ajax/mod.php";
ajax.method<font color=#8000FF> = </font>'POST';
ajax.element<font color=#8000FF> = </font>'dle-mod-results';
ajax.sendAJAX(varsString);
<font color=#0000FF>return</font> <font color=#0000FF><font color=#0000FF>false</font></font>;
};
и теперь по адресу http://site.ru/?do=mod вы можете протестировать свой модуль, в следующей части я научу вас передавать несколько полей + делать мощные ajax запросы...
Спасибо за внимание...