Overview

Namespaces

  • None
  • WPGMZA
    • Integration
    • Selector

Classes

  • WPGMZA\AutoLoader
  • WPGMZA\Crud
  • WPGMZA\DOMDocument
  • WPGMZA\DOMElement
  • WPGMZA\Factory
  • WPGMZA\GDPRCompliance
  • WPGMZA\GoogleGeocoder
  • WPGMZA\GoogleMap
  • WPGMZA\GoogleMapsAPILoader
  • WPGMZA\GoogleMapsLoader
  • WPGMZA\Integration\Gutenberg
  • WPGMZA\Integration\WPMigrateDB
  • WPGMZA\LatLng
  • WPGMZA\Map
  • WPGMZA\MapsEngineDialog
  • WPGMZA\Marker
  • WPGMZA\ModalDialog
  • WPGMZA\NominatimGeocodeCache
  • WPGMZA\OLLoader
  • WPGMZA\Plugin
  • WPGMZA\RestAPI
  • WPGMZA\ScriptLoader
  • WPGMZA\Selector\AttributeSelector
  • WPGMZA\Selector\Parser
  • WPGMZA\Selector\PseudoSelector
  • WPGMZA\Selector\Selector
  • WPGMZA\Selector\Token
  • WPGMZA\Selector\Tokenizer
  • WPGMZA\Selector\TokenStream
  • WPGMZA\Selector\XPathConverter
  • WPGMZA\Strings

Exceptions

  • WPGMZA\Selector\ConvertException
  • WPGMZA\Selector\ParseException

Functions

  • WPGMZA\create_marker_instance_delegate
  • WPGMZA\create_plugin_instance
  • WPGMZA\query_nominatim_cache
  • WPGMZA\Selector\trace
  • WPGMZA\store_nominatim_cache
  • wpgmza_backwards_compat_get_all_circle_data
  • wpgmza_backwards_compat_get_all_rectangle_data
  • wpgmza_check_admin_head_backwards_compat_v6
  • wpgmza_check_map_editor_backwards_compat_v6
  • wpgmza_check_pro_compat_required_v6
  • wpgmza_check_user_backwards_compat_v6
  • Overview
  • Namespace
  • Class
 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: 
<?php

namespace WPGMZA\Integration;

/**
 * This module integrates the plugin with the Gutenberg editor
 */
class Gutenberg extends \WPGMZA\Factory
{
    /**
     * Constructor.
     */
    public function __construct()
    {
        global $wpgmza;
        
        add_action('enqueue_block_assets', array(
            $this,
            'onEnqueueBlockAssets'
        ));
        
        add_action('init', array(
            $this,
            'onInit'
        ));
        
        if(function_exists('register_block_type'))
            register_block_type('gutenberg-wpgmza/block', array(
                'render_callback' => array(
                    $this,
                    'onRender'
                )
            ));
    }
    
    /**
     * Enqueues assets to be used with the Gutenberg editor
     */
    public function onEnqueueBlockAssets()
    {
        global $wpgmza;
        
        if(!is_admin())
            return;
        
        $wpgmza->loadScripts();
        
        wp_enqueue_style(
            'wpgmza-gutenberg-integration', 
            plugin_dir_url(WPGMZA_FILE) . 'css/gutenberg.css', 
            '', 
            WPGMZA_VERSION
        );
    }
    
    /**
     * Called on the WordPress init action. This function strips out JS module generated by the babel compiler, for browser compatibility.
     */
    public function onInit()
    {
        global $wpgmza;
        
        if(empty($wpgmza->settings->developer_mode))
            return;
        
        // NB: Commented out, false positives were causing this file to be wiped
        
        // Strip out JS module code for browser compatibility
        /*$filename = plugin_dir_path(WPGMZA_FILE) . 'js/v8/3rd-party-integration/gutenberg/dist/gutenberg.js';
        
        $contents = file_get_contents($filename);
        
        $contents = preg_replace('/Object\.defineProperty\(exports.+?;/s', '', $contents);
        
        $contents = preg_replace('/exports\.default = /', '', $contents);
        
        if(empty($contents))
            throw new \Exception('Gutenberg module would be blank');
        
        file_put_contents($filename, $contents);*/
    }
    
    /**
     * Called to render the plugins Gutenberg block front end.
     * @param mixed[] $atts An array of attributes passed in from the editor.
     */
    public function onRender($attr)
    {
        extract($attr);
        
        return '[wpgmza id="1"]';
    }
}
API documentation generated by ApiGen