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"; } } }