]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
reformat showstream
authorEvan Prodromou <evan@prodromou.name>
Tue, 20 May 2008 20:11:20 +0000 (16:11 -0400)
committerEvan Prodromou <evan@prodromou.name>
Tue, 20 May 2008 20:11:20 +0000 (16:11 -0400)
darcs-hash:20080520201120-84dde-4b455d4e4854454cc78be8c636a3e0c7f730b93a.gz

actions/all.php
actions/newnotice.php
actions/showstream.php
doc/TODO
lib/stream.php
lib/util.php

index 038572ba80f12132013a6e44fadab25bbefed310..93be7290f339f01ac773fd20bcbedded04f14011 100644 (file)
@@ -21,9 +21,41 @@ if (!defined('LACONICA')) { exit(1); }
 
 require_once(INSTALLDIR.'/actions/showstream.php');
 
-class AllAction extends ShowstreamAction {
+class AllAction extends StreamAction {
 
-       // XXX: push this up to a common function.
+       function handle($args) {
+
+               parent::handle($args);
+
+               $nickname = common_canonical_nickname($this->arg('nickname'));
+               $user = User::staticGet('nickname', $nickname);
+
+               if (!$user) {
+                       $this->no_such_user();
+                       return;
+               }
+
+               $profile = $user->getProfile();
+
+               if (!$profile) {
+                       common_server_error(_t('User record exists without profile.'));
+                       return;
+               }
+
+               # Looks like we're good; show the header
+
+               common_show_header($profile->nickname . _t(" and friends"));
+
+               $cur = common_current_user();
+
+               if ($cur && $profile->id == $cur->id) {
+                       common_notice_form();
+               }
+
+               $this->show_notices($profile);
+               
+               common_show_footer();
+       }
 
        function show_notices($profile) {
 
@@ -42,7 +74,7 @@ class AllAction extends ShowstreamAction {
 
                $notice->find();
 
-               common_element_start('div', 'notices');
+               common_element_start('div', 'notices width100');
                common_element('h2', 'notices', _t('Notices'));
 
                while ($notice->fetch()) {
index 23f31028bc94d7df46eb459da0112ffdc58fa3e3..cc62901f2bd0ada1d72815e71e49adaa0d67a9c7 100644 (file)
@@ -58,18 +58,10 @@ class NewnoticeAction extends Action {
                        return NULL;
                }
        }
-
+       
        function show_form() {
                common_show_header(_t('New notice'));
-               common_element_start('form', array('id' => 'newnotice', 'method' => 'POST',
-                                                                                  'action' => common_local_url('newnotice')));
-               common_element('span', 'nickname', $profile->nickname);
-               common_element('textarea', array('rows' => 3, 'cols' => 60,
-                                                                                'name' => 'content',
-                                                                                'id' => 'content'),
-                                          ' ');
-               common_submit('submit', _t('Send'));
-               common_element_end('form');
+               common_notice_form();
                common_show_footer();
        }
 }
\ No newline at end of file
index eec54b68f9af8cee3ed9832553f07689e9d8c6be..6db475a3157f0ce5f78dae7a72b4abaf8856388a 100644 (file)
@@ -52,12 +52,23 @@ class ShowstreamAction extends StreamAction {
                $cur = common_current_user();
 
                if ($cur && $profile->id == $cur->id) {
-                       $this->notice_form();
+                       common_notice_form();
                }
 
                $this->show_notices($profile);
 
-               common_element_start('div', 'sidebar width33 floatRight greenBg');
+               $this->show_sidebar($profile);
+               
+               common_show_footer();
+       }
+
+       function no_such_user() {
+               common_user_error('No such user');
+       }
+
+       function show_sidebar($profile) {
+
+               common_element_start('div', 'sidebar width25 floatRight greenBg');
 
                $this->show_profile($profile);
 
@@ -76,25 +87,8 @@ class ShowstreamAction extends StreamAction {
                $this->show_subscriptions($profile);
 
                common_element_end('div');
-
-               common_show_footer();
        }
-
-       function no_such_user() {
-               common_user_error('No such user');
-       }
-
-       function notice_form() {
-               common_element_start('form', array('id' => 'newnotice', 'method' => 'POST',
-                                                                                  'action' => common_local_url('newnotice')));
-               common_element('textarea', array('rows' => 3, 'cols' => 60,
-                                                                                'name' => 'content',
-                                                                                'id' => 'content'),
-                                          ' ');
-               common_submit('submit', _t('Send'));
-               common_element_end('form');
-       }
-
+       
        function show_profile($profile) {
                common_element_start('div', 'profile');
 
@@ -255,12 +249,16 @@ class ShowstreamAction extends StreamAction {
 
                $notice->find();
 
-               common_element_start('div', 'notices width66 floatLeft');
-               common_element('h2', 'notices', _t('Notices'));
+               common_element_start('div', 'notices width75 floatLeft');
 
+               common_element_start('ul', 'bigLinks');
+               
                while ($notice->fetch()) {
                        $this->show_notice($notice);
                }
+               
+               common_element_end('ul');
+               
                # XXX: show a link for the next page
                common_element_end('div');
        }
@@ -279,10 +277,22 @@ class ShowstreamAction extends StreamAction {
                        # FIXME: URL, image, video, audio
                        common_element('span', array('class' => 'content'),
                                                   $notice->content);
-                       common_element('span', array('class' => 'date'),
-                                                  common_date_string($notice->created));
                }
 
                common_element_end('div');
        }
+       
+       function show_notice($notice) {
+               $profile = $notice->getProfile();
+               # XXX: RDFa
+               common_element_start('li', array('class' => 'notice',
+                                                                                'id' => 'notice-' . $notice->id));
+               $noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
+               # FIXME: URL, image, video, audio
+               common_element_start('a', array('class' => 'notice',
+                                                                 'href' => $noticeurl));
+               common_element('span', 'title', common_date_string($notice->created));
+               common_element('span', 'desc', $notice->content);
+               common_element_end('li');
+       }
 }
index 5105fa2178b7cf80e14df0cbf16bfac41b718d8d..412f7ba6295aa6669f50507e1a16e80318172685 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -36,8 +36,8 @@
 + show current values in profile settings
 + save profile URL in profilesettings
 + save profile URL on registration
-- require valid nicknames
-- reject empty notices
++ require valid nicknames
++ reject empty notices
 - store canonical username for comparison and fetch
 - use only canonical usernames
 - use only canonical email addresses
 - RSS 1.0 feed of all public notices
 - RDF dump of entire site
 - FOAF dump for user
-- license on showstream
-- license on shownotice
++ license on showstream
++ license on shownotice
 - TOS checkbox on register
 - pretty URLs
 - site logo
 - instructions
 - deal with PHP quotes escaping
 - fix layout of textarea
-- make notices into "big links"
++ make notices into "big links"
 - fix spacing on notices
 - limit entry in textarea to 140 chars
+- add a next page link to showstream
+- add a next page link to public
+- add a next page link to all
 - release 0.2
 - set Last-Modified
 - XML sitemap generation
index d1d7ab1cd51ab399304cb96bb5f39b93ce6bbe9f..18b80d89816bf2169366a4cada42b70b6de12fcb 100644 (file)
@@ -27,7 +27,6 @@ class StreamAction extends Action {
                parent::handle($args);
        }
 
-       # XXX: for 'showstream' repeats same avatar over and over
        function show_notice($notice) {
                $profile = $notice->getProfile();
                # XXX: RDFa
@@ -36,7 +35,7 @@ class StreamAction extends Action {
                $avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
                common_element_start('a', array('href' => $profile->profileurl));
                common_element('img', array('src' => ($avatar) ? $avatar->url : DEFAULT_STREAM_AVATAR,
-                                                                       'class' => 'avatar stream floatLeft',
+                                                                       'class' => 'avatar stream',
                                                                        'width' => AVATAR_STREAM_SIZE,
                                                                        'height' => AVATAR_STREAM_SIZE,
                                                                        'alt' =>
index cd0a6260ba24173e1594462255b14bfd424c380b..ece00281235e395209ac7a94b7d2cf5819bef34b 100644 (file)
@@ -377,6 +377,20 @@ function common_profile_url($nickname) {
        return common_local_url('showstream', array('nickname' => $nickname));
 }
 
+function common_notice_form() {
+       common_element_start('form', array('id' => 'newnotice', 'method' => 'POST',
+                                                                          'action' => common_local_url('newnotice')));
+       common_element_start('p');
+       common_element('label', array('for' => 'content'), _t('What\'s up?'));
+       common_element('textarea', array('rows' => 3, 'cols' => 40,
+                                                                        'name' => 'content',
+                                                                        'id' => 'content', 
+                                                                        'class' => 'width75'),
+                                  ' ');
+       common_submit('submit', _t('Send'));
+       common_element_end('form');
+       }
+
 // XXX: set up gettext
 
 function _t($str) {