PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.2.1
Tutor LMS – eLearning and online course solution v3.2.1
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 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 / tutor-droip / backend / Pages.php
tutor / tutor-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 Iframe.php 1 year ago Pages.php 1 year ago
Pages.php
152 lines
1 <?php
2 /**
3 * Preview script for html markup generator
4 *
5 * @package tutor-droip-elements
6 */
7
8 namespace TutorLMSDroip;
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit; // Exit if accessed directly.
12 }
13
14 /**
15 * Class Pages
16 * This class is used to define all helper functions.
17 */
18 class Pages {
19
20 /**
21 * Class constructor
22 *
23 * @since 1.0.0
24 */
25 public function __construct() {
26 /**
27 * Manage Post API call's
28 */
29 add_action( 'wp_ajax_nopriv_tde_get_apis', array( $this, 'tde_get_apis' ) );
30 add_action( 'wp_ajax_tde_get_apis', array( $this, 'tde_get_apis' ) );
31
32 add_action( 'template_redirect', array( $this, 'control_pages_content' ) );
33
34 add_filter( 'droip_assets_should_load', array( $this, 'load_droip_assets' ) );
35 }
36
37 /**
38 * Get all APIs
39 *
40 * @since 1.0.0
41 */
42 public function tde_get_apis() {
43 $course_template = Helper::get_course_template_posts();
44
45 $pages = array();
46 foreach ($course_template as $key => $template) {
47 $pages[] = array(
48 'id' => $template->ID,
49 'title' => $template->post_title,
50 'post_type' => $template->post_type,
51 'status' => $template->post_status,
52 'preview_url' => $template->guid,
53 'editor_url' => add_query_arg(
54 array(
55 'action' => 'droip',
56 'post_id' => $template->ID,
57 ),
58 $template->guid
59 )
60 );
61 }
62
63 wp_send_json_success( $pages );
64 }
65
66 /**
67 * Generate courses page
68 *
69 * @since 1.0.0
70 */
71 public function control_pages_content() {
72 $action = sanitize_text_field( wp_unslash( isset( $_GET['action'] ) ? $_GET['action'] : '' ) );
73 $load_for = sanitize_text_field( wp_unslash( isset( $_GET['load_for'] ) ? $_GET['load_for'] : '' ) );
74 if ( $this->is_course_page() && ( $action !== 'droip' || $load_for === 'droip-iframe' )) {
75 $this->generate_course_page();
76 }
77 }
78
79 /**
80 * Check if current page is courses page
81 */
82 private function load_preview_script() {
83 add_action( 'wp_enqueue_scripts', array( $this, 'load_assets' ), 100 );
84 }
85
86
87 /**
88 * Load assets for preview page
89 */
90 public function load_assets() {
91 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 );
92 wp_enqueue_style( TDE_APP_PREFIX . '-tutor-droip-preview', TDE_PLUGIN_ROOT_BASE . 'build/css/preview.min.css', null, '1.0.0' );
93 }
94
95 /**
96 * Load droip assets
97 *
98 * @param bool $default_value default value.
99 * @return bool
100 */
101 public function load_droip_assets( $default_value ) {
102 if ( $this->is_course_page() ) {
103 return true;
104 }
105 return $default_value;
106 }
107 /**
108 * Generate course page
109 *
110 * @since 1.0.0
111 */
112 private function generate_course_page() {
113 $template = apply_filters('droip_template_finder', get_post(get_the_ID()) );
114 if(!$template)return;
115 $this->load_preview_script();
116
117 $course_template = get_post($template['id']);
118
119 if($course_template->post_status === 'publish'){
120 $html = apply_filters(
121 'droip_html_generator',
122 '',
123 $course_template->ID
124 );
125 $custom_data = array(
126 'droip_template_content' => $html, // Example: Get the current post ID
127 'droip_template_id' => $template['id'],
128 );
129 // Set a global variable with custom data to make it available in the template
130 set_query_var('droip_custom_data', $custom_data);
131
132 include_once DROIP_FULL_CANVAS_TEMPLATE_PATH;
133 exit();
134 }
135 }
136
137 /**
138 * Check if current page is course page
139 *
140 * @return bool
141 */
142 private function is_course_page() {
143 global $wp_query;
144 $tutor = tutor();
145 if ( $wp_query->is_single && ! empty( $wp_query->query_vars['post_type'] ) && $wp_query->query_vars['post_type'] === $tutor->course_post_type ) {
146 return true;
147 }
148
149 return false;
150 }
151 }
152