PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.0.0
Tutor LMS – eLearning and online course solution v3.0.0
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
149 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 add_action( 'template_redirect', array( $this, 'control_pages_content' ) );
32
33 add_filter( 'droip_assets_should_load', array( $this, 'load_droip_assets' ) );
34 }
35
36 /**
37 * Get all APIs
38 *
39 * @since 1.0.0
40 */
41 public function tde_get_apis() {
42 $course_template = Helper::get_course_template_posts();
43
44 $pages = array();
45 foreach ($course_template as $key => $template) {
46 $pages[] = array(
47 'id' => $template->ID,
48 'title' => $template->post_title,
49 'post_type' => $template->post_type,
50 'status' => $template->post_status,
51 'preview_url' => $template->guid,
52 'editor_url' => add_query_arg(
53 array(
54 'action' => 'droip',
55 'post_id' => $template->ID,
56 ),
57 $template->guid
58 )
59 );
60 }
61
62 wp_send_json_success( $pages );
63 }
64
65 /**
66 * Generate courses page
67 *
68 * @since 1.0.0
69 */
70 public function control_pages_content() {
71 if ( $this->is_course_page() ) {
72 $this->generate_course_page();
73 }
74 }
75
76 /**
77 * Check if current page is courses page
78 */
79 private function load_preview_script() {
80 add_action( 'wp_enqueue_scripts', array( $this, 'load_assets' ), 100 );
81 }
82
83
84 /**
85 * Load assets for preview page
86 */
87 public function load_assets() {
88 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 );
89 wp_enqueue_style( TDE_APP_PREFIX . '-tutor-droip-preview', TDE_PLUGIN_ROOT_BASE . 'build/css/preview.min.css', null, '1.0.0' );
90 }
91
92 /**
93 * Load droip assets
94 *
95 * @param bool $default_value default value.
96 * @return bool
97 */
98 public function load_droip_assets( $default_value ) {
99 if ( $this->is_course_page() ) {
100 return true;
101 }
102 return $default_value;
103 }
104 /**
105 * Generate course page
106 *
107 * @since 1.0.0
108 */
109 private function generate_course_page() {
110 $template = apply_filters('droip_template_finder', get_post(get_the_ID()) );
111 if(!$template)return;
112 $this->load_preview_script();
113
114 $course_template = get_post($template['id']);
115
116 if($course_template->post_status === 'publish'){
117 $html = apply_filters(
118 'droip_html_generator',
119 '',
120 $course_template->ID
121 );
122 $custom_data = array(
123 'droip_template_content' => $html, // Example: Get the current post ID
124 'droip_template_id' => $template['id'],
125 );
126 // Set a global variable with custom data to make it available in the template
127 set_query_var('droip_custom_data', $custom_data);
128
129 include_once DROIP_FULL_CANVAS_TEMPLATE_PATH;
130 exit();
131 }
132 }
133
134 /**
135 * Check if current page is course page
136 *
137 * @return bool
138 */
139 private function is_course_page() {
140 global $wp_query;
141 $tutor = tutor();
142 if ( $wp_query->is_single && ! empty( $wp_query->query_vars['post_type'] ) && $wp_query->query_vars['post_type'] === $tutor->course_post_type ) {
143 return true;
144 }
145
146 return false;
147 }
148 }
149