PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 All 508 releases
← All changes | extensions/blocks/nextdoor/render.php +59 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,59 @@
1 +<?php
2 +/**
3 + * Nextdoor block render implementation.
4 + *
5 + * Loaded lazily from nextdoor.php only when the block is rendered, to keep the
6 + * render body out of the eager front-end PHP/opcache footprint.
7 + *
8 + * @package automattic/jetpack
9 + */
10 +
11 +namespace Automattic\Jetpack\Extensions\Nextdoor;
12 +
13 +use Automattic\Jetpack\Blocks;
14 +use Jetpack_Gutenberg;
15 +
16 +if ( ! defined( 'ABSPATH' ) ) {
17 + exit( 0 );
18 +}
19 +
20 +/**
21 + * Nextdoor block registration/dependency declaration.
22 + *
23 + * @param array $attr Array containing the Nextdoor block attributes.
24 + * @return string
25 + */
26 +function load_assets_implementation( $attr ) {
27 + if ( ! isset( $attr['url'] ) ) {
28 + return;
29 + }
30 +
31 + $url = Jetpack_Gutenberg::validate_block_embed_url(
32 + $attr['url'],
33 + array( '/^http[s]?:\/\/(?:[a-z0-9-]+\.)?nextdoor\.[a-z]{2,3}(?:\.[a-z]{2})?\/embed\/\S+/i' ),
34 + true
35 + );
36 +
37 + if ( empty( $url ) ) {
38 + return;
39 + }
40 +
41 + $url = preg_replace( '#/embed/#', '/p/', $url );
42 +
43 + /*
44 + * Enqueue necessary scripts and styles.
45 + */
46 + Jetpack_Gutenberg::load_assets_as_required( __DIR__ );
47 +
48 + $block_id = wp_unique_id( 'nextdoor-block-' );
49 + $link_markup = '<a href="' . esc_url( $url ) . '" title="' . esc_html__( 'Nextdoor embed', 'jetpack' ) . '">' . esc_html( $url ) . '</a>';
50 +
51 + $block_classes = Blocks::classes( Blocks::get_block_feature( __DIR__ ), $attr );
52 +
53 + $html =
54 + '<figure id="' . esc_attr( $block_id ) . '" class="' . esc_attr( $block_classes ) . '">' .
55 + $link_markup .
56 + '</figure>';
57 +
58 + return $html;
59 +}