PluginProbe
BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs / 2.6.6
BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs v2.6.6
5.0.1 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 All 39 releases
blockspare / inc / other-block / social-sharing / index.php

index.php in BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs 2.6.6, at inc/other-block/social-sharing/index.php

274 lines 9.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Server-side rendering for the sharing block
4 *
5 * @since 1.1.2
6 * @package Blockspare
7 */
8
9 /**
10 * Register the block on the server
11 */
12
13 if(!function_exists('blockspare_register_social_sharing_block')){
14 function blockspare_register_social_sharing_block()
15 {
16
17 if (!function_exists('register_block_type')) {
18 return;
19 }
20 ob_start();
21 include BLOCKSPARE_PLUGIN_DIR . 'inc/other-block/social-sharing/block.json';
22
23 $metadata = json_decode(ob_get_clean(), true);
24
25 register_block_type(
26 'blockspare/blockspare-social-sharing',
27
28 array(
29 'style' => 'blockspare-style-css',
30 'attributes' => $metadata['attributes'],
31 'render_callback' => 'blockspare_render_social_sharing_block',
32 )
33 );
34 }
35
36 add_action('init', 'blockspare_register_social_sharing_block');
37 }
38
39
40 /**
41 * Add the pop-up share window to the footer
42 */
43 if(! function_exists('blockspare_social_sharing_block_icon_footer_script')){
44 function blockspare_social_sharing_block_icon_footer_script()
45 {
46
47 if (function_exists('is_amp_endpoint') && is_amp_endpoint()) {
48 return;
49 }
50 ?>
51 <script type="text/javascript">
52 function blockspareBlocksShare(url, title, w, h) {
53 var left = (window.innerWidth / 2) - (w / 2);
54 var top = (window.innerHeight / 2) - (h / 2);
55 return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=600, height=600, top=' + top + ', left=' + left);
56 }
57 </script>
58 <?php
59 }
60
61
62 add_action('wp_footer', 'blockspare_social_sharing_block_icon_footer_script');
63 }
64
65 /**
66 * Render the sharing links
67 *
68 * @param array $attributes The block attributes.
69 *
70 * @return string The block HTML.
71 */
72 if(!function_exists('blockspare_render_social_sharing_block')){
73 function blockspare_render_social_sharing_block($attributes)
74 {
75
76 global $post;
77
78 if (has_post_thumbnail()) {
79 $thumbnail_id = get_post_thumbnail_id($post->ID);
80 $thumbnail = $thumbnail_id ? current(wp_get_attachment_image_src($thumbnail_id, 'large', true)) : '';
81 } else {
82 $thumbnail = null;
83 }
84
85
86 $unq_class = mt_rand(100000,999999);
87 $blockuniqueclass = '';
88
89 if(!empty($attributes['uniqueClass'])){
90 $blockuniqueclass = $attributes['uniqueClass'];
91 }else{
92 $blockuniqueclass = 'blockspare-share-'.$unq_class;
93 }
94
95 $icon_style = '';
96
97 if ($attributes['iconColorOption'] != 'blockspare-default-official-color') {
98
99 $icon_style = "color:" . $attributes['customfontColorOption'] . ';';
100 $icon_style .= " background-color:" . $attributes['custombackgroundColorOption'] . ';';
101
102 }
103
104
105 $animation_class = '';
106 if( $attributes['animation']){
107 $animation_class='blockspare-block-animation';
108 }
109
110
111
112 $is_amp_endpoint = function_exists('is_amp_endpoint') && is_amp_endpoint();
113
114 $share_url = '';
115
116
117 if (isset($attributes['facebook']) && $attributes['facebook']) {
118 $facebook_url = 'https://www.facebook.com/sharer/sharer.php?u=' . get_the_permalink() . '&title=' . get_the_title() . '';
119 $share_url .= blockspare_render_social_sharing_block_item($attributes['facebookTitle'], $facebook_url, 'blockspare-share-facebook', 'fab fa-facebook-f', $icon_style, $is_amp_endpoint);
120 }
121
122 if (isset($attributes['twitter']) && $attributes['twitter']) {
123 $twitter_url = 'http://twitter.com/share?text=' . get_the_title() . '&url=' . get_the_permalink() . '';
124 $share_url .= blockspare_render_social_sharing_block_item($attributes['twitterTitle'], $twitter_url, 'blockspare-share-twitter', 'fab fa-twitter', $icon_style, $is_amp_endpoint);
125 }
126
127
128 if (isset($attributes['pinterest']) && $attributes['pinterest']) {
129
130 $pinterest_url = 'https://pinterest.com/pin/create/button/?&url=' . get_the_permalink() . '&description=' . get_the_title() . '&media=' . esc_url($thumbnail) . '';
131 $share_url .= blockspare_render_social_sharing_block_item($attributes['pinterestTitle'], $pinterest_url, 'blockspare-share-pinterest', 'fab fa-pinterest-p', $icon_style, $is_amp_endpoint);
132 }
133
134 if (isset($attributes['linkedin']) && $attributes['linkedin']) {
135
136 $linkedin_url = 'https://www.linkedin.com/shareArticle?mini=true&url=' . get_the_permalink() . '&title=' . get_the_title() . '';
137 $share_url .= blockspare_render_social_sharing_block_item($attributes['linkedinTitle'], $linkedin_url, 'blockspare-share-linkedin', 'fab fa-linkedin-in', $icon_style, $is_amp_endpoint);
138 }
139
140 if (isset($attributes['reddit']) && $attributes['reddit']) {
141
142
143 $reddit_url = 'https://www.reddit.com/submit?url=' . get_the_permalink() . '';
144 $share_url .= blockspare_render_social_sharing_block_item($attributes['redditTitle'], $reddit_url, 'blockspare-share-reddit', 'fab fa-reddit-alien', $icon_style, $is_amp_endpoint);
145 }
146
147 if (isset($attributes['email']) && $attributes['email']) {
148
149 $email_url = 'mailto:?subject=' . get_the_title() . '&body=' . get_the_title() . '&mdash;' . get_the_permalink() . '';
150 $share_url .= blockspare_render_social_sharing_block_item($attributes['emailTitle'], $email_url, 'blockspare-share-email', 'fas fa-envelope', $icon_style, false);
151 }
152
153 $block_content = sprintf(
154 '
155 <div class="%7$s %8$s %10$s %12$s" blockspare-animation="%9$s">
156 <div class="blockspare-blocks blockspare-social-wrapper">
157 <ul class="blockspare-social-sharing %2$s %3$s %4$s %5$s %6$s %11$s ">%1$s</ul>
158 </div>
159 </div>
160 ',
161 $share_url,
162 isset($attributes['iconColorOption']) ? $attributes['iconColorOption'] : null,
163 isset($attributes['buttonOptions']) ? $attributes['buttonOptions'] : null,
164 isset($attributes['buttonShapes']) ? $attributes['buttonShapes'] : null,
165 isset($attributes['buttonSizes']) ? $attributes['buttonSizes'] : null,
166 isset($attributes['buttonFills']) ? $attributes['buttonFills'] : null,
167 $blockuniqueclass,
168 $animation_class,
169 esc_attr( $attributes['animation'] ),
170 $attributes['blockHoverEffect'],
171 $attributes['buttonOptions'] == 'blockspare-icon-only' ? 'blockspare-social-sharing-horizontal' : $attributes['iconLayoutType'],
172 'blockspare-social-sharing-'.$attributes['sectionAlignments']
173
174
175
176 );
177
178 $block_content .= '<style type="text/css">';
179
180 if ($attributes['iconColorOption'] != 'blockspare-default-official-color') {
181
182 if($attributes['buttonFills' ]=='blockspare-social-icon-solid') {
183
184 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-social-sharing a span{
185 color:' . $attributes['customfontColorOption'] . ';
186 background-color:' . $attributes['custombackgroundColorOption'] . ';
187 }';
188 }
189 else if($attributes['buttonFills' ]=='blockspare-social-icon-border') {
190 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-social-wrapper .blockspare-social-sharing a{
191 color:' . $attributes['customfontColorOption'] . ';
192 border:'."2px solid " . $attributes['custombackgroundColorOption'] . ';
193 }';
194 }else{
195 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-social-sharing a span{
196 color:' . $attributes['customfontColorOption'] . ';
197
198 }';
199
200 }
201 }
202 $block_content .=' .' . $blockuniqueclass . ' .blockspare-social-wrapper{
203 text-align:'.$attributes['sectionAlignments'] . ';
204 margin-top:'.$attributes['marginTop'] . 'px;
205 margin-right:'.$attributes['marginRight'] . 'px;
206 margin-bottom:'.$attributes['marginBottom'] . 'px;
207 margin-left:'.$attributes['marginLeft'] . 'px;
208
209 }';
210
211 $block_content .= '</style>';
212
213 return $block_content;
214 }
215 }
216
217 if(!function_exists('blockspare_render_social_sharing_block_item')){
218
219 function blockspare_render_social_sharing_block_item($attribute_title, $attribute_url, $item_class, $icon_class, $icon_style, $is_amp_endpoint)
220 {
221
222
223 $share_url = '';
224
225 if (!$is_amp_endpoint) {
226 $share_url .= sprintf(
227 '<li class="blockspare-hover-item">
228 <a
229 href="%1$s"
230 class="%3$s"
231 title="%2$s"
232 >
233 <span class="blockspare-social-icons">
234 <i class="%4$s"></i> <span class="blockspare-social-text">%2$s</span>
235 </span>
236 </a>
237 </li>',
238 $attribute_url,
239 esc_html__($attribute_title),
240 esc_attr__($item_class),
241 esc_attr__($icon_class)
242
243 );
244 } else {
245
246 $href_format = sprintf('href="javascript:void(0)" onClick="javascript:blockspareBlocksShare(\'%1$s\', \'%2$s\', \'600\', \'600\')"', esc_url($attribute_url), esc_html__($attribute_title));
247
248 if ($is_amp_endpoint) {
249 $href_format = sprintf('href="%1$s"', esc_url($attribute_url));
250 }
251 $share_url .= sprintf(
252 '<li class="blockspare-hover-item">
253 <a
254 %1$s
255 class="%3$s"
256 title="%2$s"
257 ><span class="blockspare-social-icons">
258 <i class="%4$s"></i> <span class="blockspare-social-text">%2$s</span>
259 </span>
260 </a>
261 </li>',
262 $href_format,
263 esc_html__($attribute_title),
264 esc_attr__($item_class),
265 esc_attr__($icon_class)
266
267 );
268 }
269
270
271 return $share_url;
272 }
273 }
274