'',
'id' => '',
'animation' => 'no',
'address' => '',
'height' => '300px',
'icon' => '',
'infobox' => '',
'infobox_background_color' => '',
'infobox_content' => '',
'infobox_text_color' => '',
'map_style' => '',
'overlay_color' => '',
'popup' => 'yes',
'scale' => 'yes',
'scrollwheel' => 'yes',
'type' => 'roadmap',
'width' => '100%',
'zoom' => '14',
'zoom_pancontrol' => 'yes',
), $args
);
extract( $defaults );
self::$args = $defaults;
$html = '';
if( $address ) {
$addresses = explode( '|', $address );
if( $infobox_content ) {
$infobox_content_array = explode( '|', $infobox_content );
} else {
$infobox_content_array = '';
}
if( $icon ) {
$icon_array = explode( '|', $icon );
} else {
$icon_array = '';
}
if( $addresses ) {
self::$args['address'] = $addresses;
}
$num_of_addresses = count( $addresses );
if( $map_style == 'theme' ) {
$map_style = 'custom';
$icon = 'theme';
$animation = 'yes';
$infobox = 'custom';
$infobox_background_color = FusionCore_Plugin::hex2rgb( $smof_data['primary_color'] );
$infobox_background_color = 'rgba(' . $infobox_background_color[0] . ', ' . $infobox_background_color[1] . ', ' . $infobox_background_color[2] . ', 0.8)';
$overlay_color = $smof_data['primary_color'];
$brightness_level = FusionCore_Plugin::calc_color_brightness( $smof_data['primary_color'] );
if( $brightness_level > 140 ) {
$infobox_text_color = '#fff';
} else {
$infobox_text_color = '#747474';
}
}
if( $map_style == 'custom' ) {
$animation = 'yes';
}
if( $icon == 'theme' && $map_style == 'custom' ) {
for( $i = 0; $i < $num_of_addresses; $i++ ) {
$icon_array[$i] = plugins_url( 'images/avada_map_marker.png', dirname( __FILE__ ) );
}
}
wp_print_scripts( 'google-maps-api' );
wp_print_scripts( 'google-maps-infobox' );
foreach( self::$args['address'] as $add ) {
$add = trim( $add );
$add_arr = explode( "\n", $add );
$add_arr = array_filter( $add_arr, 'trim' );
$add = implode( '
', $add_arr );
$add = str_replace( "\r", '', $add );
$add = str_replace( "\n", '', $add );
$coordinates[]['address'] = $add;
}
if( ! is_array( $coordinates ) ) {
return;
}
for( $i = 0; $i < $num_of_addresses; $i++ ) {
if( strpos( self::$args['address'][$i], 'latlng=' ) === 0 ) {
self::$args['address'][$i] = $coordinates[$i]['address'];
}
}
if( is_array( $infobox_content_array ) &&
! empty( $infobox_content_array )
) {
for( $i = 0; $i < $num_of_addresses; $i++ ) {
if( ! array_key_exists( $i, $infobox_content_array ) ) {
$infobox_content_array[$i] = self::$args['address'][$i];
}
}
self::$args['infobox_content'] = $infobox_content_array;
} else {
self::$args['infobox_content'] = self::$args['address'];
}
foreach( self::$args['address'] as $key => $address ) {
$json_addresses[] = array(
'address' => $address,
'infobox_content' => self::$args['infobox_content'][$key]
);
if( isset( $icon_array ) && is_array( $icon_array ) ) {
$json_addresses[$key]['marker'] = $icon_array[$key];
}
if( strpos( $address, strtolower( 'latlng=' ) ) !== false ) {
$json_addresses[$key]['address'] = str_replace( 'latlng=', '', $address );
$latLng = explode(',', $json_addresses[$key]['address']);
$json_addresses[$key]['coordinates'] = true;
$json_addresses[$key]['latitude'] = $latLng[0];
$json_addresses[$key]['longitude'] = $latLng[1];
if( strpos( self::$args['infobox_content'][$key], strtolower( 'latlng=' ) ) !== false ) {
$json_addresses[$key]['infobox_content'] = '';
}
} else {
$json_addresses[$key]['coordinates'] = false;
}
}
$json_addresses = json_encode( $json_addresses );
$map_id = uniqid( 'fusion_map_' ); // generate a unique ID for this map
$this->map_id = $map_id;
ob_start(); ?>