EditorButtonHelper.php
2.11 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?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
*/
namespace RegularLabs\Library;
defined('_JEXEC') or die;
use JHtml;
use JObject;
use JText;
/**
* Class EditorButtonHelper
* @package RegularLabs\Library
*/
class EditorButtonHelper
{
var $_name = '';
var $params = null;
public function __construct($name, &$params)
{
$this->_name = $name;
$this->params = $params;
Language::load('plg_editors-xtd_' . $name);
JHtml::_('jquery.framework');
Document::script('regularlabs/script.min.js');
Document::style('regularlabs/style.min.css');
}
public function getButtonText()
{
$text_ini = strtoupper(str_replace(' ', '_', $this->params->button_text));
$text = JText::_($text_ini);
if ($text == $text_ini)
{
$text = JText::_($this->params->button_text);
}
return trim($text);
}
public function getIcon($icon = '')
{
$icon = $icon ?: $this->_name;
return 'reglab icon-' . $icon;
}
public function renderPopupButton($editor_name, $width = 0, $height = 0)
{
$button = new JObject;
$button->modal = true;
$button->class = 'btn';
$button->link = $this->getPopupLink($editor_name);
$button->text = $this->getButtonText();
$button->name = $this->getIcon();
$button->options = $this->getPopupOptions($width, $height);
return $button;
}
public function getPopupLink($editor_name)
{
return 'index.php?rl_qp=1'
. '&folder=plugins.editors-xtd.' . $this->_name
. '&file=popup.php'
. '&name=' . $editor_name;
}
public function getPopupOptions($width = 0, $height = 0)
{
$width = $width ?: 1600;
$height = $height ?: 1200;
$width = 'Math.min(window.getSize().x-100, ' . $width . ')';
$height = 'Math.min(window.getSize().y-100, ' . $height . ')';
return '{'
. 'handler: \'iframe\','
. 'size: {'
. 'x:' . $width . ','
. 'y:' . $height
. '}'
. '}';
}
}