Exemplo n.º 1
0
 public function render($params = array())
 {
     // init vars
     $location = $this->_data->get('location');
     $locale = $this->_config->get('locale');
     // init display params
     $params = new YArray($params);
     $layout_path = $params->get('layout_path');
     $layout = $params->get('layout');
     $width = $params->get('width');
     $width_unit = $params->get('width_unit');
     $height = $params->get('height');
     $marker_popup = $params->get('marker_popup');
     $zoom_level = $params->get('zoom_level');
     $map_controls = $params->get('map_controls');
     $scroll_wheel_zoom = $params->get('scroll_wheel_zoom');
     $map_type = $params->get('map_type');
     $map_controls = $params->get('map_controls');
     $type_controls = $params->get('type_controls');
     $directions = $params->get('directions');
     $main_icon = $params->get('main_icon');
     $information = $params->get('information');
     // determine locale
     if (empty($locale) || $locale == 'auto') {
         $locale = UserHelper::getBrowserDefaultLanguage();
     }
     // get marker text
     $marker_text = '';
     $renderer = new ItemRenderer();
     $renderer->addPath($layout_path);
     if ($item = $this->getItem()) {
         $path = 'item';
         $prefix = 'item.';
         $type = $item->getType()->id;
         if ($renderer->pathExists($path . DIRECTORY_SEPARATOR . $type)) {
             $path .= DIRECTORY_SEPARATOR . $type;
             $prefix .= $type . '.';
         }
         if (in_array($layout, $renderer->getLayouts($path))) {
             $marker_text = $renderer->render($prefix . $layout, array('item' => $item));
         } else {
             $marker_text = $item->name;
         }
     }
     // get geocode cache
     $cache = new YCache(ZOO_CACHE_PATH . DS . 'geocode_cache.txt');
     if (!$cache->check()) {
         return "<div class=\"alert\"><strong>Cache not writeable please update the file permissions! (geocode_cache.txt)</strong></div>\n";
     }
     // get map center coordinates
     $center = GooglemapsHelper::locate($location, $cache);
     if (!$center) {
         return "<div class=\"alert\"><strong>Unable to get map center coordinates, please verify your location! (" . $location . ")</strong></div>\n";
     }
     // save location to geocode cache
     if ($cache) {
         $cache->save();
     }
     // css parameters
     $maps_id = 'googlemaps-' . $this->_item->id;
     $css_module_width = 'width: ' . $width . $width_unit . ';';
     $css_module_height = 'height: ' . $height . 'px;';
     $from_address = JText::_('From address:');
     $get_directions = JText::_('Get directions');
     $empty = JText::_('Please fill in your address.');
     $not_found = JText::_('Sorry, address not found!');
     $address_not_found = ', ' . JText::_('not found!');
     // js parameters
     $javascript = "\$('#{$maps_id}').Googlemaps({ lat:" . $center['lat'] . ", lng:" . $center['lng'] . ", popup: " . $marker_popup . ", text: '" . GooglemapsHelper::stripText($marker_text) . "', zoom: " . $zoom_level . ", mapCtrl: " . $map_controls . ", zoomWhl: " . $scroll_wheel_zoom . ", mapType: " . $map_type . ", typeCtrl: " . $type_controls . ", directions: " . $directions . ", locale: '" . $locale . "', mainIcon:'" . $main_icon . "', msgFromAddress: '" . $from_address . "', msgGetDirections: '" . $get_directions . "', msgEmpty: '" . $empty . "', msgNotFound: '" . $not_found . "', msgAddressNotFound: '" . $address_not_found . "' });";
     $javascript = "jQuery(function(\$) { {$javascript} });";
     // render layout
     if ($layout = $this->getLayout()) {
         return self::renderLayout($layout, array('maps_id' => $maps_id, 'javascript' => $javascript, 'css_module_width' => $css_module_width, 'css_module_height' => $css_module_height, 'information' => $information, 'locale' => $locale));
     }
     return null;
 }
Exemplo n.º 2
0
 public function getAvatar($size = 32)
 {
     if ($this->user_id) {
         $cache = new YCache(ZOO_CACHE_PATH . DS . 'author_cache.txt', true, 604800);
         $cache_check = $cache ? $cache->check() : false;
         $url = '';
         // try to get avatar url from cache
         if ($cache_check) {
             $url = $cache->get($this->user_id);
         }
         // if url is empty, try to get avatar url from twitter
         if (empty($url)) {
             $info = CommentHelper::getTwitterFields($this->user_id, array('profile_image_url'));
             if (isset($info['profile_image_url'])) {
                 $url = $info['profile_image_url'];
             }
             if ($cache_check) {
                 $cache->set($this->user_id, $url);
                 $cache->save();
             }
         }
         if (!empty($url)) {
             return '<img alt="' . $this->name . '" title="' . $this->name . '" src="' . $url . '" height="' . $size . '" width="' . $size . '" />';
         }
     }
     return parent::getAvatar($size);
 }