PluginProbe
BlockSpare – Gutenberg Blocks for News, Magazine, Blog & Business Websites / 3.3.3
BlockSpare – Gutenberg Blocks for News, Magazine, Blog & Business Websites v3.3.3
4.1.0 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.1.2 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 2.1.2 2.5.0 2.5.3 2.6.1 All 38 releases
blockspare / inc / latest-post-block / posts-grid / index.php

index.php in BlockSpare – Gutenberg Blocks for News, Magazine, Blog & Business Websites 3.3.3, at inc/latest-post-block/posts-grid/index.php

305 lines 15.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (!function_exists('blockspare_render_block_core_latest_posts_grid')) {
4 function blockspare_render_block_core_latest_posts_grid($attributes)
5 {
6
7 if ($attributes['enablePagination']) {
8 wp_enqueue_script('blockspare-pagination-js');
9 }
10 ob_start();
11 $unq_class = mt_rand(100000, 999999);
12 $blockuniqueclass = '';
13
14 if (!empty($attributes['uniqueClass'])) {
15 $blockuniqueclass = $attributes['uniqueClass'];
16 } else {
17 $blockuniqueclass = 'blockspare-posts-block-list-' . $unq_class;
18 }
19
20 $block_class = 'blockspare-posts-block-is-grid' . ' has-gutter-' . $attributes['gutterSpace'] . ' column-' . $attributes['columns'];
21 $design = $attributes['grid'];
22 $blockName = 'post-grid';
23 $layoutClass = false;
24 if ($attributes['grid'] != 'blockspare-posts-block-grid-layout-4' && $attributes['grid'] != 'blockspare-posts-block-grid-layout-5' && $attributes['grid'] != 'blockspare-posts-block-grid-layout-6') {
25 $layoutClass = true;
26 }
27 $alignclass = blockspare_checkalignment($attributes['align']);
28 $class = "wp-block-blockspare-posts-block-blockspare-posts-block-latest-posts align" . $alignclass . " " . $attributes['blockHoverEffect'] . " " . $attributes['imageHoverEffect'];
29
30 if (isset($attributes['className'])) {
31 $class .= ' ' . $attributes['className'];
32 }
33
34 if ($attributes['animation']) {
35 $class .= ' blockspare-block-animation';
36 }
37 $class .= ' ' . $blockuniqueclass;
38
39 ?>
40 <div class="<?php echo esc_attr($class); ?>" blockspare-animation="<?php echo esc_attr($attributes['animation']); ?>">
41 <?php
42 echo latest_posts_style_control_grid($blockuniqueclass, $attributes);
43 blockspare_query_loop_and_wrapper($attributes, $block_class, $design, $blockName, $layoutClass);
44 ?>
45 </div>
46 <?php
47 return ob_get_clean();
48
49 }
50 }
51
52 /**
53 * Registers the post grid block on server
54 */
55 if (!function_exists('blockspare_register_block_core_latest_posts_grid')) {
56 function blockspare_register_block_core_latest_posts_grid()
57 {
58
59 if (!function_exists('register_block_type')) {
60 return;
61 }
62
63 ob_start();
64 include BLOCKSPARE_PLUGIN_DIR . 'inc/latest-post-block/posts-grid/block.json';
65 $metadata = json_decode(ob_get_clean(), true);
66
67 /* Block attributes */
68 register_block_type(
69 'blockspare/blockspare-latest-posts-grid',
70 array(
71 'attributes' => $metadata['attributes'],
72 'render_callback' => 'blockspare_render_block_core_latest_posts_grid',
73 )
74 );
75 }
76
77 add_action('init', 'blockspare_register_block_core_latest_posts_grid');
78 }
79
80 if (!function_exists('latest_posts_style_control_grid')) {
81 function latest_posts_style_control_grid($blockuniqueclass, $attributes)
82 {
83
84 $block_content = '';
85 $block_content .= '<style type="text/css">';
86 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-wrap{
87 margin-top:' . $attributes['marginTop'] . 'px;
88 margin-bottom:' . $attributes['marginBottom'] . 'px;
89 margin-left:' . $attributes['marginLeft'] . 'px;
90 margin-right:' . $attributes['marginRight'] . 'px;
91 }';
92
93 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-content{
94 padding-top:' . $attributes['contentPaddingTop'] . 'px;
95 padding-right:' . $attributes['contentPaddingRight'] . 'px;
96 padding-bottom:' . $attributes['contentPaddingBottom'] . 'px;
97 padding-left:' . $attributes['contentPaddingLeft'] . 'px;
98 }';
99
100 blockspare_posts_category_style(
101 $block_content,
102 $attributes,
103 $blockuniqueclass,
104 $attributes['categoryTextColor'],
105 $attributes['categoryBackgroundColor'],
106 $attributes['categoryBorderColor'],
107 $attributes['secondCategoryTextColor'],
108 $attributes['secondCategoryBackgroundColor'],
109 $attributes['secondCategoryBorderColor'],
110 $attributes['thirdCategoryTextColor'],
111 $attributes['thirdCategoryBackgroundColor'],
112 $attributes['thirdCategoryBorderColor'],
113 );
114
115 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-byline{
116 margin-top:' . $attributes['metaMarginTop'] . 'px' . ';
117 margin-bottom:' . $attributes['metaMarginBottom'] . 'px' . ';
118 margin-left:' . $attributes['metaMarginLeft'] . 'px' . ';
119 margin-right:' . $attributes['metaMarginRight'] . 'px' . ';
120 }';
121
122 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-more-link{
123 margin-top:' . $attributes['moreLinkMarginTop'] . 'px' . ';
124 margin-bottom:' . $attributes['moreLinkMarginBottom'] . 'px' . ';
125 margin-left:' . $attributes['moreLinkMarginLeft'] . 'px' . ';
126 margin-right:' . $attributes['moreLinkMarginRight'] . 'px' . ';
127 }';
128
129 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title a span{
130 color: ' . $attributes['postTitleColor'] . ';
131 }';
132
133 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-author a span{
134 color:' . $attributes['linkColor'] . ';
135 }';
136
137 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-more-link span{
138 color:' . $attributes['linkColor'] . ';
139 }';
140
141 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-date{
142 color:' . $attributes['generalColor'] . ';
143 }';
144
145 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-excerpt-content{
146 color:' . $attributes['generalColor'] . ';
147 }';
148 $block_content .= ' .' . $blockuniqueclass . ' .comment_count{
149 color:' . $attributes['generalColor'] . ';
150 }';
151
152 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title{
153 margin-top:' . $attributes['titleMarginTop'] . 'px' . ';
154 margin-bottom:' . $attributes['titleMarginBottom'] . 'px' . ';
155 margin-left:' . $attributes['titleMarginLeft'] . 'px' . ';
156 margin-right:' . $attributes['titleMarginRight'] . 'px' . ';
157 }';
158
159 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-excerpt-content{
160 margin-top:' . $attributes['exceprtMarginTop'] . 'px' . ';
161 margin-bottom:' . $attributes['exceprtMarginBottom'] . 'px' . ';
162 margin-left:' . $attributes['exceprtMarginLeft'] . 'px' . ';
163 margin-right:' . $attributes['exceprtMarginRight'] . 'px' . ';
164 }';
165
166 $layoutstyle = explode('-', $attributes['grid']);
167 if ($layoutstyle[5] > 3) {
168 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-single .blockspare-posts-block-post-img {
169 border-radius:' . $attributes['borderRadius'] . 'px' . ';
170 }';
171 if ($attributes['enableBoxShadow']) {
172 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-single .blockspare-posts-block-post-img {
173 box-shadow: ' . $attributes['xOffset'] . 'px ' . $attributes['yOffset'] . 'px ' . $attributes['blur'] . 'px ' . $attributes['spread'] . 'px ' . $attributes['shadowColor'] . ';
174 }';
175 }
176 } else {
177 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-single{
178 border-radius:' . $attributes['borderRadius'] . 'px' . ';
179 background-color:' . $attributes['backGroundColor'] . '
180 }';
181
182 if ($attributes['enableBoxShadow']) {
183 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-single{
184 box-shadow: ' . $attributes['xOffset'] . 'px ' . $attributes['yOffset'] . 'px ' . $attributes['blur'] . 'px ' . $attributes['spread'] . 'px ' . $attributes['shadowColor'] . ';
185 }';
186 }
187 }
188
189 //Title Hover
190
191 if ($attributes['titleOnHover'] == 'lpc-title-hover') {
192 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-content .blockspare-posts-block-title-link:hover span{
193 color: ' . $attributes['titleOnHoverColor'] . ';
194 }';
195 }
196
197 if ($attributes['titleOnHover'] == 'lpc-title-border') {
198 $block_content .= ' .' . $blockuniqueclass . ' .lpc-title-border .blockspare-posts-block-post-grid-title .blockspare-posts-block-title-link span:hover{
199 box-shadow: inset 0 -2px 0 0 ' . $attributes['titleOnHoverColor'] . ';
200 }';
201 }
202
203 //Font Settings
204
205 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title a span{
206 font-size: ' . $attributes['postTitleFontSize'] . $attributes['titleFontSizeType'] . ';
207 ' . bscheckFontfamily($attributes['titleFontFamily']) . ';
208 ' . bscheckFontfamilyWeight($attributes['titleFontWeight']) . ';
209 line-height: ' . $attributes['postTitleLineHeight'] . ';
210 }';
211
212 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-content .blockspare-posts-block-post-grid-excerpt .blockspare-posts-block-post-grid-excerpt-content {
213 font-size:' . $attributes['descriptionFontSize'] . $attributes['descriptionFontSizeType'] . ';
214 ' . bscheckFontfamily($attributes['descriptionFontFamily']) . ';
215 ' . bscheckFontfamilyWeight($attributes['descriptionFontWeight']) . ';
216 }';
217
218 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-author a span {
219 font-size:' . $attributes['postMetaFontSize'] . $attributes['postMetaFontSizeType'] . ';
220 ' . bscheckFontfamily($attributes['postMetaFontFamily']) . ';
221 ' . bscheckFontfamilyWeight($attributes['postMetaFontWeight']) . ';
222 }';
223
224 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-date {
225 font-size:' . $attributes['postMetaFontSize'] . $attributes['postMetaFontSizeType'] . ';
226 ' . bscheckFontfamily($attributes['postMetaFontFamily']) . ';
227 ' . bscheckFontfamilyWeight($attributes['postMetaFontWeight']) . ';
228 }';
229
230 $block_content .= ' .' . $blockuniqueclass . ' .comment_count {
231 font-size:' . $attributes['postMetaFontSize'] . $attributes['postMetaFontSizeType'] . ';
232 ' . bscheckFontfamily($attributes['postMetaFontFamily']) . ';
233 ' . bscheckFontfamilyWeight($attributes['postMetaFontWeight']) . ';
234 }';
235
236 $block_content .= '@media (max-width: 1025px) { ';
237 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title a span{
238 font-size: ' . $attributes['titleFontSizeTablet'] . $attributes['titleFontSizeType'] . ';
239 }';
240 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-content .blockspare-posts-block-post-grid-excerpt .blockspare-posts-block-post-grid-excerpt-content {
241 font-size:' . $attributes['descriptionFontSizeTablet'] . $attributes['descriptionFontSizeType'] . '
242 }';
243 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-author a span {
244 font-size:' . $attributes['postMetaFontSizeTablet'] . $attributes['postMetaFontSizeType'] . '
245 }';
246 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-date {
247 font-size:' . $attributes['postMetaFontSizeTablet'] . $attributes['postMetaFontSizeType'] . '
248 }';
249 $block_content .= ' .' . $blockuniqueclass . ' .comment_count {
250 font-size:' . $attributes['postMetaFontSizeTablet'] . $attributes['postMetaFontSizeType'] . '
251 }';
252 $block_content .= '}';
253
254 $block_content .= '@media (max-width: 767px) { ';
255 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title a span{
256 font-size: ' . $attributes['titleFontSizeMobile'] . $attributes['titleFontSizeType'] . ';
257 }';
258 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-content .blockspare-posts-block-post-grid-excerpt .blockspare-posts-block-post-grid-excerpt-content {
259 font-size:' . $attributes['descriptionFontSizeMobile'] . $attributes['descriptionFontSizeType'] . '
260 }';
261 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-author a span {
262 font-size:' . $attributes['postMetaFontSizeMobile'] . $attributes['postMetaFontSizeType'] . '
263 }';
264 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-date {
265 font-size:' . $attributes['postMetaFontSizeMobile'] . $attributes['postMetaFontSizeType'] . '
266 }';
267 $block_content .= ' .' . $blockuniqueclass . ' .comment_count {
268 font-size:' . $attributes['postMetaFontSizeMobile'] . $attributes['postMetaFontSizeType'] . '
269 }';
270 $block_content .= '}';
271
272 //Pagination
273 if ($attributes['enablePagination']) {
274 if ($attributes['loadMoreStyle'] == 'bs-loadmore-solid') {
275 $block_content .= ' .' . $blockuniqueclass . ' .bs_blockspare_loadmore a.blockspare-readmore .load-btn{
276 color:' . $attributes['loadMoreSolidTextColor'] . ';
277 background-color:' . $attributes['loadMoreTextBgColor'] . ';
278 }';
279 $block_content .= ' .' . $blockuniqueclass . ' .bs_blockspare_loadmore a.blockspare-readmore .load-btn:hover{
280 color:' . $attributes['loadMoreSolidTextHoverColor'] . ';
281 background-color:' . $attributes['loadMoreTextBgHoverColor'] . ';
282 }';
283 } else {
284 $block_content .= ' .' . $blockuniqueclass . ' .bs_blockspare_loadmore a.blockspare-readmore .load-btn{
285 color:' . $attributes['loadMoreTextColor'] . ';
286 }';
287 $block_content .= ' .' . $blockuniqueclass . ' .bs_blockspare_loadmore a.blockspare-readmore .load-btn:hover{
288 color:' . $attributes['loadMoreTextHoverColor'] . ';
289 }';
290 }
291
292 $block_content .= ' .' . $blockuniqueclass . ' .bs_blockspare_loadmore{
293 text-align:' . $attributes['loadMoreAlignment'] . ';
294 }';
295 $block_content .= ' .' . $blockuniqueclass . ' .bs_blockspare_loadmore a.blockspare-readmore .ajax-loader-enabled{
296 border-top-color:' . $attributes['loadMoreColor'] . ';
297 }';
298 $block_content .= '}';
299 }
300
301 $block_content .= '</style>';
302 return $block_content;
303 }
304 }
305