summaryrefslogtreecommitdiff
path: root/actions/shownotice.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/shownotice.php')
-rw-r--r--actions/shownotice.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/actions/shownotice.php b/actions/shownotice.php
new file mode 100644
index 000000000..4d4876122
--- /dev/null
+++ b/actions/shownotice.php
@@ -0,0 +1,45 @@
+<?php
+
+class ShownoticeAction extends Action {
+
+ function handle($args) {
+ parent::handle($args);
+ $id = $this->arg('notice');
+ $notice = Notice::staticGet($id);
+
+ if (!$notice) {
+ $this->no_such_notice();
+ }
+
+ if (!$notice->getProfile()) {
+ $this->no_such_notice();
+ }
+
+ # Looks like we're good; show the header
+
+ common_show_header($profile->nickname);
+
+ $this->show_notice($notice);
+
+ common_show_footer();
+ }
+
+ function no_such_notice() {
+ common_user_error('No such notice.');
+ }
+
+ function show_notice($notice) {
+ $profile = $notice->getProfile();
+ # XXX: RDFa
+ common_start_element('div', array('class' => 'notice'));
+ # FIXME: add the avatar
+ common_start_element('a', array('href' => $profile->profileurl,
+ 'class' => 'nickname'),
+ $profile->nickname);
+ # 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_end_element('div');
+ }
+}