<?php add_action("plugins_loaded", "init_simple_fields_field_minimalexample"); function init_simple_fields_field_minimalexample() { class simple_fields_field_minimalexample extends simple_fields_field { public $key = "minimalexample", $name = "Minimalistic example field"; function __construct() { parent::__construct(); } function options_output($existing_vals) { return sprintf(' <p> <label>Default name</label> <span class="description">Enter a name that will be shown as default</span> <input type="text" name="%1$s" value="%2$s"> </p>', $this->get_options_name("textDefaultName"), isset($existing_vals["textDefaultName"]) ? esc_attr($existing_vals["textDefaultName"]) : ""); } function edit_output($saved_values, $options) { return sprintf('<input type="text" name="%1$s" value="%2$s">', $this->get_options_name("name"), empty($saved_values["name"]) ? esc_attr($options["textDefaultName"]) : esc_attr($saved_values["name"])); } } simple_fields::register_field_type("simple_fields_field_minimalexample"); }
* Add Extended Return Values and then return the values */ function return_values($values = null, $parsed_options_for_this_field = null) { // @todo: what if no value? $arr_extended = array(); foreach ($values as $key => $one_value) { $one_value_unix = strtotime($one_value); // Detect full date or just time if (preg_match('!^\\d{4}-\\d{2}-\\d{2}$!', $one_value)) { // echo "date"; [saved_date_time] => 1970-01-01 $arr_extended = array("type" => "date", "date_unixtime" => $one_value_unix, "ISO_8601" => date("Y-m-d", $one_value_unix), "RFC_2822" => date("r", $one_value_unix), "Y-m-d" => date("Y-m-d", $one_value_unix), "date_format" => date_i18n(get_option('date_format'), $one_value_unix)); } else { if (preg_match('!^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}$!', $one_value)) { // [saved_date_time] => 1970-01-01 01:00 $arr_extended = array("type" => "datetime", "date_unixtime" => $one_value_unix, "ISO_8601" => date("Y-m-d H:i", $one_value_unix), "RFC_2822" => date("r", $one_value_unix), "Y-m-d" => date("Y-m-d", $one_value_unix), "Y-m-d H:i" => date("Y-m-d H:i", $one_value_unix), "date_format" => date_i18n(get_option('date_format'), $one_value_unix), "date_time_format" => date_i18n(get_option('date_format') . " " . get_option('time_format'), $one_value_unix)); } else { if (preg_match('!^\\d{2}:\\d{2}$!', $one_value)) { // [saved_date_time] => 01:00 $arr_extended = array("type" => "time", "ISO_8601" => date("H:i", $one_value_unix), "time_format" => date_i18n(get_option('time_format'), $one_value_unix)); } } } $values[$key] = $arr_extended; } return $values; } } // end class simple_fields::register_field_type("simple_fields_field_date_v2"); }
* This is the output a regular user will see */ function edit_output($saved_values, $options) { // name tex. date: simple_fields_fieldgroups[3][1][new0] // name denna: simple_fields_fieldgroups[3][2][new0][option1] // alltså ett steg till = bra för vi kan lagra fler saker med mindre problem. hej hopp. $output = ""; $output .= sprintf(' <input type="text" name="%1$s" id="%2$s" value="%3$s"><br> <input type="text" name="%4$s" id="%5$s" value="%6$s"> ', $this->get_options_name("option1"), $this->get_options_id("option1"), esc_attr(@$saved_values["option1"]), $this->get_options_name("option2"), $this->get_options_id("option2"), esc_attr(@$saved_values["option2"])); return $output; } /** * Before the values are returned */ function return_values($values) { foreach ($values as &$one_field) { foreach ($one_field as $one_field_key => &$one_field_value) { if ($one_field_key == "option1") { $one_field_value = $one_field_value . " with some text always appended by class return method"; } } } return $values; } } simple_fields::register_field_type("simple_fields_field_example"); }
// Generate the src for a static map for each map, for each image size // https://developers.google.com/maps/documentation/staticmaps/ $static_map_base = "http://maps.googleapis.com/maps/api/staticmap?sensor=false"; foreach ($values as $key => $val) { $arr_static_maps = array(); foreach ($arr_sizes as $size_key => $size_vals) { $markers = ""; if ($options["static_maps_marker_show"]) { $markers = ""; $markers .= "size:" . $options["static_maps_marker_size"]; $markers .= "|"; $markers .= "color:" . $options["static_maps_marker_color"]; $markers .= "|"; $markers .= $val["lat"] . "," . $val["lng"]; } $static_map = add_query_arg(array("center" => $val["lat"] . "," . $val["lng"], "zoom" => $options["static_maps_zoom"], "size" => $size_vals["width"] . "x" . $size_vals["height"], "scale" => $options["static_maps_scale"], "maptype" => $options["static_maps_maptype"], "markers" => $markers), $static_map_base); $arr_static_maps[$size_key] = $static_map; // echo "<p>$size_key:<br><img src='$static_map'></p>"; } $values[$key]["static_maps"] = $arr_static_maps; // If address_components exists, decode the json to array if (isset($values[$key]["address_components"]) && $values[$key]["address_components"]) { $values[$key]["address_components"] = json_decode($values[$key]["address_components"]); } } return $values; } } // class simple_fields::register_field_type("simple_fields_field_googlemaps"); }
function options_output($existing_vals = array()) { return sprintf(' <div class="simple-fields-field-group-one-field-row-col-first"> <p> <label>%1$s</label> </p> </div> <div class="simple-fields-field-group-one-field-row-col-second"> <p> <select name="%2$s"> <option %6$s value="line">%4$s</option> <option %5$s value="white_space">%3$s</option> </select> </p> <!-- <p> <span class="description">%7$s</span> </p>--> </div> ', _x("Appearance", "Divider field type", "simple-fields"), $this->get_options_name("appearance"), _x("White space", "Divider field type", "simple-fields"), _x("Line", "Divider field type", "simple-fields"), isset($existing_vals["appearance"]) && $existing_vals["appearance"] == "white_space" ? " selected " : "", isset($existing_vals["appearance"]) && $existing_vals["appearance"] == "line" ? " selected " : "", _x("Select the look of the divider", "Divider field type", "simple-fields")); } function edit_output($saved_values, $options) { $output = sprintf('<div class="%1$s"></div>', $this->get_class_name($options["appearance"])); #sf_d($options); return $output; //return sprintf('<input type="text" name="%1$s" value="%2$s">', $this->get_options_name("name"), empty($saved_values["name"]) ? esc_attr($options["textDefaultName"]) : esc_attr($saved_values["name"])); } } simple_fields::register_field_type("simple_fields_field_divider"); }