PluginProbe ʕ •ᴥ•ʔ
Daily Prayer Time / 2021.10.21
Daily Prayer Time v2021.10.21
2026.05.20 2026.05.11 2026.05.09 2026.05.05 2026.05.04 2026.05.03 2026.04.28 2026.04.28.1 trunk 2019.10.16 2019.11.19 2019.2.16 2019.3.1 2019.4.1 2019.4.5 2019.5.12 2019.5.13 2019.5.14 2019.5.19 2019.5.19.1 2019.5.21 2019.5.30 2019.5.5 2019.5.6 2019.5.7 2019.5.8 2019.5.9 2019.6.10 2019.6.2 2019.6.22 2019.7.10 2019.7.25 2019.8.1 2019.8.4 2019.9.16 2020.04.25 2020.04.26 2020.05.01 2020.05.04 2020.05.08 2020.05.17 2020.07.03 2021.01.10 2021.03.28 2021.07.20 2021.07.23 2021.07.24 2021.07.28 2021.08.01 2021.08.06 2021.08.07 2021.08.10 2021.09.12 2021.09.18 2021.09.23 2021.09.24 2021.10.01 2021.10.02 2021.10.10 2021.10.11 2021.10.15 2021.10.21 2021.10.27 2021.10.29 2022.03.24 2022.04.04 2022.04.14 2022.04.15 2022.04.21 2022.04.22 2022.05.04 2022.09.19 2022.11.14 2022.11.16 2022.12.18 2022.12.20 2023.01.27 2023.02.04 2023.02.09 2023.02.21 2023.03.08 2023.03.17 2023.03.18 2023.03.20 2023.05.04 2023.08.03 2023.08.08.16 2023.08.19 2023.08.19.1 2023.10.13 2023.10.21 2023.11.26 2023.12.28 2023.12.31 2024.03.28 2024.03.29 2024.03.30 2024.04.18 2024.04.20 2024.04.22 2024.04.26 2024.08.26 2024.09.12 2024.09.14 2024.09.17 2024.12.29 2024.12.30 2025.01.02 2025.01.17 2025.02.02 2025.03.04 2025.03.06 2025.03.08 2025.03.15 2025.03.20 2025.03.26 2025.03.27 2025.04.03 2025.06.16 2025.06.29 2025.07.15 2025.08.09 2025.10.26 2026.04.26
daily-prayer-time-for-mosques / Models / DSTemplateLoader.php
daily-prayer-time-for-mosques / Models Last commit date
Processors 4 years ago QuranADay 4 years ago StartTime 4 years ago AdminMenu.php 6 years ago AssetsLoader.php 4 years ago CustomPluginSettings.php 4 years ago DPTAjaxHandler.php 4 years ago DSTemplateLoader.php 4 years ago DailyShortCode.php 4 years ago DigitalScreen.php 4 years ago HijriDate.php 7 years ago Init.php 4 years ago MonthlyShortCode.php 4 years ago MonthlyTimeTable.php 6 years ago Shortcodes.php 4 years ago UpdateStyles.php 7 years ago Validator.php 4 years ago db.php 4 years ago dptWidget.php 4 years ago
DSTemplateLoader.php
100 lines
1 <?php
2 class DSTemplateLoader
3 {
4 /**
5 * A reference to an instance of this class.
6 */
7 private static $instance;
8
9 /**
10 * The array of templates that this plugin tracks.
11 */
12 protected $templates;
13
14 /**
15 * Returns an instance of this class.
16 */
17 public static function get_instance() {
18
19 if ( null == self::$instance ) {
20 self::$instance = new DSTemplateLoader();
21 }
22
23 return self::$instance;
24 }
25
26 /**
27 * Initializes the plugin by setting filters and administration functions.
28 */
29 private function __construct() {
30
31 $this->templates = array();
32
33 add_filter('page_attributes_dropdown_pages_args', array( $this, 'register_project_templates' ) );
34
35 add_filter( 'wp_insert_post_data', array( $this, 'register_project_templates' ) );
36
37 add_filter( 'template_include', array( $this, 'view_project_template' ) );
38
39 $this->templates = array( '../Views/DSTemplate.php' => 'Digital Screen Prayer Time',
40 '../Views/DPTFullWidth.php' => 'Full Width Monthly Prayer Time', );
41 }
42
43
44 /**
45 * Adds our template to the pages cache in order to trick WordPress
46 * into thinking the template file exists where it doens't really exist.
47 *
48 */
49
50 public function register_project_templates( $atts ) {
51
52 $theme = wp_get_theme();
53
54 $cache_key = 'page_templates-' . md5( $theme->get_theme_root() . '/' . $theme->get_stylesheet() );
55
56 $templates = $theme->get_page_templates();
57
58 $templates = array_merge( $templates, $this->templates );
59
60 wp_cache_set( $cache_key, $templates, 'themes', 300 );
61
62 add_filter( 'theme_page_templates', function( $page_templates ) use ( $templates ) {
63 return $templates;
64 });
65
66 return $atts;
67
68 }
69
70 /**
71 * Checks if the template is assigned to the page
72 */
73 public function view_project_template( $template ) {
74
75 global $post;
76
77 if ( ! isset( $this->templates[ get_post_meta(
78 $post->ID, '_wp_page_template', true
79 ) ] )
80 ) {
81
82 return $template;
83 }
84
85 $file = plugin_dir_path( __FILE__ ) . get_post_meta( $post->ID, '_wp_page_template', true );
86
87 if ( file_exists( $file ) ) {
88 return $file;
89 } else {
90 echo esc_attr( $file );
91 }
92
93 return $template;
94
95 }
96
97 }
98
99 add_action( 'plugins_loaded', array( 'DSTemplateLoader', 'get_instance' ) );
100