示例#1
0
 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'));
 }
示例#2
0
 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');
 }
示例#3
0
 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'));
 }
示例#4
0
 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);
 }
示例#7
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;
 }
示例#8
0
 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'));
 }
示例#9
0
 /**
  * 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);
 }
示例#10
0
 /**
  * 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);
 }
示例#11
0
 /**
  * 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);
 }