PluginProbe
Getwid – Gutenberg Blocks / 2.0.13
Getwid – Gutenberg Blocks v2.0.13
3.0.1 3.0.0 2.1.0 2.1.1 2.1.2 2.1.3 2.2.0 trunk 1.8.7 1.9.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9
getwid / includes / blocks / accordion.php

accordion.php in Getwid – Gutenberg Blocks 2.0.13, at includes/blocks/accordion.php

96 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Getwid\Blocks;
4
5 class Accordion extends \Getwid\Blocks\AbstractBlock {
6
7 protected static $blockName = 'getwid/accordion';
8
9 public function __construct() {
10
11 parent::__construct( self::$blockName );
12
13 register_block_type(
14 'getwid/accordion',
15 array(
16 'render_callback' => [ $this, 'render_callback' ]
17 )
18 );
19
20 if ( $this->isEnabled() ) {
21
22 add_filter( 'getwid/editor_blocks_js/dependencies', [ $this, 'block_editor_scripts'] );
23 add_filter( 'getwid/blocks_style_css/dependencies', [ $this, 'block_frontend_styles' ] );
24 }
25 }
26
27 public function getLabel() {
28 return __('Accordion', 'getwid');
29 }
30
31 public function block_editor_scripts($scripts) {
32
33 //jquery-ui-accordion.min.js
34 if ( ! in_array( 'jquery-ui-accordion', $scripts ) ) {
35 array_push( $scripts, 'jquery-ui-accordion' );
36 }
37
38 return $scripts;
39 }
40
41 public function block_frontend_styles($styles) {
42
43 //fontawesome
44 $styles = getwid()->fontIconsManager()->enqueueFonts( $styles );
45
46 return $styles;
47 }
48
49 public function block_frontend_assets() {
50
51 if ( is_admin() ) {
52 return;
53 }
54
55 //jquery-ui-accordion.min.js
56 if ( ! wp_script_is( 'jquery-ui-accordion', 'enqueued' ) ) {
57 wp_enqueue_script('jquery-ui-accordion');
58 }
59
60 if ( FALSE == getwid()->assetsOptimization()->load_assets_on_demand() ) {
61 return;
62 }
63
64 //fontawesome
65 $deps = getwid()->fontIconsManager()->enqueueFonts( [] );
66
67 $rtl = is_rtl() ? '.rtl' : '';
68
69 wp_enqueue_style(
70 self::$blockName,
71 getwid_get_plugin_url( 'assets/blocks/accordion/style' . $rtl . '.css' ),
72 $deps,
73 getwid()->settings()->getVersion()
74 );
75
76 wp_enqueue_script(
77 self::$blockName,
78 getwid_get_plugin_url( 'assets/blocks/accordion/frontend.js' ),
79 [ 'jquery', 'jquery-ui-accordion' ],
80 getwid()->settings()->getVersion(),
81 true
82 );
83 }
84
85 public function render_callback( $attributes, $content ) {
86
87 $this->block_frontend_assets();
88
89 return $content;
90 }
91 }
92
93 getwid()->blocksManager()->addBlock(
94 new \Getwid\Blocks\Accordion()
95 );
96