Skip to content

Instantly share code, notes, and snippets.

@MrVibe
Last active August 29, 2015 14:17
Show Gist options
  • Save MrVibe/350aea108f1781f33b80 to your computer and use it in GitHub Desktop.
Save MrVibe/350aea108f1781f33b80 to your computer and use it in GitHub Desktop.
FullWidth Start Course Page
<?php
/**
* Template Name: New Start Course Page
*/
/*=================================================*/
/* INSTALLATION NOTESwplms_unit_header
/* 1. Add this file to the WPLMS Child theme
/* 2. Edit the Course status/start course page and select the page template "New Start Course Page"
/* 3. Verify this page is selected in the WPLMS -> Course manager -> Take this course page
/*
/*=================================================*/
// COURSE STATUS :
// 0 : NOT STARTED
// 1: STARTED
// 2 : SUBMITTED
// > 2 : EVALUATED
// VERSION 1.8.4 NEW COURSE STATUSES
// 1 : START COURSE
// 2 : CONTINUE COURSE
// 3 : FINISH COURSE : COURSE UNDER EVALUATION
// 4 : COURSE EVALUATED
do_action('wplms_before_start_course');
get_header('buddypress');
do_action('wplms_start_course');
$user_id = get_current_user_id();
if(isset($_POST['course_id'])){
$course_id=$_POST['course_id'];
$coursetaken=get_user_meta($user_id,$course_id,true);
}else if(isset($_COOKIE['course'])){
$course_id=$_COOKIE['course'];
$coursetaken=1;
}
if(!isset($course_id) || !is_numeric($course_id))
wp_die(__('INCORRECT COURSE VALUE. CONTACT ADMIN','vibe'));
$course_curriculum=vibe_sanitize(get_post_meta($course_id,'vibe_course_curriculum',false));
$unit_id = wplms_get_course_unfinished_unit($course_id);
$unit_comments = vibe_get_option('unit_comments');
$class= '';
if(isset($unit_comments) && is_numeric($unit_comments)){
$class .= 'enable_comments';
}
$class= apply_filters('wplms_unit_wrap',$class,$unit_id,$user_id);
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<section id="content">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="unit_wrap <?php echo $class; ?>">
<div id="unit_content" class="unit_content">
<div id="unit" class="<?php echo get_post_type($unit_id); ?>_title" data-unit="<?php if(isset($unit_id)) echo $unit_id; ?>">
<?php
do_action('wplms_unit_header',$unit_id,$course_id);
$minutes=0;
$mins = get_post_meta($unit_id,'vibe_duration',true);
$unit_duration_parameter = apply_filters('vibe_unit_duration_parameter',60);
if($mins){
if($mins > $unit_duration_parameter){
$hours = floor($mins/$unit_duration_parameter);
$minutes = $mins - $hours*$unit_duration_parameter;
}else{
$minutes = $mins;
}
do_action('wplms_course_unit_meta',$unit_id);
if($mins < 9999){
if($unit_duration_parameter == 1)
echo '<span><i class="icon-clock"></i> '.(isset($hours)?$hours.__(' Minutes','vibe'):'').' '.$minutes.__(' seconds','vibe').'</span>';
else if($unit_duration_parameter == 60)
echo '<span><i class="icon-clock"></i> '.(isset($hours)?$hours.__(' Hours','vibe'):'').' '.$minutes.__(' minutes','vibe').'</span>';
else if($unit_duration_parameter == 3600)
echo '<span><i class="icon-clock"></i> '.(isset($hours)?$hours.__(' Days','vibe'):'').' '.$minutes.__(' hours','vibe').'</span>';
}
}
?>
<br /><h1><?php
if(isset($course_id)){
echo get_the_title($unit_id);
}else{
the_title();
}
?></h1>
<?php
if(isset($course_id)){
the_sub_title($unit_id);
}else{
the_sub_title();
}
?>
</div>
<?php
if(isset($coursetaken) && $coursetaken && $unit_id !=''){
if(isset($course_curriculum) && is_array($course_curriculum)){
the_unit($unit_id);
if(isset($unit_comments) && is_numeric($unit_comments)){
echo "<script>jQuery(document).ready(function($){ $('.unit_content').trigger('load_comments'); });</script>";
}
}else{
echo '<h3>';
_e('Course Curriculum Not Set.','vibe');
echo '</h3>';
}
}else{
the_content();
if(isset($course_id) && is_numeric($course_id)){
$course_instructions = get_post_meta($course_id,'vibe_course_instructions',true);
echo apply_filters('the_content',$course_instructions);
}
}
endwhile;
endif;
?>
<?php
$units=array();
if(isset($course_curriculum) && is_array($course_curriculum) && count($course_curriculum)){
foreach($course_curriculum as $key=>$curriculum){
if(is_numeric($curriculum)){
$units[]=$curriculum;
}
}
}else{
echo '<div class="error"><p>'.__('Course Curriculum Not Set','vibe').'</p></div>';
}
if($unit_id ==''){
echo '<div class="unit_prevnext"><div class="col-md-3"></div><div class="col-md-6">
'.((isset($done_flag) && $done_flag)?'': '<a href="#" data-unit="'.$units[0].'" class="unit unit_button">'.__('Start Course','vibe').'</a>').
'</div></div>';
}else{
$k = array_search($unit_id,$units);
if(empty($k)) $k = 0;
$next=$k+1;
$prev=$k-1;
$max=count($units)-1;
$done_flag=get_user_meta($user_id,$unit_id,true);
echo '<div class="unit_prevnext"><div class="col-md-3">';
if($prev >=0){
if(get_post_type($units[$prev]) == 'quiz'){
$quiz_status = get_user_meta($user_id,$units[$prev],true);
if(!empty($quiz_status))
echo '<a href="#" data-unit="'.$units[$prev].'" class="unit unit_button">'.__('Previous Quiz','vibe').'</a>';
else
echo '<a href="'.get_permalink($units[$prev]).'" class=" unit_button">'.__('Previous Quiz','vibe').'</a>';
}else
echo '<a href="#" id="prev_unit" data-unit="'.$units[$prev].'" class="unit unit_button">'.__('Previous Unit','vibe').'</a>';
}
echo '</div>';
echo '<div class="col-md-6">';
if(!isset($done_flag) || !$done_flag){
if(get_post_type($units[($k)]) == 'quiz'){
$quiz_status = get_user_meta($user_id,$units[($k)],true);
$quiz_class = apply_filters('wplms_in_course_quiz','');
if(is_numeric($quiz_status)){
if($quiz_status < time()){
echo '<a href="'.bp_loggedin_user_domain().BP_COURSE_SLUG.'/'.BP_COURSE_RESULTS_SLUG.'/?action='.$units[($k)].'" class="quiz_results_popup">'.__('Check Results','vibe').'</a>';
}else{
echo '<a href="'.get_permalink($units[($k)]).'" class=" unit_button '.$quiz_class.' continue">'.__('Continue Quiz','vibe').'</a>';
}
}else{
echo '<a href="'.get_permalink($units[($k)]).'" class=" unit_button '.$quiz_class.'">'.__('Start Quiz','vibe').'</a>';
}
}else{
echo apply_filters('wplms_unit_mark_complete','<a href="#" id="mark-complete" data-unit="'.$units[($k)].'" class="unit_button">'.__('Mark this Unit Complete','vibe').'</a>',$unit_id,$course_id);
}
}else{
if(get_post_type($units[($k)]) == 'quiz'){
$quiz_status = get_user_meta($user_id,$units[($k)],true);
$quiz_class = apply_filters('wplms_in_course_quiz','');
if(is_numeric($quiz_status)){
if($quiz_status < time()){
echo '<a href="'.bp_loggedin_user_domain().BP_COURSE_SLUG.'/'.BP_COURSE_RESULTS_SLUG.'/?action='.$units[($k)].'" class="quiz_results_popup">'.__('Check Results','vibe').'</a>';
}else{
echo '<a href="'.get_permalink($units[($k)]).'" class=" unit_button '.$quiz_class.' continue">'.__('Continue Quiz','vibe').'</a>';
}
}else{
echo '<a href="'.bp_loggedin_user_domain().BP_COURSE_SLUG.'/'.BP_COURSE_RESULTS_SLUG.'/?action='.$units[($k)].'" class="quiz_results_popup">'.__('Check Results','vibe').'</a>';
}
}
// If unit does not show anything
}
echo '</div>';
echo '<div class="col-md-3">';
$nextflag=1;
if($next <= $max){
$nextunit_access = vibe_get_option('nextunit_access');
if(isset($nextunit_access) && $nextunit_access){
for($i=0;$i<$next;$i++){
$status = get_post_meta($units[$i],$user_id,true);
if(!empty($status)){
$nextflag=0;
break;
}
}
}
if($nextflag){
if(get_post_type($units[$next]) == 'quiz'){
$quiz_status = get_user_meta($user_id,$units[$next],true);
if(!empty($quiz_status))
echo '<a href="#" data-unit="'.$units[$next].'" class="unit unit_button">'.__('Next Quiz','vibe').'</a>';
else
echo '<a href="'.get_permalink($units[$next]).'" class=" unit_button">'.__('Next Quiz','vibe').'</a>';
}else{
if(get_post_type($units[$next]) == 'unit'){ //Display Next unit link because current unit is a quiz on Page reload
echo '<a href="#" id="next_unit" data-unit="'.$units[$next].'" class="unit unit_button">'.__('Next Unit','vibe').'</a>';
}else{
echo '<a href="#" id="next_unit" data-unit="'.$units[$next].'" class="unit unit_button hide">'.__('Next Unit','vibe').'</a>';
}
}
}else{
echo '<a href="#" id="next_unit" class="unit unit_button hide">'.__('Next Unit','vibe').'</a>';
}
}
echo '</div></div>';
} // End the Bug fix on course begining
?>
</div>
<?php
wp_nonce_field('security','hash');
echo '<input type="hidden" id="course_id" name="course" value="'.$course_id.'" />';
?>
<div id="ajaxloader" class="disabled"></div>
<div class="side_comments"><a id="all_comments_link" data-href="<?php if(isset($unit_comments) && is_numeric($unit_comments)){echo get_permalink($unit_comments);} ?>"><?php _e('SEE ALL','vibe'); ?></a>
<ul class="main_comments">
<li class="hide">
<div class="note">
<?php
$author_id = get_current_user_id();
echo get_avatar($author_id).' <a href="'.bp_core_get_user_domain($author_id).'" class="unit_comment_author"> '.bp_core_get_user_displayname( $author_id) .'</a>';
$link = vibe_get_option('unit_comments');
if(isset($link) && is_numeric($link))
$link = get_permalink($link);
else
$link = '#';
?>
<div class="unit_comment_content"></div>
<ul class="actions">
<li><a class="tip edit_unit_comment" title="<?php _e('Edit','vibe'); ?>"><i class="icon-pen-alt2"></i></a></li>
<li><a class="tip public_unit_comment" title="<?php _e('Make Public','vibe'); ?>"><i class="icon-fontawesome-webfont-3"></i></a></li>
<li><a class="tip private_unit_comment" title="<?php _e('Make Private','vibe'); ?>"><i class="icon-fontawesome-webfont-4"></i></a></li>
<li><a class="tip reply_unit_comment" title="<?php _e('Reply','vibe'); ?>"><i class="icon-curved-arrow"></i></a></li>
<li><a class="tip instructor_reply_unit_comment" title="<?php _e('Request Instructor reply','vibe'); ?>"><i class="icon-forward-2"></i></a></li>
<li><a data-href="<?php echo $link; ?>" class="popup_unit_comment" title="<?php _e('Open in Popup','vibe'); ?>" target="_blank"><i class="icon-windows-2"></i></a></li>
<li><a class="tip remove_unit_comment" title="<?php _e('Remove','vibe'); ?>"><i class="icon-cross"></i></a></li>
</ul>
</div>
</li>
</ul>
<a class="add-comment"><?php _e('Add a Note','vibe');?></a>
<div class="comment-form">
<?php
echo get_avatar($author_id); echo ' <span>'.__('YOU','vibe').'</span>';
?>
<article class="live-edit" data-model="article" data-id="1" data-url="/articles">
<div class="new_side_comment" data-editable="true" data-name="content" data-text-options="true">
<?php _e('Add your Comment','vibe'); ?>
</div>
</article>
<ul class="actions">
<li><a class="post_unit_comment tip" title="<?php _e('Post','vibe'); ?>"><i class="icon-fontawesome-webfont-4"></i></a></li>
<li><a class="remove_side_comment tip" title="<?php _e('Remove','vibe'); ?>"><i class="icon-cross"></i></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="course_time">
<?php
the_course_time("course_id=$course_id&user_id=$user_id");
?>
</div>
<?php
do_action('wplms_course_start_after_time',$course_id,$unit_id);
?>
</div><div class="col-md-4">
<?php
echo the_course_timeline($course_id,$unit_id);
do_action('wplms_course_start_after_timeline',$course_id,$unit_id);
?>
</div><div class="col-md-4">
<?php
if(isset($course_curriculum) && is_array($course_curriculum)){
?>
<div class="more_course">
<a href="<?php echo get_permalink($course_id); ?>" class="unit_button full button"><?php _e('BACK TO COURSE','vibe'); ?></a>
<form action="<?php echo get_permalink($course_id); ?>" method="post">
<?php
$finishbit=get_post_meta($course_id,$user_id,true);
if(isset($finishbit) && $finishbit!=''){
if($finishbit>0 && $finishbit < 3){
echo '<input type="submit" name="review_course" class="review_course unit_button full button" value="'. __('REVIEW COURSE ','vibe').'" />';
echo '<input type="submit" name="submit_course" class="review_course unit_button full button" value="'. __('FINISH COURSE ','vibe').'" />';
}
}
?>
<?php wp_nonce_field($course_id,'review'); ?>
</form>
</div>
<?php
}
?>
</div>
</div>
</div>
</section>
<?php
get_footer();
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment