PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.6.0
Tutor LMS – eLearning and online course solution v3.6.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 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / includes / droip / backend / Pages.php
tutor / includes / droip / backend Last commit date
ElementGenerator 1 year ago Ajax.php 1 year ago Backend.php 1 year ago Editor.php 1 year ago Frontend.php 1 year ago Helper.php 1 year ago Hooks.php 1 year ago Iframe.php 1 year ago Pages.php 1 year ago VisibilityCondition.php 1 year ago
Pages.php
191 lines
1 <?php
2 /**
3 * Preview script for html markup generator
4 *
5 * @package tutor-droip-elements
6 */
7
8 namespace TutorLMSDroip;
9
10 use TUTOR\Input;
11 use Droip\HelperFunctions;
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit; // Exit if accessed directly.
15 }
16
17 /**
18 * Class Pages
19 * This class is used to define all helper functions.
20 */
21 class Pages {
22
23
24 /**
25 * Class constructor
26 *
27 * @since 1.0.0
28 */
29 public function __construct() {
30 /**
31 * Manage Post API call's
32 */
33 add_action( 'wp_ajax_nopriv_tde_get_apis', array( $this, 'tde_get_apis' ) );
34 add_action( 'wp_ajax_tde_get_apis', array( $this, 'tde_get_apis' ) );
35
36 add_action( 'template_redirect', array( $this, 'control_pages_content' ) );
37
38 add_filter( 'droip_assets_should_load', array( $this, 'load_droip_assets' ) );
39
40 add_action( 'wp_enqueue_scripts', array( $this, 'load_assets' ), 100 );
41 }
42
43 /**
44 * Get all APIs
45 *
46 * @since 1.0.0
47 */
48 public function tde_get_apis() {
49 $course_template = Helper::get_course_template_posts();
50
51 $pages = array();
52 foreach ( $course_template as $key => $template ) {
53 $pages[] = array(
54 'id' => $template->ID,
55 'title' => $template->post_title,
56 'post_type' => $template->post_type,
57 'status' => $template->post_status,
58 'preview_url' => $template->guid,
59 'editor_url' => add_query_arg(
60 array(
61 'action' => 'droip',
62 'post_id' => $template->ID,
63 ),
64 $template->guid
65 ),
66 );
67 }
68
69 wp_send_json_success( $pages );
70 }
71
72 /**
73 * Generate courses page
74 *
75 * @since 1.0.0
76 */
77 public function control_pages_content() {
78 $action = Input::get( 'action' );
79 $load_for = Input::get( 'load_for' );
80 if ( $this->is_course_page() && ( $action !== 'droip' || $load_for === 'droip-iframe' ) ) {
81 $this->generate_page_using_full_canvas_template();
82 }
83
84 if ( $this->is_course_bundle_page() && ( $action !== 'droip' || $load_for === 'droip-iframe' ) ) {
85 $this->generate_page_using_full_canvas_template();
86 }
87
88 if ( $this->is_course_list_page() && ( $action !== 'droip' || $load_for === 'droip-iframe' ) ) {
89 $utility_page = HelperFunctions::find_utility_page_for_this_context('lms_course_list');
90 if ( $utility_page ) {
91 $html = apply_filters(
92 'droip_html_generator',
93 '',
94 $utility_page['id']
95 );
96 $custom_data = array(
97 'droip_template_content' => $html,
98 'droip_template_id' => $utility_page['id'],
99 );
100 set_query_var( 'droip_custom_data', $custom_data );
101 include_once DROIP_FULL_CANVAS_TEMPLATE_PATH;
102 exit();
103 }
104 }
105 }
106
107 /**
108 * Load assets for preview page
109 */
110 public function load_assets() {
111 wp_enqueue_script( TDE_APP_PREFIX . '-tutor-droip-preview', TDE_PLUGIN_ROOT_BASE . 'build/js/preview.min.js', array( 'wp-i18n' ), '1.0.0', true );
112 wp_enqueue_style( TDE_APP_PREFIX . '-tutor-droip-preview', TDE_PLUGIN_ROOT_BASE . 'build/css/preview.min.css', null, '1.0.0' );
113 }
114
115 /**
116 * Load droip assets
117 *
118 * @param bool $default_value default value.
119 * @return bool
120 */
121 public function load_droip_assets( $default_value ) {
122 if ( $this->is_course_page() || $this->is_course_bundle_page() ) {
123 return true;
124 }
125 return $default_value;
126 }
127 /**
128 * Generate course page
129 *
130 * @since 1.0.0
131 */
132 private function generate_page_using_full_canvas_template() {
133 $template = apply_filters( 'droip_template_finder', 'post', get_post( get_the_ID() ) );
134 if ( ! $template ) {
135 return;
136 }
137
138 $course_template = get_post( $template['id'] );
139
140 if ( $course_template->post_status === 'publish' ) {
141 $html = apply_filters(
142 'droip_html_generator',
143 '',
144 $course_template->ID
145 );
146 $custom_data = array(
147 'droip_template_content' => $html, // Example: Get the current post ID
148 'droip_template_id' => $template['id'],
149 );
150 // Set a global variable with custom data to make it available in the template
151 set_query_var( 'droip_custom_data', $custom_data );
152
153 include_once DROIP_FULL_CANVAS_TEMPLATE_PATH;
154 exit();
155 }
156 }
157
158 /**
159 * Check if current page is course page
160 *
161 * @return bool
162 */
163 private function is_course_page() {
164 global $wp_query;
165 $tutor = tutor();
166 if ( $wp_query->is_single && ! empty( $wp_query->query_vars['post_type'] ) && $wp_query->query_vars['post_type'] === $tutor->course_post_type ) {
167 return true;
168 }
169
170 return false;
171 }
172
173 private function is_course_bundle_page() {
174 global $wp_query;
175 $tutor = tutor();
176 if ( $wp_query->is_single && ! empty( $wp_query->query_vars['post_type'] ) && $wp_query->query_vars['post_type'] === $tutor->bundle_post_type ) {
177 return true;
178 }
179
180 return false;
181 }
182
183 private function is_course_list_page() {
184 global $wp_query;
185 if(is_array($wp_query->query_vars['post_type']) && in_array('courses', $wp_query->query_vars['post_type']) && !$wp_query->is_single) {
186 return true;
187 }
188 return false;
189 }
190 }
191