From a6ed4e5bf7e7c15bc649c91451bbe7b6aa1f0735 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 29 Oct 2009 14:49:00 -0400 Subject: a location method for getting an URL --- lib/location.php | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) (limited to 'lib/location.php') diff --git a/lib/location.php b/lib/location.php index 048554f0f..c9411b55d 100644 --- a/lib/location.php +++ b/lib/location.php @@ -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; + } } -- cgit v1.2.3-54-g00ecf From 5b0809f4a3619e8123b486f7e910913dc4e10086 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 29 Oct 2009 16:15:49 -0400 Subject: fix caching in location.php --- lib/location.php | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'lib/location.php') diff --git a/lib/location.php b/lib/location.php index c9411b55d..bbfc15a36 100644 --- a/lib/location.php +++ b/lib/location.php @@ -91,6 +91,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 @@ -167,9 +171,9 @@ class Location function getURL() { - if ($this->_url == false) { // cached failure - return null; - } else if (is_string($this->_url)) { // cached value + // Keep one cached + + if (is_string($this->_url)) { return $this->_url; } @@ -177,14 +181,8 @@ class Location Event::handle('LocationUrl', array($this, &$url)); - // Save it for later - - if (is_null($url)) { - $this->_url = false; - } else { - $this->_url = $url; - } + $this->_url = $url; - return $this->_url; + return $url; } } -- cgit v1.2.3-54-g00ecf