PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.1.6
JetFormBuilder — Dynamic Blocks Form Builder v3.1.6
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / compatibility / jet-engine / blocks / map-field.php
jetformbuilder / compatibility / jet-engine / blocks Last commit date
map-field.php 2 years ago map-tools.php 2 years ago
map-field.php
105 lines
1 <?php
2
3
4 namespace JFB_Compatibility\Jet_Engine\Blocks;
5
6 use Jet_Engine\Modules\Maps_Listings\Base_Provider;
7 use Jet_Engine\Modules\Maps_Listings\Module;
8 use Jet_Form_Builder\Blocks\Render\Base as RenderBase;
9 use Jet_Form_Builder\Blocks\Types\Base;
10 use JFB_Compatibility\Jet_Engine\Preset_Sources\Preset_Source_Options_Page;
11 use Jet_Form_Builder\Presets\Sources\Base_Source;
12 use JFB_Components\Compatibility\Compatibility_Tools;
13
14 // If this file is called directly, abort.
15 if ( ! defined( 'WPINC' ) ) {
16 die;
17 }
18
19 class Map_Field extends Base {
20
21 const HANDLE = 'jet-fb-map-field';
22
23 /**
24 * @return string
25 */
26 public function get_name() {
27 return 'map-field';
28 }
29
30 public function get_path_metadata_block() {
31 return Compatibility_Tools::get_dir(
32 'jet-engine',
33 "blocks-metadata/{$this->get_name()}"
34 );
35 }
36
37 public function get_field_settings(): array {
38 return array(
39 'height' => $this->block_attrs['height'] ?? 300,
40 'format' => $this->block_attrs['format'] ?? Map_Tools::STRING,
41 'field_prefix' => $this->block_attrs['name'] ?? '',
42 );
43 }
44
45 public function get_extra_fields( Base_Source $source ): array {
46 if ( is_a( $source, Preset_Source_Options_Page::class ) ) {
47 return array(
48 'self' => '%prop%',
49 'lat' => '%prop|md5%_lat',
50 'lng' => '%prop|md5%_lng',
51 );
52 }
53
54 return array(
55 'self' => '%key%',
56 'lat' => '%key|md5%_lat',
57 'lng' => '%key|md5%_lng',
58 );
59 }
60
61 public function expected_preset_type(): array {
62 return array( self::PRESET_EXACTLY );
63 }
64
65 protected function get_value_from_repeater( array $row, string $name ) {
66 if ( ! isset( $row[ $name ] ) ) {
67 return false;
68 }
69
70 return array(
71 'self' => $row[ $name ],
72 'lat' => $row[ $name . '_lat' ],
73 'lng' => $row[ $name . '_lng' ],
74 );
75 }
76
77 protected function render_field( array $attrs, $content = null, $wp_block = null ): string {
78 if ( ! Map_Tools::is_supported() ) {
79 return Map_Tools::get_help_message();
80 }
81
82 return parent::render_field( $attrs, $content, $wp_block );
83 }
84
85 /**
86 * @param null $wp_block
87 *
88 * @return mixed
89 */
90 public function get_block_renderer( $wp_block = null ) {
91 /** @var Base_Provider $provider */
92 $provider = Module::instance()->providers->get_active_map_provider();
93
94 $provider->register_public_assets();
95 $provider->public_assets( null, array( 'marker_clustering' => false ), null );
96
97 return ( new class( $this ) extends RenderBase {
98 public function get_name() {
99 return 'map-field';
100 }
101 } )->render();
102 }
103
104 }
105