PluginProbe
WP Coder – Insert & Manage Code Snippets / 4.5.2
WP Coder – Insert & Manage Code Snippets v4.5.2
4.5.2 4.5.1 1.1 2.3.1 2.3.2 2.4.1 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1 3.1.1 3.2 3.2.1 3.3 3.4 3.5 All 40 releases
wp-coder / classes / Admin / AdminInitializer.php

AdminInitializer.php in WP Coder – Insert & Manage Code Snippets 4.5.2, at classes/Admin/AdminInitializer.php

166 lines 6.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPCoder\Admin;
4
5 defined( 'ABSPATH' ) || exit;
6
7 // Exit if accessed directly.
8 use WPCoder\Dashboard\DashboardHelper;
9 use WPCoder\WPCoder;
10
11 class AdminInitializer {
12
13 public static function init(): void {
14 add_filter( 'plugin_action_links', [ __CLASS__, 'settings_link' ], 10, 2 );
15 add_filter( 'admin_footer_text', [ __CLASS__, 'footer_text' ], 20 );
16 add_action( 'admin_menu', [ __CLASS__, 'add_admin_page' ] );
17 add_action( 'admin_enqueue_scripts', [ __CLASS__, 'admin_scripts' ] );
18 new AdminNotices;
19 new AdminActions;
20 }
21
22 public static function settings_link( $links, $file ) {
23 if ( false === strpos( $file, WPCoder::basename() ) ) {
24 return $links;
25 }
26 $link = admin_url( 'admin.php?page=' . WPCoder::SLUG );
27 $text = esc_attr__( 'Settings', 'wp-coder' );
28 $settings_link = '<a href="' . esc_url( $link ) . '">' . esc_attr( $text ) . '</a>';
29 array_unshift( $links, $settings_link );
30
31 return $links;
32 }
33
34 public static function footer_text( $footer_text ) {
35 global $pagenow;
36
37 if ( $pagenow === 'admin.php' && ( isset( $_GET['page'] ) && $_GET['page'] === WPCoder::SLUG ) ) {
38 $text = sprintf(
39 /* translators: 1. link to the plugin page 2. plugin name */
40 __( 'Thank you for using <b>%2$s</b>! Please <a href="%1$s" target="_blank">rate us</a>', 'wp-coder' ),
41 esc_url( WPCoder::PluginURL ),
42 esc_attr( WPCoder::info( 'name' ) )
43 );
44
45 return str_replace( '</span>', '', $footer_text ) . ' | ' . $text . '</span>';
46 }
47
48 return $footer_text;
49 }
50
51 public static function add_admin_page(): void {
52 if ( ! WPCoder::user_can_manage() ) {
53 return;
54 }
55
56 $icon = 'data:image/svg+xml;base64,' . base64_encode( self::icon() );
57 $parent = 'wp-coder';
58 $title = WPCoder::info( 'name' ) . ' version ' . WPCoder::info( 'version' );
59 $menu_title = 'All Codes';
60 $capability = WPCoder::CAPABILITY;
61 $slug = WPCoder::SLUG;
62
63 add_menu_page( 'WP Coder Pro', 'WP Coder', $capability, $slug, [ __CLASS__, 'plugin_page' ], $icon );
64
65 add_submenu_page( $slug, $title, $menu_title, $capability, $slug, [ __CLASS__, 'plugin_page' ] );
66
67 add_submenu_page( $slug, $title, 'Add new', $capability, $slug . '-settings', [ __CLASS__, 'settings' ] );
68 add_submenu_page( $slug, $title, 'Snippets', $capability, $slug . '-snippets', [ __CLASS__, 'snippets' ] );
69 add_submenu_page( $slug, $title, 'Tools', $capability, $slug . '-tools', [ __CLASS__, 'tools' ] );
70 add_submenu_page( $slug, $title, 'Global PHP', $capability, $slug . '-global', [ __CLASS__, 'global_php' ] );
71 add_submenu_page( $slug, $title, 'Debug Log', $capability, $slug . '-debug', [ __CLASS__, 'debug_log' ] );
72 add_submenu_page( $slug, $title, 'Import / Export', $capability, $slug . '-import-export', [ __CLASS__, 'import_export' ] );
73 add_submenu_page( $slug, $title, 'Support', $capability, $slug . '-support', [ __CLASS__, 'support' ] );
74
75 }
76
77 public static function icon(): string {
78 return '<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
79 <path id="1728127909379-8007129Oval-Copy" fill="#2b7fff" fill-rule="evenodd" stroke="none" d="M 496 101 C 496 128.614227 473.614227 151 446 151 C 418.385773 151 396 128.614227 396 101 C 396 73.385773 418.385773 51 446 51 C 473.614227 51 496 73.385773 496 101 Z"/>
80 <g id="window-code">
81 <path id="Path" fill="#212121" stroke="none" d="M 245.714279 232.714294 L 74.285713 61.285736 C 60.571426 47.571411 40 47.571411 26.285713 61.285736 C 12.571427 75 12.571427 95.571442 26.285713 109.285706 L 173.714279 256.714294 L 26.285713 404.142853 C 12.571427 417.857147 12.571427 438.428589 26.285713 452.142853 C 33.142857 459 40 462.428558 50.285713 462.428558 C 60.571426 462.428558 67.428574 459 74.285713 452.142853 L 245.714279 280.714294 C 259.428589 267 259.428589 246.428558 245.714279 232.714294 Z"/>
82 <path id="Rounded-Rectangle" fill="#212121" fill-rule="evenodd" stroke="none" d="M 256 431 C 256 448.673096 270.326874 463 288 463 L 464 463 C 481.673096 463 496 448.673096 496 431 L 496 429 C 496 411.326904 481.673096 397 464 397 L 288 397 C 270.326874 397 256 411.326904 256 429 Z"/>
83 </g>
84 </svg>';
85 }
86
87 public static function plugin_page(): void {
88 $page_path = DashboardHelper::get_folder_path( 'pages' ) . '/1.list.php';
89
90 if ( file_exists( $page_path ) ) {
91 require_once $page_path;
92 }
93 }
94
95 public static function settings(): void {
96 $page_path = DashboardHelper::get_folder_path( 'pages' ) . '/2.settings.php';
97
98 if ( file_exists( $page_path ) ) {
99 require_once $page_path;
100 }
101 }
102
103 public static function snippets() {
104 $page_path = DashboardHelper::get_folder_path( 'pages' ) . '/3.snippets.php';
105
106 if ( file_exists( $page_path ) ) {
107 require_once $page_path;
108 }
109 }
110
111 public static function tools() {
112 $page_path = DashboardHelper::get_folder_path( 'pages' ) . '/4.tools.php';
113
114 if ( file_exists( $page_path ) ) {
115 require_once $page_path;
116 }
117 }
118
119 public static function global_php() {
120 $page_path = DashboardHelper::get_folder_path( 'pages' ) . '/5.global-php.php';
121
122 if ( file_exists( $page_path ) ) {
123 require_once $page_path;
124 }
125 }
126
127
128 public static function import_export() {
129 $page_path = DashboardHelper::get_folder_path( 'pages' ) . '/6.import-export.php';
130
131 if ( file_exists( $page_path ) ) {
132 require_once $page_path;
133 }
134 }
135
136 public static function support() {
137 $page_path = DashboardHelper::get_folder_path( 'pages' ) . '/7.support.php';
138
139 if ( file_exists( $page_path ) ) {
140 require_once $page_path;
141 }
142 }
143
144 public static function debug_log() {
145 $page_path = DashboardHelper::get_folder_path( 'pages' ) . '/10.debug-log.php';
146
147 if ( file_exists( $page_path ) ) {
148 require_once $page_path;
149 }
150 }
151
152 public static function admin_scripts( $hook ): void {
153 // $page = 'toplevel_page_' . WPCoder::SLUG;
154 $assets_url = WPCoder::url() . 'assets/';
155 wp_enqueue_style( 'wowp-general-admin', $assets_url . 'css/admin-general.css' );
156
157 $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
158
159 if ( strpos( $page, WPCoder::SLUG ) === false ) {
160 return;
161 }
162
163 do_action( WPCoder::PREFIX . '_admin_load_styles_scripts' );
164 }
165
166 }