static function get_all($sql = NULL) { $table_name = self::table_name(); $sql = "SELECT *\n\t\t\t\tFROM `{$table_name}`\n\t\t\t\tORDER BY `position` ASC\n\t\t;"; $sql = apply_filters('kanban_estimate_get_all_sql', $sql); $records = parent::get_all($sql); return apply_filters('kanban_estimate_get_all_return', Kanban_Utils::build_array_with_id_keys($records, 'id')); }
static function get_all($sql = NULL) { $table_name = self::table_name(); $sql = "SELECT *\n\t\t\t\tFROM `{$table_name}`\n\t\t\t\tORDER BY `position` ASC\n\t\t;"; $sql = apply_filters(sprintf('%s_sql_%s_get_all', Kanban::get_instance()->settings->basename, self::$table_name), $sql); $records = parent::get_all($sql); return Kanban_Utils::build_array_with_id_keys($records, 'id'); }
static function get_all($sql = NULL) { $table_name = self::table_name(); $sql = "SELECT *\n\t\t\t\tFROM `{$table_name}`\n\t\t\t\tORDER BY `position` ASC\n\t\t;"; $sql = apply_filters('kanban_status_get_all_sql', $sql); $records = parent::get_all($sql); foreach ($records as $key => $record) { $records[$key]->title = Kanban_Utils::str_for_frontend($records[$key]->title); } return apply_filters('kanban_status_get_all_return', Kanban_Utils::build_array_with_id_keys($records, 'id')); }
static function get_all($sql = NULL) { $table_name = self::table_name(); $tasks_table_name = Kanban_Task::table_name(); $sql = "SELECT `projects`.*,\n\t\t\t\t(\n\t\t\t\t\tSELECT COUNT(`id`)\n\t\t\t\t\tFROM `{$tasks_table_name}` tasks\n\t\t\t\t\tWHERE `tasks`.`project_id` = `projects`.`id`\n\t\t\t\t\tAND `tasks`.`is_active` = 1\n\t\t\t\t)\n\t\t\t\tAS 'task_count'\n\t\t\t\tFROM `{$table_name}` projects\n\t\t\t\tWHERE `projects`.`is_active` = 1\n\t\t;"; $sql = apply_filters(sprintf('%s_sql_%s_get_all', Kanban::get_instance()->settings->basename, self::$slug), $sql); $records = parent::get_all($sql); foreach ($records as $key => $record) { $records[$key]->title = Kanban_Utils::str_for_frontend($records[$key]->title); } return Kanban_Utils::build_array_with_id_keys($records, 'id'); }
static function terms_in_order($post_type, $key) { $tax_key = Kanban_Utils::format_key($post_type, $key); $field_name = sprintf('%s_order', $tax_key); $order = Kanban_Settings::get_option($field_name, $field_name, array()); asort($order); // get all terms for displaying $args = array('hide_empty' => 0); $terms = get_terms($tax_key, $args); $terms = Kanban_Utils::build_array_with_id_keys($terms, 'term_id'); $terms_in_order = array(); if (!empty($order)) { foreach ($order as $status_id => $order) { $terms_in_order[] = $terms[$status_id]; unset($terms[$status_id]); } } return array_filter(array_merge($terms_in_order, $terms)); }
static function get_allowed_users() { if (!isset(Kanban_User::$instance->allowed_users)) { $users_field_name = sprintf('%s_user', Kanban::$instance->settings->basename); $allowed_user_ids = Kanban_Settings::get_option($users_field_name, 'allowed_users', array()); if (empty($allowed_user_ids)) { $allowed_user_ids = array(0); } $pm_users = get_users(array('include' => $allowed_user_ids)); Kanban_User::$instance->allowed_users = Kanban_Utils::build_array_with_id_keys($pm_users); foreach (Kanban_User::$instance->allowed_users as $user_id => $user) { if (self::validate_gravatar($user->data->user_email)) { Kanban_User::$instance->allowed_users[$user_id]->data->avatar = get_avatar($user->data->user_email); } Kanban_User::$instance->allowed_users[$user_id]->data->long_name_email = Kanban_User::format_user_name($user); Kanban_User::$instance->allowed_users[$user_id]->data->short_name = Kanban_User::format_user_name($user, TRUE); Kanban_User::$instance->allowed_users[$user_id]->data->initials = Kanban_User::get_initials($user); } } return apply_filters(sprintf('%s_after_get_allowed_users', Kanban::$instance->settings->basename), Kanban_User::$instance->allowed_users); }
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; }
static function get_all($sql = NULL) { $table_name = self::table_name(); $worked_table_name = Kanban_Task_Hour::table_name(); $sql = "SELECT tasks.*,\n\t\t\t\tCOALESCE(SUM(worked.hours), 0) 'hour_count'\n\t\t\t\tFROM {$table_name} tasks\n\t\t\t\tLEFT JOIN {$worked_table_name} worked\n\t\t\t\tON tasks.id = worked.task_id\n\t\t\t\tWHERE tasks.is_active = 1\n\t\t\t\tGROUP BY tasks.id\n\t\t;"; $sql = apply_filters('kanban_task_get_all_sql', $sql); $records = parent::get_all($sql); foreach ($records as $key => $record) { $records[$key]->title = Kanban_Utils::str_for_frontend($records[$key]->title); $records[$key]->description = Kanban_Utils::str_for_frontend($records[$key]->description); } return apply_filters('kanban_task_get_all_return', Kanban_Utils::build_array_with_id_keys($records, 'id')); }
/** * get the users that are allowed to access the board * @return array allowed user objects */ static function get_allowed_users() { if (!isset(Kanban_User::get_instance()->allowed_users)) { global $wpdb; // get all settings $allowed_users = Kanban_Option::get_option('allowed_users'); // pull out allowed user id's $allowed_user_ids = array(); if (is_array($allowed_users)) { $allowed_user_ids = $allowed_users; } if (empty($allowed_user_ids)) { $allowed_user_ids = array(0); } // load actual users // $users = get_users(array( // 'include' => $allowed_user_ids, // 'fields' => array( // 'ID', // 'user_email', // ) // )); $allowed_user_ids_str = implode(',', $allowed_user_ids); $users = $wpdb->get_results("SELECT {$wpdb->users}.ID,\n\t\t\t{$wpdb->users}.user_email,\n\t\t\tfirst_name.meta_value AS 'first_name',\n\t\t\tlast_name.meta_value AS 'last_name'\n\t\t\tFROM {$wpdb->users}\n\t\t\tLEFT JOIN {$wpdb->usermeta} first_name\n\t\t\tON {$wpdb->users}.ID = first_name.user_id\n\t\t\tAND first_name.meta_key = 'first_name'\n\t\t\tLEFT JOIN {$wpdb->usermeta} last_name\n\t\t\tON {$wpdb->users}.ID = last_name.user_id\n\t\t\tAND last_name.meta_key = 'last_name'\n\t\t\tWHERE {$wpdb->users}.ID IN ({$allowed_user_ids_str});"); // add users to object Kanban_User::get_instance()->allowed_users = Kanban_Utils::build_array_with_id_keys($users, 'ID'); // load extra data foreach (Kanban_User::get_instance()->allowed_users as $user_id => $user) { Kanban_User::get_instance()->allowed_users[$user_id]->caps = array('write'); // get gravatar if (self::validate_gravatar($user->user_email)) { Kanban_User::get_instance()->allowed_users[$user_id]->avatar = get_avatar($user->user_email); } // fancy name formating Kanban_User::get_instance()->allowed_users[$user_id]->long_name_email = Kanban_User::get_username_long($user); Kanban_User::get_instance()->allowed_users[$user_id]->short_name = Kanban_User::get_username_short($user, TRUE); Kanban_User::get_instance()->allowed_users[$user_id]->initials = Kanban_User::get_initials($user); } } return apply_filters('kanban_user_get_allowed_users_return', Kanban_User::get_instance()->allowed_users); }
/** * Apply all postmeta and terms to an array of posts * @param arr $posts array of post objects * @return arr array of posts, with ID's as keys, and all postmeta and terms applied */ static function apply_postmeta_and_terms_to_posts($posts) { // make sure the first post has a post type if (empty($posts[0]->post_type)) { return $posts; } // build array of id's $post_id_arr = array(); foreach ($posts as $post) { $post_id_arr[] = $post->ID; } // get postmeta for all posts $postmeta = Kanban_Post::get_postmeta_for_posts($post_id_arr, $posts[0]->post_type); // get terms for all posts $terms = Kanban_Terms::get_terms_for_posts($post_id_arr, $posts[0]->post_type); // apply post meta and terms to projects foreach ($posts as $post) { if (isset($postmeta[$post->ID])) { $post->postmeta = $postmeta[$post->ID]; } if (isset($terms[$post->ID])) { $post->terms = $terms[$post->ID]; } } // put get array with post id's as keys return Kanban_Utils::build_array_with_id_keys($posts); }
/** * get the users that are allowed to access the board * @return array allowed user objects */ static function get_allowed_users() { if (!isset(Kanban_User::get_instance()->allowed_users)) { // get all settings $allowed_users = Kanban_Option::get_option('allowed_users'); // pull out allowed user id's $allowed_user_ids = array(); if (is_array($allowed_users)) { $allowed_user_ids = $allowed_users; } if (empty($allowed_user_ids)) { $allowed_user_ids = array(0); } // load actual users $users = get_users(array('include' => $allowed_user_ids, 'fields' => array('ID', 'user_email'))); // add users to object Kanban_User::get_instance()->allowed_users = Kanban_Utils::build_array_with_id_keys($users, 'ID'); // load extra data foreach (Kanban_User::get_instance()->allowed_users as $user_id => $user) { Kanban_User::get_instance()->allowed_users[$user_id]->caps = array('write'); // get gravatar if (self::validate_gravatar($user->user_email)) { Kanban_User::get_instance()->allowed_users[$user_id]->avatar = get_avatar($user->user_email); } // fancy name formating Kanban_User::get_instance()->allowed_users[$user_id]->long_name_email = Kanban_User::get_username_long($user); Kanban_User::get_instance()->allowed_users[$user_id]->short_name = Kanban_User::get_username_short($user, TRUE); Kanban_User::get_instance()->allowed_users[$user_id]->initials = Kanban_User::get_initials($user); } } return apply_filters(sprintf('%s_after_get_allowed_users', Kanban::get_instance()->settings->basename), Kanban_User::get_instance()->allowed_users); }