41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
|     defined('BASEPATH') OR exit('No direct script access allowed');
 | |
| 
 | |
|     require_once 'Notification.php';
 | |
| 
 | |
|     class NotificationGroup
 | |
|     {
 | |
|         protected $notifications;
 | |
|         protected $realCount;
 | |
| 
 | |
|         public function __construct(array $notifications, $count)
 | |
|         {
 | |
|             $this->notifications = $notifications;
 | |
|             $this->realCount = $count;
 | |
|         }
 | |
| 
 | |
|         public function message() {
 | |
|             if($this->realCount == 1) {
 | |
|                 return $this->notifications[0]->messageForNotification($this->notifications[0]);
 | |
|             }
 | |
|             return $this->notifications[0]->messageForNotifications($this->notifications, $this->realCount);
 | |
|         }
 | |
| 
 | |
|         public function __get($attribute)
 | |
|         {
 | |
|             if($attribute == 'unread') {
 | |
|                 foreach ($this->notifications as $notification) {
 | |
|                     if($notification->unread)
 | |
|                         return TRUE;
 | |
|                 }
 | |
|                 RETURN FALSE;
 | |
|             }
 | |
|             return !empty($this->notifications) ? $this->notifications[0]->{$attribute} : null;
 | |
|         }
 | |
| 
 | |
|         public function __call($name, $arguments)
 | |
|         {
 | |
|             return call_user_func_array([$this->notifications[0], $name], $arguments);
 | |
|         }
 | |
|     }
 |