ajax.php
2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
/**
* @package Regular Labs Library
* @version 18.2.10140
*
* @author Peter van Westen <info@regularlabs.com>
* @link http://www.regularlabs.com
* @copyright Copyright © 2018 Regular Labs All Rights Reserved
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
defined('_JEXEC') or die;
if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
return;
}
require_once JPATH_LIBRARIES . '/regularlabs/autoload.php';
use RegularLabs\Library\Document as RL_Document;
class JFormFieldRL_Ajax extends \RegularLabs\Library\Field
{
public $type = 'Ajax';
protected function getInput()
{
$this->params = $this->element->attributes();
JHtml::_('jquery.framework');
RL_Document::script('regularlabs/script.min.js');
$loading = "jQuery(\"#" . $this->id . "\").find(\"span\").attr(\"class\", \"icon-refresh icon-spin\");";
$success = "jQuery(\"#" . $this->id . "\").find(\"span\").attr(\"class\", \"icon-ok\");"
. "if(data){jQuery(\"#message_" . $this->id . "\").addClass(\"alert alert-success alert-inline\").html(data);}";
$error = "jQuery(\"#" . $this->id . "\").find(\"span\").attr(\"class\", \"icon-warning\");"
. "if(data){jQuery(\"#message_" . $this->id . "\").addClass(\"alert alert-danger alert-inline\").html(data);}";
$script = "function loadAjax" . $this->id . "() {"
. $loading
. "jQuery(\"#message_" . $this->id . "\").attr(\"class\", \"\").html(\"\");"
. "RegularLabsScripts.loadajax("
. "'" . addslashes($this->get('url')) . "',"
. "'var data = data.trim();"
. "if(data == \"\" || data.substring(0,1) == \"+\") {"
. "data = data.replace(/^\\\\+/, \\'\\');"
. $success
. "} else {"
. $error
. "}',"
. "'" . $error . "'"
. ");"
. "}";
JFactory::getDocument()->addScriptDeclaration($script);
return
'<button id="' . $this->id . '" class="' . $this->get('class', 'btn') . '" title="' . JText::_($this->get('description')) . '" onclick="loadAjax' . $this->id . '();return false;">'
. '<span class="' . $this->get('icon', '') . '"></span> '
. JText::_($this->get('text', $this->get('label')))
. '</button>'
. '<div id="message_' . $this->id . '"></div>';
}
}