Example #1
0
    /**
     * load data needed for board's javascript
     * @param  string $template the passed in template path
     * @return string           the same template path
     */
    static function send_page_data_to_template($template)
    {
        // make sure we're looking at the board
        if (!isset(Kanban_Template::get_instance()->slug) || Kanban_Template::get_instance()->slug != self::$slug) {
            return $template;
        }
        // make sure they don't need to upgrade
        if (Kanban::get_instance()->settings->records_to_move > 0) {
            ?>
			<p>
			<?php 
            echo sprintf(__('We\'ve found %s kanban records that need to be migrated for the latest version of Kanban for WordPress!', 'kanban'), Kanban::get_instance()->settings->records_to_move);
            ?>
			</p>
			<p>
			<?php 
            echo sprintf(__('Please visit the <a href="%s">Kanban welcome page</a> to migrate your data.', 'kanban'), add_query_arg('page', 'kanban_welcome', admin_url('admin.php')));
            ?>
			<?php 
            exit;
        }
        // get the template data
        global $wp_query;
        // attach our object to the template data
        $wp_query->query_vars['kanban'] = (object) array();
        $wp_query->query_vars['kanban']->board = (object) array();
        // add default filters
        $wp_query->query_vars['kanban']->board->filters = array('user' => (object) array(), 'project' => (object) array());
        // add passed alert
        $wp_query->query_vars['kanban']->board->alert = !empty($_GET['alert']) ? stripcslashes($_GET['alert']) : '';
        // get all data for the javascript
        $wp_query->query_vars['kanban']->board->settings = Kanban_Option::get_all();
        $wp_query->query_vars['kanban']->board->allowed_users = Kanban_User::get_allowed_users();
        $wp_query->query_vars['kanban']->board->estimates = Kanban_Estimate::get_all();
        $wp_query->query_vars['kanban']->board->statuses = Kanban_Status::get_all();
        $wp_query->query_vars['kanban']->board->projects = Kanban_Project::get_all();
        $wp_query->query_vars['kanban']->board->tasks = Kanban_Task::get_all();
        // get the current user from the allowed users
        $current_user_id = get_current_user_id();
        $wp_query->query_vars['kanban']->board->current_user = $wp_query->query_vars['kanban']->board->allowed_users[$current_user_id];
        // figure out percentages here (easier, quicker than in js)
        $wp_query->query_vars['kanban']->board->col_percent_w = count($wp_query->query_vars['kanban']->board->statuses) > 0 ? 100 / count($wp_query->query_vars['kanban']->board->statuses) : 100;
        $wp_query->query_vars['kanban']->board->sidebar_w = count($wp_query->query_vars['kanban']->board->statuses) > 0 ? 100 / (count($wp_query->query_vars['kanban']->board->statuses) - 2) : 0;
        apply_filters('kanban_board_query_vars', $wp_query->query_vars['kanban']->board);
        return $template;
    }
Example #2
0
 static function save_settings()
 {
     if (!isset($_POST[Kanban_Utils::get_nonce()]) || !wp_verify_nonce($_POST[Kanban_Utils::get_nonce()], 'kanban-options') || !is_user_logged_in()) {
         return;
     }
     $statuses = Kanban_Status::get_all();
     $status_ids = array_keys($statuses);
     // any statuses to delete?
     if (isset($_POST['statuses']['saved'])) {
         $deleted_statuses = array_diff($status_ids, array_keys($_POST['statuses']['saved']));
         if (!empty($deleted_statuses)) {
             foreach ($deleted_statuses as $key => $id) {
                 Kanban_Status::delete(array('id' => $id));
             }
         }
     }
     // add new statuses first
     if (isset($_POST['statuses']['new'])) {
         foreach ($_POST['statuses']['new'] as $status) {
             // save it
             $success = Kanban_Status::replace($status);
             if ($success) {
                 $status_id = Kanban_Status::insert_id();
                 // add it to all the statuses to save
                 $_POST['statuses']['saved'][$status_id] = $status;
             }
         }
     }
     // now save all statuses with positions
     if (isset($_POST['statuses']['saved'])) {
         foreach ($_POST['statuses']['saved'] as $status_id => $status) {
             $status['id'] = $status_id;
             Kanban_Status::replace($status);
         }
     }
     $estimates = Kanban_Estimate::get_all();
     $estimate_ids = array_keys($estimates);
     // any estimates to delete?
     if (isset($_POST['estimates']['saved'])) {
         $deleted_estimates = array_diff($estimate_ids, array_keys($_POST['estimates']['saved']));
         if (!empty($deleted_estimates)) {
             foreach ($deleted_estimates as $key => $id) {
                 Kanban_Estimate::delete(array('id' => $id));
             }
         }
     }
     // add new estimates first
     if (isset($_POST['estimates']['new'])) {
         foreach ($_POST['estimates']['new'] as $estimate) {
             // save it
             $success = Kanban_Estimate::replace($estimate);
             if ($success) {
                 $estimate_id = Kanban_Estimate::insert_id();
                 // add it to all the estimates to save
                 $_POST['estimates']['saved'][$estimate_id] = $estimate;
             }
         }
     }
     // now save all estimates with positions
     if (isset($_POST['estimates']['saved'])) {
         foreach ($_POST['estimates']['saved'] as $estimate_id => $estimate) {
             $estimate['id'] = $estimate_id;
             Kanban_Estimate::replace($estimate);
         }
     }
     // get current settings
     $settings = Kanban_Option::get_all_raw();
     $settings = Kanban_Utils::build_array_with_id_keys($settings);
     // save all single settings
     foreach ($_POST['settings'] as $key => $value) {
         if (is_array($value)) {
             $value = serialize($value);
         }
         $data = array('name' => $key, 'value' => $value);
         // see if it's already set
         $id = Kanban_Utils::find_key_of_object_by_property('name', $key, $settings);
         if ($id) {
             $data['id'] = $id;
         }
         Kanban_Option::_replace($data);
     }
     $url = add_query_arg(array('message' => urlencode(__('Settings saved', 'kanban'))), $_POST['_wp_http_referer']);
     wp_redirect($url);
     exit;
 }