PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.23.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.23.0
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 2 years ago BlockValidationService.php 2 years ago FormModeSwitcherService.php 2 years ago
BlockServiceProvider.php
158 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 $container['blocks.validations'] = function () {
38 return new BlockValidationService(
39 apply_filters(
40 'surecart_block_validators',
41 [
42 new \SureCart\BlockValidator\VariantChoice(),
43 ]
44 )
45 );
46 };
47
48 $container['blocks.mode_switcher'] = function () use ( $app ) {
49 return new FormModeSwitcherService( $app );
50 };
51
52 $app->alias( 'blocks', 'blocks' );
53
54 $app->alias(
55 'block',
56 function () use ( $app ) {
57 return call_user_func_array( [ $app->blocks(), 'render' ], func_get_args() );
58 }
59 );
60 }
61
62 /**
63 * {@inheritDoc}
64 *
65 * @param \Pimple\Container $container Service Container.
66 *
67 * @return void
68 *
69 * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
70 */
71 public function bootstrap( $container ) {
72 $container['blocks.patterns']->bootstrap();
73 $container['blocks.validations']->bootstrap();
74 $container['blocks.mode_switcher']->bootstrap();
75
76 // allow design tokens in css.
77 add_filter(
78 'safe_style_css',
79 function( $styles ) {
80 return array_merge(
81 [
82 '--spacing',
83 '--font-weight',
84 '--line-height',
85 '--font-size',
86 '--text-align',
87 '--color',
88 '--sc-input-label-color',
89 '--primary-background',
90 '--primary-color',
91 '--sc-color-primary-text',
92 '--sc-color-primary-500',
93 '--sc-focus-ring-color-primary',
94 '--sc-input-border-color-focus',
95 ],
96 $styles
97 );
98 }
99 );
100 // allow our web components in wp_kses contexts.
101 add_filter( 'wp_kses_allowed_html', [ $this, 'ksesComponents' ] );
102 // register our blocks.
103 add_action( 'init', [ $this, 'registerBlocks' ] );
104 // register our category.
105 add_action( 'block_categories_all', [ $this, 'registerBlockCategories' ] );
106 }
107
108 /**
109 * Register our custom block category.
110 *
111 * @param array $categories Array of categories.
112 * @return array
113 */
114 public function registerBlockCategories( $categories ) {
115 return [
116 ...[
117 [
118 'slug' => 'surecart',
119 'title' => esc_html__( 'SureCart', 'surecart' ),
120 ],
121 ],
122 ...$categories,
123 ];
124 }
125
126 /**
127 * Add iFrame to allowed wp_kses_post tags
128 *
129 * @param array $tags Allowed tags, attributes, and/or entities.
130 *
131 * @return array
132 */
133 public function ksesComponents( $tags ) {
134 $components = json_decode( file_get_contents( plugin_dir_path( SURECART_PLUGIN_FILE ) . 'app/src/Support/kses.json' ), true );
135
136 // add slot to defaults.
137 $tags['span']['slot'] = true;
138 $tags['div']['slot'] = true;
139 $tags['sc-spinner']['data-*'] = true;
140
141 return array_merge( $components, $tags );
142 }
143
144 /**
145 * Register blocks from config
146 *
147 * @return void
148 */
149 public function registerBlocks() {
150 $service = \SureCart::resolve( SURECART_CONFIG_KEY );
151 if ( ! empty( $service['blocks'] ) ) {
152 foreach ( $service['blocks'] as $block ) {
153 ( new $block() )->register();
154 }
155 }
156 }
157 }
158