function clearbase_ajax_move_to_folder() { check_ajax_referer('clearbase_ajax', 'cbnonce'); //move posts to another folder $folder_id = absint($_REQUEST['folderid']); $posts = clearbase_empty_default($_REQUEST, 'posts', array()); $result = clearbase_move_to_folder($folder_id, $posts); echo wp_json_encode(array('success' => false == is_wp_error($result), 'data' => array('message' => is_wp_error($result) ? $result->get_error_message() : __('Move to folder complete.', 'clearbase')))); wp_die(); }
public function __construct($folder_root = 0) { parent::__construct(); global $cb_folder_root, $cb_post_id, $cb_post, $cb_post_type_obj, $view_id, $cb_action, $cb_workspace_saving; $cb_folder_root = $folder_root; clearbase_folder_set_global(clearbase_empty_default($_GET, 'id', 0)); add_action('post_updated', array(&$this, '_updated'), 10, 1); add_action('edit_attachment', array(&$this, '_updated'), 10, 1); $cb_action = isset($_REQUEST['cbaction']) && -1 != $_REQUEST['cbaction'] ? $_REQUEST['cbaction'] : ''; $cb_workspace_saving = isset($_POST['save-changes']); // do_action('clearbase_workspace_start'); add_filter('clearbase_workspace_view', array($this, 'view'), 10, 3); $this->view = apply_filters('clearbase_workspace_view', null, $cb_post->post_type, $cb_action); if ($this->view instanceof Clearbase_View) { $this->view->InitEditor(); } do_action('clearbase_workspace_loaded'); //allow the loaded views to save any editor changes if (isset($_REQUEST['save-editor'])) { do_action('clearbase_view_save_editor', 'save-editor'); } $args = apply_filters('clearbase_workspace_action', array('action' => $cb_action, 'nonce_action' => $cb_action, 'nonce_field' => isset($_REQUEST['cbnonce']) ? 'cbnonce' : '_wpnonce', 'posts' => clearbase_empty_default($_REQUEST, 'posts', array($cb_post_id)), 'handled' => false)); // Process any Clearbase actions, if the action has not already been handled if (isset($args) && is_array($args) && !$args['handled']) { switch ($args['action']) { case 'add-folder': check_admin_referer($args['nonce_action'], $args['nonce_field']); $result = clearbase_add_folder($cb_post_id); if (is_wp_error($result)) { die($result->get_error_message()); } wp_redirect(clearbase_workspace_url(array('id' => $result, 'cbaction' => 'edit', 'back' => urlencode(clearbase_workspace_url(array('id' => $cb_post_id)))))); exit; break; case 'move': check_admin_referer($args['nonce_action'], $args['nonce_field']); $folder_id = clearbase_empty_default($_REQUEST, 'folderid', ''); if (!is_numeric($folder_id)) { die('Folder ID is invalid.'); } $result = clearbase_move_to_folder($folder_id, $args['posts']); if (is_wp_error($result)) { die($result->get_error_message()); } wp_redirect(clearbase_workspace_url(array('id' => $folder_id))); exit; break; case 'trash': case 'delete': check_admin_referer($args['nonce_action'], $args['nonce_field']); $parent_id; $posts = $args['posts']; for ($i = count($posts) - 1; $i > -1; $i--) { if (!isset($parent_id) && ($p = get_post($posts[$i]))) { $parent_id = $p->post_parent; } wp_delete_post($posts[$i], 'delete' == $args['action']); } wp_redirect(clearbase_workspace_url(array('id' => $parent_id))); exit; break; } } }