PluginProbe ʕ •ᴥ•ʔ
GenerateBlocks / 2.3.0
GenerateBlocks v2.3.0
trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.7.0 1.7.1 1.7.2 1.7.3 1.8.0 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 2.0.0 2.0.1 2.0.2 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.3.0
generateblocks / includes / dashboard.php
generateblocks / includes Last commit date
blocks 1 week ago dynamic-tags 1 week ago pattern-library 1 week ago utils 2 years ago class-do-css.php 2 years ago class-dynamic-content.php 1 week ago class-dynamic-tag-security.php 6 months ago class-enqueue-css.php 1 year ago class-legacy-attributes.php 4 years ago class-map-deprecated-attributes.php 2 years ago class-meta-handler.php 3 months ago class-plugin-update.php 1 year ago class-query-loop.php 2 years ago class-query-utils.php 1 week ago class-render-blocks.php 1 year ago class-rest.php 1 year ago class-settings.php 1 year ago dashboard.php 1 year ago defaults.php 1 year ago deprecated.php 1 year ago functions.php 1 week ago general.php 1 week ago
dashboard.php
265 lines
1 <?php
2 /**
3 * Our admin Dashboard.
4 *
5 * @package GenerateBlocks
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 add_action( 'admin_menu', 'generateblocks_register_dashboard', 9 );
13 /**
14 * Register our Dashboard page.
15 *
16 * @since 0.1
17 */
18 function generateblocks_register_dashboard() {
19 $dashboard = add_menu_page(
20 __( 'GenerateBlocks', 'generateblocks' ),
21 __( 'GenerateBlocks', 'generateblocks' ),
22 'manage_options',
23 'generateblocks',
24 'generateblocks_do_dashboard'
25 );
26
27 $show_upgrade_menu = apply_filters(
28 'generateblocks_show_upgrade_menu',
29 ! defined( 'GENERATEBLOCKS_PRO_VERSION' )
30 );
31
32 if ( $show_upgrade_menu ) {
33 add_submenu_page(
34 'generateblocks',
35 __( 'Upgrade', 'generateblocks' ),
36 __( 'Upgrade', 'generateblocks' ),
37 'manage_options',
38 'generateblocks-upgrade',
39 'generateblocks_do_dashboard'
40 );
41 }
42
43 add_action( "admin_print_styles-$dashboard", 'generateblocks_enqueue_dashboard_scripts' );
44 }
45
46 /**
47 * Add our Dashboard-specific scripts.
48 *
49 * @since 1.0.0
50 */
51 function generateblocks_enqueue_dashboard_scripts() {
52 $assets_file = GENERATEBLOCKS_DIR . 'dist/dashboard.asset.php';
53 $compiled_assets = file_exists( $assets_file )
54 ? require $assets_file
55 : false;
56
57 $assets =
58 isset( $compiled_assets['dependencies'] ) &&
59 isset( $compiled_assets['version'] )
60 ? $compiled_assets
61 : [
62 'dependencies' => [],
63 'version' => filemtime( GENERATEBLOCKS_DIR . 'dist/dashboard.js' ),
64 ];
65
66 wp_enqueue_script(
67 'generateblocks-dashboard',
68 GENERATEBLOCKS_DIR_URL . 'dist/dashboard.js',
69 $assets['dependencies'],
70 $assets['version'],
71 true
72 );
73
74 if ( function_exists( 'wp_set_script_translations' ) ) {
75 wp_set_script_translations( 'generateblocks-dashboard', 'generateblocks' );
76 }
77
78 wp_localize_script(
79 'generateblocks-dashboard',
80 'generateblocksDashboard',
81 array(
82 'gpImage' => esc_url( GENERATEBLOCKS_DIR_URL ) . 'assets/images/generatepress-sites.png',
83 'gpLogo' => esc_url( GENERATEBLOCKS_DIR_URL ) . 'assets/images/generatepress.svg',
84 'gbVersion' => GENERATEBLOCKS_VERSION,
85 'gbpVersion' => defined( 'GENERATEBLOCKS_PRO_VERSION' )
86 ? GENERATEBLOCKS_PRO_VERSION
87 : false,
88 )
89 );
90
91 wp_enqueue_style(
92 'generateblocks-dashboard',
93 GENERATEBLOCKS_DIR_URL . 'dist/dashboard.css',
94 array( 'wp-components' ),
95 GENERATEBLOCKS_VERSION
96 );
97 }
98
99 /**
100 * Get a list of our Dashboard pages.
101 *
102 * @since 1.2.0
103 */
104 function generateblocks_get_dashboard_pages() {
105 return apply_filters(
106 'generateblocks_dashboard_screens',
107 array(
108 'generateblocks_page_generateblocks-settings',
109 )
110 );
111 }
112
113 add_filter( 'admin_body_class', 'generateblocks_set_admin_body_classes' );
114 /**
115 * Add admin body classes when needed.
116 *
117 * @since 1.2.0
118 * @param string $classes The existing classes.
119 */
120 function generateblocks_set_admin_body_classes( $classes ) {
121 $dashboard_pages = generateblocks_get_dashboard_pages();
122 $current_screen = get_current_screen();
123
124 if ( in_array( $current_screen->id, $dashboard_pages ) ) {
125 $classes .= ' generateblocks-dashboard-page';
126 }
127
128 return $classes;
129 }
130
131 add_action( 'in_admin_header', 'generateblocks_do_dashboard_headers' );
132 /**
133 * Add our Dashboard headers.
134 *
135 * @since 1.3.0
136 */
137 function generateblocks_do_dashboard_headers() {
138 $dashboard_pages = generateblocks_get_dashboard_pages();
139 $current_screen = get_current_screen();
140
141 if ( in_array( $current_screen->id, $dashboard_pages ) ) {
142 generateblocks_do_dashboard_header();
143 }
144 }
145
146 add_action( 'admin_enqueue_scripts', 'generateblocks_enqueue_global_dashboard_scripts' );
147 /**
148 * Add our scripts to the page.
149 *
150 * @since 0.1
151 */
152 function generateblocks_enqueue_global_dashboard_scripts() {
153 wp_enqueue_style(
154 'generateblocks-dashboard-global',
155 GENERATEBLOCKS_DIR_URL . 'assets/css/dashboard-global.css',
156 array(),
157 GENERATEBLOCKS_VERSION
158 );
159
160 $dashboard_pages = generateblocks_get_dashboard_pages();
161 $current_screen = get_current_screen();
162
163 if ( in_array( $current_screen->id, $dashboard_pages ) ) {
164 wp_enqueue_style(
165 'generateblocks-settings-build',
166 GENERATEBLOCKS_DIR_URL . 'dist/settings.css',
167 array( 'wp-components' ),
168 GENERATEBLOCKS_VERSION
169 );
170 }
171 }
172
173 /**
174 * Build our Dashboard menu.
175 */
176 function generateblocks_dashboard_navigation() {
177 $screen = get_current_screen();
178
179 $tabs = apply_filters(
180 'generateblocks_dashboard_tabs',
181 array(
182 'settings' => array(
183 'name' => __( 'Settings', 'generateblocks' ),
184 'url' => admin_url( 'admin.php?page=generateblocks-settings' ),
185 'class' => 'generateblocks_page_generateblocks-settings' === $screen->id ? 'active' : '',
186 ),
187 )
188 );
189
190 if ( ! defined( 'GENERATEBLOCKS_PRO_VERSION' ) ) {
191 $tabs['pro'] = array(
192 'name' => __( 'Get Pro', 'generateblocks' ),
193 'url' => 'https://generatepress.com/blocks/',
194 'class' => '',
195 );
196 }
197
198 // Don't print any markup if we only have one tab.
199 if ( count( $tabs ) === 1 ) {
200 return;
201 }
202 ?>
203 <div class="gblocks-navigation">
204 <?php
205 foreach ( $tabs as $tab ) {
206 printf(
207 '<a href="%1$s" class="%2$s">%3$s</a>',
208 esc_url( $tab['url'] ),
209 esc_attr( $tab['class'] ),
210 esc_html( $tab['name'] )
211 );
212 }
213 ?>
214 </div>
215 <?php
216 }
217
218 /**
219 * Build our Dashboard header.
220 *
221 * @since 1.2.0
222 */
223 function generateblocks_do_dashboard_header() {
224 ?>
225 <div class="gblocks-dashboard-header">
226 <div class="gblocks-dashboard-header-title">
227 <h1>
228 <svg aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 50 60.12" xml:space="preserve"><path class="st0" d="M6.686 31.622V18.918a.077.077 0 01.05-.072l6.5-2.313 6.5-2.313 9.682-3.445L39.1 7.33a.067.067 0 00.036-.028.074.074 0 00.014-.044V.076a.077.077 0 00-.032-.062.076.076 0 00-.069-.009l-13 4.625-13 4.625-6.5 2.313-6.5 2.313a.067.067 0 00-.036.028.097.097 0 00-.013.046V52.067c0 .026.013.048.032.062s.044.018.069.009l3.267-1.163 3.267-1.163c.015-.005.028-.015.036-.028s.014-.028.014-.044V37.999l.001-6.377c-.001 0 0 0 0 0z"/><path class="st0" d="M23.949 29.976l13-4.625 13-4.625c.015-.005.028-.015.036-.028s.015-.028.015-.044V8.056a.077.077 0 00-.032-.062.076.076 0 00-.069-.009l-13 4.625-13 4.625-6.5 2.313-6.5 2.313a.067.067 0 00-.036.028.074.074 0 00-.014.044V60.045c0 .026.013.048.032.062a.076.076 0 00.069.009l6.475-2.304 6.475-2.304 6.525-2.322 6.525-2.322 6.5-2.313 6.5-2.313c.015-.005.028-.015.036-.028s.014-.025.014-.041V27.193a.077.077 0 00-.032-.062.076.076 0 00-.069-.009l-6.45 2.295L37 31.711a.067.067 0 00-.036.028.074.074 0 00-.014.044v6.272a.077.077 0 01-.05.072l-6.45 2.295L24 42.715a.075.075 0 01-.101-.071V30.046c0-.016.005-.031.014-.044a.08.08 0 01.036-.026z"/></svg>
229 <?php echo esc_html( get_admin_page_title() ); ?>
230 </h1>
231 </div>
232
233 <?php generateblocks_dashboard_navigation(); ?>
234 </div>
235 <?php
236 }
237
238 /**
239 * Output our Dashboard HTML.
240 *
241 * @since 0.1
242 */
243 function generateblocks_do_dashboard() {
244 ?>
245 <div class="wrap gblocks-dashboard-wrap">
246 <div id="gblocks-dashboard" />
247 </div>
248 <?php
249 }
250
251 add_action( 'admin_init', 'generateblocks_do_upgrade_redirect' );
252 /**
253 * Redirect to the sales page when landing on the upgrade page.
254 */
255 function generateblocks_do_upgrade_redirect() {
256 if ( empty( $_GET['page'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
257 return;
258 }
259
260 if ( 'generateblocks-upgrade' === $_GET['page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
261 wp_redirect( 'https://generatepress.com/blocks' ); // phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
262 exit;
263 }
264 }
265