PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 1.1.13
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v1.1.13
4.6.0 4.5.1 4.5.0 4.4.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 4 years ago BlockService.php 4 years ago BlockServiceProvider.php 4 years ago
BlockServiceProvider.php
135 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 ],
72 $styles
73 );
74 }
75 );
76 // allow our web components in wp_kses contexts.
77 add_filter( 'wp_kses_allowed_html', [ $this, 'ksesComponents' ] );
78 // register our blocks.
79 add_action( 'init', [ $this, 'registerBlocks' ] );
80 // register our category.
81 add_action( 'block_categories_all', [ $this, 'registerBlockCategories' ] );
82 }
83
84 /**
85 * Register our custom block category.
86 *
87 * @param array $categories Array of categories.
88 * @return array
89 */
90 public function registerBlockCategories( $categories ) {
91 return [
92 ...[
93 [
94 'slug' => 'surecart',
95 'title' => esc_html__( 'SureCart', 'surecart' ),
96 ],
97 ],
98 ...$categories,
99 ];
100 }
101
102 /**
103 * Add iFrame to allowed wp_kses_post tags
104 *
105 * @param array $tags Allowed tags, attributes, and/or entities.
106 *
107 * @return array
108 */
109 public function ksesComponents( $tags ) {
110 $components = json_decode( file_get_contents( plugin_dir_path( SURECART_PLUGIN_FILE ) . 'app/src/Support/kses.json' ), true );
111
112 // add slot to defaults.
113 $tags['span']['slot'] = true;
114 $tags['div']['slot'] = true;
115
116 return array_merge( $components, $tags );
117 }
118
119 /**
120 * Register blocks from config
121 *
122 * @param \Pimple\Container $container Service Container.
123 *
124 * @return void
125 */
126 public function registerBlocks() {
127 $service = \SureCart::resolve( SURECART_CONFIG_KEY );
128 if ( ! empty( $service['blocks'] ) ) {
129 foreach ( $service['blocks'] as $block ) {
130 ( new $block() )->register();
131 }
132 }
133 }
134 }
135