| @@ -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 | |