PluginProbe
MaxButtons – Create buttons / 6.24
MaxButtons – Create buttons v6.24
6.23 6.24 6.25 6.26 6.26.1 6.27 6.28 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7.0 7.1 7.1.1 7.1.2 7.1.3 7.10 7.11 7.13 7.13.1 7.13.2 7.13.3 All 100 releases
maxbuttons / blocks / icon.php

icon.php in MaxButtons – Create buttons 6.24, at blocks/icon.php

176 lines 5.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace MaxButtons;
3 defined('ABSPATH') or die('No direct access permitted');
4 $blockClass["icon"] = "iconBlock";
5 $blockOrder[60][] = "icon";
6
7 use \simple_html_dom as simple_html_dom;
8
9 class iconBlock extends maxBlock
10 {
11 protected $blockname = "icon";
12 protected $fields = array("use_fa_icon" => array("default" => 0),
13 "fa_icon_value" => array("default" => '',
14 "css" => ''),
15
16 "fa_icon_size" => array("default" => '30px',
17 "css" => 'font-size',
18 "csspart" => "fa"),
19
20 "icon_id" => array('default' => '',
21 'css' => ''
22 ),
23 "icon_url" => array('default' => '',
24 'css' => ''),
25 /*"background_url" => array('default' => '',
26 'css' => 'background-image',
27 ), */
28 "icon_alt" => array('default' => '',
29 'css' => ''),
30
31
32 "icon_position" => array('default' => 'left',
33 'css' => 'text-align',
34 'csspart' => 'mb-icon'),
35
36 'icon_padding_top' => array('default' => '13px',
37 'css' => 'padding-top',
38 'csspart' => 'mb-icon'),
39
40 'icon_padding_right' => array('default' => '6px',
41 'css' => 'padding-right',
42 'csspart' => 'mb-icon'),
43
44 'icon_padding_bottom' => array('default' => '0px',
45 'css' => 'padding-bottom',
46 'csspart' => 'mb-icon'),
47
48 'icon_padding_left' => array('default' => '18px',
49 'css' => 'padding-left',
50 'csspart' => 'mb-icon'),
51 );
52
53
54 public function parse_css($css, $mode = 'normal')
55 {
56
57 $csspart = 'mb-icon';
58 $csspseudo = 'normal';
59
60 $data = isset($this->data[$this->blockname]) ? $this->data[$this->blockname] : array();
61 if (count($data) == 0)
62 return $css; // no icons present here.
63
64 $css = parent::parse_css($css);
65 $css["mb-icon"]["normal"]["line-height"] = "0px"; // prevent rendering bigger div than icon
66 $css["mb-icon"]["normal"]["display"] = "block";
67 $css['mb-icon']['normal']['background-color'] = 'unset'; // prevent background overwrite.
68
69 /*if (isset($css["maxbutton"]["normal"]["background-image"]))
70 {
71 $url = $css["maxbutton"]["normal"]["background-image"];
72 $css["maxbutton"]["normal"]["background-image"] = "url($url)";
73
74 }
75 print_R($css["maxbutton"]);
76 */
77
78 if (isset($css[$csspart][$csspseudo]["text-align"]) && $css[$csspart][$csspseudo]["text-align"] != '')
79 {
80 switch( $css[$csspart][$csspseudo]["text-align"])
81 {
82 case "left":
83 $css[$csspart][$csspseudo]["float"] = 'left';
84 unset($css[$csspart][$csspseudo]["text-align"]);
85 break;
86 case "right":
87 $css[$csspart][$csspseudo]["float"] = 'right';
88 unset($css[$csspart][$csspseudo]["text-align"]);
89
90 break;
91 case "top":
92 case "bottom":
93 $css[$csspart][$csspseudo]["text-align"] = 'center';
94 break;
95 }
96 }
97
98
99 return $css;
100 }
101
102 public function parse_button($domObj, $mode = 'normal')
103 {
104 $data = isset($this->data[$this->blockname]) ? $this->data[$this->blockname] : array();
105 if (count($data) == 0)
106 return $domObj; // no icons present here.
107
108 $id = $this->data["id"];
109
110 $icon_url = $data["icon_url"];
111 $use_fa_icon= $data["use_fa_icon"];
112 $position = $data["icon_position"];
113
114 if ($icon_url == '' && ($use_fa_icon == 0 || $use_fa_icon == '') ) return $domObj; // no icon
115
116 $anchor = $domObj->find("a",0);
117 $anchor_text = '';
118
119 if ($use_fa_icon == 1)
120 {
121 if ($data["fa_icon_value"] == '') return $domObj; // still no icon
122 $anchor_text = '<span class="mb-icon "><i class="fa ' . $data["fa_icon_value"] . '"></i></span>';
123 }
124 else
125 {
126 $anchor_text = '<span class="mb-icon "><img src="' . $data["icon_url"] . '" alt="' . $data["icon_alt"] . '" border="0" /></span>' ;
127 }
128 if ($position == 'bottom')
129 $anchor->innertext = $anchor->innertext . $anchor_text;
130 else
131 $anchor->innertext = $anchor_text . $anchor->innertext;
132
133 $newhtml = $domObj->save();
134
135 $domObj = new simple_html_dom();
136 $domObj->load($newhtml);
137
138 return $domObj;
139
140 }
141
142 // empty save, leave the data alone plz.
143 public function save_fields($data, $post)
144 {
145 return $data;
146 }
147
148 public function admin_fields()
149 {
150
151 $data = isset($this->data[$this->blockname]) ? $this->data[$this->blockname] : array();
152
153 $icon_url = isset($data["icon_url"]) ? $data["icon_url"] : '';
154
155 if ($icon_url == '' )
156 return; // hide if no setting
157
158
159
160 ?>
161 <div class="option-container mb_tab">
162 <div class="title"><?php _e('Icons and images', 'maxbuttons') ?></div>
163 <div class="inside">
164 <?php _e("This setting can only be changed in MaxButtons Pro","maxbuttons"); ?>
165
166 <p><img src="<?php echo $icon_url ?>"> </p>
167 </div>
168 </div>
169 <?php
170
171
172 }
173
174 } // class
175
176