PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 1.0.8
Taskbuilder – Project Management & Task Management Tool With Kanban Board v1.0.8
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 1.0.6 All 57 releases
taskbuilder / includes / class-wppm-functions.php

class-wppm-functions.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 1.0.8, at includes/class-wppm-functions.php

714 lines 30.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit; // Exit if accessed directly
4 }
5 if ( ! class_exists( 'WPPM_Functions' ) ) :
6 final class WPPM_Functions {
7 // Array sanitization
8 public static function sanitize_array($array) {
9 if(!empty($array)){
10 foreach ( $array as $key => $value ) {
11 if ( is_array( $value ) ) {
12 $value = $this->sanitize_array($value);
13 }
14 else {
15 $value = sanitize_text_field( $value );
16 }
17 }
18 }
19 return $array;
20 }
21
22 public static function create_project($args){
23 global $wpdb,$current_user;
24 $values = array(
25 'created_by'=>$current_user->ID,
26 'project_name'=>$args['name'],
27 'description'=>isset($args['wppm_proj_description']) ? $args['wppm_proj_description']:"",
28 'start_date'=>isset($args['wppm_start_date']) ?$args['wppm_start_date']:"",
29 'end_date'=>isset($args['wppm_end_date'])? $args['wppm_end_date']:"",
30 'status'=>isset($args['status'])? $args['status']:"1",
31 'cat_id'=>isset($args['wppm_create_project_category']) ? $args['wppm_create_project_category']:"",
32 'users'=>isset($args['user_names']) ? implode(",",$args['user_names']):"",
33 'date_created'=>isset($args['date_created'])? $args['date_created']:date("Y-m-d h:i:sa"),
34 );
35 $wpdb->insert($wpdb->prefix .'wppm_project', $values);
36 $project_id = $wpdb->insert_id;
37 return $project_id;
38 }
39
40 public static function create_task($args){
41 global $wpdb,$current_user,$wppmfunction;
42 $values = array(
43 'created_by'=>(isset($args['created_by'])) ? $args['created_by']: $current_user->ID,
44 'task_name'=>$args['name'],
45 'description'=>(isset($args['wppm_task_description']))?$args['wppm_task_description']:"",
46 'project'=>(isset($args['wppm_task_project']))?$args['wppm_task_project']:"",
47 'start_date'=>(isset($args['wppm_task_start_date']))?$args['wppm_task_start_date']:"",
48 'end_date'=>(isset($args['wppm_task_end_date']))?$args['wppm_task_end_date']:"",
49 'status'=>(isset($args['status']))?$args['status']:"1",
50 'priority'=>(isset($args['wppm_create_task_priority']))?$args['wppm_create_task_priority']:"",
51 'users'=>(!empty($args['user_names']))?implode(",",$args['user_names']):"",
52 'date_created'=>isset($args['date_created'])? $args['date_created']:date("Y-m-d h:i:sa"),
53 'task_auth_code'=> $wppmfunction->getRandomString(10),
54 'active'=>1
55 );
56 $wpdb->insert($wpdb->prefix .'wppm_task', $values);
57 $task_id = $wpdb->insert_id;
58 return $task_id;
59 }
60
61 public static function create_checklist($args){
62 global $wpdb,$current_user,$wppmfunction;
63 $values = array(
64 'task_id'=>$args['task_id'],
65 'checklist_name' => $args['checklist_name'],
66 'created_by'=> $args['created_by']
67 );
68 $wpdb->insert($wpdb->prefix .'wppm_checklist', $values);
69 $checklist_id = $wpdb->insert_id;
70 return $checklist_id;
71 }
72
73 public static function create_checklist_item($args){
74 global $wpdb,$current_user,$wppmfunction;
75 $chk_items_values = array(
76 'checklist_id' => $args['checklist_id'],
77 'item_name' => $args['item_name'],
78 'checked'=>$args['checked'],
79 'members'=>$args['members'],
80 'due_date'=> $args['due_date']
81 );
82 $wpdb->insert($wpdb->prefix .'wppm_checklist_items', $chk_items_values);
83 $checklist_item_id = $wpdb->insert_id;
84 return $checklist_item_id;
85 }
86
87 public static function wppm_submit_task_comment($args){
88 global $wpdb;
89 $wpdb->insert($wpdb->prefix.'wppm_task_comment',$args);
90 $comment_id = $wpdb->insert_id;
91 return $comment_id;
92 }
93
94 // Random string
95 public static function getRandomString($length = 8) {
96 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
97 $string = '';
98 for ($i = 0; $i < $length; $i++) {
99 $string .= $characters[mt_rand(0, strlen($characters) - 1)];
100 }
101 return $string;
102 }
103
104 public static function wppm_get_auth_code($id){
105 global $wpdb;
106 $auth_code = $wpdb->get_var( "SELECT task_auth_code FROM {$wpdb->prefix}wppm_task where id=$id" );
107 $auth_code = isset($auth_code) ? $auth_code : "";
108 return $auth_code;
109 }
110
111 public static function get_task_fields($task_id,$select_field){
112 global $wpdb;
113 $task_field_value = '';
114 if (apply_filters('wppm_get_select_field',true,$task_id,$select_field)) {
115 $get_task_field_value = $wpdb->get_var(" SELECT $select_field FROM {$wpdb->prefix}wppm_task WHERE id='$task_id' ");
116 $task_field_value = $get_task_field_value ? $get_task_field_value : '';
117 }
118 return stripslashes($task_field_value);
119 }
120
121 public static function get_project_fields($proj_id,$select_field){
122 global $wpdb;
123 $project_field_value = '';
124 if (apply_filters('wppm_get_select_proj_field',true,$proj_id,$select_field)) {
125 $get_project_field_value = $wpdb->get_var(" SELECT $select_field FROM {$wpdb->prefix}wppm_project WHERE id='$proj_id' ");
126 $project_field_value = $get_project_field_value ? $get_project_field_value : '';
127 }
128 return stripslashes($project_field_value);
129 }
130
131 public function get_task($task_id){
132 global $wpdb;
133 $task_data = array();
134 $task = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task WHERE id='$task_id' ");
135 if( $task ){
136 $task_data = json_decode(json_encode($task), true);
137 }
138 return $task_data;
139 }
140
141 public function get_checklist($task_id){
142 global $wpdb;
143 $checklist_data = array();
144 $checklist = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_checklist WHERE task_id='$task_id' ");
145 if( $checklist ){
146 $checklist_data = json_decode(json_encode($checklist), true);
147 }
148 return $checklist_data;
149 }
150
151 public function get_checklist_items($checklist_id){
152 global $wpdb;
153 $checklist_items_data = array();
154 $checklist_items = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_checklist_items WHERE checklist_id='$checklist_id' ");
155 if( $checklist_items ){
156 $checklist_items_data = json_decode(json_encode($checklist_items), true);
157 }
158 return $checklist_items_data;
159 }
160
161 public function get_project($project_id){
162 global $wpdb;
163 $project_data = array();
164 $project = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project WHERE id='$project_id' ");
165 if( $project ){
166 $project_data = json_decode(json_encode($project), true);
167 }
168 return $project_data;
169 }
170
171 public function get_attachment($attachment_id){
172 global $wpdb;
173 $attachment_data = array();
174 $attachment = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_attachments WHERE id='$attachment_id' ");
175 if( $attachment ){
176 $attachment_data = json_decode(json_encode($attachment), true);
177 }
178 return $attachment_data;
179 }
180
181 public function has_permission($permission, $task_id){
182 global $current_user,$wppmfunction,$wpdb;
183 if(empty($comment_id)){
184 $comment_id = 0;
185 }
186 $task_data = $wppmfunction->get_task($task_id);
187 $task_comment = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = $task_id AND id = $comment_id");
188
189 if(!empty($task_data['project'])){
190 $project_id = $task_data['project'];
191 $project_user_role = $wpdb->get_var("SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = $project_id AND user_id = $current_user->ID");
192 }
193 $response = false;
194 $flag = false;
195 if(!empty($task_data)){
196 $co_worker = $task_data['users'];
197 $co_worker_array = explode(",",$co_worker);
198 }
199 if((!empty($project_user_role)) && ($project_user_role == 1)){
200 $flag= true;
201 }
202 switch ($permission) {
203 case 'change_status':
204 case 'view_task':
205 ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) )|| ($current_user->ID == $task_data['created_by']) || ($flag==true) ? $response = true: $response = false;
206 break;
207 case 'change_task_details':
208 case 'delete_task':
209 case 'clone_task':
210 (($flag==true) || ($current_user->ID == $task_data['created_by'])) ? $response = true: $response = false;
211 break;
212 case 'assign_task_users':
213 case 'change_raised_by':
214 (($flag==true) ? $response = true: $response = false);
215 break;
216 }
217 return apply_filters( 'wppm_has_permission', $response, $task_id, $permission );
218 }
219
220 public function has_comment_permission($permission, $task_id,$comment_id){
221 global $current_user,$wppmfunction,$wpdb;
222 if(empty($comment_id)){
223 $comment_id = 0;
224 }
225 $task_data = $wppmfunction->get_task($task_id);
226 $project_user = array();
227 $task_comment = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = $task_id AND id = $comment_id");
228
229 if(isset($task_data['project'])){
230 $project_id = $task_data['project'];
231 $project_user = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = $project_id AND user_id = $current_user->ID");
232 }
233 $response = false;
234 $flag = false;
235 if(!empty($task_data)){
236 $co_worker = $task_data['users'];
237 $co_worker_array = explode(",",$co_worker);
238 }
239 if((!empty($project_user)) && ($project_user->role_id == 1)){
240 $flag= true;
241 }
242 switch ($permission) {
243 case 'delete_task_thread':
244 case 'edit_task_comment':
245 (($flag==true) || ($current_user->ID == $task_comment->created_by)) ? $response = true: $response = false;
246 break;
247 }
248 return apply_filters( 'wppm_has_comment_permission', $response, $task_id, $comment_id, $permission );
249 }
250
251 public function has_project_permission($permission,$project_id){
252 global $current_user,$wppmfunction,$wpdb ;
253 $project_data = $wppmfunction->get_project($project_id);
254 $project_user = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = $project_id AND user_id = $current_user->ID");
255 $user = wp_get_current_user();
256 if(!empty($project_data)){
257 $co_worker = $project_data['users'];
258 $co_worker_array = explode(",",$co_worker);
259 }
260 switch ($permission) {
261 case 'view_project':
262 ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) )? $response = true: $response = false;
263 break;
264 case 'change_project_status':
265 case 'assign_project_users':
266 case 'change_project_raised_by':
267 case 'change_project_details':
268 case 'delete_project':
269 $flag = false;
270 if( (!empty($project_user)) && ($project_user->role_id == 1)){
271 $flag = true;
272 }
273 ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array) && $flag==true)) ? $response = true: $response = false;
274 break;
275 }
276 return apply_filters( 'wppm_has_project_permission', $response, $project_id, $permission );
277 }
278
279 public function change_status($task_id, $status_id){
280 global $wpdb,$wppmfunction;
281 $task_data = $wppmfunction->get_task($task_id);
282 $prev_status = $task_data['status'];
283 $values=array(
284 'status'=>$status_id
285 );
286 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
287 $old_task_status_meta = $wppmfunction->get_task_meta($task_id,'old_task_status',true);
288 if(!empty($old_task_status_meta)){
289 $wppmfunction->delete_task_meta($task_id,'old_task_status');
290 }
291 $wppmfunction->add_task_meta($task_id,'old_task_status',$prev_status);
292
293 do_action('wppm_set_change_task_status', $task_id, $status_id, $prev_status);
294 }
295
296 public function change_raised_by($task_id, $user_id){
297 global $wpdb;
298 $values=array(
299 'created_by'=>$user_id
300 );
301 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
302 }
303
304 public function change_task_label($task_id, $task_label){
305 global $wpdb;
306 $values=array(
307 'task_name'=>stripslashes($task_label)
308 );
309 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
310 }
311
312 public function change_task_project_label($task_id, $project_label){
313 global $wpdb;
314 $values=array(
315 'project'=>$project_label
316 );
317 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
318 }
319
320 public function change_start_date($task_id, $task_start_date){
321 global $wpdb;
322 $values=array(
323 'start_date'=>$task_start_date
324 );
325 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
326 }
327
328 public function change_end_date($task_id, $task_end_date){
329 global $wpdb;
330 $values=array(
331 'end_date'=>$task_end_date
332 );
333 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
334 }
335
336 public function change_priority($task_id, $task_priority){
337 global $wpdb;
338 $values=array(
339 'priority'=>$task_priority
340 );
341 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
342 }
343
344 public function change_description($task_id, $task_description){
345 global $wpdb;
346 $values=array(
347 'description'=>$task_description
348 );
349 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
350 }
351
352 public function get_task_comment($comment_id){
353 global $wpdb;
354 $task_comment_data = array();
355 $task_comment = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE id=$comment_id ");
356 if( $task_comment ){
357 $task_comment_data = json_decode(json_encode($task_comment), true);
358 }
359 return $task_comment_data;
360 }
361
362 public function change_task_comment($comment_id,$comment_body){
363 global $wpdb;
364 $values=array(
365 'body'=>$comment_body
366 );
367 $wpdb->update($wpdb->prefix.'wppm_task_comment', $values, array('id'=>$comment_id));
368 }
369 public function change_project_label($project_id,$project_label){
370 global $wpdb;
371 $values=array(
372 'project_name'=>$project_label
373 );
374 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
375 }
376
377 public function change_project_start_date($project_id, $project_start_date){
378 global $wpdb;
379 $values=array(
380 'start_date'=>$project_start_date
381 );
382 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
383 }
384
385 public function change_project_end_date($project_id, $project_end_date){
386 global $wpdb;
387 $values=array(
388 'end_date'=>$project_end_date
389 );
390 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
391 }
392
393 public function change_category($project_id, $project_category){
394 global $wpdb;
395 $values=array(
396 'cat_id'=>$project_category
397 );
398 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
399 }
400
401 public function change_project_description($project_id, $project_description){
402 global $wpdb;
403 $values=array(
404 'description'=>$project_description
405 );
406 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
407 }
408
409 public function change_project_status($project_id,$status_id){
410 global $wpdb,$wppmfunction;
411 $proj_data = $wppmfunction->get_project($project_id);
412 $prev_status = $proj_data['status'];
413 $values=array(
414 'status'=>$status_id
415 );
416 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
417 $old_project_status_meta = $wppmfunction->get_project_meta($project_id,'old_project_status',true);
418 if(!empty($old_project_status_meta)){
419 $wppmfunction->delete_project_meta($project_id,'old_project_status');
420 }
421 $wppmfunction->add_project_meta($project_id,'old_project_status',$prev_status);
422 do_action('wppm_set_change_project_status', $project_id, $status_id, $prev_status);
423 }
424
425 public function change_project_raised_by($project_id, $user_id){
426 global $wpdb;
427 $values=array(
428 'created_by'=>$user_id
429 );
430 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
431 }
432
433 // Email Notification types
434 public function get_email_notification_types(){
435 $notification_types = array(
436 'new_project'=>__('New Project','taskbuilder'),
437 'new_task'=>__('New Task','taskbuilder'),
438 'change_project_status' => __('Change Project Status','taskbuilder'),
439 'change_task_status' => __('Change Task Status','taskbuilder'),
440 'change_project_assign_users' => __('Change Project Assign Users','taskbuilder'),
441 'change_task_assign_users' => __('Change Task Assign Users','taskbuilder'),
442 'new_discussion' => __('New Comment','taskbuilder'),
443 );
444 return apply_filters('wppm_en_types',$notification_types);
445 }
446
447 public function check_rtl(){
448 $rtl_locale = array('ar','ary','ckb','haz','he_IL','fa_IR','ps','ur','ug_CN');
449 if(in_array(get_locale(),$rtl_locale)){
450 return 'rtl';
451 }else{
452 return 'ltr';
453 }
454 }
455
456 public function add_project_meta($proj_id,$meta_key,$meta_value){
457 global $wpdb;
458 $wpdb->insert(
459 $wpdb->prefix . 'wppm_project_meta',
460 array(
461 'project_id' => $proj_id,
462 'meta_key' => $meta_key,
463 'meta_value' =>$meta_value
464 ));
465 }
466
467 public function add_task_meta($task_id,$meta_key,$meta_value){
468 global $wpdb;
469 $wpdb->insert(
470 $wpdb->prefix . 'wppm_task_meta',
471 array(
472 'task_id' => $task_id,
473 'meta_key' => $meta_key,
474 'meta_value' =>$meta_value
475 ));
476 }
477
478 public function get_project_meta($project_id,$meta_key,$flag = false){
479 global $wpdb,$wppmfunction;
480 if($flag){
481 $get_meta = $wpdb->get_var("SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = '$project_id' AND meta_key = '$meta_key' ");
482 $project_meta = stripslashes($get_meta) ? stripslashes($get_meta) : '';
483
484 } else {
485 $project_meta = array();
486 $results = $wpdb->get_results("SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = '$project_id' AND meta_key = '$meta_key'");
487 if( (!empty($results)) ){
488 foreach ($results as $result) {
489 if(!empty($result)){
490 $project_meta[]= stripslashes($result->meta_value);
491 }
492 }
493 }
494 }
495 return $project_meta;
496 }
497
498 public function get_task_meta($task_id,$meta_key,$flag = false){
499 global $wpdb,$wppmfunction;
500 if($flag){
501 $get_meta = $wpdb->get_var("SELECT meta_value FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = '$task_id' AND meta_key = '$meta_key' ");
502 $task_meta = stripslashes($get_meta) ? stripslashes($get_meta) : '';
503
504 } else {
505 $task_meta = array();
506 $results = $wpdb->get_results("SELECT meta_value FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = '$task_id' AND meta_key = '$meta_key'");
507 if( (!empty($results)) ){
508 foreach ($results as $result) {
509 if(!empty($result)){
510 $task_meta[]= stripslashes($result->meta_value);
511 }
512 }
513 }
514 }
515 return $task_meta;
516 }
517
518 public function get_previously_assigned_users($project_id){
519 global $wpdb,$wppmfunction;
520 $prev_assigned_users = $wppmfunction->get_project_meta($project_id,'prev_assigned_users');
521 $user_emails = array();
522 if(!empty($prev_assigned_users)){
523 foreach ($prev_assigned_users as $user) {
524 $userdata = get_userdata($user);
525 $user_emails[] = $userdata->user_email;
526
527 }
528 }
529 return apply_filters( 'wppm_get_prev_assigned_users_emails', $user_emails ,$project_id);
530 }
531
532 public function get_previously_assigned_task_users($task_id){
533 global $wpdb,$wppmfunction;
534 $prev_assigned_task_users = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');
535 $user_emails = array();
536 if(!empty($prev_assigned_task_users)){
537 foreach ($prev_assigned_task_users as $user) {
538 if(!empty($user)){
539 $userdata = get_userdata($user);
540 $user_emails[] = $userdata->user_email;
541 }
542 }
543 }
544 return apply_filters( 'wppm_get_prev_assigned_task_users_emails', $user_emails ,$task_id);
545 }
546 /**
547 * Update project meta for project
548 */
549 function update_project_meta($project_id ,$meta_key ,$meta_value){
550 global $wpdb;
551 $results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = '$project_id' AND meta_key = $meta_key");
552 $wpdb->update($wpdb->prefix.'wppm_project_meta', $meta_value, array('project_id'=>$project_id,'meta_key' => $meta_key));
553 }
554
555 /**
556 * Update task meta for task
557 */
558 function update_task_meta($task_id ,$meta_key ,$meta_value){
559 global $wpdb;
560 $results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = '$task_id' AND meta_key = $meta_key");
561 $wpdb->update($wpdb->prefix.'wppm_task_meta', $meta_value, array('task_id'=>$task_id,'meta_key' => $meta_key));
562 }
563
564 function delete_project_meta($project_id ,$meta_key){
565 global $wpdb;
566 $wpdb->delete( $wpdb->prefix.'wppm_project_meta', array( 'project_id' => $project_id,'meta_key'=>$meta_key) );
567 }
568
569 function delete_task_meta($task_id ,$meta_key){
570 global $wpdb;
571 $wpdb->delete( $wpdb->prefix.'wppm_task_meta', array( 'task_id' => $task_id,'meta_key'=>$meta_key) );
572 }
573
574 public function replace_macro($str,$project_id){
575 include WPPM_ABSPATH . 'includes/replace_macro.php';
576 return $str;
577 }
578
579 public function replace_task_macro($str,$task_id){
580 include WPPM_ABSPATH . 'includes/replace_task_macro.php';
581 return $str;
582 }
583
584 public function get_old_project_status_name($id){
585 global $wppmfunction, $wpdb;
586 $old_project_status = $wppmfunction->get_project_meta($id,'old_project_status',true);
587 $status_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_project_statuses WHERE id ='$old_project_status'");
588 return $status_name;
589 }
590
591 public function get_new_project_status_name($status_id){
592 global $wpdb;
593 $status_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_project_statuses WHERE id ='$status_id'");
594 return $status_name;
595 }
596
597 public function get_old_task_status_name($task_id){
598 global $wppmfunction, $wpdb;
599 $old_task_status = $wppmfunction->get_task_meta($task_id,'old_task_status',true);
600 $status_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id ='$old_task_status'");
601 return $status_name;
602 }
603
604 public function get_new_task_status_name($status_id){
605 global $wpdb;
606 $status_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id ='$status_id'");
607 return $status_name;
608 }
609
610 public function get_project_category_name($cat_id){
611 global $wpdb;
612 $cat_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_project_categories WHERE id ='$cat_id'");
613 return $cat_name;
614 }
615
616 public function get_project_assigned_users_names($project_id){
617 global $wppmfunction;
618 $wppm_project_data = $wppmfunction->get_project($project_id);
619 if(!empty($wppm_project_data['users'])){
620 $wppm_project_assign_users_array = explode(",", $wppm_project_data['users']);
621 }else{
622 $wppm_project_assign_users_array = array();
623 }
624 $users_names = array();
625 if(!empty($wppm_project_assign_users_array)){
626 foreach ($wppm_project_assign_users_array as $user_id) {
627 if(!empty($user_id)){
628 $userdata = get_userdata( $user_id );
629 if(!empty($userdata)){
630 $users_names[] = $userdata->display_name;
631 }
632 }
633 }
634 }
635 return implode(', ', $users_names);
636 }
637
638 public function get_task_assigned_users_names($task_id){
639 global $wppmfunction;
640 $wppm_task_data = $wppmfunction->get_task($task_id);
641 $wppm_task_assign_users_array = explode(",", $wppm_task_data['users']);
642 $users_names = array();
643 if(!empty($wppm_task_assign_users_array)){
644 foreach ($wppm_task_assign_users_array as $user_id) {
645 if(!empty($user_id)){
646 $userdata = get_userdata( $user_id );
647 if(!empty($userdata)){
648 $users_names[] = $userdata->display_name;
649 }
650 }
651 }
652 }
653 return implode(', ', $users_names);
654 }
655
656 public function get_project_previously_assigned_users_names($project_id){
657 global $wppmfunction;
658 $wppm_project_assign_users = $wppmfunction->get_project_meta($project_id,'prev_assigned_users');
659 $users_names = array();
660 if(!empty($wppm_project_assign_users)){
661 foreach ($wppm_project_assign_users as $user) {
662 if(!empty($user)){
663 $userdata = get_userdata( $user );
664 $users_names[] = $userdata->display_name;
665 }
666 }
667 }
668 return implode(', ', $users_names);
669 }
670
671 public function get_task_previously_assigned_users_names($task_id){
672 global $wppmfunction;
673 $wppm_task_assign_users = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');
674 $users_names = array();
675 if(!empty($wppm_task_assign_users)){
676 foreach ($wppm_task_assign_users as $user) {
677 if(!empty($user)){
678 $userdata = get_userdata( $user );
679 $users_names[] = $userdata->display_name;
680 }
681 }
682 }
683 return implode(', ', $users_names);
684 }
685
686 public function get_task_priority_name($priority){
687 global $wpdb;
688 $priority_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_task_priorities WHERE id ='$priority'");
689 return $priority_name;
690 }
691
692 public function get_last_comment_user_name($task_id){
693 global $wpdb;
694 $task_comment_creator = $wpdb->get_var("SELECT created_by FROM {$wpdb->prefix}wppm_task_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_task_comment) AND task_id = $task_id)");
695 if(!empty($task_comment_creator)){
696 $user = get_userdata( $task_comment_creator );
697 return $user->display_name;
698 }
699 }
700
701 public function get_last_comment_body($task_id){
702 global $wpdb;
703 $task_comment = $wpdb->get_var("SELECT body FROM {$wpdb->prefix}wppm_task_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_task_comment) AND task_id = $task_id)");
704 return $task_comment;
705 }
706
707 public function create_duplicate_task($ptask_id, $project_id){
708 include WPPM_ABSPATH . 'includes/admin/tasks/open_task/wppm_set_clone_task.php';
709 }
710 }
711
712
713 endif;
714 $GLOBALS['wppmfunction'] = new WPPM_Functions();