PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 4.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v4.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 1.0.6 All 57 releases
← All changes | includes/replace_macro.php +59 -3 1.0.54.0.6 View file →
@@ -6,10 +6,20 @@
6 6 global $current_user, $wppmfunction,$wpdb;
7 7 $current_user_data = get_userdata($current_user->ID);
8 8 $project_id = intval(sanitize_text_field($project_id));
9 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 +}
10 17 preg_match_all("/{[^}]*}/" ,$str,$matches);
11 18 $matches = array_unique($matches[0]);
19 +$flag =false;
20 +$page_setting = get_option( 'wppm-page-settings' );
21 +$view = $page_setting['project-url-page'];
12 22 foreach($matches as $match){
13 23 switch($match){
14 24 //Current User Name
15 25 case '{user_name}':
@@ -32,9 +42,14 @@
32 42 $str = preg_replace('/{project_status}/', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);
33 43 break;
34 44 // Project Category
35 45 case '{project_category}':
36 - $str = preg_replace('/{project_category}/', $this->get_project_category_name(sanitize_text_field($wppm_project_data['cat_id'])), $str);
46 + if(!empty($wppm_project_data['cat_id'])){
47 + $str = preg_replace('/{project_category}/', $this->get_project_category_name(sanitize_text_field($wppm_project_data['cat_id'])), $str);
48 + }else{
49 + $str = "";
50 + }
51 +
37 52 break;
38 53 // Project Name
39 54 case '{project_name}':
40 55 $str = preg_replace('/{project_name}/', sanitize_text_field($wppm_project_data['project_name']), $str);
@@ -60,13 +75,54 @@
60 75 // Date created
61 76 case '{date_created}':
62 77 $str = preg_replace('/{date_created}/', get_date_from_gmt(sanitize_text_field($wppm_project_data['date_created'] )), $str);
63 78 break;
79 + //Last comment user name
80 + case '{last_proj_comment_user_name}':
81 + $str = preg_replace('/{last_proj_comment_user_name}/', $this->get_last_comment_proj_user_name($project_id), $str);
82 + break;
83 + //Last comment body
84 + case '{proj_comment_body}':
85 + $flag= true;
86 + if(!empty($this->get_proj_comment_body($project_id))){
87 + $str = preg_replace('/{proj_comment_body}/', $this->get_proj_comment_body($project_id), $str);
88 + } else{
89 + $str = "";
90 + }
91 + break;
92 +
64 93 // Project Description
65 94 case '{project_description}':
66 - $str = preg_replace('/{project_description}/', sanitize_text_field($wppm_project_data['description']), $str);
67 -
95 + $str = preg_replace('/{project_description}/', sanitize_text_field($wppm_project_data['description']), $str);
96 + break;
97 + case '{project_url}':
98 + $project_url = '<a class="wppm_link" href="' . $this->get_project_url($project_id,$view) . '" target="_blank">' . $this->get_project_url($project_id,$view) . '</a>';
99 + $str = preg_replace('/{project_url}/', $project_url, $str);
100 + break;
68 101
102 + }
103 +}
104 +if($flag == true){
105 + if(!empty($attachments)){
106 + foreach($attachments as $attach_id){
107 + $upload_dir = wp_upload_dir();
108 + $attach_id = esc_sql($attach_id);
109 + $attachment = $wpdb->get_row("select * from {$wpdb->prefix}wppm_attachments where id='".$attach_id."'");
110 + if(!empty($attachment)){
111 + $updated_time = sanitize_text_field($attachment->date_created);
112 + $time = strtotime(sanitize_text_field($updated_time));
113 + $month = date("m",$time);
114 + $year = date("Y",$time);
115 + $findStr = ".txt";
116 + $attachment_name = preg_replace('/' . $findStr . '/', "", sanitize_file_name($attachment->name), 1);
117 + $file_url = $upload_dir['basedir'] . '/wppm/'.'/'.$year.'/'.$month.'/'. $attachment_name;
118 + $download_url = home_url('/').'?wppm_attachment='.sanitize_text_field($attachment->id).'&pid='.sanitize_text_field($project_id).'&pac='.sanitize_text_field($auth_id);
119 + $attach_url[] = '<a style="text-decoration:none;" href="'.$download_url.'" target="_blank">'.sanitize_file_name($attachment->file_name).'</a>';
120 + }else{
121 + $attach_url= array();
122 + }
123 + }
124 + $str = $str.implode("<br>",$attach_url);
69 125 }
70 126 }
71 127 $str = apply_filters('wppm_replace_macro',$str,$project_id);
72 128