diff options
Diffstat (limited to 'protected/components')
| -rw-r--r-- | protected/components/Html.php | 38 | ||||
| -rw-r--r-- | protected/components/Map.php | 50 |
2 files changed, 88 insertions, 0 deletions
diff --git a/protected/components/Html.php b/protected/components/Html.php new file mode 100644 index 0000000..6c7df3c --- /dev/null +++ b/protected/components/Html.php @@ -0,0 +1,38 @@ +<?php +class Html extends CHtml { + /** + * Makes the given URL relative to the /image directory + */ + public static function imageUrl($url) { + return Yii::app()->baseUrl.'/images/'.$url; + } + /** + * Makes the given URL relative to the /css directory + */ + public static function cssUrl($url) { + return Yii::app()->baseUrl.'/css/'.$url; + } + /** + * Makes the given URL relative to the /js directory + */ + public static function jsUrl($url) { + return Yii::app()->baseUrl.'/js/'.$url; + } + + public static function enumItem($model, $attribute) { + $attr = $attribute; + self::resolveName($model, $attr); + preg_match('/\((.*)\)/', $model->tableSchema->columns[$attr]->dbType, $matches); + foreach (explode(',', $matches[1]) as $value) { + $value = str_replace("'", null, $value); + $values[$value] = Yii::t('enumItem', $value); + } + + return $values; + } + + public static function enumDropDownList($model, $attribute, $htmlOptions = array()) { + return CHtml::activeDropDownList($model, $attribute, Html::enumItem($model, $attribute), $htmlOptions); + } +} +?>
\ No newline at end of file diff --git a/protected/components/Map.php b/protected/components/Map.php new file mode 100644 index 0000000..614bbc3 --- /dev/null +++ b/protected/components/Map.php @@ -0,0 +1,50 @@ +<?php +Yii::import('ext.egmap.*'); +class Map { + private $POS_LAT; + private $POS_LONG; + private $gMap; + private $publishedIcon; + private $notPublishedIcon; + + public function __construct() { + $this->POS_LAT = Yii::app()->params["pos_lat"]; + $this->POS_LONG = Yii::app()->params["pos_long"]; + $this->gMap = new EGMap(); + $this->gMap->setAPIKey(Yii::app()->params["map_api_domain"], Yii::app()->params["map_api_key"]); + $this->gMap->setWidth("100%"); + $this->gMap->setHeight(550); + $this->gMap->zoom = 18; + $mapTypeControlOptions = array( + 'position' => EGMapControlPosition::RIGHT_TOP, + 'style' => EGMap::MAPTYPECONTROL_STYLE_HORIZONTAL_BAR + ); + + $this->gMap->mapTypeId = EGMap::TYPE_HYBRID; + $this->gMap->mapTypeControlOptions = $mapTypeControlOptions; + $this->gMap->zoom = 18; + $this->gMap->setCenter($this->POS_LAT, $this->POS_LONG); + + // Green icon for published standorte for marker. + $this->publishedIcon = new EGMapMarkerImage(Html::imageUrl("map/marker_green_32.png")); + $this->publishedIcon->setSize(32, 37); + $this->publishedIcon->setAnchor(16, 16.5); + $this->publishedIcon->setOrigin(0, 0); + // Red icon for non-published standorte for marker. + $this->notPublishedIcon = new EGMapMarkerImage(Html::imageUrl("map/marker_red_32.png")); + $this->notPublishedIcon->setSize(32, 37); + $this->notPublishedIcon->setAnchor(16, 16.5); + $this->notPublishedIcon->setOrigin(0, 0); + } + + public function addMarker(EGMapMarker $marker, $published) { + $options = $marker->getOptions(); + $newOptions = array_merge($options, array("icon"=>(($published) ? $this->publishedIcon : $this->notPublishedIcon))); + $marker->setOptions($newOptions); + $this->gMap->addMarker($marker); + } + + public function render() { + $this->gMap->renderMap(array(), Yii::app()->language); + } +}
\ No newline at end of file |
