PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 3.0.7
Taskbuilder – Project Management & Task Management Tool With Kanban Board v3.0.7
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 / replace_macro.php

replace_macro.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 3.0.7, at includes/replace_macro.php

121 lines 4.9 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
6 global $current_user, $wppmfunction,$wpdb;
7 $current_user_data = get_userdata($current_user->ID);
8 $project_id = intval(sanitize_text_field($project_id));
9 $wppm_project_data = $wppmfunction->get_project($project_id);
10 $orderby_sql = esc_sql(sanitize_sql_orderby( "id DESC" ));
11 $wppm_proj_comment = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_comment where proj_id='".esc_sql($project_id)."' ORDER BY $orderby_sql LIMIT 1;");
12 $attachments = array();
13 $auth_id = $wppmfunction->get_project_meta($project_id,'project_auth_code',true);
14 if(!empty($wppm_proj_comment)){
15 $attachments = explode(',',$wppm_proj_comment->attachment_ids);
16 }
17 preg_match_all("/{[^}]*}/" ,$str,$matches);
18 $matches = array_unique($matches[0]);
19 $flag =false;
20 foreach($matches as $match){
21 switch($match){
22 //Current User Name
23 case '{user_name}':
24 $str = preg_replace('/{user_name}/', $current_user_data->display_name, $str);
25 break;
26 // Project ID
27 case '{project_id}':
28 $str = preg_replace('/{project_id}/', $project_id, $str);
29 break;
30 // Old project Status
31 case '{old_project_status}':
32 $str = preg_replace('/{old_project_status}/', $this->get_old_project_status_name($project_id), $str);
33 break;
34 // Project Status
35 case '{new_project_status}':
36 $str = preg_replace('/{new_project_status}/', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);
37 break;
38 // Project Status
39 case '{project_status}':
40 $str = preg_replace('/{project_status}/', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);
41 break;
42 // Project Category
43 case '{project_category}':
44 if(!empty($wppm_project_data['cat_id'])){
45 $str = preg_replace('/{project_category}/', $this->get_project_category_name(sanitize_text_field($wppm_project_data['cat_id'])), $str);
46 }else{
47 $str = "";
48 }
49
50 break;
51 // Project Name
52 case '{project_name}':
53 $str = preg_replace('/{project_name}/', sanitize_text_field($wppm_project_data['project_name']), $str);
54 break;
55 // Project Start Date
56 case '{project_start_date}':
57 $str = preg_replace('/{project_start_date}/', sanitize_text_field($wppm_project_data['start_date']), $str);
58 break;
59 // Project End Date
60 case '{project_end_date}':
61 $str = preg_replace('/{project_end_date}/', sanitize_text_field($wppm_project_data['end_date']), $str);
62 break;
63 // Assigned Users
64 case '{project_assigned_users}':
65 $assigned_users = $this->get_project_assigned_users_names($project_id);
66 $str = preg_replace('/{project_assigned_users}/', sanitize_text_field($assigned_users), $str);
67 break;
68 // Previously Assigned users
69 case '{previously_assigned_project_users}':
70 $previously_assigned_users = $this->get_project_previously_assigned_users_names($project_id);
71 $str = preg_replace('/{previously_assigned_project_users}/', sanitize_text_field($previously_assigned_users), $str);
72 break;
73 // Date created
74 case '{date_created}':
75 $str = preg_replace('/{date_created}/', get_date_from_gmt(sanitize_text_field($wppm_project_data['date_created'] )), $str);
76 break;
77 //Last comment user name
78 case '{last_proj_comment_user_name}':
79 $str = preg_replace('/{last_proj_comment_user_name}/', $this->get_last_comment_proj_user_name($project_id), $str);
80 break;
81 //Last comment body
82 case '{proj_comment_body}':
83 $flag= true;
84 if(!empty($this->get_proj_comment_body($project_id))){
85 $str = preg_replace('/{proj_comment_body}/', $this->get_proj_comment_body($project_id), $str);
86 } else{
87 $str = "";
88 }
89 break;
90
91 // Project Description
92 case '{project_description}':
93 $str = preg_replace('/{project_description}/', sanitize_text_field($wppm_project_data['description']), $str);
94 }
95 }
96 if($flag == true){
97 if(!empty($attachments)){
98 foreach($attachments as $attach_id){
99 $upload_dir = wp_upload_dir();
100 $attach_id = esc_sql($attach_id);
101 $attachment = $wpdb->get_row("select * from {$wpdb->prefix}wppm_attachments where id='".$attach_id."'");
102 if(!empty($attachment)){
103 $updated_time = sanitize_text_field($attachment->date_created);
104 $time = strtotime(sanitize_text_field($updated_time));
105 $month = date("m",$time);
106 $year = date("Y",$time);
107 $findStr = ".txt";
108 $attachment_name = preg_replace('/' . $findStr . '/', "", sanitize_file_name($attachment->name), 1);
109 $file_url = $upload_dir['basedir'] . '/wppm/'.'/'.$year.'/'.$month.'/'. $attachment_name;
110 $download_url = home_url('/').'?wppm_attachment='.sanitize_text_field($attachment->id).'&pid='.sanitize_text_field($project_id).'&pac='.sanitize_text_field($auth_id);
111 $attach_url[] = '<a style="text-decoration:none;" href="'.$download_url.'" target="_blank">'.sanitize_file_name($attachment->file_name).'</a>';
112 }else{
113 $attach_url= array();
114 }
115 }
116 $str = $str.implode("<br>",$attach_url);
117 }
118 }
119 $str = apply_filters('wppm_replace_macro',$str,$project_id);
120
121