PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.13.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.13.3
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 BlockCurrencyConversionSupportService.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 ProductListFilterTagsMigrationService.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
201 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 product list filter tags migration service.
94 *
95 * @return ProductListFilterTagsMigrationService
96 */
97 public function productListFilterTagsMigration() {
98 return new ProductListFilterTagsMigrationService();
99 }
100
101 /**
102 * Get cart migration service.
103 *
104 * @param array $attributes Attributes.
105 *
106 * @return CartMigrationService
107 */
108 public function cartMigration( $attributes = [], $block = null ) {
109 return new CartMigrationService( $attributes, $block );
110 }
111
112 /**
113 * Get cart menu icon migration service.
114 *
115 * @param array $attributes Attributes.
116 *
117 * @return CartMenuIconMigrationService
118 */
119 public function cartMenuIconMigration( $attributes = [], $block = null ) {
120 return new CartMenuIconMigrationService( $attributes, $block );
121 }
122
123 /**
124 * Get the product list service.
125 *
126 * @return ProductListService
127 */
128 public function productList( $block ) {
129 return new ProductListService( $block );
130 }
131
132 /**
133 * Get the product price migration service.
134 *
135 * @param array $attributes Attributes.
136 * @param object $block Block.
137 *
138 * @return ProductSelectedPriceMigrationService
139 */
140 public function productSelectedPriceMigration( $attributes = array(), $block = null ) {
141 return new ProductSelectedPriceMigrationService( $attributes, $block );
142 }
143
144 /**
145 * Get the product collection badges migration service.
146 *
147 * @param array $attributes Attributes.
148 * @param object $block Block.
149 *
150 * @return ProductCollectionBadgesMigrationService
151 */
152 public function productCollectionBadgesMigration( $attributes = array(), $block = null ) {
153 return new ProductCollectionBadgesMigrationService( $attributes, $block );
154 }
155
156 /**
157 * Get the product price choices migration service.
158 *
159 * @param array $attributes Attributes.
160 * @param object $block Block.
161 *
162 * @return ProductPriceChoicesMigrationService
163 */
164 public function productPriceChoicesMigration( $attributes = array(), $block = null ) {
165 return new ProductPriceChoicesMigrationService( $attributes, $block );
166 }
167
168 /**
169 * Get the product variant migration service.
170 *
171 * @param array $attributes Attributes.
172 * @param object $block Block.
173 *
174 * @return ProductVariantsMigrationService
175 */
176 public function productVariantsMigration( $attributes = array(), $block = null ) {
177 return new ProductVariantsMigrationService( $attributes, $block );
178 }
179
180 /**
181 * Get the product page blocks migration service.
182 *
183 * @param object $block Block.
184 * @param string $old_block_name Old block name.
185 *
186 * @return ProductPageBlocksMigrationService
187 */
188 public function productPageBlocksMigration( $block, $old_block_name ) {
189 return new ProductPageBlocksMigrationService( $block, $old_block_name );
190 }
191
192 /**
193 * Block anchor support service.
194 *
195 * @return BlockAnchorSupportService
196 */
197 public function anchorSupport() {
198 return $this->app->resolve( 'block.support.anchor' );
199 }
200 }
201