public function getViewersList($type = null) { $data = array(); $log = array(); $log[0] = array('notLogged' => 0); $select = parent::getAll(null, false); $select->order('L_Datetime ASC'); if ($type != 'sendTo') { if (null !== $type) { $select->where('L_Action = ?', $type); } if ($this->_articleId > 0) { $select->where("L_Data like ?", '%articleId|' . $this->_articleId . '||%'); } if ($this->_categoryId > 0) { $select->where("L_Data like ?", '%category|' . $this->_categoryId . '||%'); } if ($this->_releaseId > 0) { $select->where("L_Data like ?", 'releaseID|' . $this->_releaseId . '%'); } $select = $this->_addDateFilter($select); $data = $this->_db->fetchAll($select); } else { $data = $this->getRecipients(); } $oUser = new GenericProfile(); $prevValue = 1; $val = 1; foreach ($data as $record) { $prevValue = 1; if (!empty($record['L_UserID'])) { $user = $oUser->getMemberDetails($record['L_UserID']); if (!empty($log[$record['L_UserID']]['count'])) { $prevValue = ++$log[$record['L_UserID']]['count']; } $log[$record['L_UserID']] = array('firstName' => $user['firstName'], 'lastName' => $user['lastName'], 'L_Datetime' => $record['L_Datetime'], 'email' => $user['email'], 'count' => $prevValue); } else { if (!empty($log[0]['notLogged'])) { $val = ++$log[0]['notLogged']; } $log[0] = array('notLogged' => $val); } } ksort($log); return $log; }