PluginProbe
Tutor LMS – eLearning and online course solution / 1.0.7
Tutor LMS – eLearning and online course solution v1.0.7
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 All 191 releases
tutor / classes / Rewrite_Rules.php

Rewrite_Rules.php in Tutor LMS – eLearning and online course solution 1.0.7, at classes/Rewrite_Rules.php

119 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace TUTOR;
3
4 if ( ! defined( 'ABSPATH' ) )
5 exit;
6
7 class Rewrite_Rules extends Tutor_Base {
8
9
10 public function __construct() {
11 parent::__construct();
12
13 add_filter( 'query_vars', array($this, 'tutor_register_query_vars') );
14 add_action('generate_rewrite_rules', array($this, 'add_rewrite_rules'));
15
16 //Lesson Permalink
17 add_filter('post_type_link', array($this, 'change_lesson_single_url'), 1, 2);
18 }
19
20 public function tutor_register_query_vars( $vars ) {
21 $vars[] = 'course_subpage';
22 $vars[] = 'lesson_video';
23 $vars[] = 'tutor_dashboard_page';
24
25 $enable_public_profile = tutor_utils()->get_option('enable_public_profile');
26 if ($enable_public_profile){
27 $vars[] = 'tutor_student_username';
28 $vars[] = 'profile_sub_page';
29 }
30
31 return $vars;
32 }
33
34 public function add_rewrite_rules($wp_rewrite){
35 $new_rules = array(
36 //Lesson Permalink
37 $this->course_post_type."/(.+?)/{$this->lesson_base_permalink}/(.+?)/?$" => "index.php?post_type={$this->lesson_post_type}&name=".$wp_rewrite->preg_index(2),
38 //Quiz Permalink
39 $this->course_post_type."/(.+?)/tutor_quiz/(.+?)/?$" => "index.php?post_type=tutor_quiz&name=".$wp_rewrite->preg_index(2),
40 //Private Video URL
41 "video-url/(.+?)/?$" => "index.php?post_type={$this->lesson_post_type}&lesson_video=true&name=". $wp_rewrite->preg_index(1),
42 //Student Public Profile URL
43 "profile/(.+?)/(.+?)/?$" => "index.php?tutor_student_username=". $wp_rewrite->preg_index(1)."&profile_sub_page=".$wp_rewrite->preg_index(2),
44 "profile/(.+?)/?$" => "index.php?tutor_student_username=". $wp_rewrite->preg_index(1),
45 );
46
47 //Nav Items
48 $course_nav_items = tutor_utils()->course_sub_pages();
49 //$course_nav_items = array_keys($course_nav_items);
50
51 if (is_array($course_nav_items) && count($course_nav_items)){
52 foreach ($course_nav_items as $nav_key => $nav_item){
53 $new_rules[$this->course_post_type."/(.+?)/{$nav_key}/?$"] ='index.php?post_type=course&name='.$wp_rewrite->preg_index(1).'&course_subpage='.$nav_key;
54 }
55 }
56
57 //Student Dashboard URL
58 $dashboard_pages = tutor_utils()->tutor_student_dashboard_pages();
59 foreach ($dashboard_pages as $dashboard_key => $dashboard_page){
60 $new_rules["(.+?)/{$dashboard_key}/?$"] ='index.php?pagename='.$wp_rewrite->preg_index(1).'&tutor_dashboard_page=' .$dashboard_key;
61 }
62
63 $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
64 }
65
66 /**
67 * @param $post_link
68 * @param int $id
69 *
70 * @return string
71 *
72 * Change the lesson permalink
73 */
74 function change_lesson_single_url($post_link, $id=0){
75 $post = get_post($id);
76
77 global $wpdb;
78
79 $course_base_slug = 'sample-course';
80
81 if( is_object($post) && $post->post_type == $this->lesson_post_type){
82 //Lesson Permalink
83 $course_id = get_post_meta($post->ID, '_tutor_course_id_for_lesson', true);
84
85 if ($course_id){
86 $course = $wpdb->get_row("select {$wpdb->posts}.post_name from {$wpdb->posts} where ID = {$course_id} ");
87 if ($course){
88 $course_base_slug = $course->post_name;
89 }
90 return home_url("/{$this->course_post_type}/{$course_base_slug}/{$this->lesson_base_permalink}/". $post->post_name.'/');
91 }else{
92 return home_url("/{$this->course_post_type}/sample-course/{$this->lesson_base_permalink}/". $post->post_name.'/');
93 }
94 }elseif (is_object($post) && $post->post_type === 'tutor_quiz'){
95 //Quiz Permalink
96 $course = $wpdb->get_row("select ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = {$post->post_parent} ");
97 if ($course){
98 //Checking if this topic
99 if ($course->post_type !== $this->course_post_type){
100 $course = $wpdb->get_row("select ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = {$course->post_parent} ");
101 }
102 //Checking if this lesson
103 if (isset($course->post_type) && $course->post_type !== $this->course_post_type){
104 $course = $wpdb->get_row("select ID, post_name, post_type, post_parent from {$wpdb->posts} where ID = {$course->post_parent} ");
105 }
106
107 $course_post_name = isset($course->post_name) ? $course->post_name : 'sample-course';
108 return home_url("/{$this->course_post_type}/{$course_post_name}/tutor_quiz/{$post->post_name}/");
109 }else{
110 return home_url("/{$this->course_post_type}/sample-course/tutor_quiz/{$post->post_name}/");
111 }
112 }
113 return $post_link;
114 }
115
116 }
117
118
119