-
Notifications
You must be signed in to change notification settings - Fork 0
/
adrotate-block.php
99 lines (82 loc) · 3.78 KB
/
adrotate-block.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
94
95
96
97
98
99
<?php
/* ------------------------------------------------------------------------------------
* COPYRIGHT AND TRADEMARK NOTICE
* Copyright 2008-2024 Arnan de Gans. All Rights Reserved.
* ADROTATE is a registered trademark of Arnan de Gans.
* COPYRIGHT NOTICES AND ALL THE COMMENTS SHOULD REMAIN INTACT.
* By using this code you agree to indemnify Arnan de Gans from any
* liability that might arise from its use.
------------------------------------------------------------------------------------ */
/*-------------------------------------------------------------
Name: adrotate_register_blocks
Purpose: Register and load blocks and their configuration
Since: 5.8.24
-------------------------------------------------------------*/
function adrotate_register_blocks() {
wp_register_script('adrotate-block', plugins_url('/library/block.js', __FILE__), array('wp-blocks', 'wp-element', 'wp-i18n'));
register_block_type('adrotate/advert', array('editor_script' => 'adrotate-block', 'render_callback' => 'adrotate_advert_block'));
register_block_type('adrotate/group', array('editor_script' => 'adrotate-block', 'render_callback' => 'adrotate_group_block'));
}
add_action('init', 'adrotate_register_blocks');
/*-------------------------------------------------------------
Name: adrotate_advert_block, adrotate_group_block
Purpose: Output advert or group block
Since: 5.8.24
-------------------------------------------------------------*/
function adrotate_advert_block($attr) {
global $adrotate_config;
if(!isset($attr['advert_id']) OR !is_numeric($attr['advert_id'])) return;
$output = '';
if($adrotate_config['w3caching'] == 'Y') {
$output .= "<!-- mfunc ".W3TC_DYNAMIC_SECURITY." -->";
$output .= "echo adrotate_ad(".$attr['advert_id'].");";
$output .= "<!-- /mfunc ".W3TC_DYNAMIC_SECURITY." -->";
} else if($adrotate_config['borlabscache'] == 'Y' AND function_exists('BorlabsCacheHelper')) {
if(BorlabsCacheHelper()->willFragmentCachingPerform()) {
$borlabsphrase = BorlabsCacheHelper()->getFragmentCachingPhrase();
$output .= "<!--[borlabs cache start: ".$borlabsphrase."]--> ";
$output .= "echo adrotate_ad(".$attr['advert_id'].");";
$output .= " <!--[borlabs cache end: ".$borlabsphrase."]-->";
unset($borlabsphrase);
}
} else {
$output .= adrotate_ad($attr['advert_id']);
}
return $output;
}
function adrotate_group_block($attr) {
global $adrotate_config;
if(!isset($attr['group_id']) OR !is_numeric($attr['group_id'])) return;
$output = '';
if($adrotate_config['w3caching'] == "Y") {
$output .= "<!-- mfunc ".W3TC_DYNAMIC_SECURITY." -->";
$output .= "echo adrotate_group(".$attr['group_id'].");";
$output .= "<!-- /mfunc ".W3TC_DYNAMIC_SECURITY." -->";
} else if($adrotate_config['borlabscache'] == "Y" AND function_exists('BorlabsCacheHelper')) {
if(BorlabsCacheHelper()->willFragmentCachingPerform()) {
$borlabsphrase = BorlabsCacheHelper()->getFragmentCachingPhrase();
$output .= "<!--[borlabs cache start: ".$borlabsphrase."]--> ";
$output .= "echo adrotate_group(".$attr['group_id'].");";
$output .= " <!--[borlabs cache end: ".$borlabsphrase."]-->";
unset($borlabsphrase);
}
} else {
$output .= adrotate_group($attr['group_id']);
}
return $output;
}
/*-------------------------------------------------------------
Name: adrotate_add_block_category
Purpose: Add a category for AdRotate blocks in the Block Editor
Since: 5.8.24
-------------------------------------------------------------*/
function adrotate_add_block_category($categories, $editor_context) {
array_unshift($categories, array(
'slug' => 'custom-adrotate',
'title' => __("AdRotate - Advertisements", 'adrotate-pro'),
'icon' => null,
));
return $categories;
}
add_filter('block_categories_all', 'adrotate_add_block_category', 10, 2);
?>