PluginProbe ʕ •ᴥ•ʔ
VikAppointments Services Booking Calendar / 1.2.21
VikAppointments Services Booking Calendar v1.2.21
1.2.21 1.2.20 trunk 1.2.17 1.2.18 1.2.19
vikappointments / libraries / adapter / toolbar / button / confirm.php
vikappointments / libraries / adapter / toolbar / button Last commit date
base.php 3 days ago confirm.php 3 days ago link.php 3 days ago separator.php 3 days ago standard.php 3 days ago
confirm.php
106 lines
1 <?php
2 /**
3 * @package VikWP - Libraries
4 * @subpackage adapter.toolbar
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2023 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 JLoader::import('adapter.toolbar.button.base');
15
16 /**
17 * Plugin confirm button toolbar handler.
18 *
19 * @since 10.0
20 */
21 class JToolbarButtonConfirm extends JToolbarButtonBase
22 {
23 /**
24 * @override
25 * The name/type of the button.
26 *
27 * @var string
28 */
29 protected $_name = 'Confirm';
30
31 /**
32 * @override
33 * The layout id for the rendering of the button.
34 *
35 * @var string
36 */
37 protected $_layoutId = 'html.toolbar.button.standard';
38
39 /**
40 * A list of button options.
41 *
42 * @var array
43 */
44 protected $options = array();
45
46 /**
47 * @override
48 * Method to setup the button.
49 *
50 * @param string $msg The confirmation message.
51 * @param string $icon The button icon.
52 * @param string $alt The button text.
53 * @param string $task The form task to launch.
54 * @param boolean $check If true, it is mandatory the selection of the rows.
55 *
56 * @return void
57 *
58 * @uses getCommand()
59 */
60 protected function setup($msg = '', $icon = '', $alt = '', $task = '', $check = false)
61 {
62 $this->options['icon'] = $icon;
63 $this->options['text'] = JText::translate($alt);
64 $this->options['class'] = strtolower(preg_replace("/[^a-zA-Z0-9_\-]+/", '-', $icon));
65 $this->options['id'] = 'jbutton-' . strtolower(preg_replace("/[^a-zA-Z0-9_\-]+/", '-', $task));
66 $this->options['action'] = $this->getCommand($msg, $task, $check);
67 }
68
69 /**
70 * @override
71 * Returns an array containing the data to use for the button rendering.
72 *
73 * @return array Display data array.
74 */
75 public function getDisplayData()
76 {
77 return $this->options;
78 }
79
80 /**
81 * Returns the javascript onclick event to launch.
82 *
83 * @param string $msg A confirmation message.
84 * @param string $task The form task to launch.
85 * @param boolean $check If true, it is mandatory the selection of the rows.
86 *
87 * @return string The onclick event.
88 */
89 protected function getCommand($msg, $task, $check = false)
90 {
91 $cmd = "Joomla.submitbutton('{$task}');";
92
93 if ($msg)
94 {
95 $cmd = "if (confirm('" . addslashes(JText::translate($msg)) . "')) { $cmd }";
96 }
97
98 if ($check)
99 {
100 $cmd = "if (Joomla.hasChecked()) { $cmd } else { alert('" . addslashes(JText::translate('PLEASE_MAKE_A_SELECTION')) . "'); }";
101 }
102
103 return $cmd;
104 }
105 }
106