summaryrefslogtreecommitdiff
path: root/protected/components
diff options
context:
space:
mode:
Diffstat (limited to 'protected/components')
-rw-r--r--protected/components/Html.php38
-rw-r--r--protected/components/Map.php50
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