Exemplo n.º 1
0
 static function install($update = false)
 {
     global $wpdb;
     $wpdb->show_errors();
     $old_version = get_option('namaste_version');
     update_option('namaste_version', "1.34");
     if (!$update) {
         self::init();
     }
     // enrollments to courses
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_STUDENT_COURSES . "'") != NAMASTE_STUDENT_COURSES) {
         $sql = "CREATE TABLE `" . NAMASTE_STUDENT_COURSES . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t\t`course_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`user_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`status` VARCHAR(255) NOT NULL DEFAULT '',\n\t\t\t\t\t`enrollment_date` DATE NOT NULL DEFAULT '2000-01-01',\t\t\t\n\t\t\t\t\t`completion_date` DATE NOT NULL DEFAULT '2000-01-01',\n\t\t\t\t\t`comments` TEXT NOT NULL\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     // assignments - let's not use custom post type for this
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_HOMEWORKS . "'") != NAMASTE_HOMEWORKS) {
         $sql = "CREATE TABLE `" . NAMASTE_HOMEWORKS . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t\t`course_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`lesson_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`title` VARCHAR(255) NOT NULL DEFAULT '',\n\t\t\t\t\t`description` TEXT NOT NULL,\n\t\t\t\t\t`accept_files` TINYINT NOT NULL DEFAULT 0 /* zip only */\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     // student - assignments relation
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_STUDENT_HOMEWORKS . "'") != NAMASTE_STUDENT_HOMEWORKS) {
         $sql = "CREATE TABLE `" . NAMASTE_STUDENT_HOMEWORKS . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t\t`homework_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`student_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`status` VARCHAR(255) NOT NULL DEFAULT '',\n\t\t\t\t\t`date_submitted` DATE NOT NULL DEFAULT '2000-01-01',\n\t\t\t\t\t`content` TEXT NOT NULL,\n\t\t\t\t\t`file` VARCHAR(255) NOT NULL DEFAULT ''\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     // assignment notes (usually used as feedback from the teacher to the student. Student can't reply)
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_HOMEWORK_NOTES . "'") != NAMASTE_HOMEWORK_NOTES) {
         $sql = "CREATE TABLE `" . NAMASTE_HOMEWORK_NOTES . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t\t`homework_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`student_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`teacher_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`note` TEXT NOT NULL,\n\t\t\t\t\t`datetime` DATETIME NOT NULL DEFAULT '2000-01-01'\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     // student to lessons relation - only save record if student has completed a lesson
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_STUDENT_LESSONS . "'") != NAMASTE_STUDENT_LESSONS) {
         $sql = "CREATE TABLE `" . NAMASTE_STUDENT_LESSONS . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t\t`lesson_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`student_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`status` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t\t`completion_date` TEXT NOT NULL\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_CERTIFICATES . "'") != NAMASTE_CERTIFICATES) {
         $sql = "CREATE TABLE `" . NAMASTE_CERTIFICATES . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t  `course_ids` VARCHAR(255) NOT NULL DEFAULT '',\n\t\t\t\t  `title` VARCHAR(255) NOT NULL DEFAULT '',\n\t\t\t\t  `content` TEXT NOT NULL\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_STUDENT_CERTIFICATES . "'") != NAMASTE_STUDENT_CERTIFICATES) {
         $sql = "CREATE TABLE `" . NAMASTE_STUDENT_CERTIFICATES . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t  `certificate_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t  `student_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t  `date` DATE NOT NULL DEFAULT '2000-01-01'\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     // payment records
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_PAYMENTS . "'") != NAMASTE_PAYMENTS) {
         $sql = "CREATE TABLE `" . NAMASTE_PAYMENTS . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t  `course_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t  `user_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t  `date` DATE NOT NULL DEFAULT '2001-01-01',\n\t\t\t\t  `amount` DECIMAL(8,2),\n\t\t\t\t  `status` VARCHAR(100) NOT NULL DEFAULT 'failed',\n\t\t\t\t  `paycode` VARCHAR(100) NOT NULL DEFAULT '',\n\t\t\t\t  `paytype` VARCHAR(100) NOT NULL DEFAULT 'paypal'\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     // tracks the visits on a give course or lesson
     // 1 record per user/date
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_VISITS . "'") != NAMASTE_VISITS) {
         $sql = "CREATE TABLE `" . NAMASTE_VISITS . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t  `course_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t  `lesson_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t  `user_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t  `date` DATE NOT NULL DEFAULT '2001-01-01',\n\t\t\t\t  `visits` INT UNSIGNED NOT NULL DEFAULT 0\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     // history of various actions, for example points awarded and spent
     if ($wpdb->get_var("SHOW TABLES LIKE '" . NAMASTE_HISTORY . "'") != NAMASTE_HISTORY) {
         $sql = "CREATE TABLE `" . NAMASTE_HISTORY . "` (\n\t\t\t\t  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,\n\t\t\t\t  `user_id` INT UNSIGNED NOT NULL DEFAULT 0,\n\t\t\t\t  `date` DATE NOT NULL DEFAULT '2001-01-01',\n\t\t\t\t  `datetime` DATETIME,\n\t\t\t\t  `action` VARCHAR(255) NOT NULL DEFAULT '',\n\t\t\t\t  `value` VARCHAR(255) NOT NULL DEFAULT '', /* some textual value if required */\n\t\t\t\t  `num_value` INT UNSIGNED NOT NULL DEFAULT 0 /* some numeric value, for example points */\n\t\t\t\t) DEFAULT CHARSET=utf8;";
         $wpdb->query($sql);
     }
     // add extra fields in new versions
     namaste_add_db_fields(array(array("name" => "grade", "type" => "VARCHAR(100) NOT NULL DEFAULT ''"), array("name" => "fileblob", "type" => "LONGBLOB")), NAMASTE_STUDENT_HOMEWORKS);
     namaste_add_db_fields(array(array("name" => "grade", "type" => "VARCHAR(100) NOT NULL DEFAULT ''"), array("name" => "enrollment_time", "type" => "DATETIME"), array("name" => "completion_time", "type" => "DATETIME")), NAMASTE_STUDENT_COURSES);
     namaste_add_db_fields(array(array("name" => "grade", "type" => "VARCHAR(100) NOT NULL DEFAULT ''"), array("name" => "start_time", "type" => "DATETIME"), array("name" => "completion_time", "type" => "DATETIME")), NAMASTE_STUDENT_LESSONS);
     namaste_add_db_fields(array(array("name" => "award_points", "type" => "INT UNSIGNED NOT NULL DEFAULT 0"), array("name" => "editor_id", "type" => "INT UNSIGNED NOT NULL DEFAULT 0")), NAMASTE_HOMEWORKS);
     namaste_add_db_fields(array(array("name" => "editor_id", "type" => "INT UNSIGNED NOT NULL DEFAULT 0")), NAMASTE_CERTIFICATES);
     namaste_add_db_fields(array(array("name" => "for_item_type", "type" => "VARCHAR(100) NOT NULL DEFAULT '' "), array("name" => "for_item_id", "type" => "INT UNSIGNED NOT NULL DEFAULT 0")), NAMASTE_HISTORY);
     // add student role if not exists
     $res = add_role('student', 'Student', array('read' => true, 'namaste' => true));
     if (!$res) {
         // role already exists, check the capability
         $role = get_role('student');
         if (!$role->has_cap('namaste')) {
             $role->add_cap('namaste');
         }
     }
     // add manage cap to the admin / superadmin by default
     $role = get_role('administrator');
     if (!$role->has_cap('namaste_manage')) {
         $role->add_cap('namaste_manage');
     }
     // update fileblob
     if ($old_version < 1.27) {
         $wpdb->query("ALTER TABLE " . NAMASTE_STUDENT_HOMEWORKS . " CHANGE fileblob fileblob LONGBLOB");
     }
     /* This was needed only for a while but now is generated "unexpected output" during activation
        if($old_version < 1.29) {
        	  // drop student-certificate uniqueness, no longer used    	
     	  $sql = "ALTER TABLE ".NAMASTE_STUDENT_CERTIFICATES." DROP INDEX certificate_id";
     	  $wpdb->query($sql);
        }*/
     // fush rewrite rules
     NamasteLMSCourseModel::register_course_type();
     NamasteLMSLessonModel::register_lesson_type();
     flush_rewrite_rules();
     // exit;
 }
Exemplo n.º 2
0
	<?php 
get_header();
?>
	
	<div class="full_width">
	<div class="full_width_inner">



		<?php 
global $user_ID;
$is_manager = current_user_can('namaste_manage');
$_course = new NamasteLMSCourseModel();
// select all courses
$_course->register_course_type();
$courses = $_course->select();
?>
		<h1><?php 
_e('My Courses', 'namaste');
?>
</h1>

		<?php 
if (!sizeof($courses)) {
    ?>
			<p><?php 
    _e('No courses are available at this time.', 'namaste');
    ?>
</p>
		<?php