PluginProbe
Tableberg – Simple Gutenberg Table Block / 1.1.5
Tableberg – Simple Gutenberg Table Block v1.1.5
1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.5 1.0.4 1.0.3 1.0.2 1.0.1 trunk 0.0.2 0.2.1 0.3.2 0.3.3 0.4.1 0.5.0 0.5.1 0.5.2 0.5.3 0.5.4 0.5.5 0.5.6 0.5.7 All 42 releases
← All changes | includes/Assets.php +73 -138 0.5.31.1.5 View file →
@@ -1,138 +1,73 @@
1 -<?php
2 -
3 -/**
4 - * The file register assets for the plugin
5 - *
6 - * @package Tableberg
7 - */
8 -
9 -namespace Tableberg;
10 -
11 -/**
12 - * Handle plugin assets
13 - */
14 -class Assets
15 -{
16 - /**
17 - * We will store dynamically generated styles here & render them
18 - * in wp_footer call
19 - */
20 - public static $dynamicStyles = '';
21 - /**
22 - * Register block assets for frontend.
23 - * I.e. dynamic responsiveness
24 - */
25 - public function register_frontend_assets()
26 - {
27 - wp_enqueue_script(
28 - 'tableberg-frontend-script',
29 - TABLEBERG_URL . 'includes/assets/js/frontend.js',
30 - [],
31 - Constants::plugin_version(),
32 - true
33 - );
34 - add_action('wp_footer', function () {
35 - if (self::$dynamicStyles) {
36 - echo '<style>' . self::$dynamicStyles . '</style>';
37 - self::$dynamicStyles = '';
38 - }
39 - });
40 - }
41 - /**
42 - * Register blocks assets
43 - */
44 - public function register_blocks_assets()
45 - {
46 - wp_register_script(
47 - 'tableberg-script',
48 - TABLEBERG_URL . 'build/tableberg.build.js',
49 - array(
50 - 'lodash',
51 - 'react',
52 - 'wp-block-editor',
53 - 'wp-blocks',
54 - 'wp-components',
55 - 'wp-data',
56 - 'wp-element',
57 - 'wp-i18n',
58 - 'wp-primitives',
59 - ),
60 - Constants::plugin_version(),
61 - false
62 - );
63 - wp_register_style(
64 - 'tableberg-editor-style',
65 - TABLEBERG_URL . 'build/tableberg-editor-style.css',
66 - array(),
67 - Constants::plugin_version(),
68 - false
69 - );
70 - wp_register_style(
71 - 'tableberg-style',
72 - TABLEBERG_URL . 'build/tableberg-frontend-style.css',
73 - array(),
74 - Constants::plugin_version(),
75 - false
76 - );
77 -
78 - self::pass_data_to_js('tableberg-script');
79 - }
80 - /**
81 - * Enqueue Admin assets
82 - */
83 - public function register_admin_assets()
84 - {
85 - wp_enqueue_script(
86 - 'tableberg-admin-script',
87 - TABLEBERG_URL . 'includes/Admin/assets/tableberg-admin.build.js',
88 - array(
89 - 'lodash',
90 - 'react',
91 - 'wp-block-editor',
92 - 'wp-blocks',
93 - 'wp-components',
94 - 'wp-data',
95 - 'wp-element',
96 - 'wp-i18n',
97 - 'wp-primitives',
98 - ),
99 - Constants::plugin_version(),
100 - true
101 - );
102 -
103 - self::pass_data_to_js('tableberg-admin-script');
104 -
105 - wp_enqueue_script(
106 - 'tableberg-preview-device-change-observer',
107 - TABLEBERG_URL . 'includes/assets/js/PreviewDeviceChangeObserver.js',
108 - [],
109 - Constants::plugin_version(),
110 - true
111 - );
112 - $frontend_script_data = apply_filters('tableberg/filter/admin_settings_menu_data', array());
113 - wp_localize_script('tableberg-admin-script', 'tablebergAdminMenuData', $frontend_script_data);
114 - wp_enqueue_style(
115 - 'tableberg-admin-style',
116 - TABLEBERG_URL . 'includes/Admin/assets/tableberg-admin-style.css',
117 - array(),
118 - Constants::plugin_version(),
119 - 'all'
120 - );
121 - }
122 -
123 -
124 - private static function pass_data_to_js(string $handle)
125 - {
126 - $data = [
127 - 'plugin_url' => TABLEBERG_URL
128 - ];
129 - global $tp_fs;
130 - if (isset($tp_fs)) {
131 - $data['IS_PRO'] = $tp_fs->is__premium_only()
132 - && $tp_fs->can_use_premium_code();
133 - } else {
134 - $data['IS_PRO'] = false;
135 - }
136 - wp_localize_script($handle, 'TABLEBERG_CFG', $data);
137 - }
138 -}
1 +<?php
2 +
3 +namespace Tableberg;
4 +
5 +use Tableberg\Patterns\RegisterPatterns;
6 +
7 +class Assets {
8 + /**
9 + * The frontend view script gates pro features (sorting/search/pagination)
10 + * on TABLEBERG_CFG.IS_PRO, so the config must exist on the frontend too.
11 + */
12 + public function register_frontend_assets() {
13 + self::pass_data_to_js('tableberg-table-view-script');
14 + }
15 +
16 + public function register_blocks_assets() {
17 + self::pass_data_to_js('tableberg-table-editor-script');
18 +
19 + $tableberg_patterns = RegisterPatterns::get_all_registered_tableberg_patterns();
20 + $tableberg_pattern_categories = RegisterPatterns::get_all_registered_tableberg_pattern_categories();
21 +
22 + wp_localize_script('tableberg-table-editor-script', 'tablebergPatterns', $tableberg_patterns);
23 + wp_localize_script('tableberg-table-editor-script', 'tablebergPatternCategories', $tableberg_pattern_categories);
24 +
25 + }
26 +
27 + public function register_admin_assets() {
28 + wp_enqueue_script(
29 + 'tableberg-admin-script',
30 + TABLEBERG_URL . 'includes/Admin/assets/tableberg-admin.build.js',
31 + [
32 + 'lodash',
33 + 'react',
34 + 'wp-block-editor',
35 + 'wp-blocks',
36 + 'wp-components',
37 + 'wp-data',
38 + 'wp-element',
39 + 'wp-i18n',
40 + 'wp-primitives',
41 + ],
42 + TABLEBERG_VERSION,
43 + true
44 + );
45 +
46 + self::pass_data_to_js('tableberg-admin-script');
47 +
48 + $frontend_script_data = apply_filters('tableberg/filter/admin_settings_menu_data', []);
49 + wp_localize_script('tableberg-admin-script', 'tablebergAdminMenuData', $frontend_script_data);
50 + wp_enqueue_style(
51 + 'tableberg-admin-style',
52 + TABLEBERG_URL . 'includes/Admin/assets/tableberg-admin-style.css',
53 + [],
54 + TABLEBERG_VERSION,
55 + 'all'
56 + );
57 + }
58 +
59 +
60 + private static function pass_data_to_js(string $handle) {
61 + $data = [
62 + 'plugin_url' => TABLEBERG_URL,
63 + // Pro marks this true only after its licence check succeeds and
64 + // its runtime extensions actually boot. The version constant only
65 + // proves that the add-on PHP file was loaded.
66 + 'IS_PRO' => (bool) apply_filters(
67 + 'tableberg/is_pro_runtime_active',
68 + false
69 + ),
70 + ];
71 + wp_localize_script($handle, 'TABLEBERG_CFG', $data);
72 + }
73 +}