Overview

Namespaces

  • None
  • WPGMZA
    • Integration
    • Selector

Classes

  • WPGMZA\AdminMarkerDataTable
  • WPGMZA\AjaxTable
  • WPGMZA\AutoLoader
  • WPGMZA\Crud
  • WPGMZA\Database
  • WPGMZA\DataTable
  • WPGMZA\Distance
  • WPGMZA\DOMDocument
  • WPGMZA\DOMElement
  • WPGMZA\Factory
  • WPGMZA\GDPRCompliance
  • WPGMZA\GlobalSettings
  • WPGMZA\GoogleGeocoder
  • WPGMZA\GoogleMap
  • WPGMZA\GoogleMapsAPILoader
  • WPGMZA\GoogleMapsLoader
  • WPGMZA\Integration\Gutenberg
  • WPGMZA\Integration\WPMigrateDB
  • WPGMZA\LatLng
  • WPGMZA\Map
  • WPGMZA\MapsEngineDialog
  • WPGMZA\Marker
  • WPGMZA\MarkerDataTable
  • WPGMZA\MarkerFilter
  • WPGMZA\ModalDialog
  • WPGMZA\NominatimGeocodeCache
  • WPGMZA\OLLoader
  • WPGMZA\Plugin
  • WPGMZA\Query
  • WPGMZA\QueryFragment
  • 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
  • WPGMZA\Table

Exceptions

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

Functions

  • WPGMZA\create_marker_instance_delegate
  • 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:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 
<?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(!$wpgmza->isInDeveloperMode())

            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);

        

        $attributes = array_merge(array('id' => 1), $attr);

        

        $str = "[wpgmza";

        

        foreach($attributes as $name => $value)

            $str .= " $name=\"" . addslashes($value) . "\"";

        

        $str .= "]";

        

        return $str;

    }

}

API documentation generated by ApiGen