PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.2.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.2.2
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 / BlockService.php
surecart / app / src / BlockLibrary Last commit date
BlockAnchorSupportService.php 1 year ago BlockPatternsService.php 1 year ago BlockService.php 1 year ago BlockServiceProvider.php 1 year ago BlockStylesService.php 1 year ago BlockValidationService.php 2 years ago CartMenuIconMigrationService.php 1 year ago CartMigrationService.php 1 year ago FormModeSwitcherService.php 1 year ago ProductCollectionBadgesMigrationService.php 1 year ago ProductListMigrationService.php 1 year ago ProductListService.php 1 year ago ProductPageBlocksMigrationService.php 1 year ago ProductPriceChoicesMigrationService.php 1 year ago ProductSelectedPriceMigrationService.php 1 year ago ProductVariantsMigrationService.php 1 year ago URLParamService.php 1 year ago
BlockService.php
192 lines
1 <?php
2
3 namespace SureCart\BlockLibrary;
4
5 use SureCartCore\Application\Application;
6
7 /**
8 * Provide general block-related functionality.
9 */
10 class BlockService {
11 /**
12 * View engine.
13 *
14 * @var Application
15 */
16 protected $app = null;
17
18 /**
19 * Constructor.
20 *
21 * @param Application $app Application Instance.
22 */
23 public function __construct( Application $app ) {
24 $this->app = $app;
25 }
26
27 /**
28 * Render a block using a template
29 *
30 * @param string|string[] $views A view or array of views.
31 * @param array<string, mixed> $context Context to send.
32 * @return string View html output.
33 */
34 public function render( $views, $context = array() ) {
35 return apply_filters( 'surecart_block_output', $this->app->views()->make( $views )->with( $context )->toString() );
36 }
37
38 /**
39 * Find all blocks and nested blocks by name.
40 *
41 * @param string $type Block item to filter by.
42 * @param string $name Block name.
43 * @param array $blocks Array of blocks.
44 * @return array
45 */
46 public function filterBy( $type, $name, $blocks ) {
47 $found_blocks = array();
48 $blocks = (array) $blocks;
49 foreach ( $blocks as $block ) {
50 if ( $name === $block[ $type ] ) {
51 $found_blocks[] = $block;
52 }
53 if ( ! empty( $block['innerBlocks'] ) ) {
54 $found_blocks = array_merge( $found_blocks, $this->filterBy( $type, $name, $block['innerBlocks'] ) );
55 }
56 }
57 return $found_blocks;
58 }
59
60 /**
61 * Get the block styles service.
62 *
63 * @return BlockStylesService
64 */
65 public function styles() {
66 return new BlockStylesService();
67 }
68
69 /**
70 * Get url params service.
71 *
72 * @param string $type Block type.
73 * @param string $instance_id Unique instance ID.
74 *
75 * @return URLParamService
76 */
77 public function urlParams( $type = '' ) {
78 return new URLParamService( $type );
79 }
80
81 /**
82 * Get product list migration service.
83 *
84 * @param array $attributes Attributes.
85 *
86 * @return ProductListMigrationService
87 */
88 public function productListMigration( $attributes = array(), $block = null ) {
89 return new ProductListMigrationService( $attributes, $block );
90 }
91
92 /**
93 * Get cart migration service.
94 *
95 * @param array $attributes Attributes.
96 *
97 * @return CartMigrationService
98 */
99 public function cartMigration( $attributes = [], $block = null ) {
100 return new CartMigrationService( $attributes, $block );
101 }
102
103 /**
104 * Get cart menu icon migration service.
105 *
106 * @param array $attributes Attributes.
107 *
108 * @return CartMenuIconMigrationService
109 */
110 public function cartMenuIconMigration( $attributes = [], $block = null ) {
111 return new CartMenuIconMigrationService( $attributes, $block );
112 }
113
114 /**
115 * Get the product list service.
116 *
117 * @return ProductListService
118 */
119 public function productList( $block ) {
120 return new ProductListService( $block );
121 }
122
123 /**
124 * Get the product price migration service.
125 *
126 * @param array $attributes Attributes.
127 * @param object $block Block.
128 *
129 * @return ProductSelectedPriceMigrationService
130 */
131 public function productSelectedPriceMigration( $attributes = array(), $block = null ) {
132 return new ProductSelectedPriceMigrationService( $attributes, $block );
133 }
134
135 /**
136 * Get the product collection badges migration service.
137 *
138 * @param array $attributes Attributes.
139 * @param object $block Block.
140 *
141 * @return ProductCollectionBadgesMigrationService
142 */
143 public function productCollectionBadgesMigration( $attributes = array(), $block = null ) {
144 return new ProductCollectionBadgesMigrationService( $attributes, $block );
145 }
146
147 /**
148 * Get the product price choices migration service.
149 *
150 * @param array $attributes Attributes.
151 * @param object $block Block.
152 *
153 * @return ProductPriceChoicesMigrationService
154 */
155 public function productPriceChoicesMigration( $attributes = array(), $block = null ) {
156 return new ProductPriceChoicesMigrationService( $attributes, $block );
157 }
158
159 /**
160 * Get the product variant migration service.
161 *
162 * @param array $attributes Attributes.
163 * @param object $block Block.
164 *
165 * @return ProductVariantsMigrationService
166 */
167 public function productVariantsMigration( $attributes = array(), $block = null ) {
168 return new ProductVariantsMigrationService( $attributes, $block );
169 }
170
171 /**
172 * Get the product page blocks migration service.
173 *
174 * @param object $block Block.
175 * @param string $old_block_name Old block name.
176 *
177 * @return ProductPageBlocksMigrationService
178 */
179 public function productPageBlocksMigration( $block, $old_block_name ) {
180 return new ProductPageBlocksMigrationService( $block, $old_block_name );
181 }
182
183 /**
184 * Block anchor support service.
185 *
186 * @return BlockAnchorSupportService
187 */
188 public function anchorSupport() {
189 return $this->app->resolve( 'block.support.anchor' );
190 }
191 }
192