Exemplo n.º 1
0
 /**
  * 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;
 }