/** * Loops through to-do items * Passes a completed value, limit value and a category id * @param int $status * @param int $cat_id * @param $limit */ public function loop_through_todos($status = 0, $cat_id = 0, $limit = 100) { global $userdata, $current_user; get_currentuserinfo(); $limit = isset(CTDL_Loader::$dashboard_settings['dashboard_number']) ? CTDL_Loader::$dashboard_settings['dashboard_number'] : $limit; $limit = $limit == '-1' ? 1000 : $limit; $user = CTDL_Lib::check_permission('todo', 'view') ? $current_user->ID : $userdata->ID; if (CTDL_Loader::$settings['categories'] == 1 && CTDL_Loader::$settings['sort_order'] == 'cat_id' && $cat_id == 0) { $categories = CTDL_Categories::get_categories(); $items = 0; $posts_to_exclude = array(); foreach ($categories as $category) { $todo_items = CTDL_Lib::get_todos($user, $limit, $status, $category->term_id); if ($todo_items->have_posts()) { array_splice($posts_to_exclude, count($posts_to_exclude), 0, $this->show_todo_list_items($todo_items, $status, $category->term_id)); $items = 1; } } $todo_items = CTDL_Lib::get_todos($user, 0, $status, 0, $posts_to_exclude); if ($todo_items->have_posts()) { $this->show_todo_list_items($todo_items, $status); $items = 1; } if ($items == 0 && $status == 0) { echo '<p>' . apply_filters('ctdl_no_items', esc_html__('No items to do.', 'cleverness-to-do-list')) . '</p>'; } } else { $todo_items = CTDL_Lib::get_todos($user, $limit, $status, $cat_id); if ($todo_items->have_posts()) { $this->show_todo_list_items($todo_items, $status); } elseif ($status == 0) { echo '<p>' . apply_filters('ctdl_no_items', esc_html__('No items to do.', 'cleverness-to-do-list')) . '</p>'; } } }
/** * Creates the widget * @param $args * @param $instance * */ function widget($args, $instance) { global $ClevernessToDoList, $CTDL_widget_settings; $CTDL_widget_settings = $instance; get_currentuserinfo(); $title = apply_filters('widget_title', $instance['title']); $limit = $instance['number'] == '-1' ? 1000 : $instance['number']; $assigned_to = $instance['assigned_to']; $deadline = $instance['deadline']; $progress = $instance['progress']; $category = CTDL_Loader::$settings['categories'] == 1 ? $instance['category'] : 0; $individual = isset($instance['individual']) ? $instance['individual'] : 0; if ($individual == 1 && is_user_logged_in()) { global $current_user, $userdata; if (CTDL_Loader::$settings['list_view'] == '2') { $user = $current_user->ID; } else { $user = $userdata->ID; } } else { $user = 0; } echo $args['before_widget']; if ($title) { echo $args['before_title']; echo $title; echo $args['after_title']; } $ClevernessToDoList->list = ''; $visible = 0; if (CTDL_Loader::$settings['categories'] == 1 && CTDL_Loader::$settings['sort_order'] == 'cat_id' && $category == 0) { $categories = CTDL_Categories::get_categories(); $items = 0; $posts_to_exclude = array(); $visibility = get_option('CTDL_categories'); foreach ($categories as $category) { echo '<ol>'; $category_id = $category->term_id; $visible = $visibility["category_{$category->term_id}"]; $todo_items = CTDL_Lib::get_todos($user, $limit, 0, $category_id); if ($todo_items->have_posts()) { array_splice($posts_to_exclude, count($posts_to_exclude), 0, $this->show_todo_list_items($todo_items, $progress, $deadline, $assigned_to, 0, $visible)); $items = 1; } echo '</ol>'; } $todo_items = CTDL_Lib::get_todos($user, $limit, 0, 0, $posts_to_exclude); if ($todo_items->have_posts()) { echo '<ol>'; $this->show_todo_list_items($todo_items, $progress, $deadline, $assigned_to, 0, $visible); echo '</ol>'; $items = 1; } if ($items == 0) { echo '<p>' . apply_filters('ctdl_no_items', esc_html__('No items to do.', 'cleverness-to-do-list')) . '</p>'; } } else { echo '<ol>'; $todo_items = CTDL_Lib::get_todos($user, $limit, 0, $category); if ($todo_items->have_posts()) { $this->show_todo_list_items($todo_items, $progress, $deadline, $assigned_to, $category, $visible); } else { echo '<p>' . apply_filters('ctdl_no_items', esc_html__('No items to do.', 'cleverness-to-do-list')) . '</p>'; } } echo '</ol>'; echo $args['after_widget']; }
/** * Loop through to-do items * * @param int $completed * @param int $cat_id * @param int $limit */ protected function loop_through_todos($completed = 0, $cat_id = 0, $limit = 5000) { global $current_user, $userdata; $user = CTDL_Lib::get_user_id($current_user, $userdata); // if categories are enabled and sort order is set to cat id and we're not getting todos for a specific category if (CTDL_Loader::$settings['categories'] == 1 && CTDL_Loader::$settings['sort_order'] == 'cat_id' && $cat_id == 0) { $categories = CTDL_Categories::get_categories(); $items = 0; $visible = 0; $headings = 0; $posts_to_exclude = array(); $visibility = get_option('CTDL_categories'); foreach ($categories as $category) { $visible = $visibility["category_{$category->term_id}"]; $todo_items = CTDL_Lib::get_todos($user, 5000, $completed, $category->term_id); if ($todo_items->have_posts()) { if ($headings == 0) { $headings = $this->show_table_headings($completed); } array_splice($posts_to_exclude, count($posts_to_exclude), 0, $this->show_todo_list_items($todo_items, $completed, $visible)); $items = 1; } } $todo_items = CTDL_Lib::get_todos($user, 5000, $completed, 0, $posts_to_exclude); if ($todo_items->have_posts()) { if ($headings == 0) { $this->show_table_headings($completed); } $this->show_todo_list_items($todo_items, $completed); $items = 1; } if ($items == 0) { if ($completed == 0) { $this->list .= '<tr><td>' . apply_filters('ctdl_no_items', esc_html__('No items to do.', 'cleverness-to-do-list')) . '</td></tr>'; } else { $this->list .= '<tr><td>' . apply_filters('ctdl_no_completed_items', esc_html__('No completed items.', 'cleverness-to-do-list')) . '</td></tr>'; } } } else { $todo_items = CTDL_Lib::get_todos($user, 5000, $completed, $cat_id); if ($todo_items->have_posts()) { $this->show_table_headings($completed); $this->show_todo_list_items($todo_items, $completed); } else { if ($completed == 0) { $this->list .= '<tr><td>' . apply_filters('ctdl_no_items', esc_html__('No items to do.', 'cleverness-to-do-list')) . '</td></tr>'; } else { $this->list .= '<tr><td>' . apply_filters('ctdl_no_completed_items', esc_html__('No completed items.', 'cleverness-to-do-list')) . '</td></tr>'; } } } }
/** * Create the category management page * @static */ public static function create_category_page() { $cleverness_todo_message = ''; $cleverness_todo_action = ''; if (isset($_GET['cleverness_todo_action'])) { $cleverness_todo_action = $_GET['cleverness_todo_action']; } if (isset($_POST['cleverness_todo_action'])) { $cleverness_todo_action = $_POST['cleverness_todo_action']; } switch ($cleverness_todo_action) { case 'addtodocat': if ($_POST['cleverness_todo_cat_name'] != '') { if (!wp_verify_nonce($_POST['_todo_add_cat_nonce'], 'todoaddcat')) { die(esc_html__('Security check failed', 'cleverness-to-do-list')); } $status = CTDL_Categories::insert_category(); if ($status != 1) { $cleverness_todo_message = esc_html__('There was a problem performing that action.', 'cleverness-to-do-list'); } } else { $cleverness_todo_message = esc_html__('Category name cannot be blank.', 'cleverness-to-do-list'); } break; default: break; } // end switch ?> <div class="wrap"> <div class="icon32"><img src="<?php echo CTDL_PLUGIN_URL; ?> /images/cleverness-todo-icon.png" alt="" /></div> <h2><?php echo apply_filters('ctdl_categories_title', esc_html__('To-Do List Categories', 'cleverness-to-do-list')); ?> </h2> <?php if ($cleverness_todo_message != '') { echo '<div id="message" class="error below-h2"><p>' . $cleverness_todo_message . '</p></div>'; } else { echo '<div id="message"></div>'; } ?> <h3><?php echo apply_filters('ctdl_add_category', esc_html__('Add New Category', 'cleverness-to-do-list')); ?> </h3> <form name="addtodocat" id="addtodocat" action="" method="post"> <table class="form-table"> <tr> <th scope="row"><label for="cleverness_todo_cat_name"><?php echo apply_filters('ctdl_category_name', esc_html__('Category Name', 'cleverness-to-do-list')); ?> </label></th> <td><input type="text" name="cleverness_todo_cat_name" id="cleverness_todo_cat_name" class="regular-text" value="" /></td> </tr> <tr> <th scope="row"><label for="cleverness_todo_cat_visibility"><?php esc_html_e('Visibility', 'cleverness-to-do-list'); ?> </label></th> <td> <select name="cleverness_todo_cat_visibility" id="cleverness_todo_cat_visibility"> <option value="0" selected="selected"><?php esc_attr_e('Public', 'cleverness-to-do-list'); ?> </option> <option value="1"><?php esc_attr_e('Private', 'cleverness-to-do-list'); ?> </option> </select> <br /><span class="description"><?php echo apply_filters('ctdl_category_visibility', esc_html__('Private categories are not visible using the sidebar widgets or shortcode (only when Sort Order is set to Category)', 'cleverness-to-do-list')); ?> </span> </td> </tr> <tr><td></td> <td> <?php wp_nonce_field('todoaddcat', '_todo_add_cat_nonce'); ?> <input type="hidden" name="cleverness_todo_action" value="addtodocat" /> <input type="submit" name="button" id="add-todo-category" class="button-primary" value="<?php echo apply_filters('ctdl_add_category', esc_attr__('Submit', 'cleverness-to-do-list')); ?> " /> </td> </tr> </table> </form> <h3><?php echo apply_filters('ctdl_existing_categories', esc_html__('Existing Categories', 'cleverness-to-do-list')); ?> </h3> <table id="todo-cats" class="widefat"> <thead> <tr> <th id="id-col"><?php esc_html_e('ID', 'cleverness-to-do-list'); ?> </th> <th class="row-title"><?php esc_html_e('Name', 'cleverness-to-do-list'); ?> </th> <th id="vis-col"><?php esc_html_e('Visibility', 'cleverness-to-do-list'); ?> </th> <th id="action-col"><?php esc_html_e('Action', 'cleverness-to-do-list'); ?> </th> </tr> </thead> <tbody> <?php $categories = CTDL_Categories::get_categories(); if ($categories) { foreach ($categories as $category) { $category_id = $category->term_id; $visibility = get_option('CTDL_categories'); $visibility = $visibility["category_{$category_id}"] != '' ? $visibility["category_{$category_id}"] : '0'; ?> <tr id="<?php echo $category_id; ?> "> <td><?php echo $category_id; ?> </td> <td class="row-title"><?php echo esc_attr($category->name); ?> </td> <td><?php if ($visibility == '0') { echo esc_html__('Public', 'cleverness-to-do-list'); } else { if ($visibility == '1') { echo esc_html__('Private', 'cleverness-to-do-list'); } } ?> </td> <td> <input class="edit-todo-category button-secondary" type="button" value="<?php esc_attr_e('Edit', 'cleverness-to-do-list'); ?> " /> <input class="delete-todo-category button-secondary" type="button" value="<?php esc_attr_e('Delete', 'cleverness-to-do-list'); ?> " /> </td> </tr> <?php } } ?> </tbody> <tfoot> <tr> <th class="row-title"><?php esc_html_e('ID', 'cleverness-to-do-list'); ?> </th> <th><?php esc_html_e(' Name', 'cleverness-to-do-list'); ?> </th> <th><?php esc_html_e('Visibility', 'cleverness-to-do-list'); ?> </th> <th><?php esc_html_e('Action', 'cleverness-to-do-list'); ?> </th> </tr> </tfoot> </table> </div> <?php }