PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.6
6.0.6 6.0.5 6.0.2 6.0.3 6.0.4 6.0.1 6.0.0 5.0.8 5.0.9 4.0.9 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 All 58 releases
← All changes | includes/admin/projects/open_project/wppm_get_project_tasks.php +162 -162 5.0.86.0.6 View file →
@@ -1,163 +1,163 @@
1 -<?php
2 -if ( ! defined( 'ABSPATH' ) ) {
3 - exit; // Exit if accessed directly
4 -}
5 -global $current_user,$wpdb,$wppmfunction;
6 -$project_id = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : 0 ;
7 -$project_id = (int)($project_id);
8 -$cu_id = (int)($current_user->ID);
9 -$appearance_settings = get_option("wppm-ap-task-list");
10 -$wppm_task_time = get_option('wppm_task_time');
11 -$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
12 -if($current_user->has_cap('manage_options') || $wppm_current_user_capability=='wppm_admin'){
13 - $query = $wpdb->prepare(
14 - "SELECT * FROM {$wpdb->prefix}wppm_task WHERE project = %d",
15 - $project_id
16 - );
17 -} else{
18 - $query = $wpdb->prepare( "SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task
19 - LEFT JOIN {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
20 - LEFT JOIN {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
21 - LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
22 - WHERE Task.project = %d AND (FIND_IN_SET(%d, Task.users) > 0 OR Task.created_by = %d OR ( proj_users.user_id = %d AND proj_users.role_id = 1 AND FIND_IN_SET(%d, proj.users) > 0 ) OR ( proj_meta.meta_key = 'public_project' AND proj_meta.meta_value = 1 ) OR proj.created_by = %d ) GROUP BY Task.id",
23 - $project_id,$cu_id, $cu_id,$cu_id,$cu_id, $cu_id );
24 -}
25 -$query = apply_filters('wppm_get_project_tasks_query',$query,$project_id);
26 -$tasks = $wpdb->get_results($query);
27 -ob_start();
28 -?>
29 -<form id="wppm_get_project_tasks_frm" name="wppm_get_project_tasks_frm">
30 - <div class="table-responsive">
31 - <table id="tbl_project_tasks" class="table table-striped table-bordered" cellspacing="0" width="100%">
32 - <thead>
33 - <tr>
34 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Task id','taskbuilder');?> </th>
35 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>" <?php echo esc_attr($appearance_settings['list-header-text-color'])?>><?php echo esc_html_e('Task Name','taskbuilder');?> </th>
36 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Task Status','taskbuilder');?> </th>
37 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Task Priority','taskbuilder');?> </th>
38 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Assign To','taskbuilder');?> </th>
39 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Start Date','taskbuilder');?> </th>
40 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('End Date','taskbuilder');?> </th>
41 - </tr>
42 - </thead>
43 - <tbody>
44 - <?php
45 - if(!empty($tasks)){
46 - foreach ($tasks as $task) {
47 - $status = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d", (int) $task->status ) );
48 - $users = array();
49 - if($task->users != null){
50 - $users = explode(",",$task->users);
51 - }
52 - if(!empty($task->priority)){
53 - $priority = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d", (int) $task->priority));
54 - }
55 - if(!empty($task->project)){
56 - $project = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d",(int) $task->project));
57 - }
58 - if($wppm_task_time == 1){
59 - $task_start_date = $task->start_date;
60 - $task_end_date = $task->end_date;
61 - } elseif($wppm_task_time == 0){
62 - $tsDate = new DateTime($task->start_date);
63 - $teDate = new DateTime($task->end_date);
64 - $task_start_date = $tsDate->format('Y-m-d');
65 - $task_end_date = $teDate->format('Y-m-d');
66 - }
67 - ?>
68 - <tr onclick= "wppm_open_project_tasks(<?php echo esc_attr($task->id) ?>,<?php echo esc_attr($task->project) ?>)" >
69 - <td>
70 - <?php echo esc_html($task->id); ?>
71 - </td>
72 - <td>
73 - <?php echo esc_html($task->task_name); ?>
74 - </td>
75 - <td>
76 - <span class="wppm_td_task_status" style="background-color:<?php echo (isset($status->bg_color))? esc_attr($status->bg_color):"";?>; color: <?php echo (isset($status->color))? esc_attr($status->color):""; ?>"><?php echo (isset($status->name))? esc_html($status->name):"" ?></span>
77 - </td>
78 - <td>
79 - <span class ="wppm_td_task_priority" style="background-color:<?php echo (isset($priority->bg_color))? esc_attr($priority->bg_color):"";?>; color: <?php echo (isset($priority->color))? esc_attr($priority->color):""; ?>"><?php echo (isset($priority->name))? esc_html($priority->name):"" ?></span>
80 - </td>
81 - <td>
82 - <?php
83 - $i=0;
84 - if(!empty($users)){
85 - foreach($users as $user){
86 - $i++;
87 - if( $i <= 4 ){
88 - $userdata = get_userdata( $user );
89 - if($userdata){
90 - ?>
91 - <a href="#" title="<?php echo esc_attr($userdata->display_name) ?>">
92 - <?php echo (get_avatar($userdata->ID, 25, "mysteryman"))?>
93 - </a> <?php
94 - }
95 - }
96 - }
97 - } else {
98 - esc_html_e('None','taskbuilder');
99 - }
100 - if($i > 4){
101 - ?>
102 - <a href="#" class="wppm_avatar">
103 - <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
104 - </a>
105 - <?php } ?>
106 - </td>
107 - <td>
108 - <?php echo (isset($task_start_date))? esc_html($task_start_date):""?>
109 - </td>
110 - <td>
111 - <?php echo (isset($task_end_date))? esc_html($task_end_date):""?>
112 - </td>
113 - </tr>
114 - <?php }
115 - }
116 - ?>
117 - </tbody>
118 - </table>
119 - </div>
120 -</form>
121 -<style>
122 - #tbl_project_tasks tr:nth-child(even){
123 - background-color:<?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>;
124 - color:<?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>;
125 - }
126 - #tbl_project_tasks tr:nth-child(odd){
127 - background-color:<?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>;
128 - color:<?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>;
129 - }
130 - #tbl_project_tasks tr:hover{
131 - background-color:<?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>;
132 - }
133 - #tbl_project_tasks tr:hover td{
134 - color: <?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>;
135 - }
136 -</style>
137 -<script type="text/javascript">
138 - jQuery(document).ready(function() {
139 - var table = jQuery('#tbl_project_tasks').DataTable({
140 - "aLengthMenu": [[4, 8, 12, -1], [4, 8, 12, "All"]],
141 - "columnDefs": [
142 - { orderable: false, targets: -1 }
143 - ]
144 - });
145 - jQuery('div.dataTables_filter input', table.table().container()).focus();
146 -} );
147 -</script>
148 -<?php
149 -$body = ob_get_clean();
150 -ob_start();
151 -?>
152 -<div class="col-md-3" style="text-align: right;">
153 - <button type="button" class="btn <?php echo (isset($project_id))?'wppm_popup_close':'wppm_task_popup_close'?>" onclick="<?php echo (isset($project_id))?'wppm_modal_close();':'wppm_task_modal_close();'?>"><?php echo esc_html_e('Close','taskbuilder');?></button>
154 -</div><?php
155 -
156 -$footer = ob_get_clean();
157 -
158 -$response = array(
159 - 'body' => $body,
160 - 'footer' => $footer
161 -);
162 -
1 +<?php
2 +if ( ! defined( 'ABSPATH' ) ) {
3 + exit; // Exit if accessed directly
4 +}
5 +global $current_user,$wpdb,$wppmfunction;
6 +$project_id = isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : 0 ;
7 +$project_id = (int)($project_id);
8 +$cu_id = (int)($current_user->ID);
9 +$appearance_settings = get_option("wppm-ap-task-list");
10 +$wppm_task_time = get_option('wppm_task_time');
11 +$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
12 +if($current_user->has_cap('manage_options') || $wppm_current_user_capability=='wppm_admin'){
13 + $query = $wpdb->prepare(
14 + "SELECT * FROM {$wpdb->prefix}wppm_task WHERE project = %d AND (parent_task_id = 0 OR parent_task_id IS NULL)",
15 + $project_id
16 + );
17 +} else{
18 + $query = $wpdb->prepare( "SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task
19 + LEFT JOIN {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
20 + LEFT JOIN {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
21 + LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
22 + WHERE Task.project = %d AND (Task.parent_task_id = 0 OR Task.parent_task_id IS NULL) AND (FIND_IN_SET(%d, Task.users) > 0 OR Task.created_by = %d OR ( proj_users.user_id = %d AND proj_users.role_id = 1 AND FIND_IN_SET(%d, proj.users) > 0 ) OR ( proj_meta.meta_key = 'public_project' AND proj_meta.meta_value = 1 ) OR proj.created_by = %d ) GROUP BY Task.id",
23 + $project_id,$cu_id, $cu_id,$cu_id,$cu_id, $cu_id );
24 +}
25 +$query = apply_filters('wppm_get_project_tasks_query',$query,$project_id);
26 +$tasks = $wpdb->get_results($query);
27 +ob_start();
28 +?>
29 +<form id="wppm_get_project_tasks_frm" name="wppm_get_project_tasks_frm">
30 + <div class="table-responsive">
31 + <table id="tbl_project_tasks" class="table table-striped table-bordered" cellspacing="0" width="100%">
32 + <thead>
33 + <tr>
34 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Task id','taskbuilder');?> </th>
35 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>" <?php echo esc_attr($appearance_settings['list-header-text-color'])?>><?php echo esc_html_e('Task Name','taskbuilder');?> </th>
36 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Task Status','taskbuilder');?> </th>
37 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Task Priority','taskbuilder');?> </th>
38 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Assign To','taskbuilder');?> </th>
39 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Start Date','taskbuilder');?> </th>
40 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('End Date','taskbuilder');?> </th>
41 + </tr>
42 + </thead>
43 + <tbody>
44 + <?php
45 + if(!empty($tasks)){
46 + foreach ($tasks as $task) {
47 + $status = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wppm_task_statuses WHERE id = %d", (int) $task->status ) );
48 + $users = array();
49 + if($task->users != null){
50 + $users = explode(",",$task->users);
51 + }
52 + if(!empty($task->priority)){
53 + $priority = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wppm_task_priorities WHERE id = %d", (int) $task->priority));
54 + }
55 + if(!empty($task->project)){
56 + $project = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}wppm_project WHERE id = %d",(int) $task->project));
57 + }
58 + if($wppm_task_time == 1){
59 + $task_start_date = $task->start_date;
60 + $task_end_date = $task->end_date;
61 + } elseif($wppm_task_time == 0){
62 + $tsDate = new DateTime($task->start_date);
63 + $teDate = new DateTime($task->end_date);
64 + $task_start_date = $tsDate->format('Y-m-d');
65 + $task_end_date = $teDate->format('Y-m-d');
66 + }
67 + ?>
68 + <tr onclick= "wppm_open_project_tasks(<?php echo esc_attr($task->id) ?>,<?php echo esc_attr($task->project) ?>)" >
69 + <td>
70 + <?php echo esc_html($task->id); ?>
71 + </td>
72 + <td>
73 + <?php echo esc_html($task->task_name); ?>
74 + </td>
75 + <td>
76 + <span class="wppm_td_task_status" style="background-color:<?php echo (isset($status->bg_color))? esc_attr($status->bg_color):"";?>; color: <?php echo (isset($status->color))? esc_attr($status->color):""; ?>"><?php echo (isset($status->name))? esc_html($status->name):"" ?></span>
77 + </td>
78 + <td>
79 + <span class ="wppm_td_task_priority" style="background-color:<?php echo (isset($priority->bg_color))? esc_attr($priority->bg_color):"";?>; color: <?php echo (isset($priority->color))? esc_attr($priority->color):""; ?>"><?php echo (isset($priority->name))? esc_html($priority->name):"" ?></span>
80 + </td>
81 + <td>
82 + <?php
83 + $i=0;
84 + if(!empty($users)){
85 + foreach($users as $user){
86 + $i++;
87 + if( $i <= 4 ){
88 + $userdata = get_userdata( $user );
89 + if($userdata){
90 + ?>
91 + <a href="#" title="<?php echo esc_attr($userdata->display_name) ?>">
92 + <?php echo (get_avatar($userdata->ID, 25, "mysteryman"))?>
93 + </a> <?php
94 + }
95 + }
96 + }
97 + } else {
98 + esc_html_e('None','taskbuilder');
99 + }
100 + if($i > 4){
101 + ?>
102 + <a href="#" class="wppm_avatar">
103 + <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
104 + </a>
105 + <?php } ?>
106 + </td>
107 + <td>
108 + <?php echo (isset($task_start_date))? esc_html($task_start_date):""?>
109 + </td>
110 + <td>
111 + <?php echo (isset($task_end_date))? esc_html($task_end_date):""?>
112 + </td>
113 + </tr>
114 + <?php }
115 + }
116 + ?>
117 + </tbody>
118 + </table>
119 + </div>
120 +</form>
121 +<style>
122 + #tbl_project_tasks tr:nth-child(even){
123 + background-color:<?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>;
124 + color:<?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>;
125 + }
126 + #tbl_project_tasks tr:nth-child(odd){
127 + background-color:<?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>;
128 + color:<?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>;
129 + }
130 + #tbl_project_tasks tr:hover{
131 + background-color:<?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>;
132 + }
133 + #tbl_project_tasks tr:hover td{
134 + color: <?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>;
135 + }
136 +</style>
137 +<script type="text/javascript">
138 + jQuery(document).ready(function() {
139 + var table = jQuery('#tbl_project_tasks').DataTable({
140 + "aLengthMenu": [[4, 8, 12, -1], [4, 8, 12, "All"]],
141 + "columnDefs": [
142 + { orderable: false, targets: -1 }
143 + ]
144 + });
145 + jQuery('div.dataTables_filter input', table.table().container()).focus();
146 +} );
147 +</script>
148 +<?php
149 +$body = ob_get_clean();
150 +ob_start();
151 +?>
152 +<div class="col-md-3" style="text-align: right;">
153 + <button type="button" class="btn <?php echo (isset($project_id))?'wppm_popup_close':'wppm_task_popup_close'?>" onclick="<?php echo (isset($project_id))?'wppm_modal_close();':'wppm_task_modal_close();'?>"><?php echo esc_html_e('Close','taskbuilder');?></button>
154 +</div><?php
155 +
156 +$footer = ob_get_clean();
157 +
158 +$response = array(
159 + 'body' => $body,
160 + 'footer' => $footer
161 +);
162 +
163 163 echo wp_json_encode($response);