My company is working on a CRM with the Wordpress plugin CQPIM. There are two issues with it, but I'll just address one, for now.
The plugin functions off of User Roles, and will show ALL the active projects for anyone with the capability: cqpim_view_all_projects.
We need to rewrite the following snippet so that the dashboard only shows the projects assigned to the current user.
original code: there are no hooks to filters to modify
if(current_user_can('cqpim_view_all_projects')) { $index++; ?>
<li>
<script>
jQuery(document).ready(function() {
jQuery( "#progressbar-<?php echo $project->ID; ?>" ).progressbar({
value: <?php echo number_format((float)$pc_complete, 2, '.', ''); ?>
});
});
</script>
<div class="title">
<a href="<?php echo $edit_url; ?>"><?php if(!empty($project->post_title)) { echo $project->post_title; } else { _e('Untitled', 'cqpim'); } ?></a>
<?php echo $project_status; ?>
</div>
<div class="progress">
<div id="progressbar-<?php echo $project->ID; ?>"></div>
</div>
<ul class="project_stats">
<li><span class="project_stat_head"><?php _e('Open Tasks' , 'cqpim') ?></span><span class="project_stat"><?php echo $task_count; ?></span></li>
<li><span class="project_stat_head"><?php _e('Complete' , 'cqpim') ?></span><span class="project_stat"><?php echo number_format((float)$pc_complete, 2, '.', ''); ?>%</span></li>
<li><span class="project_stat_head"><?php _e('Deadline' , 'cqpim') ?></span><span class="project_stat"><?php echo $finish_date; ?></span></li>
</ul>
</li>
<?php
} else {
$access = false;
$project_contributors = get_post_meta($project->ID, 'project_contributors', true);
if(empty($project_contributors)) {
$project_contributors = array();
}
foreach($project_contributors as $contributor) {
if(!empty($contributor['team_id']) && $assigned == $contributor['team_id']) {
$access = true;
}
}
if($access == true) { $index++; ?>
<li>
<script>
jQuery(document).ready(function() {
jQuery( "#progressbar-<?php echo $project->ID; ?>" ).progressbar({
value: <?php echo number_format((float)$pc_complete, 2, '.', ''); ?>
});
});
</script>
<div class="title">
<a href="<?php echo $edit_url; ?>"><?php if(!empty($project->post_title)) { echo $project->post_title; } else { _e('Untitled', 'cqpim'); } ?></a>
<?php echo $project_status; ?>
</div>
<div class="progress">
<div id="progressbar-<?php echo $project->ID; ?>"></div>
</div>
<ul class="project_stats">
<li><span class="project_stat_head"><?php _e('Open Tasks', 'cqpim'); ?></span><span class="project_stat"><?php echo $task_count; ?></span></li>
<li><span class="project_stat_head"><?php _e('Complete' , 'cqpim') ?></span><span class="project_stat"><?php echo number_format((float)$pc_complete, 2, '.', ''); ?>%</span></li>
<li><span class="project_stat_head"><?php _e('Deadline' , 'cqpim') ?></span><span class="project_stat"><?php echo $finish_date; ?></span></li>
</ul>
</li>
<?php
}
}
My modified code: it works when in the plugin root, but I would like to update this plugin at some point without losing all my files, so need a way to overwrite the original IF statement
if(current_user_can('cqpim_view_all_projects')) { $index++; ?>
<li>
<script>
jQuery(document).ready(function() {
jQuery( "#progressbar-<?php echo $project->ID; ?>" ).progressbar({
value: <?php echo number_format((float)$pc_complete, 2, '.', ''); ?>
});
});
</script>
<div class="title">
<a href="<?php echo $edit_url; ?>"><?php if(!empty($project->post_title)) { echo $project->post_title; } else { _e('Untitled', 'cqpim'); } ?></a>
<?php echo $project_status; ?>
</div>
<div class="progress">
<div id="progressbar-<?php echo $project->ID; ?>"></div>
</div>
<ul class="project_stats">
<li><span class="project_stat_head"><?php _e('Open Tasks' , 'cqpim') ?></span><span class="project_stat"><?php echo $task_count; ?></span></li>
<li><span class="project_stat_head"><?php _e('Complete' , 'cqpim') ?></span><span class="project_stat"><?php echo number_format((float)$pc_complete, 2, '.', ''); ?>%</span></li>
<li><span class="project_stat_head"><?php _e('Deadline' , 'cqpim') ?></span><span class="project_stat"><?php echo $finish_date; ?></span></li>
</ul>
</li>
<?php
} else {
$access = false;
$project_contributors = get_post_meta($project->ID, 'project_contributors', true);
if(empty($project_contributors)) {
$project_contributors = array();
}
foreach($project_contributors as $contributor) {
if(!empty($contributor['team_id']) && $assigned == $contributor['team_id']) {
$access = true;
}
}
if($access == true) { $index++; ?>
<li>
<script>
jQuery(document).ready(function() {
jQuery( "#progressbar-<?php echo $project->ID; ?>" ).progressbar({
value: <?php echo number_format((float)$pc_complete, 2, '.', ''); ?>
});
});
</script>
<div class="title">
<a href="<?php echo $edit_url; ?>"><?php if(!empty($project->post_title)) { echo $project->post_title; } else { _e('Untitled', 'cqpim'); } ?></a>
<?php echo $project_status; ?>
</div>
<div class="progress">
<div id="progressbar-<?php echo $project->ID; ?>"></div>
</div>
<ul class="project_stats">
<li><span class="project_stat_head"><?php _e('Open Tasks', 'cqpim'); ?></span><span class="project_stat"><?php echo $task_count; ?></span></li>
<li><span class="project_stat_head"><?php _e('Complete' , 'cqpim') ?></span><span class="project_stat"><?php echo number_format((float)$pc_complete, 2, '.', ''); ?>%</span></li>
<li><span class="project_stat_head"><?php _e('Deadline' , 'cqpim') ?></span><span class="project_stat"><?php echo $finish_date; ?></span></li>
</ul>
</li>
<?php
}
}
Aucun commentaire:
Enregistrer un commentaire