PluginProbe
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts / 2.2.4
Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts v2.2.4
2.7.6 2.7.5 2.7.4 trunk 1.3 2.0.4 2.0.6 2.1.91 2.2.4 2.2.7 2.2.9 2.3.1 2.3.10 2.4.10 2.4.2 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.6.0 2.6.1 2.7.0 2.7.1 All 27 releases
insert-php / admin / boot.php

boot.php in Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts 2.2.4, at admin/boot.php

223 lines 6.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Admin boot
4 *
5 * @author Alex Kovalev <alex.kovalevv@gmail.com>
6 * @copyright Alex Kovalev 05.06.2018
7 * @version 1.0
8 */
9
10 // Exit if accessed directly
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit;
13 }
14
15 function wbcr_inp_admin_init() {
16
17 $plugin = WINP_Plugin::app();
18
19 // Register metaboxes
20 require_once( WINP_PLUGIN_DIR . '/admin/metaboxes/base-options.php' );
21 WINP_Helper::register_factory_metaboxes( new WINP_BaseOptionsMetaBox( $plugin ), WINP_SNIPPETS_POST_TYPE, $plugin );
22
23 //if ( current_user_can( 'install_plugins' ) && ! is_plugin_active( 'robin-image-optimizer/robin-image-optimizer.php' ) ) {
24 if ( ! WINP_Plugin::app()->premium->is_activate() ) {
25 require_once( WINP_PLUGIN_DIR . '/admin/metaboxes/info.php' );
26 WINP_Helper::register_factory_metaboxes( new WINP_InfoMetaBox( $plugin ), WINP_SNIPPETS_POST_TYPE, $plugin );
27 }
28
29 $snippet_type = WINP_Helper::get_snippet_type();
30
31 if ( $snippet_type !== WINP_SNIPPET_TYPE_PHP ) {
32 require_once( WINP_PLUGIN_DIR . '/admin/metaboxes/view-options.php' );
33 WINP_Helper::register_factory_metaboxes( new WINP_ViewOptionsMetaBox( $plugin ), WINP_SNIPPETS_POST_TYPE, $plugin );
34 }
35
36 do_action( 'wbcr/inp/boot/metaboxes/revisions', '' );
37
38 // If the user has updated the plugin or activated it for the first time,
39 // you need to show the page "What's new?"
40 if ( ! WINP_Plugin::app()->isNetworkAdmin() ) {
41 $about_page_viewed = WINP_Plugin::app()->request->get( 'wbcr_inp_about_page_viewed', null );
42 if ( is_null( $about_page_viewed ) ) {
43 if ( WINP_Helper::is_need_show_about_page() ) {
44 try {
45 $redirect_url = '';
46 if ( class_exists( 'Wbcr_FactoryPages413' ) ) {
47 $redirect_url = WINP_Plugin::app()->getPluginPageUrl( 'about', [ 'wbcr_inp_about_page_viewed' => 1 ] );
48 }
49 if ( $redirect_url ) {
50 wp_safe_redirect( $redirect_url );
51 die();
52 }
53 } catch( Exception $e ) {
54 }
55 }
56 } else {
57 if ( WINP_Helper::is_need_show_about_page() ) {
58 delete_option( $plugin->getOptionName( 'what_new_210' ) );
59 }
60 }
61 }
62 }
63
64 add_action( 'admin_init', 'wbcr_inp_admin_init' );
65
66 function wbcr_inp_admin_revisions() {
67 $plugin = WINP_Plugin::app();
68
69 require_once( WINP_PLUGIN_DIR . '/admin/metaboxes/revisions.php' );
70 WINP_Helper::register_factory_metaboxes( new WINP_RevisionsMetaBox( $plugin ), WINP_SNIPPETS_POST_TYPE, $plugin );
71 }
72
73 add_action( 'wbcr/inp/boot/metaboxes/revisions', 'wbcr_inp_admin_revisions' );
74
75 // ---
76 // Editor
77 //
78
79 /**
80 * Enqueue scripts
81 */
82 function wbcr_inp_enqueue_scripts() {
83 global $pagenow;
84
85 $screen = get_current_screen();
86
87 if ( ( 'post-new.php' == $pagenow || 'post.php' == $pagenow ) && WINP_SNIPPETS_POST_TYPE == $screen->post_type ) {
88 wp_enqueue_script( 'wbcr-inp-admin-scripts', WINP_PLUGIN_URL . '/admin/assets/js/scripts.js', [
89 'jquery',
90 'jquery-ui-tooltip'
91 ], WINP_Plugin::app()->getPluginVersion() );
92 }
93 }
94
95 /**
96 * Asset scripts for the tinymce editor
97 *
98 * @param string $hook
99 */
100 function wbcr_inp_enqueue_tinymce_assets( $hook ) {
101 $pages = [
102 'post.php',
103 'post-new.php',
104 'widgets.php'
105 ];
106
107 if ( ! in_array( $hook, $pages ) || ! current_user_can( 'manage_options' ) ) {
108 return;
109 }
110
111 wp_enqueue_script( 'wbcr-inp-tinymce-button-widget', WINP_PLUGIN_URL . '/admin/assets/js/tinymce4.4.js', [ 'jquery' ], WINP_Plugin::app()->getPluginVersion(), true );
112 }
113
114 add_action( 'admin_enqueue_scripts', 'wbcr_inp_enqueue_tinymce_assets' );
115 add_action( 'admin_enqueue_scripts', 'wbcr_inp_enqueue_scripts' );
116
117 /**
118 * Adds js variable required for shortcodes.
119 *
120 * @since 1.1.0
121 * @see before_wp_tiny_mce
122 */
123 function wbcr_inp_tinymce_data( $hook ) {
124 if ( ! current_user_can( 'manage_options' ) ) {
125 return;
126 }
127
128 // styles for the plugin shorcodes
129 $shortcode_icon = WINP_PLUGIN_URL . '/admin/assets/img/shortcode-icon5.png';
130 $shortcode_title = __( 'Woody ad snippets', 'insert-php' );
131
132 $result = WINP_Helper::get_shortcode_data( true );
133 $shortcode_snippets_json = json_encode( $result );
134 ?>
135 <!-- <?php echo WINP_Plugin::app()->getPluginTitle() ?> for tinymce -->
136 <style>
137 i.wbcr-inp-shortcode-icon {
138 background: url("<?php echo $shortcode_icon ?>") center no-repeat;
139 }
140 </style>
141 <script>
142 var wbcr_inp_tinymce_snippets_button_title = '<?php echo $shortcode_title ?>';
143 var wbcr_inp_post_tinymce_nonce = '<?php echo wp_create_nonce( 'wbcr_inp_tinymce_post_nonce' ) ?>';
144 var wbcr_inp_shortcode_snippets = <?php echo $shortcode_snippets_json ?>;
145 </script>
146 <!-- /end <?php echo WINP_Plugin::app()->getPluginTitle() ?> for tinymce -->
147 <?php
148 }
149
150 add_action( 'admin_print_scripts-post.php', 'wbcr_inp_tinymce_data' );
151 add_action( 'admin_print_scripts-post-new.php', 'wbcr_inp_tinymce_data' );
152 add_action( 'admin_print_scripts-widgets.php', 'wbcr_inp_tinymce_data' );
153
154 /**
155 * Deactivate snippet on trashed
156 *
157 * @since 2.0.6
158 *
159 * @param $post_id
160 *
161 */
162 function wbcr_inp_trash_post( $post_id ) {
163 $post_type = get_post_type( $post_id );
164 if ( $post_type == WINP_SNIPPETS_POST_TYPE ) {
165 WINP_Helper::updateMetaOption( $post_id, 'snippet_activate', 0 );
166 }
167 }
168
169 add_action( 'wp_trash_post', 'wbcr_inp_trash_post' );
170
171 /**
172 * Removes the default 'new item' from the admin menu to add own page 'new item' later.
173 *
174 * @param $menu
175 *
176 * @return mixed
177 * @see menu_order
178 *
179 */
180 function wbcr_inp_remove_new_item( $menu ) {
181 global $submenu;
182
183 if ( ! isset( $submenu[ 'edit.php?post_type=' . WINP_SNIPPETS_POST_TYPE ] ) ) {
184 return $menu;
185 }
186 unset( $submenu[ 'edit.php?post_type=' . WINP_SNIPPETS_POST_TYPE ][10] );
187
188 return $menu;
189 }
190
191 add_filter( 'custom_menu_order', '__return_true' );
192 add_filter( 'admin_menu', 'wbcr_inp_remove_new_item' );
193
194 /**
195 * If the user tried to get access to the default 'new item',
196 * redirects forcibly to our page 'new item'.
197 *
198 * @see current_screen
199 */
200 function wbcr_inp_redirect_to_new_item() {
201 $screen = get_current_screen();
202
203 if ( empty( $screen ) ) {
204 return;
205 }
206 if ( 'add' !== $screen->action || 'post' !== $screen->base || WINP_SNIPPETS_POST_TYPE !== $screen->post_type ) {
207 return;
208 }
209
210 $winp_item = WINP_Plugin::app()->request->get( 'winp_item', null );
211 if ( ! is_null( $winp_item ) ) {
212 return;
213 }
214
215 $url = admin_url( 'edit.php?post_type=' . WINP_SNIPPETS_POST_TYPE . '&page=new-item-' . WINP_Plugin::app()->getPluginName() );
216
217 wp_safe_redirect( $url );
218
219 exit;
220 }
221
222 add_action( 'current_screen', 'wbcr_inp_redirect_to_new_item' );
223