PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.9.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.9.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
141 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
122 return array_merge( $components, $tags );
123 }
124
125 /**
126 * Register blocks from config
127 *
128 * @param \Pimple\Container $container Service Container.
129 *
130 * @return void
131 */
132 public function registerBlocks() {
133 $service = \SureCart::resolve( SURECART_CONFIG_KEY );
134 if ( ! empty( $service['blocks'] ) ) {
135 foreach ( $service['blocks'] as $block ) {
136 ( new $block() )->register();
137 }
138 }
139 }
140 }
141