コード例 #1
0
ファイル: homeworks.php プロジェクト: Bnei-Baruch/Namaste
 static function submit_solution($in_shortcode = false)
 {
     global $wpdb, $user_ID, $post;
     $_course = new NamasteLMSCourseModel();
     list($homework, $course, $lesson) = NamasteLMSHomeworkModel::full_select($_GET['id']);
     // am I enrolled?
     if (!NamasteLMSStudentModel::is_enrolled($user_ID, $course->ID)) {
         wp_die(__('You are not enrolled in this course!', 'namaste'));
     }
     // unsatisfied lesson completion requirements?
     $not_completed_ids = NamasteLMSLessonModel::unsatisfied_complete_requirements($lesson);
     if (!empty($not_completed_ids)) {
         $content = '<p>' . __('Before submitting solutions on this lesson you must complete the following lessons:', 'namaste') . '</p>';
         $content .= '<ul>';
         foreach ($not_completed_ids as $id) {
             $not_completed = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->posts} WHERE id=%d", $id));
             $content .= '<li><a href="' . get_permalink($id) . '">' . $not_completed->post_title . '</a></li>';
         }
         $content .= '</ul>';
         echo $content;
         // self :: mark_accessed();
         return true;
     }
     // now submit
     if (!empty($_POST['ok'])) {
         if (empty($_POST['content'])) {
             wp_die(__('You cannot submit an empty solution', 'namaste'));
         }
         // avoid duplicates
         $exists = $wpdb->get_var($wpdb->prepare("SELECT id FROM " . NAMASTE_STUDENT_HOMEWORKS . "\n\t\t\t\tWHERE student_id=%d AND homework_id=%d AND content=%s", $user_ID, $homework->id, $_POST['content']));
         if (!$exists) {
             $file = $file_blob = '';
             if ($homework->accept_files and !empty($_FILES['file']['tmp_name'])) {
                 $file_blob = file_get_contents($_FILES['file']['tmp_name']);
                 $file = $_FILES['file']['name'];
             }
             $wpdb->query($wpdb->prepare("INSERT INTO " . NAMASTE_STUDENT_HOMEWORKS . " SET\n\t\t\t\t\thomework_id=%d, student_id=%d, status='pending', date_submitted=CURDATE(), \n\t\t\t\t\tcontent=%s, file=%s, fileblob=%s", $homework->id, $user_ID, $_POST['content'], $file, $file_blob));
         }
         do_action('namaste_submitted_solution', $user_ID, $homework->id);
         // insert in history
         $wpdb->query($wpdb->prepare("INSERT INTO " . NAMASTE_HISTORY . " SET\n\t\t\t\tuser_id=%d, date=CURDATE(), datetime=NOW(), action='submitted_solution', value=%s, num_value=%d", $user_ID, sprintf(__('Submitted solution to assignment "%s"', 'namaste'), $homework->title), $homework->id));
         if (@file_exists(get_stylesheet_directory() . '/namaste/solution-submitted.php')) {
             require get_stylesheet_directory() . '/namaste/solution-submitted.php';
         } else {
             require NAMASTE_PATH . "/views/solution-submitted.php";
         }
     } else {
         if (@file_exists(get_stylesheet_directory() . '/namaste/submit-solution.php')) {
             require get_stylesheet_directory() . '/namaste/submit-solution.php';
         } else {
             require NAMASTE_PATH . "/views/submit-solution.php";
         }
     }
 }