PluginProbe
MaxButtons – Create buttons / 7.13.1
MaxButtons – Create buttons v7.13.1
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 / container.php

container.php in MaxButtons – Create buttons 7.13.1, at blocks/container.php

218 lines 7.5 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["container"] = "containerBlock";
5 $blockOrder[70][] = "container";
6
7 use \simple_html_dom as simple_html_dom;
8
9 class containerBlock extends maxBlock
10 {
11 protected $blockname = "container";
12 protected $fields = array("container_enabled" => array("default" => "0"),
13 "container_center_div_wrap" => array("default" => "0"),
14
15 "container_width" => array("default" => "0px",
16 "css" => "width",
17 "csspart" => "mb-container"),
18 "container_margin_top" => array("default" => "0px",
19 "css" => "margin-top",
20 "csspart" => "mb-container"),
21 "container_margin_right" => array("default" => "0px",
22 "css" => "margin-right",
23 "csspart" => "mb-container"),
24 "container_margin_bottom" => array("default" => "0px",
25 "css" => "margin-bottom",
26 "csspart" => "mb-container"),
27 "container_margin_left" => array("default" => "0px",
28 "css" => "margin-left",
29 "csspart" => "mb-container"),
30 "container_alignment" => array("default" => "",
31 "css" => "align",
32 "csspart" => "mb-container"),
33 );
34
35
36 public function parse_button($domObj, $mode = 'normal')
37 {
38 $data = $this->data[$this->blockname];
39 $id = $this->data["id"];
40
41 if ($mode == 'editor')
42 return $domObj; // in previews no container object
43
44
45 if ($data["container_enabled"] == 1)
46 {
47 $anchor = $domObj->find("a",0);
48 $anchor->outertext = "<span class='maxbutton-" . $id . "-container mb-container'>" . $anchor->outertext . "</span>";
49
50
51 if ($data["container_center_div_wrap"] == 1) // I heard you like wrapping...
52 {
53 $anchor->outertext = "<span class='mb-center maxbutton-" . $id . "-center'>" . $anchor->outertext . "</span>";
54
55 }
56 // reload the dom model with new divs
57 $newhtml = $domObj->save();
58 $domObj = new simple_html_dom();
59 $domObj->load($newhtml);
60 }
61
62
63
64 return $domObj;
65 }
66
67 public function parse_css($css, $mode = 'normal')
68 {
69 $css = parent::parse_css($css);
70 $data = $this->data[$this->blockname];
71
72 $csspart = 'mb-container';
73 $csspseudo = 'normal';
74
75 $css["mb-container"]["normal"]["display"] = "block";
76 $css["mb-center"]["normal"]["display"] = "block";
77 $css["mb-center"]["normal"]["text-align"] = "center";
78
79 if (isset($css[$csspart][$csspseudo]["align"]))
80 {
81
82 if ($css[$csspart][$csspseudo]["align"] != '')
83 {
84
85 $stat = explode(":", $css[$csspart][$csspseudo]["align"]);
86 $css[$csspart][$csspseudo][ $stat[0] ] = $stat[1];
87 }
88 unset($css[$csspart][$csspseudo]["align"]);
89 }
90 if ( isset($css[$csspart][$csspseudo]["width"]) && $data["container_width"] == 0)
91 {
92 unset($css[$csspart][$csspseudo]["width"]);
93 }
94 return $css;
95
96 }
97
98
99
100 public function admin_fields()
101 {
102 $data = $this->data[$this->blockname];
103 $admin = MB()->getClass('admin');
104
105 /*foreach($this->fields as $field => $options)
106 {
107 $default = (isset($options["default"])) ? $options["default"] : '';
108 $$field = (isset($data[$field])) ? $data[$field] : $default;
109 ${$field . "_default"} = $default;
110
111
112 } */
113
114 $maxbuttons_container_alignments = array(
115 '' => '',
116 'display: inline-block' => 'display: inline-block',
117 'float: left' => 'float: left',
118 'float: right' => 'float: right'
119 );
120
121 $icon_url = MB()->get_plugin_url() . 'images/icons/' ;
122
123 $start_block = new maxField('block_start');
124 $start_block->name = __('container', 'maxbuttons');
125 $start_block->label = __('Container', 'maxbuttons');
126 $admin->addField($start_block);
127
128
129 $u_container = new maxField('switch');
130 $u_container->label = __('Use Container', 'maxbuttons');
131 $u_container->name = 'container_enabled';
132 $u_container->id = $u_container->name;
133 $u_container->help = __('Creates a container around the button which pushes other content', 'maxbuttons');
134 $u_container->value = 1;
135
136 $u_container->checked = checked( maxBlocks::getValue('container_enabled'), 1, false);
137 $admin->addField($u_container, 'start', 'end');
138
139 $fspacer = new maxField('spacer');
140 $fspacer->name = '';
141 $admin->addField($fspacer, 'start');
142
143 $wrap_cont = new maxField('switch');
144 $wrap_cont->name = 'container_center_div_wrap';
145 $wrap_cont->id = $wrap_cont->name;
146 $wrap_cont->value = 1;
147 $wrap_cont->checked = checked( maxBlocks::getValue('container_center_div_wrap'), 1, false);
148 $wrap_cont->label = __('Center the container', 'maxbuttons');
149 $admin->addField($wrap_cont, '', 'end');
150
151 $container_width = new maxField('number');
152 $container_width->name = 'container_width';
153 $container_width->id = $container_width->name;
154 $container_width->min = 0;
155 $container_width->value = maxUtils::strip_px( maxBlocks::getValue('container_width') );
156 $container_width->label = __('Width', 'maxbuttons');
157 $container_width->inputclass = 'small';
158 $container_width->after_input = __('px', 'maxbuttons');
159 $admin->addField($container_width, 'start', 'end');
160
161 // Margin - trouble
162 $ptop = new maxField('number');
163 $ptop->label = __('Margin', 'maxbuttons');
164 $ptop->id = 'container_margin_top';
165 $ptop->name = $ptop->id;
166 $ptop->min = 0;
167 $ptop->inputclass = 'tiny';
168 $ptop->before_input = '<img src="' . $icon_url . 'p_top.png" title="' . __("Margin Top","maxbuttons") . '" >';
169 $ptop->value = maxUtils::strip_px(maxBlocks::getValue('container_margin_top'));
170 $admin->addField($ptop, 'start');
171
172 $pright = new maxField('number');
173 $pright->id = 'container_margin_right';
174 $pright->name = $pright->id;
175 $pright->min = 0;
176 $pright->inputclass = 'tiny';
177 $pright->before_input = '<img src="' . $icon_url . 'p_right.png" class="icon padding" title="' . __("Margin Right","maxbuttons") . '" >';
178 $pright->value = maxUtils::strip_px(maxBlocks::getValue('container_margin_right'));
179 $admin->addField($pright);
180
181 $pbottom = new maxField('number');
182 $pbottom->id = 'container_margin_bottom';
183 $pbottom->name = $pbottom->id;
184 $pbottom->min = 0;
185 $pbottom->inputclass = 'tiny';
186 $pbottom->before_input = '<img src="' . $icon_url . 'p_bottom.png" class="icon padding" title="' . __("Margin Bottom","maxbuttons") . '" >';
187 $pbottom->value = maxUtils::strip_px(maxBlocks::getValue('container_margin_bottom'));
188 $admin->addField($pbottom);
189
190 $pleft = new maxField('number');
191 $pleft->id = 'container_margin_left';
192 $pleft->name = $pleft->id;
193 $pleft->min = 0;
194 $pleft->inputclass = 'tiny';
195 $pleft->before_input = '<img src="' . $icon_url . 'p_left.png" class="icon padding" title="' . __("Margin Left","maxbuttons") . '" >';
196 $pleft->value = maxUtils::strip_px(maxBlocks::getValue('container_margin_left'));
197 $admin->addField($pleft, '', 'end');
198
199 $align = new maxField('option_select');
200 $align->label = __('Alignment','maxbuttons');
201 $align->name = 'container_alignment';
202 $align->id = $align->name;
203 $align->selected = maxBlocks::getValue('container_alignment');
204 $align->options = $maxbuttons_container_alignments; // maxUtils::selectify($align->name, $maxbuttons_container_alignments, $align->value);
205 $align->help = __('Float can help to align the button and other content on the same line', 'maxbuttons');
206 $admin->addField($align, 'start', 'end');
207
208 $this->sidebar();
209 $endblock = new maxField('block_end');
210 $admin->addField($endblock);
211
212 } // admin_fields
213
214 } // class
215
216
217 ?>
218