How do I count all unread email for a specific user and put it on a badge: The files are here.
Location code/function:
- crud_model // message number apper count per user // START
- header // message number apper count per user // START
Example: The Admin have 10 message total (8 read message + 2 unread message). The badge show 2 unread message.
<?php
$current_user = $this->session->userdata('login_type') . '-' . $this->session->userdata('login_user_id');
$this->db->where('sender', $current_user);
$this->db->or_where('reciever', $current_user);
$message_threads = $this->db->get('message_thread')->result_array();
$unread_message_number = count($message_threads);
?>
<a href="<?php echo base_url();?>index.php?teacher/message">
<i class="entypo-mail"></i>
Message
<span class="badge badge-secondary"><?php echo $unread_message_number; ?></span>
</a>
</li>
<?php endif;?>
The existent controller:
function count($message_thread_code) {
$unread_message_counter = 0;
$current_user = $this->session->userdata('login_type') . '-' . $this->session->userdata('login_user_id');
$messages = $this->db->get_where('message', array('message_thread_code' => $message_thread_code))->result_array();
foreach ($messages as $row) {
if ($row['sender'] != $current_user && $row['read_status'] == '0')
$unread_message_counter++;
}
return $unread_message_counter;
}
I want to count the total number of unread messages from the logged user.