PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.6
6.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 All 58 releases
← All changes | includes/admin/projects/wppm_open_project.php +70 -33 5.0.46.0.6 View file →
@@ -17,9 +17,9 @@
17 17 $wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');
18 18 $current_date = wp_date('Y-m-d');
19 19 $id = isset($_POST) && isset($_POST['id']) ? absint(sanitize_text_field(wp_unslash($_POST['id']))) : 0;
20 20 if (!isset($id)) {exit;}
21 -$auth_id = $wppmfunction->get_project_meta($id,'project_auth_code',true);
21 +$auth_id = $wppmfunction->get_project_fields($id,'project_auth_code',true);
22 22 $auth_id = sanitize_text_field($auth_id);
23 23 $project = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project where id = %d",$id));
24 24 $orderby_sql = (sanitize_sql_orderby("create_time DESC"));
25 25 // url authentication.
@@ -37,8 +37,21 @@
37 37 }else{
38 38 $users = "";
39 39 }
40 40 $wppm_users_role = get_option('wppm_user_role');
41 +$current_user_role='';
42 +if ( ! empty( $users ) && in_array( $current_user->ID, $users, true ) ) {
43 + $current_user_role = $wpdb->get_var(
44 + $wpdb->prepare(
45 + "SELECT role_id
46 + FROM {$wpdb->prefix}wppm_project_users
47 + WHERE proj_id = %d
48 + AND user_id = %d",
49 + $id,
50 + $current_user->ID
51 + )
52 + );
53 +}
41 54 if(isset($project->status)){
42 55 $projstatus = absint($project->status);
43 56 $project_status = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = %d",$projstatus));
44 57 }
@@ -130,16 +143,26 @@
130 143 }
131 144
132 145 $project_data = $wppmfunction->get_project($id);
133 146 $project_users = explode(",",$project_data['users']);
147 + if(!empty($id)){
148 + $project_id = esc_sql($id);
149 + $public_proj_meta = $wpdb->get_var( "SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta where project_id= '$project_id' AND meta_key='public_project'");
150 +}else{
151 + $public_proj_meta ="";
152 +}
134 153
135 -if (!(($current_user->ID && $current_user->has_cap('manage_options')) || in_array($current_user->ID,$project_users) || ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ((!empty($auth_code)) && $url_auth==true))) {
154 +if (!(($current_user->ID && $current_user->has_cap('manage_options')) || in_array($current_user->ID,$project_users) || ((!in_array($current_user->ID,$project_users)) && $public_proj_meta == '1')|| ($project_data['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')) || ((!empty($auth_code)) && $url_auth==true))) {
136 155 ?>
137 156 <div style="align-item:center;" ><h6><?php esc_attr_e( 'Unauthorized access!', 'taskbuilder' ); ?></h6></div>
138 157 <?php
139 158 wp_die();
140 159 }
141 -
160 +if( $wppm_current_user_capability == 'wppm_admin' || $current_user->has_cap('manage_options') || $project_data['created_by']==$current_user->ID){
161 + $archive_style= "display:inline;";
162 +}else{
163 + $archive_style= "display:none;";
164 +}
142 165 ?>
143 166 <form id="wppm_open_project" method="post">
144 167 <div class="row">
145 168 <div class="col-sm-12">
@@ -147,15 +170,25 @@
147 170 <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin'){ ?>
148 171 <span class="wppm-add-new-btn btn-primary" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" id="wppm_add_new_project_btn" onclick="wppm_add_new_project()"><span style="margin-right:5px;"><img id="wppm_add_new_project_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/plus_icon.svg'); ?>" alt="plus_icon"></span><span><?php echo esc_html_e('Add New','taskbuilder');?></span></span>
149 172 <?php } ?>
150 173 <span class="wppm-add-new-btn btn-primary" id="wppm_project_list" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" onclick="wppm_get_project_list()" ><span style="margin-right:5px;"><img id ="wppm_project_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/list-symbol.svg'); ?>" alt="list-symbol"></span><span><?php echo esc_html_e('Project List','taskbuilder');?></span></span>
174 + <span class="wppm-add-new-btn btn-primary"" id="wppm_archieve_project_btn" title="<?php echo ($project->is_archived==1 ) ? 'Restore Project' : 'Archive Project'; ?>" onclick="wppm_archive_project(<?php echo esc_attr($project->id) ?>,<?php echo esc_attr($project->is_archived) ?>)" style="<?php echo esc_attr($archive_style) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/archive_project.svg'); ?>" alt="archive"><span style="margin-left:5px;"><?php echo ($project->is_archived==1 ) ? esc_html_e('Restore Project','taskbuilder') : esc_html_e('Archive Project','taskbuilder');?></span></span>
175 + <input type="hidden" name="wppm_archive_project_ajax_nonce" id="wppm_archive_project_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_archive_project_ajax_nonce' ) ); ?>">
176 + <!-- Dashboard Button -->
177 + <a class="wppm-add-new-btn btn-primary" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" href="<?php echo esc_url( admin_url('admin.php?page=wppm-dashboard') ); ?>">
178 + <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/dashboard.svg'); ?>" alt="dashboard_icon">
179 + <?php esc_html_e('Dashboard','taskbuilder'); ?>
180 + </a>
151 181 <span class="wppm-add-new-btn btn-primary" id="wppm_project_tasks" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" onclick="wppm_get_project_tasks(<?php echo esc_attr($id) ?>)"><span style="margin-right:5px;"><img id ="wppm_task_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/task_list.svg'); ?>" alt="task_list"></span><span><?php echo esc_html_e('Tasks','taskbuilder');?></span></span>
182 + <span class="wppm-add-new-btn btn-primary" id="wppm_project_tasks_kanban_view" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" onclick="wppm_get_project_tasks_kanban_view(<?php echo esc_attr($id) ?>)"><span style="margin-right:5px;"><img id ="wppm_task_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/kanban-svg.svg'); ?>" alt="task_list"></span><span><?php echo esc_html_e('Kanban View','taskbuilder');?></span></span>
152 183 <?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',$project->id)) || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || ($current_user->ID && $current_user->has_cap('wppm_admin')))? "display:inline":"display:none"; ?>
153 184 <span class="wppm-add-new-btn btn-primary" id="wppm_delete_project_btn" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;<?php echo esc_attr($style) ?>" onclick="wppm_delete_project(<?php echo esc_attr($id) ?>)"><span style="margin-right:5px;"><img id="wppm_delete_project_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/delete2.svg'); ?>" alt="delete"></span><span><?php echo esc_html_e('Delete','taskbuilder');?></span></span>
154 185 <?php $visibility_style = (($current_user->ID && ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) && ($wppm_public_projects_permission==1))? "display:inline":"display:none"; ?>
155 186 <span class="wppm-add-new-btn btn-primary" id="wppm_project_visibility" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>;<?php echo esc_attr($visibility_style) ?>" onclick="wppm_get_project_visibility(<?php echo esc_attr($id) ?>)"><span style="margin-right:5px;"><img id ="wppm_task_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/wppm_visibility.svg'); ?>" alt="project_visibility"></span><span><?php echo esc_html_e('Project Visibility','taskbuilder');?></span></span>
156 - <?php do_action('wppm_after_open_project_buttons',$project->id);?>
157 - </div>
187 + <?php do_action('wppm_after_open_project_buttons',$project->id); ?>
188 + <?php foreach ( wppm_get_locked_pro_addons_by_placement('toolbar') as $wppm_addon_key => $wppm_addon ) : ?>
189 + <a class="wppm-add-new-btn btn-primary wppm-locked-toolbar-btn" style="background-color:<?php echo esc_attr($appearance_settings['menu-button-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['menu-button-text-color'])?>" href="<?php echo esc_url( wppm_pro_upgrade_url() ); ?>" target="_blank" rel="noopener noreferrer" title="<?php echo esc_attr( sprintf( __( '%s is a Pro feature. Click to upgrade.', 'taskbuilder' ), $wppm_addon['label'] ) ); ?>"><span class="wppm-pro-icon-wrap" style="margin-right:5px;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/' . $wppm_addon['icon'] ); ?>" alt=""><span class="wppm-pro-badge-corner"><?php echo wppm_pro_badge_svg( 11 ); ?></span></span><span><?php echo esc_html( $wppm_addon['label'] ); ?></span></a>
190 + <?php endforeach; ?>
158 191 </div>
159 192 <div id="wppm_load_individual_project_container" class="row">
160 193 <div class="col-sm-8 wppm_body col-md-9">
161 194 <div class="row">
@@ -162,9 +195,10 @@
162 195 <div class="col-sm-12" id="wppm_project_details_container">
163 196 <div class="row">
164 197 <div class="col-sm-12">
165 198 <span class="wppm_project_label"> <?php echo isset($project->project_name) ? esc_html($project->project_name):"";
166 - if (($wppmfunction->has_project_permission('change_project_details',$id)) || ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) { ?>
199 + if ((($wppmfunction->has_project_permission('change_project_details',$id)) || ($current_user->has_cap('manage_options') || $current_user->has_cap('wppm_admin') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager'))) && $project_data['is_archived']!=1) {
200 + ?>
167 201 <span id="wppm_individual_edit_project_subject" onclick="wppm_edit_proj_details(<?php echo esc_attr($id) ?>)" class="btn btn-sm wppm_action_btn" style="background-color:#FFFFFF !important;color:#000000 !important;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
168 202 <?php } ?>
169 203 </span>
170 204 </div>
@@ -251,12 +285,13 @@
251 285 ?>
252 286 <div class="col-sm-9 wppm_project_description">
253 287 <span><?php echo (!empty($project_description))? wp_kses(wpautop($project_description),$allowedtags):"" ?></span>
254 288 </div>
289 + <?php do_action('wppm_after_project_details_in_open_project',$project->id);?>
255 290 </div>
256 291 </div>
257 292 </div>
258 - <div id="wppm_proj_discussion_container" style="<?php echo ($wppm_proj_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
293 + <div id="wppm_proj_discussion_container" style="<?php echo ($wppm_proj_hide_comment_section==0 || $current_user_role==3|| $project_data['is_archived']==1) ? 'display:none;' : 'display:block;' ?>">
259 294 <div class="row">
260 295 <div class="col-sm-12" style="margin-top:5px;">
261 296 <span class="wppm_proj_discussion"><?php echo esc_html_e('Comment','taskbuilder')?></span><br>
262 297 </div>
@@ -284,9 +319,9 @@
284 319 <div class="wppm_proj_attachment_container col-sm-12" style="display:none;">
285 320 </div>
286 321 </div>
287 322 </div>
288 - <div class="wppm_thread_container" style="<?php echo ($wppm_proj_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
323 + <div class="wppm_thread_container" style="<?php echo ($wppm_proj_hide_comment_section==0 || $current_user_role==3 || $project_data['is_archived']==1) ? 'display:none;' : 'display:block;' ?>">
289 324 <?php
290 325 if(!empty($project_comment)){
291 326 foreach($project_comment as $comment){
292 327 $proj_comment_meta = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta where proj_id='".esc_sql($id)."' AND comment_id='".esc_sql($comment->id)."'");
@@ -448,9 +483,9 @@
448 483 <div class="wppm_individual_project_widget col-sm-4 wppm_sidebar col-md-3">
449 484 <div class="row wppm_widget" id="wppm_project_status_widget">
450 485 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
451 486 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder')?></h4>
452 - <?php $style = ($wppmfunction->has_project_permission('change_project_status',$id) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin')? "display:flex":"display:none"; ?>
487 + <?php $style = (($wppmfunction->has_project_permission('change_project_status',$id) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin') && $project_data['is_archived']!=1)? "display:flex":"display:none"; ?>
453 488 <span class="wppm_edit_project_details_widget" style="<?php echo esc_attr($style) ?>" onclick="wppm_edit_project_status(<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
454 489 </div>
455 490 <hr class="widget_divider">
456 491 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
@@ -459,9 +494,9 @@
459 494 </div>
460 495 <div class="row wppm_widget" id="wppm_project_raisedby_widget">
461 496 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
462 497 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html_e('Project Creator','taskbuilder')?></span></h4>
463 - <?php if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'|| ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager')) { ?>
498 + <?php if (($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'|| ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager')) && $project_data['is_archived']!=1) { ?>
464 499 <span class="wppm_edit_project_details_widget" onclick="wppm_edit_project_creator(<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
465 500 <?php } ?>
466 501 </div>
467 502 <hr class="widget_divider"> <?php
@@ -482,9 +517,9 @@
482 517 </div>
483 518 <div class="row wppm_widget" id="wppm_project_users_widget_container">
484 519 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
485 520 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html_e('Users','taskbuilder')?></h4>
486 - <?php if ($wppmfunction->has_project_permission('assign_project_users',$id ) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin') { ?>
521 + <?php if (($wppmfunction->has_project_permission('assign_project_users',$id ) || $current_user->has_cap('manage_options') || ($project->created_by==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') || $wppm_current_user_capability == 'wppm_admin') && $project_data['is_archived']!=1) { ?>
487 522 <span class="wppm_edit_project_details_widget" onclick="wppm_get_users(<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
488 523 <?php } ?>
489 524 </div>
490 525 <hr class="widget_divider">
@@ -490,34 +525,36 @@
490 525 <hr class="widget_divider">
491 526 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
492 527 <div id="wppm_project_users">
493 528 <?php
494 - if(!(empty(array_filter($users)))){
495 - foreach($users as $user) {
496 - $user_data = get_userdata($user);
497 - $user = absint($user);
498 - $project_user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$id,$user));
499 - ?>
500 - <div style="padding:2px 0;">
501 - <span class="wppm_project_user_avatar"><?php echo (get_avatar($user, 25, "mysteryman")); ?></span>
502 - <span class="wppm_project_user_names" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html($user_data->display_name); ?></span>
503 - <?php
504 - if(!empty($wppm_users_role)){
505 - foreach($wppm_users_role as $key=>$role){
506 - if(!empty($role)){
507 - foreach($role as $k=>$val){
508 - if( !empty($project_user) && $key == $project_user->role_id){ ?>
509 - <span class="wppm_project_user_role" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>">(<?php echo esc_html($role['label']); ?>)</span><?php
529 + if(!empty($users)){
530 + if(!(empty(array_filter($users)))){
531 + foreach($users as $user) {
532 + $user_data = get_userdata($user);
533 + $user = absint($user);
534 + $project_user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$id,$user));
535 + ?>
536 + <div style="padding:2px 0;">
537 + <span class="wppm_project_user_avatar"><?php echo (get_avatar($user, 25, "mysteryman")); ?></span>
538 + <span class="wppm_project_user_names" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html($user_data->display_name); ?></span>
539 + <?php
540 + if(!empty($wppm_users_role)){
541 + foreach($wppm_users_role as $key=>$role){
542 + if(!empty($role)){
543 + foreach($role as $k=>$val){
544 + if( !empty($project_user) && $key == $project_user->role_id){ ?>
545 + <span class="wppm_project_user_role" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>">(<?php echo esc_html($role['label']); ?>)</span><?php
546 + }
510 547 }
511 548 }
512 549 }
513 550 }
514 - }
515 - ?>
516 - </div>
517 - <?php
518 - }
519 - } else {
551 + ?>
552 + </div>
553 + <?php
554 + }
555 + }
556 + }else {
520 557 ?><span class="wppm_project_users_not_assign_label" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>"> <?php echo esc_html_e('None','taskbuilder'); ?></span><?php
521 558 }
522 559 ?>
523 560 </div>