]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/location.php
Misses this file to merge. I like the comments.
[quix0rs-gnu-social.git] / lib / location.php
index 048554f0f7042fa5dc8cdbb4558bf7686c6da48c..191550d6d6ca53e213f4a13f3b6b8bd2fc763a65 100644 (file)
@@ -47,10 +47,12 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
 
 class Location
 {
-    public $lat;
-    public $lon;
-    public $location_id;
-    public $location_ns;
+    public  $lat;
+    public  $lon;
+    public  $location_id;
+    public  $location_ns;
+    private $_url;
+    private $_rdfurl;
 
     var $names = array();
 
@@ -90,6 +92,10 @@ class Location
 
     static function fromId($id, $ns, $language=null)
     {
+        if (is_null($language)) {
+            $language = common_language();
+        }
+
         $location = null;
 
         // Let a third-party handle it
@@ -157,4 +163,50 @@ class Location
             }
         }
     }
+
+    /**
+     * Get an URL suitable for this location
+     *
+     * @return string URL for this location or NULL
+     */
+
+    function getURL()
+    {
+        // Keep one cached
+
+        if (is_string($this->_url)) {
+            return $this->_url;
+        }
+
+        $url = null;
+
+        Event::handle('LocationUrl', array($this, &$url));
+
+        $this->_url = $url;
+
+        return $url;
+    }
+
+    /**
+     * Get an URL for this location, suitable for embedding in RDF
+     *
+     * @return string URL for this location or NULL
+     */
+
+    function getRdfURL()
+    {
+        // Keep one cached
+
+        if (is_string($this->_rdfurl)) {
+            return $this->_rdfurl;
+        }
+
+        $url = null;
+
+        Event::handle('LocationRdfUrl', array($this, &$url));
+
+        $this->_rdfurl = $url;
+
+        return $url;
+    }
 }