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: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166:
<?php
namespace WPGMZA\MarkerListing;
class Carousel extends \WPGMZA\MarkerListing
{
public function __construct($map_id)
{
global $wpgmza;
\WPGMZA\MarkerListing::__construct($map_id);
$this->setAjaxParameters(array());
if($wpgmza->settings->useLegacyHTML)
{
$document = $this->element->ownerDocument;
$container = $document->createElement('div');
if($map_id !== null)
{
$container->setAttribute('id', "wpgmza_marker_list_container_$map_id");
$this->element->setAttribute('id', "wpgmza_marker_list_$map_id");
}
$container->addClass('wpgmza_marker_carousel');
$this->element->addClass('owl-carousel');
$this->element->addClass('owl-theme');
$this->element->parentNode->appendChild($container);
$container->appendChild($this->element);
}
$this->element->setAttribute('data-wpgmza-carousel-marker-listing', null);
$this->element->addClass('wpgmza_marker_carousel');
$this->element->removeClass('wpgmza_marker_list_class');
}
public function __get($name)
{
global $wpgmza;
switch($name)
{
case 'hideImage':
return !empty($wpgmza->settings->wpgmza_settings_carousel_markerlist_image);
break;
case 'hideTitle':
return !empty($wpgmza->settings->wpgmza_settings_carousel_markerlist_title);
break;
case 'hideIcon':
return !empty($wpgmza->settings->wpgmza_settings_carousel_markerlist_icon);
break;
case 'hideAddress':
return !empty($wpgmza->settings->wpgmza_settings_carousel_markerlist_address);
break;
case 'hideDescription':
return !empty($wpgmza->settings->wpgmza_settings_carousel_markerlist_description);
break;
case 'hideLink':
return !empty($wpgmza->settings->wpgmza_settings_carousel_markerlist_marker_link);
break;
case 'hideDirectionsLink':
return !empty($wpgmza->settings->wpgmza_settings_carousel_markerlist_directions);
break;
}
return \WPGMZA\MarkerListing::__get($name);
}
protected function removeHiddenFields($item, $marker)
{
global $wpgmza;
\WPGMZA\MarkerListing::removeHiddenFields($item, $marker);
if($this->hideDirectionsLink && $el = $item->querySelector('.wpgmza_marker_directions_link'))
$el->remove();
if($this->hideImage && $el = $item->querySelector('.wpgmza_map_image'))
$el->remove();
}
public function getAjaxResponse($request)
{
global $wpgmza;
$response = $this->getRecords($request);
$document = new \WPGMZA\DOMDocument();
$document->loadPHPFile($this->getItemHTMLPath() . 'carousel-item.html.php');
$template = $document->querySelector("body>*");
$template->remove();
$imageDimensions = $this->getImageDimensions();
$index = 1;
foreach($response->data as $marker)
{
$item = $template->cloneNode(true);
if($index % 2 == 1)
$item->addClass('wpgmza_carousel_odd');
else
$item->addClass('wpgmza_carousel_even');
$item->addClass('item owl-item');
$item->setAttribute('mid', $marker->id);
$item->setAttribute('mapid', $request['map_id']);
$icon = $marker->icon;
if(empty($icon))
$icon = \WPGMZA\Marker::DEFAULT_ICON;
$item->querySelector('.wpgmza_marker_icon')->setAttribute('src', $icon);
$item->querySelector('.wpgmza_marker_title')->appendText($marker->title);
$item->querySelector('.wpgmza_marker_address')->appendText($marker->address);
$item->querySelector('.wpgmza_marker_description')->import($marker->description);
if($img = $item->querySelector('.wpgmza_map_image'))
{
if(empty($marker->pic))
$img->remove();
else
$img->setAttribute('src', $marker->pic);
}
$a = $item->querySelector('.wpgmza-link > a, .wpgmza_marker_link > a');
$text = __('More Details', 'wp-google-maps');
if(!empty($wpgmza->settings->wpgmza_settings_infowindow_link_text))
$text = $wpgmza->settings->wpgmza_settings_infowindow_link_text;
if($a && !empty($marker->link))
{
$a->setAttribute('href', $marker->link);
$a->appendText($text);
}
$this->appendListingItem($document, $item, $marker);
$index++;
}
$response->html = $document->saveInnerBody();
unset($response->data);
return $response;
}
}