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 +128 -128 5.0.94.0.6 View file →
@@ -1,128 +1,128 @@
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 = (sanitize_sql_orderby( "id DESC" ));
11 -$wppm_proj_comment = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_comment where proj_id=%d ORDER BY $orderby_sql LIMIT 1",$project_id));
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 -$page_setting = get_option( 'wppm-page-settings' );
21 -$view = $page_setting['project-url-page'];
22 -foreach($matches as $match){
23 - switch($match){
24 - //Current User Name
25 - case '{user_name}':
26 - $str = preg_replace('/{user_name}/', $current_user_data->display_name, $str);
27 - break;
28 - // Project ID
29 - case '{project_id}':
30 - $str = preg_replace('/{project_id}/', $project_id, $str);
31 - break;
32 - // Old project Status
33 - case '{old_project_status}':
34 - $str = preg_replace('/{old_project_status}/', $this->get_old_project_status_name($project_id), $str);
35 - break;
36 - // Project Status
37 - case '{new_project_status}':
38 - $str = preg_replace('/{new_project_status}/', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);
39 - break;
40 - // Project Status
41 - case '{project_status}':
42 - $str = preg_replace('/{project_status}/', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);
43 - break;
44 - // Project Category
45 - case '{project_category}':
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 -
52 - break;
53 - // Project Name
54 - case '{project_name}':
55 - $str = preg_replace('/{project_name}/', sanitize_text_field($wppm_project_data['project_name']), $str);
56 - break;
57 - // Project Start Date
58 - case '{project_start_date}':
59 - $str = preg_replace('/{project_start_date}/', sanitize_text_field($wppm_project_data['start_date']), $str);
60 - break;
61 - // Project End Date
62 - case '{project_end_date}':
63 - $str = preg_replace('/{project_end_date}/', sanitize_text_field($wppm_project_data['end_date']), $str);
64 - break;
65 - // Assigned Users
66 - case '{project_assigned_users}':
67 - $assigned_users = $this->get_project_assigned_users_names($project_id);
68 - $str = preg_replace('/{project_assigned_users}/', sanitize_text_field($assigned_users), $str);
69 - break;
70 - // Previously Assigned users
71 - case '{previously_assigned_project_users}':
72 - $previously_assigned_users = $this->get_project_previously_assigned_users_names($project_id);
73 - $str = preg_replace('/{previously_assigned_project_users}/', sanitize_text_field($previously_assigned_users), $str);
74 - break;
75 - // Date created
76 - case '{date_created}':
77 - $str = preg_replace('/{date_created}/', get_date_from_gmt(sanitize_text_field($wppm_project_data['date_created'] )), $str);
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 -
93 - // Project Description
94 - case '{project_description}':
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;
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 = absint($attach_id);
109 - $attachment = $wpdb->get_row($wpdb->prepare("select * from {$wpdb->prefix}wppm_attachments where id=%d",$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 = wp_date("m",$time);
114 - $year = wp_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);
125 - }
126 -}
127 -$str = apply_filters('wppm_replace_macro',$str,$project_id);
128 -
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 +$page_setting = get_option( 'wppm-page-settings' );
21 +$view = $page_setting['project-url-page'];
22 +foreach($matches as $match){
23 + switch($match){
24 + //Current User Name
25 + case '{user_name}':
26 + $str = preg_replace('/{user_name}/', $current_user_data->display_name, $str);
27 + break;
28 + // Project ID
29 + case '{project_id}':
30 + $str = preg_replace('/{project_id}/', $project_id, $str);
31 + break;
32 + // Old project Status
33 + case '{old_project_status}':
34 + $str = preg_replace('/{old_project_status}/', $this->get_old_project_status_name($project_id), $str);
35 + break;
36 + // Project Status
37 + case '{new_project_status}':
38 + $str = preg_replace('/{new_project_status}/', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);
39 + break;
40 + // Project Status
41 + case '{project_status}':
42 + $str = preg_replace('/{project_status}/', $this->get_new_project_status_name(sanitize_text_field($wppm_project_data['status'])), $str);
43 + break;
44 + // Project Category
45 + case '{project_category}':
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 +
52 + break;
53 + // Project Name
54 + case '{project_name}':
55 + $str = preg_replace('/{project_name}/', sanitize_text_field($wppm_project_data['project_name']), $str);
56 + break;
57 + // Project Start Date
58 + case '{project_start_date}':
59 + $str = preg_replace('/{project_start_date}/', sanitize_text_field($wppm_project_data['start_date']), $str);
60 + break;
61 + // Project End Date
62 + case '{project_end_date}':
63 + $str = preg_replace('/{project_end_date}/', sanitize_text_field($wppm_project_data['end_date']), $str);
64 + break;
65 + // Assigned Users
66 + case '{project_assigned_users}':
67 + $assigned_users = $this->get_project_assigned_users_names($project_id);
68 + $str = preg_replace('/{project_assigned_users}/', sanitize_text_field($assigned_users), $str);
69 + break;
70 + // Previously Assigned users
71 + case '{previously_assigned_project_users}':
72 + $previously_assigned_users = $this->get_project_previously_assigned_users_names($project_id);
73 + $str = preg_replace('/{previously_assigned_project_users}/', sanitize_text_field($previously_assigned_users), $str);
74 + break;
75 + // Date created
76 + case '{date_created}':
77 + $str = preg_replace('/{date_created}/', get_date_from_gmt(sanitize_text_field($wppm_project_data['date_created'] )), $str);
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 +
93 + // Project Description
94 + case '{project_description}':
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;
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);
125 + }
126 +}
127 +$str = apply_filters('wppm_replace_macro',$str,$project_id);
128 +