PluginProbe
Themify Builder / 7.8.0
Themify Builder v7.8.0
7.8.1 7.8.0 7.7.9 7.7.8 7.7.7 7.7.6 7.7.5 7.7.4 7.7.3 7.7.2 trunk 7.6.0 7.6.1 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.8 7.6.9 7.7.0 7.7.1
themify-builder / modules / module-map.php

module-map.php in Themify Builder 7.8.0, at modules/module-map.php

83 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 defined( 'ABSPATH' ) || exit;
4
5 /**
6 * Module Name: Map
7 * Description: Display Map
8 */
9
10 class TB_Map_Module extends Themify_Builder_Component_Module {
11
12
13 public static function get_module_name():string{
14 add_filter( 'themify_builder_active_vars', array(__CLASS__, 'check_map_api'));
15 return __('Map', 'themify');
16 }
17
18 public static function get_module_icon():string{
19 return 'map-alt';
20 }
21
22 public static function get_js_css():array {
23 return array(
24 'css' => 1
25 );
26 }
27
28 /**
29 * Handles Ajax request to check map api
30 *
31 * @since 4.5.0
32 */
33 public static function check_map_api($values) {
34 $googleAPI = themify_builder_get( 'setting-google_map_key', 'builder_settings_google_map_key' );
35 $values['google_api'] = !empty($googleAPI);
36 $url = themify_is_themify_theme() ? admin_url( 'admin.php?page=themify#setting-integration-api' ) : admin_url( 'admin.php?page=themify-builder&tab=builder_settings' );
37 if(!$values['google_api']) {
38 $values['google_api_err'] = sprintf( __('Please enter the required <a href="%s" target="_blank">Google Maps API key</a>.','themify'), $url );
39 }
40
41 $bingAPI = themify_builder_get( 'setting-bing_map_key', 'builder_settings_bing_map_key' );
42 $values['bing_api'] = !empty($bingAPI);
43 if(!$values['bing_api']) {
44 $values['bing_api_err'] = sprintf( __('Please enter the required <a href="%s" target="_blank">Bing Maps API key</a>.','themify'), $url );
45 }
46
47 $azure_key = themify_builder_get( 'setting-azure_map_key', 'builder_settings_azure_map_key' );
48 $values['azure_api'] = !empty( $azure_key );
49 if ( ! $values['azure_api'] ) {
50 $values['azure_api_err'] = sprintf( __('Please enter the required <a href="%s" target="_blank">Azure subscription key</a>.','themify'), $url );
51 }
52
53 return $values;
54 }
55
56
57 /**
58 * Render plain content
59 */
60 public static function get_static_content(array $module):string {
61 $mod_settings = $module['mod_settings']+array(
62 'mod_title_map' => '',
63 'address_map' => 'Toronto',
64 'zoom_map' => 15
65 );
66 if (!empty($mod_settings['address_map'])) {
67 $mod_settings['address_map'] = preg_replace('/\s+/', ' ', trim($mod_settings['address_map']));
68 }
69 $text = sprintf('<h3>%s</h3>', $mod_settings['mod_title_map']);
70 $text .= sprintf(
71 '<iframe frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?q=%s&amp;t=m&amp;z=%d&amp;output=embed&amp;iwloc=near"></iframe>', urlencode($mod_settings['address_map']), absint($mod_settings['zoom_map'])
72 );
73 return $text;
74 }
75
76 public static function get_translatable_text_fields( $module ) : array {
77 return [ 'mod_title_map', 'latlong_map' ];
78 }
79
80 public static function get_translatable_textarea_fields( $module ) : array {
81 return [ 'address_map', 'info_window_map' ];
82 }
83 }