Dleshka.org
Авторизация

Скачать Dle Ajax. Вступ

+14
TipTop 3-09-2009 Разное 0 комментариев
Здравствуйте, думаю многие из вас хотели бы написать приложение для 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
Пишем:

<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 запросы...

Спасибо за внимание...
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
Авторизация