function project_new() { $posted = $_POST; $pro_obj = CPM_Project::getInstance(); $project_id = $pro_obj->create(); $project = $pro_obj->get($project_id); echo json_encode(array('success' => true, 'url' => cpm_url_project_details($project_id))); exit; }
function project_new() { $posted = $_POST; $pro_obj = CPM_Project::getInstance(); //fail if current user is not editor or above if (!$pro_obj->has_admin_rights()) { echo json_encode(array('success' => false)); exit; } $project_id = $pro_obj->create(); $project = $pro_obj->get($project_id); echo json_encode(array('success' => true, 'url' => cpm_url_project_details($project_id))); exit; }
/** * Notify users about the new project creation * * @uses `cpm_new_project` hook * @param int $project_id */ function project_new($project_id, $data) { if (isset($_POST['project_notify']) && $_POST['project_notify'] == 'yes') { $co_workers = $_POST['project_coworker']; $users = array(); foreach ($co_workers as $user_id) { $user = get_user_by('id', $user_id); $users[$user_id] = sprintf('%s <%s>', $user->display_name, $user->user_email); } //if any users left, get their mail addresses and send mail if ($users) { $site_name = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); $subject = sprintf(__('New Project invitation on %s', 'cpm'), $site_name); $message = sprintf(__('You are assigned in a new project "%s" on %s', 'cpm'), trim($data['post_title']), $site_name) . "\r\n"; $message .= sprintf(__('You can see the project by going here: %s', 'cpm'), cpm_url_project_details($project_id)) . "\r\n"; $this->send(implode(', ', $users), $subject, $message); } } }
_e('You can see the project by going here:', 'cpm'); ?> <a style="text-decoration: none; color: #00b1e7;" href="<?php echo cpm_url_project_details($project_id); ?> "><?php echo $data['post_title']; ?> </a> </div> </div> <center> <div style="padding: 18px; margin: 30px 0 45px; border-radius: 30px; background: #00b1e7; width: 171px;"> <a href="<?php echo cpm_url_project_details($project_id); ?> " style="font-family: lato; font-size: 16px; text-decoration: none; color: #fff;"> <?php _e('View Project', 'cpm'); ?> </a> </div> </center> </div> <?php cpm_get_email_footer(); }
function project_new() { $posted = $_POST; $pro_obj = CPM_Project::getInstance(); //fail if current user is not editor or above if (!cpm_manage_capability('project_create_role')) { echo json_encode(array('success' => false)); exit; } $posted = $_POST; $project_id = $pro_obj->create($project_id = 0, $posted); $project = $pro_obj->get($project_id); echo json_encode(array('success' => true, 'url' => cpm_url_project_details($project_id))); exit; }
</span></a> </nav> <?php } ?> <?php foreach ($projects as $project) { if (!$project_obj->has_permission($project)) { continue; } ?> <article class="cpm-project"> <a href="<?php echo cpm_url_project_details($project->ID); ?> "> <h5><?php echo get_the_title($project->ID); ?> </h5> <div class="cpm-project-detail"><?php echo cpm_excerpt($project->post_content, 55); ?> </div> <div class="cpm-project-meta"> <?php echo cpm_project_summary($project->info); ?>
function new_task($list_id, $task_id, $data) { //notification is not selected or no one is assigned if ($_POST['task_assign'] == '-1') { return; } $project_id = 0; if (isset($_POST['project_id'])) { $project_id = intval($_POST['project_id']); } $user = get_user_by('id', intval($_POST['task_assign'])); $to = sprintf('%s <%s>', $user->display_name, $user->user_email); $template_vars = array('%SITE%' => wp_specialchars_decode(get_option('blogname'), ENT_QUOTES), '%PROJECT_NAME%' => get_post_field('post_title', $project_id), '%PROJECT_URL%' => cpm_url_project_details($project_id), '%AUTHOR%' => $user->display_name, '%AUTHOR_EMAIL%' => $user->user_email, '%TASKLIST_URL%' => cpm_url_single_tasklist($project_id, $list_id), '%TASK_URL%' => cpm_url_single_task($project_id, $list_id, $task_id), '%TASK%' => $data['post_content'], '%IP%' => get_ipaddress()); $subject = cpm_get_option('new_task_sub'); $message = cpm_get_option('new_task_body'); // subject foreach ($template_vars as $key => $value) { $subject = str_replace($key, $value, $subject); } // message foreach ($template_vars as $key => $value) { $message = str_replace($key, $value, $message); } $this->send($to, $subject, $message); }
/** * Generates navigational menu for a project * * @param int $project_id * @return array */ function nav_links($project_id) { $links = array(__('Activity', 'cpm') => cpm_url_project_details($project_id), __('Messages', 'cpm') => cpm_url_message_index($project_id), __('To-do Lists', 'cpm') => cpm_url_tasklist_index($project_id), __('Milestones', 'cpm') => cpm_url_milestone_index($project_id), __('Files', 'cpm') => cpm_url_file_index($project_id)); $links = apply_filters('cpm_project_nav_links', $links, $project_id); if (cpm_user_can_access($project_id)) { $links[__('Settings', 'cpm')] = cpm_url_settings_index($project_id); } return $links; }
$project_users = CPM_Project::getInstance()->get_users($project_id); $users = array(); if (is_array($project_users) && count($project_users)) { foreach ($project_users as $user_id => $role_array) { if ($this->filter_email($user_id)) { $users[$user_id] = sprintf('%s', $role_array['email']); // $users[$user_id] = sprintf( '%s (%s)', $role_array['name'], $role_array['email'] ); } } } //if any users left, get their mail addresses and send mail if ($users) { cpm_get_email_header(); $new = CPM_URL . '/assets/images/new.png'; $triangle = CPM_URL . '/assets/images/triangle.png'; $template_vars = array('%SITE%' => wp_specialchars_decode(get_option('blogname'), ENT_QUOTES), '%PROJECT_NAME%' => $data['post_title'], '%PROJECT_DETAILS%' => $data['post_content'], '%PROJECT_URL%' => '<a style="text-decoration: none;" href="' . cpm_url_project_details($project_id) . '">' . get_post_field('post_title', $project_id) . '</a>'); $subject = cpm_get_option('new_project_sub'); $message = cpm_get_content(cpm_get_option('new_project_body')); // subject foreach ($template_vars as $key => $value) { $subject = str_replace($key, $value, $subject); } // message foreach ($template_vars as $key => $value) { $message = str_replace($key, $value, $message); } } ?> <table width="600" style="margin-top: 50px; background: #fff;"> <tr> <td>
/** * Prints project activities * * @since 0.3.1 * * @param array $activities * @return string */ function cpm_projects_activity_html($activities) { global $_get_shorcode_attr; $list = array(); $html = ''; foreach ($activities as $activity) { cpm_custom_do_shortcode($activity->comment_content); $task_privacy = cpm_check_task_privicy($_get_shorcode_attr, $activity); $tasklist_privacy = cpm_check_tasklist_privicy($_get_shorcode_attr, $activity); $milestone_privacy = cpm_check_milestone_privicy($_get_shorcode_attr, $activity); $message_privacy = cpm_check_message_privicy($_get_shorcode_attr, $activity); $_get_shorcode_attr = ''; if (!$task_privacy || !$tasklist_privacy || !$milestone_privacy || !$message_privacy) { continue; } $date = strtotime(date('F j, Y', strtotime($activity->comment_date))); $list[$date][] = $activity; } foreach ($list as $key => $items) { $html .= sprintf('<li class="cpm-progress-wrap"><div class="cpm-activity-heads"><span>%s</span></div><ul>', date_i18n('F j, Y', $key)); foreach ($items as $activity) { $post = get_post($activity->comment_post_ID); $project_url = cpm_url_project_details($activity->comment_post_ID); $title = '<a class="cpm-progress-label" href="' . $project_url . '">' . $post->post_title . '</a>'; cpm_custom_do_shortcode($activity->comment_content); $task_privacy = cpm_check_task_privicy($_get_shorcode_attr, $activity); $tasklist_privacy = cpm_check_tasklist_privicy($_get_shorcode_attr, $activity); $milestone_privacy = cpm_check_milestone_privicy($_get_shorcode_attr, $activity); $message_privacy = cpm_check_message_privicy($_get_shorcode_attr, $activity); $_get_shorcode_attr = ''; if (!$task_privacy || !$tasklist_privacy || !$milestone_privacy || !$message_privacy) { continue; } $html .= sprintf('<li>%s <span class="date">%s %s</span></li>', $title, do_shortcode($activity->comment_content), cpm_get_date($activity->comment_date, true)); } $html .= '</li></ul>'; } return $html; }
<?php cpm_get_email_header(); $new = CPM_URL . '/assets/images/new.png'; $triangle = CPM_URL . '/assets/images/triangle.png'; $template_vars = array('%SITE%' => wp_specialchars_decode(get_option('blogname'), ENT_QUOTES), '%PROJECT_NAME%' => get_post_field('post_title', $project_id), '%PROJECT_URL%' => '<a style="text-decoration: none;" href="' . cpm_url_project_details($project_id) . '">' . get_post_field('post_title', $project_id) . '</a>', '%AUTHOR%' => $user->display_name, '%AUTHOR_EMAIL%' => $user->user_email, '%TASKLIST_URL%' => '<a style="text-decoration: none;" href="' . cpm_url_single_tasklist($project_id, $list_id) . '">' . get_post_field('post_title', $list_id) . '</a>', '%TASK_URL%' => '<a style="text-decoration: none;" href="' . cpm_url_single_task($project_id, $list_id, $task_id) . '">' . get_post_field('post_title', $task_id) . '</a>', '%TASK%' => $data['post_content'], '%IP%' => get_ipaddress()); $subject = cpm_get_option('new_task_sub'); $message = cpm_get_content(cpm_get_option('new_task_body')); // subject foreach ($template_vars as $key => $value) { $subject = str_replace($key, $value, $subject); } // message foreach ($template_vars as $key => $value) { $message = str_replace($key, $value, $message); } ?> <table width="600" style="margin-top: 50px; background: #fff;"> <tr> <td> <center><img src="<?php echo $new; ?> "/></center> </td> </tr> <tr> <td> <center><div style="font-size: 45px; padding-top: 38px;"><?php
<?php $users = $this->prepare_contacts(); if (!$users) { return; } cpm_get_email_header(); $new = CPM_URL . '/assets/images/new.png'; $triangle = CPM_URL . '/assets/images/triangle.png'; $pro_obj = CPM_Project::getInstance(); $msg_obj = CPM_Message::getInstance(); $project = $pro_obj->get($project_id); $msg = $msg_obj->get($message_id); $author = wp_get_current_user(); $template_vars = array('%SITE%' => wp_specialchars_decode(get_option('blogname'), ENT_QUOTES), '%PROJECT_NAME%' => $project->post_title, '%PROJECT_URL%' => '<a style="text-decoration: none;" href="' . cpm_url_project_details($project_id) . '">' . get_post_field('post_title', $project_id) . '</a>', '%AUTHOR%' => $author->display_name, '%AUTHOR_EMAIL%' => $author->user_email, '%MESSAGE_URL%' => '<a style="text-decoration: none;" href="' . cpm_url_single_message($project_id, $message_id) . '">' . get_post_field('post_title', $message_id) . '</a>', '%MESSAGE%' => $msg->post_content, '%IP%' => get_ipaddress()); $subject = cpm_get_option('new_message_sub'); $message = cpm_get_content(cpm_get_option('new_message_body')); // subject foreach ($template_vars as $key => $value) { $subject = str_replace($key, $value, $subject); } // message foreach ($template_vars as $key => $value) { $message = str_replace($key, $value, $message); } ?> <table width="600" style="margin-top: 50px; background: #fff;"> <tr> <td> <center><img src="<?php
/** * Generates navigational menu for a project * * @param int $project_id * @return array */ function nav_links($project_id) { $links = array(__('Activity', 'cpm') => cpm_url_project_details($project_id), __('Messages', 'cpm') => cpm_url_message_index($project_id), __('To-do List', 'cpm') => cpm_url_tasklist_index($project_id), __('Milestones', 'cpm') => cpm_url_milestone_index($project_id), __('Files', 'cpm') => cpm_url_file_index($project_id)); return apply_filters('cpm_project_nav_links', $links, $project_id); }
$msg_obj = CPM_Message::getInstance(); $parent_post = get_post($data['comment_post_ID']); $author = wp_get_current_user(); $comment_url = ''; switch ($parent_post->post_type) { case 'message': $comment_url = cpm_url_single_message($project_id, $data['comment_post_ID']); break; case 'task_list': $comment_url = cpm_url_single_tasklist($project_id, $parent_post->ID); break; case 'task': $comment_url = cpm_url_single_task($project_id, $parent_post->post_parent, $parent_post->ID); break; } $template_vars = array('%SITE%' => wp_specialchars_decode(get_option('blogname'), ENT_QUOTES), '%PROJECT_NAME%' => get_post_field('post_title', $project_id), '%PROJECT_URL%' => '<a style="text-decoration: none;" href="' . cpm_url_project_details($project_id) . '">' . get_post_field('post_title', $project_id) . '</a>', '%AUTHOR%' => $author->display_name, '%AUTHOR_EMAIL%' => $author->user_email, '%COMMENT_URL%' => '<a style="text-decoration: none;" href="' . $comment_url . '/#cpm-comment-' . $comment_id . '">' . __('comment link', 'cpm') . '</a>', '%COMMENT%' => $data['comment_content'], '%IP%' => get_ipaddress()); $subject = cpm_get_option('new_comment_sub'); $message = cpm_get_content(cpm_get_option('new_comment_body')); // subject foreach ($template_vars as $key => $value) { $subject = str_replace($key, $value, $subject); } // message foreach ($template_vars as $key => $value) { $message = str_replace($key, $value, $message); } ?> <table width="600" style="margin-top: 50px; background: #fff;"> <tr> <td>
/** * List all projects * * @since 1.0 */ function list_projects() { $project_obj = CPM_Project::getInstance(); $projects = $project_obj->get_projects(); $status_class = isset($_GET['status']) ? $_GET['status'] : 'active'; if (function_exists('cpm_project_count')) { $count = cpm_project_count(); } ?> <div class="icon32" id="icon-themes"><br></div> <h2><?php _e('Project Manager', 'cpm'); ?> </h2> <?php if (function_exists('cpm_project_filters')) { cpm_project_filters(); } ?> <div class="cpm-projects"> <?php if (function_exists('cpm_project_filters')) { ?> <ul class="list-inline order-statuses-filter"> <li<?php echo $status_class == 'all' ? ' class="active"' : ''; ?> > <a href="<?php echo cpm_url_all(); ?> "><?php _e('All', 'cpm'); ?> </a> </li> <li<?php echo $status_class == 'active' ? ' class="active"' : ''; ?> > <a class="cpm-active" href="<?php echo cpm_url_active(); ?> "><?php printf(__('Active (%d)', 'cpm'), $count['active']); ?> </a> </li> <li<?php echo $status_class == 'archive' ? ' class="active"' : ''; ?> > <a class="cpm-archive-head" href="<?php echo cpm_url_archive(); ?> "><?php printf(__('Completed (%d)', 'cpm'), $count['archive']); ?> </a> </li> </ul> <?php } ?> <?php if (cpm_manage_capability('project_create_role')) { ?> <nav class="cpm-new-project"> <a href="#" id="cpm-create-project"><span><?php _e('New Project', 'cpm'); ?> </span></a> </nav> <?php } ?> <?php foreach ($projects as $project) { if (!$project_obj->has_permission($project)) { continue; } ?> <article class="cpm-project"> <?php if (cpm_is_project_archived($project->ID)) { ?> <div class="cpm-completed-wrap"><div class="ribbon-green"><?php _e('Completed', 'cpm'); ?> </div></div> <?php } ?> <a href="<?php echo cpm_url_project_details($project->ID); ?> "> <h5><?php echo get_the_title($project->ID); ?> </h5> <div class="cpm-project-detail"><?php echo cpm_excerpt($project->post_content, 55); ?> </div> <div class="cpm-project-meta"> <?php echo cpm_project_summary($project->info); ?> </div> <footer class="cpm-project-people"> <div class="cpm-scroll"> <?php if (count($project->users)) { foreach ($project->users as $id => $user_meta) { echo get_avatar($id, 48, '', $user_meta['name']); } } ?> </div> </footer> </a> <?php $progress = $project_obj->get_progress_by_tasks($project->ID); echo cpm_task_completeness($progress['total'], $progress['completed']); if (cpm_user_can_access($project->ID)) { cpm_project_actions($project->ID); } ?> </article> <?php } ?> </div> <div id="cpm-project-dialog" title="<?php _e('Start a new project', 'cpm'); ?> " style="display: none;"> <?php if ($project_obj->has_admin_rights()) { ?> <?php cpm_project_form(); ?> <?php } ?> </div> <div id="cpm-create-user-wrap"> <?php if ($project_obj->has_admin_rights()) { ?> <?php cpm_user_create_form(); ?> <?php } ?> </div> <script type="text/javascript"> jQuery(function($) { $( "#cpm-project-dialog, #cpm-create-user-wrap" ).dialog({ autoOpen: false, modal: true, dialogClass: 'cpm-ui-dialog', width: 485, height: 425, position:['middle', 100] }); }); jQuery(function($) { $( "#cpm-create-user-wrap" ).dialog({ autoOpen: false, modal: true, dialogClass: 'cpm-ui-dialog', width: 400, height: 353, position:['middle', 100] }); }); </script> <?php }