-
Notifications
You must be signed in to change notification settings - Fork 1
/
restrict-blocks.php
93 lines (76 loc) · 2.44 KB
/
restrict-blocks.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
/**
* Restricts core Gutenberg Block in editor
*/
function hale_allowed_block_types( $allowed_blocks ) {
$restrict_blocks = get_theme_mod('restrict_blocks', 1);
if($restrict_blocks || $restrict_blocks == "yes") {
$allowed_blocks = array(
// Text blocks
'core/code',
'core/footnotes',
'core/heading',
'core/list',
'core/list-item',
'core/paragraph',
'core/table',
// Media blocks
'core/cover',
'core/file',
'core/image',
'core/media-text',
'core/video',
// Design blocks
'core/buttons',
'core/button',
'core/columns',
'core/group',
'core/spacer',
// Widgets
'core/legacy-widget',
'core/social-links',
'core/social-link',
// Embeds
'core/embed',
// MoJ blocks
'mojblocks/accordion',
'mojblocks/accordion-section',
'mojblocks/banner',
'mojblocks/card',
'mojblocks/cta',
'mojblocks/hero',
'mojblocks/highlights-list',
'mojblocks/quote',
'mojblocks/reveal',
'mojblocks/separator',
'mojblocks/staggered-box'
);
if (post_type_exists('news')) {
$allowed_blocks[] = 'mojblocks/latest-news';
$allowed_blocks[] = 'mojblocks/featured-news';
}
if( current_user_can('administrator') ) {
$allowed_blocks[] = 'mojblocks/laa-chatbot';
}
$cpt_documents_activated = get_theme_mod('cpt_documents_activated', 0);
if($cpt_documents_activated) {
$allowed_blocks[] = 'mojblocks/featured-document';
}
return $allowed_blocks;
}
else {
return $allowed_blocks;
}
}
add_filter( 'allowed_block_types_all', 'hale_allowed_block_types' );
function hale_restrict_embed_blocks() {
$restrict_blocks = get_theme_mod('restrict_blocks', 1);
if($restrict_blocks || $restrict_blocks == "yes") {
wp_enqueue_script(
'restrict-embed-blocks',
hale_mix_asset('/js/restrict-embed-blocks.js'),
array('wp-blocks', 'wp-dom-ready', 'wp-edit-post'), null, true
);
}
}
add_action( 'enqueue_block_editor_assets', 'hale_restrict_embed_blocks' );