function form($instance) { global $extrp_settings, $extrp_sanitize; $data = $extrp_sanitize->big_data(); if ($instance) { $instance = $extrp_sanitize->sanitize($instance); foreach ($data as $key => $value) { $normal = isset($instance[$value['parameter']]) ? $instance[$value['parameter']] : $value['normal']; $data[$key]['id'] = $value['id']; $data[$key]['normal'] = $normal; $data[$key]['parameter'] = $value['parameter']; $data[$key]['optional'] = $value['optional']; $data[$key]['subtitle'] = $value['subtitle']; $data[$key]['description'] = $value['description']; $data[$key]['group'] = $value['group']; $data[$key]['subgroup'] = $value['subgroup']; $data[$key]['lang'] = $value['lang']; } } $key = array_keys($data); $plugin_data = get_plugin_data(EXTRP_PLUGIN_FILE); $plugin_version = 'v' . $plugin_data['Version']; printf('<div class="extrp-widget-form"><label for="%1$s" class="hidden">%2$s</label><input id="%1$s" name="%3$s" type="hidden" value="%2$s" />', $this->get_field_id('title_extrp'), esc_html($plugin_version), $this->get_field_name('title_extrp')); foreach ($key as $id) { $subtitle = $data[$id]['subtitle']; $parameter = $data[$id]['parameter']; $normal = $data[$id]['normal']; $optional = $data[$id]['optional']; $description = $data[$id]['description']; if ('post_date' == $parameter) { $input_field = ''; if (!is_array($normal)) { $normal = array($normal); } foreach ($optional as $k => $v) { $checked = in_array($k, $normal) ? 'checked="checked"' : ''; $desc = !empty($v) ? $v : $k; $input_field .= sprintf('<input id="%1$s" name="%2$s" type="checkbox" value="%3$s" %4$s><label for="%1$s">%5$s</label><br>', $this->get_field_id($parameter . '_' . $k), $this->get_field_name($parameter . '_' . $k), esc_attr($k), $checked, ucwords(esc_attr($desc))); } printf('<p><label for="%1$s">%2$s</label><br>%3$s', $this->get_field_id($parameter), $subtitle, $input_field); } if ('subtitle' == $parameter || 'titlerandom' == $parameter) { printf('<p><input id="%1$s" name="%2$s" type="text" value="%3$s" /> <label for="%1$s">%4$s</label></p>', $this->get_field_id($parameter), $this->get_field_name($parameter), sanitize_text_field($normal), $subtitle); } if ('posts' == $parameter || 'maxchars' == $parameter) { printf('<p><input class="small-text" id="%1$s" name="%3$s" type="number" value="%4$s" /> <label for="%1$s">%2$s</label></p>', $this->get_field_id($parameter), $subtitle, $this->get_field_name($parameter), sanitize_text_field($normal)); } if ('post__in' == $parameter || 'post__not_in' == $parameter) { printf('<p><label for="%1$s">%2$s</label><textarea class="large-text" id="%1$s" name="%3$s">%4$s</textarea></p>', $this->get_field_id($parameter), $subtitle, $this->get_field_name($parameter), $extrp_sanitize->data_textarea($normal)); } if ('relatedby' == $parameter || 'postheading' == $parameter || 'display' == $parameter || 'shape' == $parameter || 'image_size' == $parameter || 'highlight' == $parameter) { printf('<p><select id="%1$s" name="%2$s" class="%3$s-select">', $this->get_field_id($parameter), $this->get_field_name($parameter), sanitize_html_class($parameter)); if ('image_size' == $parameter) { $selected = false == $normal ? 'selected="selected"' : ''; printf('<option value="%1$s" %2$s>%3$s</option>', false, $selected, __('No Thumbnail', 'extrp')); } foreach ($optional as $k => $v) { $classhl = ''; if ('image_size' == $parameter || 'highlight' == $parameter) { $val = $k; } else { $val = $v; } $selected = $normal == $val ? 'selected="selected"' : ''; if ('highlight' == $parameter) { $classhl .= 'class="select-' . $k . '"'; $selected = $extrp_sanitize->highlight($normal)['hl'] == $val ? ' selected="selected"' : ''; } printf('<option %1$s value="%2$s" %3$s>%4$s</option>', $classhl, sanitize_text_field($val), $selected, ucwords(esc_attr($val))); } printf('</select> <label for="%1$s">%2$s</label></p>', $this->get_field_id($parameter), $subtitle); if ('highlight' == $parameter) { echo extrp_hl_input($extrp_sanitize->highlight($normal), sanitize_key($parameter), $optional, $this->get_field_name('add')); } } if ('single' == $parameter || 'post_title' == $parameter || 'desc' == $parameter || 'randomposts' == $parameter || 'crop' == $parameter || 'relevanssi' == $parameter || 'post_excerpt' == $parameter) { $selected = true == $normal ? 'checked="checked"' : ''; printf('<p><input type="checkbox" id="%1$s" name="%2$s" value="%3$s" class="widget-%4$s" %5$s/> <label for="%1$s"><span>%6$s</span></label> ', $this->get_field_id($parameter), $this->get_field_name($parameter), true, sanitize_html_class($parameter), $selected, $subtitle); printf('</p>'); } } printf('</div>'); }
public function field_cb($args) { global $extrp_settings, $extrp_data; $id = $args['id']; $parameter = $extrp_data[$id]['parameter']; $input_field = extrp_checkbox($parameter); $optional = $extrp_data[$id]['optional']; $description_field = $extrp_data[$id]['description']; $additional_field = ''; switch ($parameter) { case 'active': $input_field = extrp_checkbox($parameter); break; case 'post_type': case 'post_date': $input_field = extrp_multiple_checkbox($parameter, $optional); break; case 'relatedby': case 'display': case 'image_size': case 'shape': case 'post_excerpt': case 'highlight': $input_field = extrp_selected_input($parameter, $optional); if ('display' == $parameter || 'shape' == $parameter) { $additional_field = extrp_sample_preview($parameter, $optional); } if ('highlight' == $parameter) { $additional_field = extrp_hl_input($extrp_settings[$parameter], $parameter, $optional, 'extrp_option'); } break; case 'noimage': $input_field = extrp_upload_input($parameter, $description_field); $description_field = $description_field['main_desc']; break; case 'customsize': $input_field = extrp_multiple_input_text($parameter, $optional, $description_field); $description_field = $description_field['main_desc']; break; case 'posts': case 'maxchars': case 'expire': case 'schedule': $input_field = extrp_input_type($parameter, 'number'); if ('schedule' == $parameter) { $description_field = implode('</br>', $description_field); } break; case 'heading': case 'postheading': $input_field = extrp_multiple_radio($parameter, $optional); break; case 'subtitle': case 'titlerandom': $input_field = extrp_input_type($parameter, 'text'); break; case 'stopwords': case 'post__in': case 'post__not_in': $input_field = extrp_textarea($parameter); break; case 'relevanssi': case 'cache': $description_field = implode('</br>', $description_field); break; default: $input_field = extrp_checkbox($parameter); $additional_field = ''; break; } printf('%1$s<p class="description">%2$s</p>%3$s', $input_field, $description_field, $additional_field); }