PluginProbe
Darkify – Dark Mode & Night Mode for Website & Admin (Dark Theme Included) / 1.1.0
Darkify – Dark Mode & Night Mode for Website & Admin (Dark Theme Included) v1.1.0
2.1.3 2.1.2 2.1.1 2.1.0 2.0.4 2.0.3 2.0.2 2.0.1 2.0.0 1.5.5 1.5.4 1.5.3 1.5.2 1.5.1 1.5.0 trunk 1.0.1 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 All 57 releases
darkify / admin / class-darkify-admin.php

class-darkify-admin.php in Darkify – Dark Mode & Night Mode for Website & Admin (Dark Theme Included) 1.1.0, at admin/class-darkify-admin.php

161 lines 6.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class Darkify_Admin
4 {
5
6 public $utils;
7 public $settings;
8 public $external_support;
9
10 public $unique_id;
11
12 private $plugin_name;
13 private $version;
14
15 public function __construct($plugin_name, $version)
16 {
17
18 $this->utils = new DarkifyUtils($this);
19 $this->external_support = new DarkifyExternalSupport($this);
20 if (function_exists('wp_rand')) {
21 $this->unique_id = wp_rand();
22 }
23 $options = get_option('darkify');
24 $enable_admin_panel_dark_mode = isset($options['enable_admin_panel_dark_mode']) ? $options['enable_admin_panel_dark_mode'] : false;
25
26 $this->plugin_name = $plugin_name;
27 $this->version = $version;
28
29 add_filter('plugin_action_links', array($this, 'add_plugin_action_links'), 10, 2);
30
31 add_action('admin_enqueue_scripts', array($this, 'darkify_admin_enqueue'));
32
33 if ($enable_admin_panel_dark_mode) {
34 add_action('admin_bar_menu', array($this, 'darkify_admin_bar_switch'), 9999);
35 add_action('admin_print_scripts', array($this, 'darkify_admin_header_script'), 1);
36 add_action('admin_footer', array($this, 'darkify_admin_footer_script'));
37 }
38 }
39
40 public function enqueue_styles()
41 {
42 wp_enqueue_style($this->plugin_name, DRK_LITE_DIR_URL . 'admin/css/darkify-admin.css', array(), $this->version, 'all');
43 }
44
45 public function enqueue_scripts()
46 {
47 }
48
49 public function add_plugin_action_links($links, $file)
50 {
51 if (DRK_LITE_BASENAME === $file) {
52 $new_links = array(
53 sprintf('<a href="%s">%s</a>', admin_url('admin.php?page=darkify#tab=control'), __('Settings', 'darkify')),
54 sprintf('<a target="_blank" href="https://1.envato.market/darkify" style="font-weight: bold; background: #000; color: #fff; padding: 3px 8px;border-radius: 2px;" href="%s">%s</a>', "", __('Go Pro!', 'darkify')),
55 );
56 return array_merge($new_links, $links);
57 }
58 return $links;
59 }
60
61 function darkify_admin_enqueue($page)
62 {
63 $options = get_option('darkify');
64 $enable_default_dark_mode = $options['enable_default_dark_mode'];
65 $enable_time = $options['enable_time'];
66 $enable_time_based_dark = isset($enable_time['enable_time_based_dark']) ? $enable_time['enable_time_based_dark'] : "";
67 $time_based_dark_start = isset($enable_time['time_based_dark_start']['from']) ? $enable_time['time_based_dark_start']['from'] : "";
68 $time_based_dark_stop = isset($enable_time['time_based_dark_start']['to']) ? $enable_time['time_based_dark_start']['to'] : "";
69 $grayscale = $options['brightness'];
70 $enable_low_image_brightness = isset($grayscale['enable_low_image_brightness']) ? $grayscale['enable_low_image_brightness'] : "";
71 $low_image_brightness_label = isset($grayscale['low_image_brightness_label']) ? $grayscale['low_image_brightness_label'] : "";
72 $grayscale = isset($options['grayscale']);
73 $enable_image_grayscale = isset($grayscale['enable_image_grayscale']) ? $grayscale['enable_image_grayscale'] : "";
74 $image_grayscale_label = isset($grayscale['image_grayscale_label']) ? $grayscale['image_grayscale_label'] : "";
75 $disallowed_low_grayscale_images = isset($grayscale['disallowed_low_grayscale_images']) ? $grayscale['disallowed_low_grayscale_images'] : "";
76 $darken_background = isset($options['darken_background']);
77 $enable_low_image_darken = isset($darken_background['enable_low_image_darken']) ? $darken_background['enable_low_image_darken'] : "";
78 $low_image_darken_label = isset($darken_background['low_image_darken_label']) ? $darken_background['low_image_darken_label'] : "";
79 $video_brightness = isset($options['video_brightness']);
80 $enable_low_video_brightness = isset($video_brightness['enable_low_video_brightness']) ? $video_brightness['enable_low_video_brightness'] : "";
81 $low_video_brightness_label = isset($video_brightness['low_video_brightness_label']) ? $video_brightness['low_video_brightness_label'] : "";
82 $video_grayscale = isset($options['video_grayscale']);
83 $enable_video_grayscale = isset($video_grayscale['enable_video_grayscale']) ? $video_grayscale['enable_video_grayscale'] : "";
84
85 if ($options["enable_admin_panel_dark_mode"]) {
86 if ($this->darkify_is_dark_mode_allowed()) {
87 if (!wp_style_is('darkify-admin-switch', 'enqueued')) {
88 wp_enqueue_style('darkify-admin-switch', DRK_LITE_DIR_URL . 'assets/css/client_main.css', array(), $this->version, 'all');
89 }
90 wp_enqueue_script('darkify-admin-client-main', DRK_LITE_DIR_URL . 'assets/js/client_main.js', array(), $this->version, true);
91
92 $darkify_data = array(
93 'darkify_switch_unique_id' => $this->unique_id,
94 'darkify_is_this_admin_panel' => is_admin() ? "1" : "0",
95 'darkify_enable_default_dark_mode' => $enable_default_dark_mode,
96 'darkify_enable_os_aware' => $options["enable_os_aware"],
97 'darkify_enable_keyboard_shortcut' => $options["enable_keyboard_shortcut"],
98 'darkify_enable_time_based_dark' => $enable_time_based_dark,
99 'darkify_time_based_dark_start' => $time_based_dark_start ? $time_based_dark_start : "19:00",
100 'darkify_time_based_dark_stop' => $time_based_dark_stop ? $time_based_dark_stop : "07:00",
101 'darkify_alternative_dark_mode_switch' => $options["alternative_dark_mode_switcher"],
102 'darkify_enable_low_image_brightness' => $enable_low_image_brightness,
103 'darkify_image_brightness_to' => $low_image_brightness_label,
104 'darkify_enable_image_grayscale' => $enable_image_grayscale,
105 'darkify_image_grayscale_to' => $image_grayscale_label,
106 'darkify_disallowed_grayscale_images' => $disallowed_low_grayscale_images,
107 'darkify_enable_bg_image_darken' => $enable_low_image_darken,
108 'darkify_bg_image_darken_to' => $low_image_darken_label,
109 'darkify_enable_invert_inline_svg' => $options["enable_invert_inline_svg"],
110 'darkify_enable_low_video_brightness' => $enable_low_video_brightness,
111 'darkify_video_brightness_to' => $low_video_brightness_label,
112 'darkify_enable_video_grayscale' => $enable_video_grayscale,
113 // Add more variables as needed...
114 );
115 wp_localize_script('darkify-admin-client-main', 'darkify_data', $darkify_data);
116 }
117 }
118 }
119
120 function darkify_admin_bar_switch($wp_admin_bar)
121 {
122 if ($this->darkify_is_dark_mode_allowed()) {
123 $args = array(
124 'parent' => 'top-secondary',
125 'id' => 'darkify_admin_bar_switch_container',
126 'meta' => array(
127 'class' => 'darkify_admin_bar_switch_container',
128 'onclick' => 'darkify_switch_trigger()',
129 )
130 );
131 $wp_admin_bar->add_node($args);
132 }
133 }
134
135 function darkify_is_dark_mode_allowed()
136 {
137
138 $options = get_option('darkify');
139 $disallowed_admin_pages = isset($options["disallowed_admin_pages"]) ? $options["disallowed_admin_pages"] : "";
140 /* Disable on Disallowed Admin Plugins */
141 if ($this->utils->isRestrictedByDisallowedAdminPages($disallowed_admin_pages)) {
142 return False;
143 }
144 return True;
145 }
146
147 function darkify_admin_header_script()
148 {
149 if ($this->darkify_is_dark_mode_allowed()) {
150 include_once DRK_LITE_PATH . "public/templates/header_script.php";
151 }
152 }
153
154 function darkify_admin_footer_script()
155 {
156 if ($this->darkify_is_dark_mode_allowed()) {
157 include_once DRK_LITE_PATH . "public/templates/footer_script.php";
158 }
159 }
160 }
161