Beispiel #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)
 {
     if (!isset(Kanban_Template::get_instance()->slug) || Kanban_Template::get_instance()->slug != self::$slug) {
         return $template;
     }
     global $wp_query;
     $wp_query->query_vars['kanban'] = (object) array();
     $wp_query->query_vars['kanban']->board = (object) array();
     // // get all data for the javascript
     $wp_query->query_vars['kanban']->board->allowed_users = Kanban_User::get_allowed_users();
     $wp_query->query_vars['kanban']->board->estimates = Kanban_Terms::terms_in_order('task', 'estimate');
     $wp_query->query_vars['kanban']->board->status_tax_key = Kanban_Utils::format_key('task', 'status');
     $wp_query->query_vars['kanban']->board->status_color_field_name = sprintf('%s_colors', $wp_query->query_vars['kanban']->board->status_tax_key);
     $wp_query->query_vars['kanban']->board->status_colors = Kanban_Settings::get_option($wp_query->query_vars['kanban']->board->status_color_field_name, null, array());
     $wp_query->query_vars['kanban']->board->statuses = Kanban_Terms::terms_in_order('task', 'status');
     foreach ($wp_query->query_vars['kanban']->board->statuses as $status) {
         if (!isset($wp_query->query_vars['kanban']->board->status_colors[$status->term_id])) {
             continue;
         }
         $status->color = $wp_query->query_vars['kanban']->board->status_colors[$status->term_id];
     }
     $wp_query->query_vars['kanban']->board->projects = Kanban_Project::get_all();
     $wp_query->query_vars['kanban']->board->tasks = Kanban_Task::get_all();
     $current_user_id = get_current_user_id();
     $wp_query->query_vars['kanban']->board->current_user = get_user_by('id', $current_user_id);
     unset($wp_query->query_vars['kanban']->board->current_user->data->user_pass);
     $wp_query->query_vars['kanban']->board->current_user->data->long_name_email = Kanban_User::format_user_name($wp_query->query_vars['kanban']->board->current_user);
     $wp_query->query_vars['kanban']->board->current_user->data->short_name = Kanban_User::format_user_name($wp_query->query_vars['kanban']->board->current_user, TRUE);
     $wp_query->query_vars['kanban']->board->current_user->data->initials = Kanban_User::get_initials($wp_query->query_vars['kanban']->board->current_user);
     $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;
     return $template;
 }
Beispiel #2
0
 public static function get_instance()
 {
     if (!self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 static function admin_init()
 {
     $users_field_name = sprintf('%s_user', Kanban::get_instance()->settings->basename);
     $status_tax_key = Kanban_Utils::format_key('task', 'status');
     $status_color_field_name = sprintf('%s_colors', $status_tax_key);
     $status_order_field_name = sprintf('%s_order', $status_tax_key);
     $estimate_tax_key = Kanban_Utils::format_key('task', 'estimate');
     $estimate_order_field_name = sprintf('%s_order', $estimate_tax_key);
     $sections = array(array('id' => $users_field_name, 'title' => 'Users'), array('id' => $status_order_field_name, 'title' => 'Status Order'), array('id' => $status_color_field_name, 'title' => 'Status Colors'), array('id' => $estimate_order_field_name, 'title' => 'Estimate Order'));
     $fields = array();
     $fields[$users_field_name] = array();
     $all_users = get_users();
     $all_users_arr = array();
     foreach ($all_users as $user) {
         $all_users_arr[$user->ID] = Kanban_User::format_user_name($user);
     }
     $fields[$users_field_name][] = array('name' => 'allowed_users', 'label' => 'Allowed Users', 'desc' => 'Users who have access to the board', 'type' => 'multicheck', 'options' => $all_users_arr);
     $statuses_in_order = Kanban_Terms::terms_in_order('task', 'status');
     $fields[$status_color_field_name] = array();
     foreach ($statuses_in_order as $status) {
         $fields[$status_color_field_name][] = array('name' => $status->term_id, 'label' => $status->name, 'type' => 'color');
     }
     $fields[$status_order_field_name] = array();
     foreach ($statuses_in_order as $status) {
         $fields[$status_order_field_name][$status->term_id] = array('name' => $status->term_id, 'label' => $status->name, 'type' => 'number');
     }
     $estimates_in_order = Kanban_Terms::terms_in_order('task', 'estimate');
     $fields[$estimate_order_field_name] = array();
     foreach ($estimates_in_order as $status) {
         $fields[$estimate_order_field_name][$status->term_id] = array('name' => $status->term_id, 'label' => $status->name, 'type' => 'number');
     }
     self::get_instance()->settings_api = new WeDevs_Settings_API();
     //set sections and fields
     self::get_instance()->settings_api->set_sections($sections);
     self::get_instance()->settings_api->set_fields($fields);
     //initialize them
     self::get_instance()->settings_api->admin_init();
 }
Beispiel #4
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);
 }