]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Poll settings adapted to FormAction
authorMikael Nordfeldth <mmn@hethane.se>
Fri, 17 Jul 2015 14:19:02 +0000 (16:19 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Fri, 17 Jul 2015 14:19:02 +0000 (16:19 +0200)
plugins/Poll/actions/pollsettings.php
plugins/Poll/forms/pollprefs.php [new file with mode: 0644]

index b390812cf41a4c4a812f583af164b8da7ce3a481..b95465d8d6e0e99b3a57cf3149ff2664a99e6279 100644 (file)
@@ -27,9 +27,7 @@
  * @link      http://status.net/
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
 
 class PollSettingsAction extends SettingsAction
 {
@@ -56,143 +54,36 @@ class PollSettingsAction extends SettingsAction
         return _m('Set your poll preferences');
     }
 
-    /**
-     * Show the form for Poll
-     *
-     * @return void
-     */
-    function showContent()
+    protected function getForm()
     {
-        $user = common_current_user();
-
-        $prefs = User_poll_prefs::getKV('user_id', $user->id);
-
+        $prefs = User_poll_prefs::getKV('user_id', $this->scoped->getID());
         $form = new PollPrefsForm($this, $prefs);
-
-        $form->show();
+        return $form;
     }
 
-    /**
-     * Handler method
-     *
-     * @param array $argarray is ignored since it's now passed in in prepare()
-     *
-     * @return void
-     */
-
-    function handlePost()
+    protected function doPost()
     {
-        $user = common_current_user();
-
-        $upp = User_poll_prefs::getKV('user_id', $user->id);
+        $upp = User_poll_prefs::getKV('user_id', $this->scoped->getID());
         $orig = null;
 
-        if (!empty($upp)) {
+        if ($upp instanceof User_poll_prefs) {
             $orig = clone($upp);
         } else {
             $upp = new User_poll_prefs();
-            $upp->user_id = $user->id;
+            $upp->user_id = $this->scoped->getID();
             $upp->created = common_sql_now();
         }
 
         $upp->hide_responses = $this->boolean('hide_responses');
         $upp->modified       = common_sql_now();
 
-        if (!empty($orig)) {
+        if ($orig instanceof User_poll_prefs) {
             $upp->update($orig);
         } else {
             $upp->insert();
         }
 
         // TRANS: Confirmation shown when user profile settings are saved.
-        $this->showForm(_('Settings saved.'), true);
-
-        return;
-    }
-}
-
-class PollPrefsForm extends Form
-{
-    var $prefs;
-
-    function __construct($out, $prefs)
-    {
-        parent::__construct($out);
-        $this->prefs = $prefs;
-    }
-
-    /**
-     * Visible or invisible data elements
-     *
-     * Display the form fields that make up the data of the form.
-     * Sub-classes should overload this to show their data.
-     *
-     * @return void
-     */
-
-    function formData()
-    {
-        $this->elementStart('fieldset');
-        $this->elementStart('ul', 'form_data');
-        $this->elementStart('li');
-        $this->checkbox('hide_responses',
-                        _('Do not deliver poll responses to my home timeline'),
-                        (!empty($this->prefs) && $this->prefs->hide_responses));
-        $this->elementEnd('li');
-        $this->elementEnd('ul');
-        $this->elementEnd('fieldset');
-    }
-
-    /**
-     * Buttons for form actions
-     *
-     * Submit and cancel buttons (or whatever)
-     * Sub-classes should overload this to show their own buttons.
-     *
-     * @return void
-     */
-
-    function formActions()
-    {
-        $this->submit('submit', _('Save'));
-    }
-
-    /**
-     * ID of the form
-     *
-     * Should be unique on the page. Sub-classes should overload this
-     * to show their own IDs.
-     *
-     * @return int ID of the form
-     */
-
-    function id()
-    {
-        return 'form_poll_prefs';
-    }
-
-    /**
-     * Action of the form.
-     *
-     * URL to post to. Should be overloaded by subclasses to give
-     * somewhere to post to.
-     *
-     * @return string URL to post to
-     */
-
-    function action()
-    {
-        return common_local_url('pollsettings');
-    }
-
-    /**
-     * Class of the form. May include space-separated list of multiple classes.
-     *
-     * @return string the form's class
-     */
-
-    function formClass()
-    {
-        return 'form_settings';
+        return _('Settings saved.');
     }
 }
diff --git a/plugins/Poll/forms/pollprefs.php b/plugins/Poll/forms/pollprefs.php
new file mode 100644 (file)
index 0000000..627b77d
--- /dev/null
@@ -0,0 +1,87 @@
+<?php
+
+if (!defined('GNUSOCIAL')) { exit(1); }
+
+class PollPrefsForm extends Form
+{
+    function __construct(Action $out, User_poll_prefs $prefs=null)
+    {
+        parent::__construct($out);
+        $this->prefs = $prefs;
+    }
+
+    /**
+     * Visible or invisible data elements
+     *
+     * Display the form fields that make up the data of the form.
+     * Sub-classes should overload this to show their data.
+     *
+     * @return void
+     */
+
+    function formData()
+    {
+        $this->elementStart('fieldset');
+        $this->elementStart('ul', 'form_data');
+        $this->elementStart('li');
+        $this->checkbox('hide_responses',
+                        _('Do not deliver poll responses to my home timeline'),
+                        ($this->prefs instanceof User_poll_prefs && $this->prefs->hide_responses));
+        $this->elementEnd('li');
+        $this->elementEnd('ul');
+        $this->elementEnd('fieldset');
+    }
+
+    /**
+     * Buttons for form actions
+     *
+     * Submit and cancel buttons (or whatever)
+     * Sub-classes should overload this to show their own buttons.
+     *
+     * @return void
+     */
+
+    function formActions()
+    {
+        $this->submit('submit', _('Save'));
+    }
+
+    /**
+     * ID of the form
+     *
+     * Should be unique on the page. Sub-classes should overload this
+     * to show their own IDs.
+     *
+     * @return int ID of the form
+     */
+
+    function id()
+    {
+        return 'form_poll_prefs';
+    }
+
+    /**
+     * Action of the form.
+     *
+     * URL to post to. Should be overloaded by subclasses to give
+     * somewhere to post to.
+     *
+     * @return string URL to post to
+     */
+
+    function action()
+    {
+        return common_local_url('pollsettings');
+    }
+
+    /**
+     * Class of the form. May include space-separated list of multiple classes.
+     *
+     * @return string the form's class
+     */
+
+    function formClass()
+    {
+        return 'form_settings';
+    }
+}