Здравствуйте, думаю многие из вас хотели бы написать приложение для DLE с использованием 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
Пишем:
<?php
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
$tpl->load_template('mod.tpl');
$tpl->compile('content');
$tpl->clear();
?>
2. Создаем файл engine/ajax/mod.php
Пишем:
<?php
@session_start();
@error_reporting( E_ALL ^ E_NOTICE );
@ini_set( 'display_errors', true );
@ini_set( 'html_errors', false );
@ini_set( 'error_reporting', E_ALL ^ E_NOTICE );
define( 'DATALIFEENGINE', true );
define( 'ROOT_DIR', '../..' );
define( 'ENGINE_DIR', '..' );
include ENGINE_DIR . '/data/config.php';
@header("Content-type: text/css; charset=".$config['charset']);
if( $config['http_home_url'] == "" ) {
$config['http_home_url'] = explode( "engine/ajax/mod.php", $_SERVER['PHP_SELF'] );
$config['http_home_url'] = reset( $config['http_home_url'] );
$config['http_home_url'] = "http://" . $_SERVER['HTTP_HOST'] . $config['http_home_url'];
}
echo $_POST['name'];
?>
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
Найти:
switch ($do) {
После вставить:
case "mod" :
include ENGINE_DIR.'/modules/mod.php';
break;
5. Открываем engine/ajax/js_edit.js
В самом конце вставляем:
function domod()
{
var ajax = new dle_ajax();
var name = ajax.encodeVAR( document.getElementById('dle-mod-form').name.value );
ajax.onShow ('');
var varsString = "name=" + name;
ajax.requestFile = dle_root + "engine/ajax/mod.php";
ajax.method = 'POST';
ajax.element = 'dle-mod-results';
ajax.sendAJAX(varsString);
return false;
};
и теперь по адресу site.ru/?do=mod вы можете протестировать свой модуль, в следующей части я научу вас передавать несколько полей + делать мощные ajax запросы…

