PluginProbe
Gutenify – Visual Site Builder Blocks & Starter Templates / trunk
Gutenify – Visual Site Builder Blocks & Starter Templates vtrunk
1.7.0 1.6.6 1.6.5 1.6.4 trunk 0.0.1 0.0.2 0.0.3 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 All 72 releases
gutenify / core / dist / blocks / grid / index.php

index.php in Gutenify – Visual Site Builder Blocks & Starter Templates trunk, at core/dist/blocks/grid/index.php

110 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace gutenify;
3
4 defined( 'ABSPATH' ) || exit;
5
6 class Grid{
7 public static function init() {
8 add_action( 'init', array( __CLASS__, 'register_block' ) );
9 add_filter( 'gutenify_render_block_gutenify/grid', array( __CLASS__, 'render_block' ), 10, 4 );
10 }
11
12 public static function register_block() {
13 register_block_type( __DIR__ );
14 }
15
16 public static function render_block( $block_content, $block, $instance, $block_id ) {
17 $root_selector = '.' . $block_id ;
18 $css='';
19
20 $css = $root_selector . '{ display: grid;';
21
22 if (!empty($block['attrs']['blockAdvanceOptions']['gap']['rowGap'])) {
23 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['gap']['rowGap'] ) . ';';
24 } else {
25 $css .= 'row-gap: 40px;';
26
27 }
28 if (!empty($block['attrs']['blockAdvanceOptions']['gap']['columnGap'])) {
29 $css .= 'column-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['gap']['columnGap'] ) . ';';
30 } else {
31 $css .= 'column-gap: 40px;';
32
33 }
34 if (!empty($block['attrs']['blockAdvanceOptions']['columns'])) {
35 $css .= 'grid-template-columns: repeat(' . esc_attr( $block['attrs']['blockAdvanceOptions']['columns'] ) . ',1fr);';
36 } else {
37 $css .= 'grid-template-columns: repeat(3,1fr);';
38
39 }
40 $css .= '}';
41
42 //tablet styling
43 $css .= '@media screen and (max-width: 780px){'. $root_selector . '{';
44
45 if (!empty($block['attrs']['blockAdvanceOptions']['tablet']['columns'])) {
46 $css .= 'grid-template-columns: repeat(' . esc_attr( $block['attrs']['blockAdvanceOptions']['tablet']['columns'] ) . ',1fr);';
47 } elseif (!empty($block['attrs']['blockAdvanceOptions']['columns'])) {
48 $css .= 'grid-template-columns: repeat(' . esc_attr( $block['attrs']['blockAdvanceOptions']['columns'] ) . ',1fr);';
49 } else {
50 $css .= 'grid-template-columns: repeat(3,1fr);';
51 }
52 if (!empty($block['attrs']['blockAdvanceOptions']['tablet']['gap']['rowGap'])) {
53 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['tablet']['gap']['rowGap'] ) . ';';
54 } elseif (!empty($block['attrs']['blockAdvanceOptions']['gap']['rowGap'])) {
55 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['gap']['rowGap'] ) . ';';
56 } else {
57 $css .= 'row-gap: 40px;';
58 }
59 if (!empty($block['attrs']['blockAdvanceOptions']['tablet']['gap']['columnGap'])) {
60 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['tablet']['gap']['columnGap'] ) . ';';
61 } else if (!empty($block['attrs']['blockAdvanceOptions']['gap']['columnGap'])) {
62 $css .= 'column-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['gap']['columnGap'] ) . ';';
63 } else {
64 $css .= 'column-gap: 40px;';
65 }
66 $css .= '}}';
67
68 //mobile styling
69 $css .= '@media screen and (max-width: 360px){ '. $root_selector. '{';
70
71 if (!empty($block['attrs']['blockAdvanceOptions']['mobile']['columns'])) {
72 $css .= 'grid-template-columns: repeat(' . esc_attr( $block['attrs']['blockAdvanceOptions']['mobile']['columns'] ) . ',1fr);';
73 } elseif (!empty($block['attrs']['blockAdvanceOptions']['tablet']['columns'])) {
74 $css .= 'grid-template-columns: repeat(' . esc_attr( $block['attrs']['blockAdvanceOptions']['tablet']['columns'] ) . ',1fr);';
75 } elseif (!empty($block['attrs']['blockAdvanceOptions']['columns'])) {
76 $css .= 'grid-template-columns: repeat(' . esc_attr( $block['attrs']['blockAdvanceOptions']['columns'] ) . ',1fr);';
77 } else {
78 $css .= 'grid-template-columns: repeat(3,1fr);';
79 }
80 if (!empty($block['attrs']['blockAdvanceOptions']['mobile']['gap']['rowGap'])) {
81 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['mobile']['gap']['rowGap'] ) . ';';
82 } elseif (!empty($block['attrs']['blockAdvanceOptions']['tablet']['gap']['rowGap'])) {
83 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['tablet']['gap']['rowGap'] ) . ';';
84 } elseif (!empty($block['attrs']['blockAdvanceOptions']['gap']['rowGap'])) {
85 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['gap']['rowGap'] ) . ';';
86 } else {
87 $css .= 'row-gap: 40px;';
88 }
89 if (!empty($block['attrs']['blockAdvanceOptions']['mobile']['gap']['columnGap'])) {
90 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['mobile']['gap']['columnGap'] ) . ';';
91 } elseif (!empty($block['attrs']['blockAdvanceOptions']['tablet']['gap']['columnGap'])) {
92 $css .= 'row-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['tablet']['gap']['columnGap'] ) . ';';
93 } elseif (!empty($block['attrs']['blockAdvanceOptions']['gap']['columnGap'])) {
94 $css .= 'column-gap: ' . esc_attr( $block['attrs']['blockAdvanceOptions']['gap']['columnGap'] ) . ';';
95 } else {
96 $css .= 'column-gap: 40px;';
97 }
98
99 $css .= '}}';
100
101
102 $handle = 'gutenify_'. str_replace( '/', '_', $block['blockName'] ) . '_' . $block_id;
103 wp_add_inline_style( $handle, $css);
104 return $block_content;
105 }
106 }
107
108 Grid::init();
109
110