<?php namespace Zotlabs\Widget; class Conversations { function widget($arr) { if (! local_channel()) return; if(argc() > 1) { switch(argv(1)) { case 'inbox': $mailbox = 'inbox'; $header = t('Received Messages'); break; case 'outbox': $mailbox = 'outbox'; $header = t('Sent Messages'); break; default: $mailbox = 'combined'; $header = t('Conversations'); break; } require_once('include/message.php'); $o = ''; // private_messages_list() can do other more complicated stuff, for now keep it simple $r = private_messages_list(local_channel(), $mailbox, \App::$pager['start'], \App::$pager['itemspage']); if(! $r) { info( t('No messages.') . EOL); return $o; } $messages = []; foreach($r as $rr) { $selected = ((argc() == 3) ? intval(argv(2)) == intval($rr['id']) : $r[0]['id'] == $rr['id']); $messages[] = [ 'mailbox' => $mailbox, 'id' => $rr['id'], 'from_name' => $rr['from']['xchan_name'], 'from_url' => chanlink_hash($rr['from_xchan']), 'from_photo' => $rr['from']['xchan_photo_s'], 'to_name' => $rr['to']['xchan_name'], 'to_url' => chanlink_hash($rr['to_xchan']), 'to_photo' => $rr['to']['xchan_photo_s'], 'subject' => (($rr['seen']) ? $rr['title'] : '<strong>' . $rr['title'] . '</strong>'), 'delete' => t('Delete conversation'), 'body' => $rr['body'], 'date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], 'c'), 'seen' => $rr['seen'], 'selected' => ((argv(1) != 'new') ? $selected : '') ]; } $tpl = get_markup_template('mail_head.tpl'); $o .= replace_macros($tpl, [ '$header' => $header, '$messages' => $messages ]); } return $o; } }