]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
update location while saving new profile
authorEvan Prodromou <evan@status.net>
Fri, 23 Oct 2009 15:47:00 +0000 (11:47 -0400)
committerEvan Prodromou <evan@status.net>
Fri, 23 Oct 2009 15:47:00 +0000 (11:47 -0400)
actions/profilesettings.php
classes/Notice.php

index 5445d9bb257ee0c513ead7c2799a1f11958cbe81..0a0cc59973a3709c272a93e74bf1e9176f46c5d5 100644 (file)
@@ -306,6 +306,16 @@ class ProfilesettingsAction extends AccountSettingsAction
             $profile->homepage = $homepage;
             $profile->bio = $bio;
             $profile->location = $location;
+
+            $loc = Location::fromName($location);
+
+            if (!empty($loc)) {
+                $profile->lat         = $loc->lat;
+                $profile->lon         = $loc->lon;
+                $profile->location_id = $loc->location_id;
+                $profile->location_ns = $loc->location_ns;
+            }
+
             $profile->profileurl = common_profile_url($nickname);
 
             common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__);
index 592f644262c4f90097fbe7966a4746c1bb25ab3d..7478f945da29470578895fa4aff00a29e7826dae 100644 (file)
@@ -168,7 +168,8 @@ class Notice extends Memcached_DataObject
     }
 
     static function saveNew($profile_id, $content, $source=null,
-                            $is_local=Notice::LOCAL_PUBLIC, $reply_to=null, $uri=null, $created=null) {
+                            $is_local=Notice::LOCAL_PUBLIC, $reply_to=null, $uri=null, $created=null,
+                            $lat=null, $lon=null, $location_id=null, $location_ns=null) {
 
         $profile = Profile::staticGet($profile_id);
 
@@ -234,6 +235,26 @@ class Notice extends Memcached_DataObject
             $notice->conversation = $reply->conversation;
         }
 
+        if (!empty($lat) && !empty($lon)) {
+            $notice->lat = $lat;
+            $notice->lon = $lon;
+            $notice->location_id = $location_id;
+            $notice->location_ns = $location_ns;
+        } else if (!empty($location_ns) && !empty($location_id)) {
+            $location = Location::fromId($location_id, $location_ns);
+            if (!empty($location)) {
+                $notice->lat = $location->lat;
+                $notice->lon = $location->lon;
+                $notice->location_id = $location_id;
+                $notice->location_ns = $location_ns;
+            }
+        } else {
+            $notice->lat         = $profile->lat;
+            $notice->lon         = $profile->lon;
+            $notice->location_id = $profile->location_id;
+            $notice->location_ns = $profile->location_ns;
+        }
+
         if (Event::handle('StartNoticeSave', array(&$notice))) {
 
             // XXX: some of these functions write to the DB