'', "auto_responsive" => array("default" => 0), "media_query" => array("default" => array() ), ); // multifields for manual conversion // define +/- the same as normal fields. // to find solution in parsing stuff back to button. protected $multi_fields = array("mq_button_width" => array("default" => 0, "css" => "width", "csspseudo" => "responsive", ), "mq_button_width_unit" => array("default" => 'px', "css" => "width_unit", "csspseudo" => "responsive", ), "mq_container_width" => array("default" => 0, "css" => "width", "csspart" => "mb-container", "csspseudo" => "responsive", ), "mq_container_float" => array("default" => "", "css" => "float", "csspart" => "mb-container", "csspseudo" => "responsive", ), "mq_container_width_unit" => array("default" => "px", "css" => "width_unit", "csspart" => "mb-container", ), "mq_font_size" => array("default" => 90, "css" => "font-size", "csspart" => "mb-text", ), "mq_font_size_unit" => array("default" => "%", "css" => "font-size_unit", "csspart" => "mb-text"), "mq_custom_minwidth" => array("default" => "0", "css" => "custom_minwidth"), "mq_custom_maxwidth" => array("default" => "0", "css" => "custom_maxwidth"), "mq_hide" => array("default" => '', "css" => "display", "csspart" => "mb-container, maxbutton, mb-center", ), ); public function parse_css($css, $mode = 'normal') { if ($mode != 'normal') return $css; if (! isset($this->data[$this->blockname])) return $css; $data = $this->data[$this->blockname]; if (isset($data["auto_responsive"]) && $data["auto_responsive"] == 1) { // generate auto_rules for responsive. $css["maxbutton"]["responsive"]["phone"][0]["width"] = "90%"; $css["mb-container"]["responsive"]["phone"][0]["width"] = "90%"; $css["mb-container"]["responsive"]["phone"][0]["float"] = "none"; $css["mb-text"]["responsive"]["phone"][0]["font-size"] = "90%"; if ( isset($this->data["text"]["font_size"]) ) { $css["mb-text"]["responsive"]["phone"][0]["font-size"] = floor(intval($this->data["text"]["font_size"]) * 0.8) . 'px'; } } if (! isset($data["media_query"])) return $css; foreach($data["media_query"] as $query => $data ): $i = 0; foreach($data as $index => $fields): foreach($fields as $field => $value) { $csspart = (isset($this->multi_fields[$field]["csspart"])) ? explode(",",$this->multi_fields[$field]["csspart"]) : array('maxbutton') ; $css_stat = $this->multi_fields[$field]["css"]; if ($value == '' || $value == '0') { } elseif ($query != 'custom' && ($field == 'mq_custom_maxwidth' || $field == "mq_custom_minwidth")) { } // skip custom fields on noncustom query else { foreach($csspart as $j => $part) { $css[$part]["responsive"][$query][$i][$css_stat] = $value; } /* } else { $css[$csspart]["responsive"][$query][$i][$css_stat] = $value; } */ } } $i++; endforeach; endforeach; return $css; } public function save_fields($data, $post) { $queries = (isset($post["media_query"])) ? $post["media_query"] : null; $media_queries = array(); if (is_null($queries)) return $data; foreach($queries as $i => $query) { if ($query != '') { //$media_queries[$query] = array(); // collect the other fields. $c = isset($media_queries[$query]) ? count($media_queries[$query]) : 0; foreach($this->multi_fields as $field => $values) { $default = isset($values["default"]) ? $values["default"] : ''; if (isset($post[$field][$i])) { $postval = $post[$field][$i]; if (is_numeric($default)) // sanitize. { $postval = intval($postval); } else $value = sanitize_text_field($postval); $media_queries[$query][$c][$field] = $postval; } } } } $data[$this->blockname]["media_query"] = $media_queries; $data[$this->blockname]["auto_responsive"] = (isset($post["auto_responsive"])) ? $post["auto_responsive"] : 0; return $data; } public function admin_fields() { $data = isset($this->data[$this->blockname]) ? $this->data[$this->blockname] : array(); $media_names = maxUtils::get_media_query(1); // nicenames $media_desc = maxUtils::get_media_query(3); $units = array("px" => __("px","maxbuttons"), "%" => __("%","maxbuttons") ); $container_floats = array( "" => "", "none" => __("None","maxbuttons"), "left" => __("Left","maxbuttons"), "right" => __("Right","maxbuttons"), ); foreach($this->fields as $field => $options) { $default = (isset($options["default"])) ? $options["default"] : ''; $$field = (isset($data[$field])) ? $data[$field] : $default; ${$field . "_default"} = $default; } // sorting routine via array merge. $fk = array_flip(array_keys($media_query)); $names_used = array_intersect_key($media_names,$fk); $media_query = array_merge($names_used,$media_query); ?>
Description here