Exemple #1
0
</script>

<ul class="segmented-list replies">
	<li><h5<?php 
echo $cssLocked;
?>
><?php 
echo $discussion->getTitle();
?>
</h5></li>
<?php 
foreach ($replies as $reply) {
    echo '<li>';
    echo formatUserPicture($reply->getCreatorID(), 'small');
    echo '<p class="headline">' . formatUserLink($reply->getCreatorID(), $project->getID()) . ' <span class="slash">/</span> <span class="when">' . formatTimeTag($reply->getDateCreated()) . '</span></p>';
    echo '<p class="message">' . formatDiscussionReply($reply->getMessage()) . '</p>';
    echo '</li>';
}
?>
	<?php 
if ($hasReplyPermission) {
    ?>
	<li class="reply">
		<textarea id="txtReplyMessage"></textarea>	
		<div class="buttons">
			<input type="button" class="right" id="btnReply" value="Post Reply" />
			<p class="right"><a class="help-link" href="<?php 
    echo Url::help();
    ?>
#help-html-allowed">Some HTML allowed</a></p>
		</div>
Exemple #2
0
function formatEventDetails($event)
{
    $details = '';
    switch ($event->getEventTypeID()) {
        case 'edit_update_uploads':
        case 'edit_task_uploads':
            $addedIDs = explode(',', $event->getData2());
            $added = '';
            foreach ($addedIDs as $a) {
                if ($a == '') {
                    continue;
                }
                // skip blanks
                $upload = Upload::load($a);
                $added .= $upload->getOriginalName() . ' (' . formatFileSize($upload->getSize()) . ')<br /><br />';
            }
            if (!empty($added)) {
                $details .= '<ins>' . $added . '</ins>';
            }
            $deletedIDs = explode(',', $event->getData1());
            $deleted = '';
            foreach ($deletedIDs as $d) {
                if ($d == '') {
                    continue;
                }
                // skip blanks
                $upload = Upload::load($d);
                $deleted .= $upload->getOriginalName() . ' (' . formatFileSize($upload->getSize()) . ')<br /><br />';
            }
            if (!empty($deleted)) {
                $details .= '<del>' . $deleted . '</del>';
            }
            break;
        case 'edit_pitch':
        case 'edit_specs':
        case 'edit_rules':
        case 'edit_task_description':
        case 'edit_update_message':
            $from = $event->getData1();
            $to = $event->getData2();
            $from = str_replace('&#10;', '<br />', $from);
            $to = str_replace('&#10;', '<br />', $to);
            $diff = new FineDiff($from, $to);
            $htmlDiff = $diff->renderDiffToHTML();
            $htmlDiff = html_entity_decode($htmlDiff, ENT_QUOTES, 'UTF-8');
            $htmlDiff = html_entity_decode($htmlDiff, ENT_QUOTES, 'UTF-8');
            $details .= $htmlDiff;
            break;
        case 'edit_task_title':
        case 'edit_update_title':
            $from = $event->getData1();
            $to = $event->getData2();
            $diff = new FineDiff($from, $to);
            $htmlDiff = $diff->renderDiffToHTML();
            $htmlDiff = html_entity_decode($htmlDiff, ENT_QUOTES, 'UTF-8');
            $htmlDiff = html_entity_decode($htmlDiff, ENT_QUOTES, 'UTF-8');
            $details .= $htmlDiff;
            break;
        case 'edit_task_leader':
            $details .= 'Old Leader: <del>' . formatUserLink($event->getUser1ID(), $event->getProjectID()) . '</del><br /><br />';
            $details .= 'New Leader: <ins>' . formatUserLink($event->getUser2ID(), $event->getProjectID()) . '</ins>';
            break;
        case 'edit_task_num_needed':
            $old = $event->getData1() != null ? $event->getData1() : '&#8734;';
            $new = $event->getData2() != null ? $event->getData2() : '&#8734;';
            $details .= 'Old: <del>' . $old . '</del> people needed<br /><br />';
            $details .= 'New: <ins>' . $new . '</ins> people needed';
            break;
        case 'edit_task_deadline':
        case 'edit_project_deadline':
            $old = $event->getData1() != null ? formatTimeTag($event->getData1()) : '(none)';
            $new = $event->getData2() != null ? formatTimeTag($event->getData2()) : '(none)';
            $details .= 'Old Deadline: <del>' . $old . '</del><br /><br />';
            $details .= 'New Deadline: <ins>' . $new . '</ins>';
            break;
        case 'edit_project_status':
            $old = formatProjectStatus($event->getData1());
            $new = formatProjectStatus($event->getData2());
            $details .= 'Old Project Status: <del>' . $old . '</del><br /><br />';
            $details .= 'New Project Status: <ins>' . $new . '</ins>';
            break;
        case 'edit_accepted_status':
            $old = formatAcceptedStatus($event->getData1());
            $new = formatAcceptedStatus($event->getData2());
            $details .= 'Old Status: <del>' . $old . '</del><br /><br />';
            $details .= 'New Status: <ins>' . $new . '</ins>';
            break;
        case 'create_task_comment':
        case 'create_task_comment_reply':
        case 'create_update_comment':
        case 'create_update_comment_reply':
            $details .= formatComment($event->getData1());
            break;
        case 'create_discussion':
            $details .= '<strong>' . $event->getData1() . '</strong><br /><br />';
            $details .= formatDiscussionReply($event->getData2());
            break;
        case 'create_discussion_reply':
            $details .= formatDiscussionReply($event->getData1());
            break;
        case 'create_update':
            if ($event->getData1() != '') {
                $details .= '<strong>' . $event->getData1() . '</strong><br /><br />';
            }
            if ($event->getData2() != '') {
                $details .= formatUpdate($event->getData2());
            }
            break;
        case 'create_task':
            if ($event->getData1() != '') {
                $details .= '<strong>' . $event->getData1() . '</strong><br /><br />';
            }
            if ($event->getData2() != '') {
                $details .= formatTaskDescription($event->getData2());
            }
            break;
    }
    return $details;
}
        if ($creator->getNotifyDiscussionStarted()) {
            // compose email
            $body = "<p>" . formatUserLink(Session::getUserID()) . ' replied to your discussion <a href="' . Url::discussion($discussionID) . '">' . $discussion->getTitle() . '</a> in the project ' . formatProjectLink($project->getID()) . '. The reply was:</p>';
            $body .= "<blockquote>" . formatDiscussionReply($message) . "</blockquote>";
            $email = array('to' => $creator->getEmail(), 'subject' => '[' . PIPELINE_NAME . '] New reply to your discussion in ' . $project->getTitle(), 'message' => $body);
            // send email
            Email::send($email);
        }
    }
    // others who replied to discussion
    $repliers = $discussion->getDistinctRepliers();
    foreach ($repliers as $r) {
        if ($r->getID() != Session::getUserID()) {
            // don't email yourself
            if ($r->getNotifyDiscussionReply()) {
                // compose email
                $body = "<p>" . formatUserLink(Session::getUserID()) . ' replied to the discussion <a href="' . Url::discussion($discussionID) . '">' . $discussion->getTitle() . '</a> in the project ' . formatProjectLink($project->getID()) . '. The reply was:</p>';
                $body .= "<blockquote>" . formatDiscussionReply($message) . "</blockquote>";
                $email = array('to' => $r->getEmail(), 'subject' => '[' . PIPELINE_NAME . '] New reply to a discussion in ' . $project->getTitle(), 'message' => $body);
                // send email
                Email::send($email);
            }
        }
    }
    $json = array('success' => '1');
    Session::setMessage("You replied to the discussion.");
    echo json_encode($json);
} else {
    $json = array('error' => 'Invalid action.');
    exit(json_encode($json));
}