PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.7
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.7
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 13.7.2 13.8.3 All 506 releases
← All changes | extensions/blocks/nextdoor/nextdoor.php +9 -33 13.6.2 → 16.3-a.7 View file →
@@ -9,10 +9,13 @@
9 9
10 10 namespace Automattic\Jetpack\Extensions\Nextdoor;
11 11
12 12 use Automattic\Jetpack\Blocks;
13 -use Jetpack_Gutenberg;
14 13
14 +if ( ! defined( 'ABSPATH' ) ) {
15 + exit( 0 );
16 +}
17 +
15 18 /**
16 19 * Registers the block for use in Gutenberg
17 20 * This is done via an action so that we can disable
18 21 * registration if we need to.
@@ -27,41 +30,14 @@
27 30
28 31 /**
29 32 * Nextdoor block registration/dependency declaration.
30 33 *
34 + * The render implementation lives in render.php and is only loaded when the
35 + * block is actually rendered, keeping it out of the eager front-end path.
36 + *
31 37 * @param array $attr Array containing the Nextdoor block attributes.
32 38 * @return string
33 39 */
34 40 function load_assets( $attr ) {
35 - if ( ! isset( $attr['url'] ) ) {
36 - return;
37 - }
38 -
39 - $url = Jetpack_Gutenberg::validate_block_embed_url(
40 - $attr['url'],
41 - array( '/^http[s]?:\/\/((?:www\.)?nextdoor(?:.*)?\/(?:embed)\/\S*)/i' ),
42 - true
43 - );
44 -
45 - if ( empty( $url ) ) {
46 - return;
47 - }
48 -
49 - $url = preg_replace( '#/embed/#', '/p/', $url );
50 -
51 - /*
52 - * Enqueue necessary scripts and styles.
53 - */
54 - Jetpack_Gutenberg::load_assets_as_required( __DIR__ );
55 -
56 - $block_id = wp_unique_id( 'nextdoor-block-' );
57 - $link_markup = '<a href="' . esc_url( $url ) . '" title="' . esc_html__( 'Nextdoor embed', 'jetpack' ) . '">' . esc_html( $url ) . '</a>';
58 -
59 - $block_classes = Blocks::classes( Blocks::get_block_feature( __DIR__ ), $attr );
60 -
61 - $html =
62 - '<figure id="' . esc_attr( $block_id ) . '" class="' . esc_attr( $block_classes ) . '">' .
63 - $link_markup .
64 - '</figure>';
65 -
66 - return $html;
41 + require_once __DIR__ . '/render.php';
42 + return load_assets_implementation( $attr );
67 43 }