/** * Get registered control fields * * @since 1.0.0 * @param mixed $term current term object. * @param [type] $taxonomy current taxonomy name. * @return string */ public function get_fields($term, $taxonomy, $format = '%s') { $result = ''; foreach ($this->args['fields'] as $key => $field) { if (in_array($key, Cherry_Term_Meta::$register_fields)) { continue; } else { Cherry_Term_Meta::$register_fields[] = $key; } if (false !== $term) { $value = get_term_meta($term->term_id, $key, true); } else { $value = ''; } $value = !empty($value) ? $value : Cherry_Toolkit::get_arg($field, 'value', ''); if (isset($field['options_callback'])) { $options = call_user_func($field['options_callback']); } else { $options = Cherry_Toolkit::get_arg($field, 'options', array()); } $args = array('type' => Cherry_Toolkit::get_arg($field, 'type', 'text'), 'id' => $key, 'name' => $key, 'value' => $value, 'label' => Cherry_Toolkit::get_arg($field, 'label', ''), 'options' => $options, 'multiple' => Cherry_Toolkit::get_arg($field, 'multiple', false), 'filter' => Cherry_Toolkit::get_arg($field, 'filter', false), 'size' => Cherry_Toolkit::get_arg($field, 'size', 1), 'null_option' => Cherry_Toolkit::get_arg($field, 'null_option', 'None'), 'multi_upload' => Cherry_Toolkit::get_arg($field, 'multi_upload', true), 'library_type' => Cherry_Toolkit::get_arg($field, 'library_type', 'image'), 'upload_button_text' => Cherry_Toolkit::get_arg($field, 'upload_button_text', 'Choose'), 'max_value' => Cherry_Toolkit::get_arg($field, 'max_value', '100'), 'min_value' => Cherry_Toolkit::get_arg($field, 'min_value', '0'), 'max' => Cherry_Toolkit::get_arg($field, 'max', '100'), 'min' => Cherry_Toolkit::get_arg($field, 'min', '0'), 'step_value' => Cherry_Toolkit::get_arg($field, 'step_value', '1'), 'style' => Cherry_Toolkit::get_arg($field, 'style', 'normal'), 'display_input' => Cherry_Toolkit::get_arg($field, 'display_input', true), 'controls' => Cherry_Toolkit::get_arg($field, 'controls', array()), 'fields' => Cherry_Toolkit::get_arg($field, 'fields', array()), 'auto_parse' => Cherry_Toolkit::get_arg($field, 'auto_parse', false), 'icon_data' => Cherry_Toolkit::get_arg($field, 'icon_data', array()), 'toggle' => Cherry_Toolkit::get_arg($field, 'toggle', array('true_toggle' => 'On', 'false_toggle' => 'Off', 'true_slave' => '', 'false_slave' => '')), 'class' => Cherry_Toolkit::get_arg($field, 'class'), 'required' => Cherry_Toolkit::get_arg($field, 'required', false), 'placeholder' => Cherry_Toolkit::get_arg($field, 'placeholder'), 'master' => Cherry_Toolkit::get_arg($field, 'master'), 'title_field' => Cherry_Toolkit::get_arg($field, 'title_field'), 'ui_kit' => Cherry_Toolkit::get_arg($field, 'ui_kit', true)); $current_element = $this->ui_builder->get_ui_element_instance($args['type'], $args); $result .= sprintf($format, $current_element->render()); } return $result; }
/** * Safely get file content. * * @since 1.1.4 * @global object $wp_filesystem * @param string $file File path. * @return bool */ public function get_file($file) { if (!function_exists('WP_Filesystem')) { include_once ABSPATH . '/wp-admin/includes/file.php'; } WP_Filesystem(); global $wp_filesystem; $result = ''; if ($wp_filesystem->abspath()) { $result = $wp_filesystem->get_contents($file); } else { $result = Cherry_Toolkit::get_file($file); } return $result; }
/** * Get registered control fields * * @since 1.0.0 * @since 1.1.3 Using dirname( __FILE__ ) instead of __DIR__. * @since 1.2.0 Use interface builder for HTML rendering. * * @param mixed $post Current post object. * @return void */ public function get_fields($post) { if (is_array($this->args['single']) && isset($this->args['single']['key'])) { $this->meta_values = get_post_meta($post->ID, $this->args['single']['key'], true); } $zero_allowed = apply_filters('cherry_zero_allowed_controls', array('stepper', 'slider')); foreach ($this->args['fields'] as $key => $field) { $default = Cherry_Toolkit::get_arg($field, 'value', ''); $value = $this->get_meta($post, $key, $default); if (isset($field['options_callback'])) { $field['options'] = call_user_func($field['options_callback']); } $element = Cherry_Toolkit::get_arg($field, 'element', 'control'); $field['id'] = Cherry_Toolkit::get_arg($field, 'id', $key); $field['name'] = Cherry_Toolkit::get_arg($field, 'name', $key); $field['type'] = Cherry_Toolkit::get_arg($field, 'type', ''); $field['value'] = $value; // Fix zero values for stepper and slider if (!$value && in_array($field['type'], $zero_allowed)) { $field['value'] = 0; } $register_callback = 'register_' . $element; if (method_exists($this->builder, $register_callback)) { call_user_func(array($this->builder, $register_callback), $field); } } $this->builder->render(); }
/** * Render html UI_Text. * * @since 4.0.0 */ public function render() { $html = Cherry_Toolkit::render_view(dirname(__FILE__) . '/view/button-view.php', $this->settings); return $html; }
/** * Show widget form * * @since 1.0.0 * @see WP_Widget->form * @param array $instance current widget instance. * @return void */ public function form($instance) { if (empty($this->settings)) { return; } foreach ($this->settings as $key => $setting) { $value = isset($instance[$key]) ? $instance[$key] : Cherry_Toolkit::get_arg($setting, 'value', ''); if (isset($setting['options_callback'])) { $callback = $this->get_callback_data($setting['options_callback']); $options = call_user_func_array($callback['callback'], $callback['args']); } else { $options = Cherry_Toolkit::get_arg($setting, 'options', array()); } $args = array('type' => Cherry_Toolkit::get_arg($setting, 'type', 'text'), 'id' => $this->get_field_id($key), 'name' => $this->get_field_name($key), 'value' => $value, 'label' => Cherry_Toolkit::get_arg($setting, 'label', ''), 'options' => $options, 'multiple' => Cherry_Toolkit::get_arg($setting, 'multiple', false), 'filter' => Cherry_Toolkit::get_arg($setting, 'filter', false), 'size' => Cherry_Toolkit::get_arg($setting, 'size', 1), 'null_option' => Cherry_Toolkit::get_arg($setting, 'null_option', 'None'), 'multi_upload' => Cherry_Toolkit::get_arg($setting, 'multi_upload', true), 'library_type' => Cherry_Toolkit::get_arg($setting, 'library_type', 'image'), 'upload_button_text' => Cherry_Toolkit::get_arg($setting, 'upload_button_text', 'Choose'), 'max_value' => Cherry_Toolkit::get_arg($setting, 'max_value', '100'), 'min_value' => Cherry_Toolkit::get_arg($setting, 'min_value', '0'), 'step_value' => Cherry_Toolkit::get_arg($setting, 'step_value', '1'), 'style' => Cherry_Toolkit::get_arg($setting, 'style', 'normal'), 'placeholder' => Cherry_Toolkit::get_arg($setting, 'placeholder', ''), 'toggle' => Cherry_Toolkit::get_arg($setting, 'toggle', array('true_toggle' => 'On', 'false_toggle' => 'Off', 'true_slave' => '', 'false_slave' => '')), 'master' => Cherry_Toolkit::get_arg($setting, 'master', ''), 'icon_data' => Cherry_Toolkit::get_arg($setting, 'icon_data', array()), 'title_field' => Cherry_Toolkit::get_arg($setting, 'title_field'), 'add_label' => Cherry_Toolkit::get_arg($setting, 'add_label', ''), 'fields' => Cherry_Toolkit::get_arg($setting, 'fields', array()), 'ui_kit' => Cherry_Toolkit::get_arg($setting, 'ui_kit', true)); $this->render_control($args); } }
/** * Get view for interface elements. * * @since 1.0.0 * @access protected * @param string $type View type. * @param array $args Input data. * @return string */ protected function get_view($type = 'control', array $args = array()) { if (empty($view)) { $path = dirname(__FILE__) . '/'; $path .= array_key_exists($type, $this->args['views']) ? $this->args['views'][$type] : $this->args['views']['control']; } else { $path = $view; } $view = Cherry_Toolkit::render_view($path, $args); return $view; }
<?php /** * Ui-Button view * * @package Cherry_UI_Elements * @subpackage View * @author Cherry Team <*****@*****.**> * @copyright Copyright (c) 2012 - 2016, Cherry Team * @link http://www.cherryframework.com/ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ // If this file is called directly, abort. if (!defined('WPINC')) { die; } $class = trim(implode(' ', array('ui-button', 'ui-button-' . $__data['style'] . '-style ', $__data['master'], $__data['class']))); $attrs = Cherry_Toolkit::join(array('type' => esc_attr($__data['type']), 'id' => esc_attr($__data['id']), 'name' => esc_attr($__data['name']), 'class' => esc_attr($class), 'disabled' => filter_var($__data['disabled'], FILTER_VALIDATE_BOOLEAN), 'form' => esc_attr($__data['form']), 'formaction' => esc_attr($__data['formaction']))); ?> <button <?php echo $attrs; ?> ><?php echo $__data['content']; ?> </button>