]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
a location method for getting an URL
authorEvan Prodromou <evan@status.net>
Thu, 29 Oct 2009 18:49:00 +0000 (14:49 -0400)
committerEvan Prodromou <evan@status.net>
Thu, 29 Oct 2009 18:49:00 +0000 (14:49 -0400)
lib/location.php

index 048554f0f7042fa5dc8cdbb4558bf7686c6da48c..c9411b55df5ebff2916caf3676768b85418c4835 100644 (file)
@@ -47,10 +47,11 @@ 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;
 
     var $names = array();
 
@@ -157,4 +158,33 @@ class Location
             }
         }
     }
+
+    /**
+     * Get an URL suitable for this location
+     *
+     * @return string URL for this location or NULL
+     */
+
+    function getURL()
+    {
+        if ($this->_url == false) { // cached failure
+            return null;
+        } else if (is_string($this->_url)) { // cached value
+            return $this->_url;
+        }
+
+        $url = null;
+
+        Event::handle('LocationUrl', array($this, &$url));
+
+        // Save it for later
+
+        if (is_null($url)) {
+            $this->_url = false;
+        } else {
+            $this->_url = $url;
+        }
+
+        return $this->_url;
+    }
 }