PluginProbe
MaxButtons – Create buttons / 6.7
MaxButtons – Create buttons v6.7
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.7, at blocks/icon.php

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