PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.7.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.7.2
4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / BlockLibrary / BlockServiceProvider.php
surecart / app / src / BlockLibrary Last commit date
BlockPatternsService.php 3 years ago BlockService.php 3 years ago BlockServiceProvider.php 3 years ago
BlockServiceProvider.php
142 lines
1 <?php
2
3 /**
4 * Block Service Provider
5 */
6
7 namespace SureCart\BlockLibrary;
8
9 use SureCartBlocks\Blocks\BlockService;
10 use SureCartCore\ServiceProviders\ServiceProviderInterface;
11
12 /**
13 * Block Service Provider Class
14 * Registers block service used throughout the plugin
15 *
16 * @author SureCart <andre@surecart.com>
17 * @since 1.0.0
18 * @license GPL
19 */
20 class BlockServiceProvider implements ServiceProviderInterface {
21 /**
22 * {@inheritDoc}
23 *
24 * @param \Pimple\Container $container Service Container.
25 */
26 public function register( $container ) {
27 $app = $container[ SURECART_APPLICATION_KEY ];
28
29 $container['blocks'] = function () use ( $app ) {
30 return new BlockService( $app );
31 };
32
33 $container['blocks.patterns'] = function () use ( $app ) {
34 return new BlockPatternsService( $app );
35 };
36
37 $app->alias( 'blocks', 'blocks' );
38
39 $app->alias(
40 'block',
41 function () use ( $app ) {
42 return call_user_func_array( [ $app->blocks(), 'render' ], func_get_args() );
43 }
44 );
45 }
46
47 /**
48 * {@inheritDoc}
49 *
50 * @param \Pimple\Container $container Service Container.
51 *
52 * @return void
53 *
54 * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
55 */
56 public function bootstrap( $container ) {
57 $container['blocks.patterns']->bootstrap();
58 // allow design tokens in css.
59 add_filter(
60 'safe_style_css',
61 function( $styles ) {
62 return array_merge(
63 [
64 '--spacing',
65 '--font-weight',
66 '--line-height',
67 '--font-size',
68 '--text-align',
69 '--color',
70 '--sc-input-label-color',
71 '--primary-background',
72 '--primary-color',
73 '--sc-color-primary-text',
74 '--sc-color-primary-500',
75 '--sc-focus-ring-color-primary',
76 '--sc-input-border-color-focus',
77 ],
78 $styles
79 );
80 }
81 );
82 // allow our web components in wp_kses contexts.
83 add_filter( 'wp_kses_allowed_html', [ $this, 'ksesComponents' ] );
84 // register our blocks.
85 add_action( 'init', [ $this, 'registerBlocks' ] );
86 // register our category.
87 add_action( 'block_categories_all', [ $this, 'registerBlockCategories' ] );
88 }
89
90 /**
91 * Register our custom block category.
92 *
93 * @param array $categories Array of categories.
94 * @return array
95 */
96 public function registerBlockCategories( $categories ) {
97 return [
98 ...[
99 [
100 'slug' => 'surecart',
101 'title' => esc_html__( 'SureCart', 'surecart' ),
102 ],
103 ],
104 ...$categories,
105 ];
106 }
107
108 /**
109 * Add iFrame to allowed wp_kses_post tags
110 *
111 * @param array $tags Allowed tags, attributes, and/or entities.
112 *
113 * @return array
114 */
115 public function ksesComponents( $tags ) {
116 $components = json_decode( file_get_contents( plugin_dir_path( SURECART_PLUGIN_FILE ) . 'app/src/Support/kses.json' ), true );
117
118 // add slot to defaults.
119 $tags['span']['slot'] = true;
120 $tags['div']['slot'] = true;
121 $tags['sc-spinner']['data-*'] = true;
122
123 return array_merge( $components, $tags );
124 }
125
126 /**
127 * Register blocks from config
128 *
129 * @param \Pimple\Container $container Service Container.
130 *
131 * @return void
132 */
133 public function registerBlocks() {
134 $service = \SureCart::resolve( SURECART_CONFIG_KEY );
135 if ( ! empty( $service['blocks'] ) ) {
136 foreach ( $service['blocks'] as $block ) {
137 ( new $block() )->register();
138 }
139 }
140 }
141 }
142