diff options
Diffstat (limited to 'apps/um/views')
-rw-r--r-- | apps/um/views/pages/messages/401.html.php | 15 | ||||
-rw-r--r-- | apps/um/views/pages/messages/frame.html.php | 58 | ||||
-rw-r--r-- | apps/um/views/pages/messages/index.html.php | 25 |
3 files changed, 98 insertions, 0 deletions
diff --git a/apps/um/views/pages/messages/401.html.php b/apps/um/views/pages/messages/401.html.php new file mode 100644 index 0000000..0b24f80 --- /dev/null +++ b/apps/um/views/pages/messages/401.html.php @@ -0,0 +1,15 @@ +<?php global $VARS; +$t = $VARS['template']; + +$t->status('401 Unauthorized'); +$t->header('Unauthorized'); +$t->tag('h1', array(), "401: Unauthorized"); +if ($VARS['uid']===false) { + // Not logged in + $t->paragraph('You need to be logged in to view messages.'); +} else { + // Logged in, so the account must not activated + $t->paragraph('Your account needs to be activated by an administrator '. + 'to view messages.'); +} +$t->footer(); diff --git a/apps/um/views/pages/messages/frame.html.php b/apps/um/views/pages/messages/frame.html.php new file mode 100644 index 0000000..30fc1cc --- /dev/null +++ b/apps/um/views/pages/messages/frame.html.php @@ -0,0 +1,58 @@ +<?php global $VARS; +$t = $VARS['template']; +$msg = $VARS['msg']; + +function messageLink($id) { + if (is_array($id)) { $id = $id[1]; } + global $VARS; $t = $VARS['template']; + + $msg = new Message($id); + $exists = ($msg?true:false); + + return sprintf('<<a href="%1$s"%2$s>%3$s</a>>', + $t->url("messages/$id/"), + ($exists?'':' class="http404"'), + htmlentities($id)); +} +function parseMessageIDs($string) { + $base = $_SERVER['REQUEST_URL']; + $html = preg_replace_callback( + '/<([^>]*)>/', + 'messageLink', + $string); + return $html; +} + +$t->header('View Message'); +$t->openTag('table'); +$t->row(array('To:' , htmlentities( $msg->getHeader('to' )))); +$t->row(array('From:' , htmlentities( $msg->getHeader('from' )))); +$t->row(array('Subject:' , htmlentities( $msg->getHeader('subject' )))); +$t->row(array('In-Reply-to:', parseMessageIDs($msg->getHeader('in-reply-to')))); +$t->row(array('References:' , parseMessageIDs($msg->getHeader('references' )))); +$t->closeTag('table'); + +$msg_id = htmlentities($msg->msgid()); + +$t->openTag('div', array('class'=>'message-body')); +if ($msg->getMessageBodyPart('html')!==false) { + $t->tag('h2', array(), 'HTML'); + $t->tag('iframe', array('src'=>$t->url("messages/$msg_id/body.html")), ''); +} +if ($msg->getMessageBodyPart('text')!==false) { + $t->tag('h2', array(), 'Plain Text'); + $t->tag('iframe', array('src'=>$t->url("messages/$msg_id/body.txt")), ''); +} +$t->closeTag('div'); +$t->tag('h2', array(), 'Attachments'); +$t->openTag('table'); +$attachments = $msg->getAttachments(); +foreach ($attachments as $id => $attachment) { + $t->row(array( + htmlentities($attachment->getContentType()), + $t->link($t->url("$msg_id/attachment/$id"), + htmlentities($attachment->getFilename())), + )); +} +$t->closeTag('table'); +$t->footer(); diff --git a/apps/um/views/pages/messages/index.html.php b/apps/um/views/pages/messages/index.html.php new file mode 100644 index 0000000..111b6c6 --- /dev/null +++ b/apps/um/views/pages/messages/index.html.php @@ -0,0 +1,25 @@ +<?php global $VARS; +$t = $VARS['template']; +$messages = $VARS['messages']; + +$t->header('Message Index'); +$t->tag('h1', array(), "Message Index"); + +$t->openTag('table'); +$t->row(array('From','Subject', 'Date')); +foreach ($messages as $date => $message_array) { + foreach ($message_array as $message) { + $url = $t->url('messages/'.$message['id'].'/'); + $subject = htmlentities($message['subject']); + $from = htmlentities($message['from']); + $date_str = str_replace(' ', ' ', date('Y-m-d H:i:s',$date)); + $t->row(array( + $t->link($url, $from , true), + $t->link($url, $subject , true), + $t->link($url, $date_str, true), + )); + } +} +$t->closeTag('table'); + +$t->footer(); |