# gutenify/0.0.2/inc/blocks/google-maps/block.php

Gutenify – Visual Site Builder Blocks &amp; Starter Templates, version 0.0.2. 85 lines.

- Page: https://pluginprobe.com/plugins/gutenify/0.0.2/code/inc/blocks/google-maps/block.php
- Raw: https://pluginprobe.com/plugins/gutenify/0.0.2/raw/inc/blocks/google-maps/block.php
- Modified: 2020-01-05T17:10:12+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/gutenify/0.0.2/code/inc/blocks/google-maps/block.php#L10-L20`.

```php
<?php
/**
 * Gutenify Google Map Block file.
 *
 * @package Gutenify
 */

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class Gutenify_Block_Google_Maps {
    public static function init(){
        add_action( 'init', array( __CLASS__, 'register_block_type' ) );
        add_action( 'enqueue_block_assets', array( __CLASS__, 'frontend_assets' ) );
    }

    public static function register_block_type(){
        $deps = include_once( sprintf( '%s/assets/google-maps_admin.asset.php', GUTENIFY_ABSPATH ) );
        $deps['dependencies'] = array_merge( $deps['dependencies'], array( 'gutenify-google-fonts' ) );
        wp_register_script(
            'gutenify-google-fonts',
            'https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js', array(), '1.6.26', true
        );
        
        wp_register_script(
            'gutenify-google-maps-script',
            plugins_url( 'assets/google-maps_admin.js', GUTENIFY_PLUGIN_FILE ), $deps['dependencies'], $deps['version'], true
        );

        wp_register_style(
            'gutenify-google-maps-style',
            plugins_url( 'assets/google-maps_admin.css', GUTENIFY_PLUGIN_FILE ),
            array('gutenify-main-style'),
            time()
        );
    
        $translation_array['google_fonts'] = Gutenify_Helpers::get_google_fonts();
        wp_localize_script( 'gutenify-script', 'gutenify_data', $translation_array );
    
        register_block_type( 'gutenify/google-maps', array(
            'editor_script' => 'gutenify-google-maps-script',
            'editor_style' => 'gutenify-google-maps-style',
            'render_callback' => array( __CLASS__, 'frontend_dynamic_render_callback' )
        ) );
    }

    public static function frontend_dynamic_render_callback($attributes) {
        $defaults = include( sprintf( '%sinc/blocks/count-down/defaults.php', GUTENIFY_ABSPATH ) );
        $attributes = wp_parse_args( $attributes, $defaults );
        $wrapperClass = ! empty( $attributes['className'] )  ? $attributes['className'] . ' gutenify-google-maps-wrapper' : ' gutenify-google-maps-wrapper';
        $blockId = !empty($attributes['blockClientId'])?$attributes['blockClientId']:'';
        $blockId = str_replace('-','_', $blockId ) . '_' . md5( uniqid (rand (),true) );
        // return print_r($attributes,true).'<div class="' . $wrapperClass . '" id="' . $blockId . '"></div>
        return '<div class="' . $wrapperClass . '" id="' . $blockId . '"></div>
            <script>
            var '.$blockId.' = '.json_encode($attributes).';
            </script>
        ';
    }

    public static function frontend_assets() {
        if( !is_admin() ) {
            $deps = include_once( sprintf( '%s/assets/google-maps_frontend.asset.php', GUTENIFY_ABSPATH ) );
            $deps['dependencies'] = array_merge( $deps['dependencies'], array( 'gutenify-google-fonts' ) );
            wp_register_script(
                'gutenify-google-fonts',
                'https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js', array(), '1.6.26', true
            );
            wp_enqueue_script(
                'gutenify-google-maps-frontend-script',
                plugins_url( 'assets/google-maps_frontend.js', GUTENIFY_PLUGIN_FILE ), $deps['dependencies'], $deps['version'], true
            );
            wp_enqueue_style(
                'gutenify-google-maps-frontend-style',
                plugins_url( 'assets/google-maps_frontend.css', GUTENIFY_PLUGIN_FILE ),
                array(),
                time()
            );
        }
    }
}

Gutenify_Block_Google_Maps::init();
```
