/** * Output a table row for view settings * @param string $key The key of the input * @param array $current_settings Associative array of current settings to use as input values, if set. If not set, the defaults are used. * @param [type] $override_input [description] * @param string $name [description] * @param string $id [description] * @return [type] [description] */ public static function render_setting_row($key = '', $current_settings = array(), $override_input = null, $name = 'template_settings[%s]', $id = 'gravityview_se_%s') { $setting = GravityView_View_Data::get_default_arg($key, true); // If the key doesn't exist, there's something wrong. if (empty($setting)) { return; } /** * @deprecated setting index 'name' was replaced by 'label' * @see GravityView_FieldType::get_field_defaults */ if (isset($setting['name']) && empty($setting['label'])) { $setting['label'] = $setting['name']; _deprecated_function('GravityView_FieldType::get_field_defaults', '1.1.7', '[label] instead of [name] when defining the setting ' . $key . ' details'); } $name = esc_attr(sprintf($name, $key)); $setting['id'] = esc_attr(sprintf($id, $key)); $setting['tooltip'] = 'gv_' . $key; // Use default if current setting isn't set. $curr_value = isset($current_settings[$key]) ? $current_settings[$key] : $setting['value']; // default setting type = text $setting['type'] = empty($setting['type']) ? 'text' : $setting['type']; // merge tags if (!isset($setting['merge_tags'])) { if ($setting['type'] === 'text') { $setting['merge_tags'] = true; } else { $setting['merge_tags'] = false; } } // render the setting $type_class = self::load_type_class($setting); if (class_exists($type_class)) { $render_type = new $type_class($name, $setting, $curr_value); ob_start(); $render_type->render_setting($override_input); $output = ob_get_clean(); } // Check if setting is specific for a template if (!empty($setting['show_in_template'])) { if (!is_array($setting['show_in_template'])) { $setting['show_in_template'] = array($setting['show_in_template']); } $show_if = ' data-show-if="' . implode(' ', $setting['show_in_template']) . '"'; } else { $show_if = ''; } // output echo '<tr valign="top" ' . $show_if . '>' . $output . '</tr>'; }
/** * Map GravityView * @see GravityView_View_Data::get_default_args() * @param array $views Array of Views * @return array Array of parameters */ function get_params($views_array) { if (!class_exists('GravityView_View_Data')) { return $views_array; } $default_params = array('page_size' => GravityView_View_Data::get_default_arg('page_size', true), 'show_only_approved' => GravityView_View_Data::get_default_arg('show_only_approved', true), 'lightbox' => GravityView_View_Data::get_default_arg('lightbox', true)); // Add the view picker first $params = array(array('value' => $views_array, 'heading' => __('View', 'gravityview-visual-composer'), 'description' => __('Select a View to add it to your post or page.', 'gravityview-visual-composer'), 'type' => 'dropdown', 'param_name' => 'id', 'admin_label' => true)); foreach (array('page_size', 'lightbox', 'show_only_approved', 'user_edit') as $key) { $param = GravityView_View_Data::get_default_arg($key, true); $type = isset($param['type']) ? $param['type'] : null; $heading = isset($param['label']) ? $param['label'] : null; $value = isset($param['value']) ? $param['value'] : null; // Different name for dropdown switch ($param['type']) { case 'select': $type = 'dropdown'; $value = isset($param['options']) ? $param['options'] : array(); break; case 'checkbox': $heading = ''; $value = array($heading => $value); break; case 'number': case 'text': $type = 'textfield'; break; } $params[] = array('type' => $type, 'heading' => $heading, 'class' => !empty($param['class']) ? $param['class'] : NULL, 'param_name' => $key, 'description' => empty($param['desc']) ? NULL : $param['desc'], 'value' => $value, 'admin_label' => true); } return $params; }