PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 5.0.7
Taskbuilder – Project Management & Task Management Tool With Kanban Board v5.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 5.0.7, at includes/replace_macro.php

129 lines 5.3 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 = (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
129