예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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;
 }