]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
more twiddling
authorEvan Prodromou <evan@prodromou.name>
Sat, 17 May 2008 14:46:42 +0000 (10:46 -0400)
committerEvan Prodromou <evan@prodromou.name>
Sat, 17 May 2008 14:46:42 +0000 (10:46 -0400)
Placeholder for broadcasting notice updates.

Fixup the local url function to include server and path.

Add server and path to configuration array.

Make new notice 303 redirect to shownotice.

Make redirects work.

Add link in streams to notices.

darcs-hash:20080517144642-84dde-c267a6e3bb0717ad5a3a819a7cf65fdd5817ea8e.gz

actions/newnotice.php
doc/TODO
lib/common.php
lib/stream.php

index a4cc7d3aefa207ba048781018dc305cb0d60c55d..40a196a23642bbd14b1d59e4fbc3e0f5ff567983 100644 (file)
@@ -28,15 +28,12 @@ class NewnoticeAction extends Action {
                if (!common_logged_in()) {
                        common_user_error(_t('Not logged in.'));
                } else if ($this->arg('METHOD') == 'POST') {
-                       if ($this->save_new_notice()) {
-                               # XXX: smarter redirects
-                               $user = common_current_user();
-                               assert(!is_null($user)); # see if... above
-                               # XXX: redirect to source
-                               # XXX: use Ajax instead of a redirect
-                               common_redirect(common_local_url('all',
-                                                                                                array('nickname' =>
-                                                                                                          $user->nickname)));
+                       $id = $this->save_new_notice();
+
+                       if ($id) {
+                               common_broadcast_notices($id);
+                               common_redirect(common_local_url('shownotice',
+                                                                                                array('notice' => $id)), 303);
                        } else {
                                common_server_error(_t('Problem saving notice.'));
                        }
index 0093f35590b3805a34344b19fdc9eb82aa4ca975..56f74de1b8cfcbe2214ef895a71d20de49fdbd11 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -21,6 +21,9 @@
 + common_local_url()
 - configuration for DB_DataObject
 + date formatting
++ new notice redirects to notice page
++ date in shown notice links to notice page
++ common_redirect()
 - release 0.1
 - require valid nicknames
 - store canonical username for comparison and fetch
index f7b93011c36df904c6cd2410c00b5d645ab49a3c..4cef9f0d90c93e6fd540e3171f7f0015c9e39c2d 100644 (file)
@@ -33,7 +33,9 @@ define('MAX_AVATAR_SIZE', 256 * 1024);
 
 $config =
   array('site' =>
-               array('name' => 'Just another µB'),
+               array('name' => 'Just another µB',
+                         'server' => 'localhost',
+                         'path' => '/'),
                'avatar' =>
                array('directory' => INSTALLDIR . 'files',
                          'path' => '/files'),
@@ -258,13 +260,13 @@ function common_avatar_url($filename) {
 }
 
 function common_local_url($action, $args) {
+       global $config;
        /* XXX: pretty URLs */
        $extra = '';
        foreach ($args as $key => $value) {
                $extra .= "&${key}=${value}";
        }
-       /* XXX: correct path */
-       return "/index.php?action=${action}${extra}";
+       return "http://".$config['site']['server'].'/'.$config['site']['path']."/index.php?action=${action}${extra}";
 }
 
 function commmon_date_string($dt) {
@@ -272,6 +274,25 @@ function commmon_date_string($dt) {
        return date(DATE_RFC822);
 }
 
+function common_redirect($url, $code=307) {
+       static $status = (301 => "Moved Permanently",
+                                         302 => "Found",
+                                         303 => "See Other",
+                                         307 => "Temporary Redirect");
+       header("Status: ${code} $status[$code]");
+       header("Location: $url");
+       common_element('a', array('href' => $url), $url);
+}
+
+function common_broadcast_notices($id) {
+       // XXX: broadcast notices to remote subscribers
+       // XXX: broadcast notices to SMS
+       // XXX: broadcast notices to Jabber
+       // XXX: broadcast notices to other IM
+       // XXX: use a queue system like http://code.google.com/p/microapps/wiki/NQDQ
+       return true;
+}
+
 // XXX: set up gettext
 
 function _t($str) { $str }
index 9129693804ef75c93f24915902c0b8bd7f72a32f..6b2ab24ff03eb425fffe10700f59186023c7f644 100644 (file)
@@ -47,7 +47,9 @@ class StreamAction extends Action {
                                           $profile->nickname);
                # FIXME: URL, image, video, audio
                common_element('span', array('class' => 'content'), $notice->content);
-               common_element('span', array('class' => 'date'),
+               $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
+               common_element('a', array('class' => 'notice',
+                                                                 'href' => $noticeurl),
                                           common_date_string($notice->created));
                common_end_element('div');
        }