]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Add location form elements to the noticeform, and save their values on submission
authorCraig Andrews <candrews@integralblue.com>
Thu, 19 Nov 2009 20:14:55 +0000 (15:14 -0500)
committerCraig Andrews <candrews@integralblue.com>
Thu, 19 Nov 2009 20:17:57 +0000 (15:17 -0500)
actions/newnotice.php
lib/noticeform.php

index fbd7ab6bce9c25da6514ed75ba476c44646edda0..dd6da0b01c1b438f91b8904e5abb85bbbce4244c 100644 (file)
@@ -164,6 +164,11 @@ class NewnoticeAction extends Action
             $replyto = 'false';
         }
 
+        $lat = $this->trimmed('lat');
+        $lon = $this->trimmed('lon');
+        $location_id = $this->trimmed('location_id');
+        $location_ns = $this->trimmed('location_ns');
+
         $upload = null;
         $upload = MediaFile::fromUpload('attach');
 
@@ -183,7 +188,9 @@ class NewnoticeAction extends Action
         }
 
         $notice = Notice::saveNew($user->id, $content_shortened, 'web', 1,
-                                  ($replyto == 'false') ? null : $replyto);
+                                  ($replyto == 'false') ? null : $replyto,
+                                  null, null,
+                                  $lat, $lon, $location_id, $location_ns);
 
         if (isset($upload)) {
             $upload->attachToNotice($notice);
index 1be011c182fe83ff037500fb8b5cec13053be452..ec8624597ece15890a161ee099db49120301fd2c 100644 (file)
@@ -75,6 +75,15 @@ class NoticeForm extends Form
 
     var $inreplyto = null;
 
+    /**
+     * Pre-filled location content of the form
+     */
+
+    var $lat;
+    var $lon;
+    var $location_id;
+    var $location_ns;
+
     /**
      * Constructor
      *
@@ -83,13 +92,17 @@ class NoticeForm extends Form
      * @param string        $content content to pre-fill
      */
 
-    function __construct($out=null, $action=null, $content=null, $user=null, $inreplyto=null)
+    function __construct($out=null, $action=null, $content=null, $user=null, $inreplyto=null, $lat=null, $lon=null, $location_id=null, $location_ns=null)
     {
         parent::__construct($out);
 
         $this->action  = $action;
         $this->content = $content;
         $this->inreplyto = $inreplyto;
+        $this->lat = $lat;
+        $this->lon = $lon;
+        $this->location_id = $location_id;
+        $this->location_ns = $location_ns;
 
         if ($user) {
             $this->user = $user;
@@ -188,6 +201,10 @@ class NoticeForm extends Form
                 $this->out->hidden('notice_return-to', $this->action, 'returnto');
             }
             $this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto');
+            $this->out->hidden('notice_data-lat', empty($this->lat) ? null : $this->lat, 'lat');
+            $this->out->hidden('notice_data-lon', empty($this->lon) ? null : $this->lon, 'lon');
+            $this->out->hidden('notice_data-location_id', empty($this->location_id) ? null : $this->location_id, 'location_id');
+            $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? null : $this->location_ns, 'location_ns');
 
             Event::handle('StartShowNoticeFormData', array($this));
         }