77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?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;
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 |