public function ajax()
 {
     global $wp_widget_factory;
     $widget = isset($_REQUEST['widget']) ? $_REQUEST['widget'] : null;
     if ($widget) {
         $this->register_widgets();
         piklist_widget::$current_widget = $this->widget_name;
         if (isset($_REQUEST['number'])) {
             $instances = get_option('widget_' . piklist::dashes($this->widget_name));
             piklist_widget::widget()->_set($_REQUEST['number']);
             if (isset($instances[$_REQUEST['number']])) {
                 piklist_widget::widget()->instance = $instances[$_REQUEST['number']];
             }
         }
         if (isset($this->widgets[$widget])) {
             ob_start();
             do_action('piklist_widget_notices');
             piklist::render($this->widgets[$widget]['form'], null);
             piklist_form::save_fields();
             $output = ob_get_contents();
             ob_end_clean();
             echo json_encode(array('form' => $output, 'widget' => $this->widgets[$widget], 'tiny_mce' => piklist_form::$field_editor_settings['tiny_mce'], 'quicktags' => piklist_form::$field_editor_settings['quicktags']));
         }
     }
     die;
 }
Esempio n. 2
0
File: form.php Progetto: a42/piklist
  enctype="multipart/form-data"
  id="<?php 
echo $id;
?>
"
  autocomplete="off"
  data-piklist-form="true"
  class="piklist-form <?php 
echo is_admin() ? 'hidden' : null;
?>
"
>
  <?php 
do_action('piklist_notices', $id);
foreach ($render as $form) {
    piklist::render($form, $data);
}
piklist('field', array('type' => 'hidden', 'scope' => piklist::$prefix, 'field' => 'form_id', 'value' => $id));
if ($data['filter']) {
    piklist('field', array('type' => 'hidden', 'scope' => piklist::$prefix, 'field' => 'filter', 'value' => 'true'));
}
if ($data['redirect']) {
    piklist('field', array('type' => 'hidden', 'scope' => piklist::$prefix, 'field' => 'redirect', 'value' => $data['redirect']));
}
if (piklist_admin::hide_ui()) {
    piklist('field', array('type' => 'hidden', 'scope' => piklist::$prefix, 'field' => 'admin_hide_ui', 'value' => 'true'));
}
piklist_form::save_fields();
?>
  
</form>
 /**
  * ajax
  * Render the widget form.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public function ajax()
 {
     global $wp_widget_factory;
     $widget = isset($_REQUEST['widget']) ? esc_attr($_REQUEST['widget']) : null;
     if ($widget && current_user_can('edit_theme_options')) {
         $this->setup($this->widget_name);
         if (isset($_REQUEST['number'])) {
             $instances = get_option('widget_' . piklist::dashes($this->widget_name));
             piklist_widget::widget()->_set($_REQUEST['number']);
             if (isset($instances[$_REQUEST['number']])) {
                 piklist_widget::widget()->instance = $instances[$_REQUEST['number']];
             }
         }
         if (isset($this->widgets[$widget])) {
             ob_start();
             do_action('piklist_notices');
             foreach ($this->widgets[$widget]['render'] as $render) {
                 if (strstr($render, '-form.php')) {
                     piklist::render($render);
                 }
             }
             piklist_form::save_fields();
             $output = ob_get_contents();
             ob_end_clean();
             wp_send_json(array('form' => $output, 'widget' => $this->widgets[$widget]));
         }
     }
     wp_send_json_error();
 }