]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/othersettings.php
Profile block base style
[quix0rs-gnu-social.git] / actions / othersettings.php
index 9f1ad99497b864f71f2ff92918e52d7c26821445..d956320d898ae2061c51d1cadd0dfdcbedd5f61f 100644 (file)
@@ -32,14 +32,13 @@ class OthersettingsAction extends SettingsAction {
                
                $this->form_header(_('Other Settings'), $msg, $success);
                
+               common_element('h2', NULL, _('URL Auto-shortening'));
                common_element_start('form', array('method' => 'post',
                                                                                   'id' => 'othersettings',
                                                                                   'action' =>
                                                                                   common_local_url('othersettings')));
                common_hidden('token', common_session_token());
 
-               common_element('h2', NULL, _('URL Auto-shortening'));
-               
                $services = array(
                        '' => 'None',
             'ur1.ca' => 'ur1.ca (free service)',
@@ -52,14 +51,88 @@ class OthersettingsAction extends SettingsAction {
                        'metamark.net' => 'metamark.net'
                );
                
-               common_dropdown('urlshorteningservice', _('Service'), $services, _('Shortening service to use when notices exceed the 140 character limit.'), FALSE, $user->urlshorteningservice);
+               common_dropdown('urlshorteningservice', _('Service'), $services, _('Automatic shortening service to use.'), FALSE, $user->urlshorteningservice);
                
                common_submit('save', _('Save'));
                
                common_element_end('form');
+
+               common_element('h2', NULL, _('Delete my account'));
+               $this->show_delete_form();
+
                common_show_footer();
        }
 
+       function show_feeds_list($feeds) {
+               common_element_start('div', array('class' => 'feedsdel'));
+               common_element('p', null, 'Feeds:');
+               common_element_start('ul', array('class' => 'xoxo'));
+
+               foreach ($feeds as $key => $value) {
+                       $this->common_feed_item($feeds[$key]);
+               }
+               common_element_end('ul');
+               common_element_end('div');
+       }
+
+    //TODO move to common.php (and retrace its origin)
+       function common_feed_item($feed) {
+        $user = common_current_user();
+               $nickname = $user->nickname;
+
+               switch($feed['item']) {
+                       case 'notices': default:
+                               $feed_classname = $feed['type'];
+                               $feed_mimetype = "application/".$feed['type']."+xml";
+                               $feed_title = "$nickname's ".$feed['version']." notice feed";
+                               $feed['textContent'] = "RSS";
+                               break;
+
+                       case 'foaf':
+                               $feed_classname = "foaf";
+                               $feed_mimetype = "application/".$feed['type']."+xml";
+                               $feed_title = "$nickname's FOAF file";
+                               $feed['textContent'] = "FOAF";
+                               break;
+               }
+               common_element_start('li');
+               common_element('a', array('href' => $feed['href'],
+                                                                 'class' => $feed_classname,
+                                                                 'type' => $feed_mimetype,
+                                                                 'title' => $feed_title),
+                                                       $feed['textContent']);
+               common_element_end('li');
+       }
+
+       function show_delete_form() {
+               $user = common_current_user();
+        $notices = DB_DataObject::factory('notice');
+        $notices->profile_id = $user->id;
+        $notice_count = (int) $notices->count();
+
+               common_element_start('form', array('method' => 'POST',
+                                                                                  'id' => 'delete',
+                                                                                  'action' =>
+                                                                                  common_local_url('deleteprofile')));
+
+               common_hidden('token', common_session_token());
+        common_element('p', null, "You can copy your notices and contacts by saving the two links below before deleting your account. Be careful, this operation cannot be undone.");
+
+
+               $this->show_feeds_list(array(0=>array('href'=>common_local_url('userrss', array('limit' => $notice_count, 'nickname' => $user->nickname)), 
+                                                                                         'type' => 'rss',
+                                                                                         'version' => 'RSS 1.0',
+                                                                                         'item' => 'notices'),
+                                                                        1=>array('href'=>common_local_url('foaf',array('nickname' => $user->nickname)),
+                                                                                         'type' => 'rdf',
+                                                                                         'version' => 'FOAF',
+                                                                                         'item' => 'foaf')));
+
+               common_submit('deleteaccount', _('Delete my account'));
+               common_element_end('form');
+       }
+
+
        function handle_post() {
 
                # CSRF protection