示例#1
0
 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();
}
示例#5
0
 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;
 }
示例#6
0
</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);
    ?>
示例#7
0
 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);
 }
示例#8
0
 /**
  * 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;
 }
示例#9
0
    $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>
示例#10
0
/**
 * 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;
}
示例#11
0
<?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 
示例#12
0
<?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);
 }
示例#14
0
$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>
示例#15
0
    /**
     * 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 
    }