function add_setting($settings) { $default_settings = array('type' => '', 'name' => '', 'title' => '', 'tip' => '', 'css' => '', 'before' => '', 'after' => '', 'rules' => '', 'default' => '', 'options' => array(), 'orientation' => 'horizontal', 'classes' => '', 'row_class' => ''); $settings = array_merge($default_settings, $settings); $this->_settings[] = $settings; // Figure out defaults. if ($settings['default'] != '') { // Default was passed to add_setting(). $default_value = $settings['default']; } else { // No default explictly set. if ($this->_savepoint !== false) { if (is_array($this->_savepoint)) { // Array of defaults was passed instead of savepoint. $default_value = $this->_savepoint[$settings['name']]; } else { // No defaults provided, seek them out in plugins options array. // Default values are overwritten after a process() run with the latest data if a form was submitted. $group = pb_backupbuddy::get_group($this->_savepoint); if ($group === false) { $default_value = ''; } else { if (isset($group[$settings['name']])) { // Default is defined. $default_value = $group[$settings['name']]; } else { // Default not defined. $default_value = ''; } } } // end finding defaults in plugin options. } else { // Custom mode without a savepoint provided so no default set unless passed to add_setting(). $default_value = ''; } } // Process adding form item for the setting based on type. switch ($settings['type']) { case 'text': $this->_form->text($settings['name'], $default_value, $settings['rules']); break; case 'plaintext': $this->_form->plaintext($settings['name'], $default_value); break; case 'color': $this->_form->color($settings['name'], $default_value, $settings['rules']); break; case 'hidden': $this->_form->hidden($settings['name'], $default_value, $settings['rules']); break; case 'wysiwyg': $this->_form->wysiwyg($settings['name'], $default_value, $settings['rules'], $settings['settings']); break; case 'textarea': $this->_form->textarea($settings['name'], $default_value, $settings['rules']); break; case 'select': $this->_form->select($settings['name'], $settings['options'], $default_value, $settings['rules']); break; case 'password': $this->_form->password($settings['name'], $default_value, $settings['rules']); break; case 'radio': $this->_form->radio($settings['name'], $settings['options'], $default_value, $settings['rules']); break; case 'checkbox': $this->_form->checkbox($settings['name'], $settings['options'], $default_value, $settings['rules']); break; case 'submit': $this->_form->submit($settings['name'], 'DEFAULT'); // Submit button text is set in display_settings() param. break; case 'title': $this->_form->title($settings['name'], $default_value, $settings['rules']); // Submit button text is set in display_settings() param. break; default: echo '{Error: Unknown settings type.}'; break; } // End switch(). }
public function ajax($actionb) { if ($actionb == 'save_images_list') { // User modified the list of images in a group. //echo '<pre>' . print_r( pb_backupbuddy::_POST(), true ) . '</pre>'; $images = explode(',', pb_backupbuddy::_POST('items')); echo '<pre>' . print_r($images, true) . '</pre>'; // Prepare savepoint. if ($this->_save_point != '') { $savepoint_root = $this->_save_point; // . '#'; } else { $savepoint_root = ''; } $image_root =& pb_backupbuddy::get_group($savepoint_root); $image_root = array(); foreach ($images as $image_id) { // Loop through each item in list. //echo 'id: ' . $image_id . '<br>'; $image_defaults = pb_backupbuddy::settings(pb_backupbuddy::_POST('default_options_point')); $image_defaults['id'] = $image_id; $image_root[] = $image_defaults; /* //echo '<pre>' . print_r( $image_defaults, true ) . '</pre>'; // From old save_settings(): $savepoint_subsection = &pb_backupbuddy::$options; $savepoint_levels = explode( '#', $savepoint_root ); foreach ( $savepoint_levels as $savepoint_level ) { $savepoint_subsection = &$savepoint_subsection{$savepoint_level}; } // Apply settings. $savepoint_subsection[] = $image_defaults; */ } //echo '<pre>' . print_r( $image_root, true ) . '</pre>'; pb_backupbuddy::save(); } die; }