/** * Render the widget * * @param array $arguments * @param array $instance */ public function widget($arguments, $instance) { extract($arguments); $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); echo $before_widget; if ($title) { echo $before_title . $title . $after_title; } $info = new Pronamic_Google_Maps_Info(); $info->title = $instance['title']; $info->description = $instance['description']; $info->width = $instance['width']; $info->height = $instance['height']; $info->latitude = (double) $instance['latitude']; $info->longitude = (double) $instance['longitude']; $info->static = $instance['static']; $info->mapOptions->mapTypeId = $instance['map-type']; $info->mapOptions->zoom = (int) $instance['zoom']; if ($info->isDynamic()) { Pronamic_Google_Maps_Site::requireSiteScript(); } echo Pronamic_Google_Maps_Maps::getMapHtml($info); echo $after_widget; }
/** * Render an Google Maps according the specified info * * @param Pronamic_Google_Maps_Info $info */ public static function getMapHtml(Pronamic_Google_Maps_Info $info) { $content = '<div class="pgm">'; $width = Pronamic_Google_Maps_Size::parse($info->width); $height = Pronamic_Google_Maps_Size::parse($info->height); if ($info->isDynamic()) { $content .= sprintf('<input type="hidden" name="pgm-info" value="%s" />', esc_attr(json_encode($info))); $content .= sprintf('<div class="canvas" style="width: %s; height: %s;">', $width, $height); $content .= sprintf(' <noscript><img src="%s" alt="" /></noscript>', self::getStaticMapUrl($info)); $content .= sprintf('</div>'); } else { $content .= sprintf('<img src="%s" alt="" />', self::getStaticMapUrl($info)); } $content .= '</div>'; return $content; }