19 declare(strict_types=1);
39 if (isset(self::$global_mail_services_cache[self::CACHE_TYPE_REF_ID]) &&
40 self::$global_mail_services_cache[self::CACHE_TYPE_REF_ID] !==
null) {
41 return (
int) self::$global_mail_services_cache[self::CACHE_TYPE_REF_ID];
47 $res = $DIC->database()->queryF(
49 SELECT object_reference.ref_id FROM object_reference, tree, object_data 50 WHERE tree.parent = %s 51 AND object_data.type = %s 52 AND object_reference.ref_id = tree.child 53 AND object_reference.obj_id = object_data.obj_id',
58 while ($row = $DIC->database()->fetchAssoc(
$res)) {
59 self::$global_mail_services_cache[self::CACHE_TYPE_REF_ID] = (
int) $row[
'ref_id'];
62 self::$global_mail_services_cache[self::CACHE_TYPE_REF_ID] =
MAIL_SETTINGS_ID;
65 return (
int) self::$global_mail_services_cache[self::CACHE_TYPE_REF_ID];
82 $cache_key = implode(
'_', [self::CACHE_TYPE_NEW_MAILS, $user->
getId(), $left_interval]);
85 isset(self::$global_mail_services_cache[$cache_key]) &&
86 self::$global_mail_services_cache[$cache_key] !==
null) {
87 return self::$global_mail_services_cache[$cache_key];
91 SELECT COUNT(mail_id) cnt, MAX(send_time) send_time 93 WHERE folder_id = %s AND user_id = %s AND m_status = %s 95 if ($left_interval > 0) {
96 $query .=
' AND send_time > ' 97 . $DIC->database()->quote(date(
'Y-m-d H:i:s', $left_interval),
'timestamp');
100 $res = $DIC->database()->queryF(
102 [
'integer',
'integer',
'text'],
103 [0, $user->
getId(),
'unread']
105 $row = $DIC->database()->fetchAssoc(
$res);
108 SELECT COUNT(mail_id) cnt, MAX(m.send_time) send_time 110 INNER JOIN mail_obj_data mo 111 ON mo.user_id = m.user_id 112 AND mo.obj_id = m.folder_id 115 AND m.m_status = %s';
116 if ($left_interval > 0) {
117 $query .=
' AND m.send_time > ' 118 . $DIC->database()->quote(date(
'Y-m-d H:i:s', $left_interval),
'timestamp');
121 $res = $DIC->database()->queryF(
123 [
'text',
'integer',
'text'],
124 [
'inbox', $user->
getId(),
'unread']
126 $row2 = $DIC->database()->fetchAssoc(
$res);
128 self::$global_mail_services_cache[$cache_key] = [
129 'count' => ((
int) $row[
'cnt'] + (
int) $row2[
'cnt']),
131 (
string) $row[
'send_time'],
132 (string) $row2[
'send_time']
136 return self::$global_mail_services_cache[$cache_key];
final const int CACHE_TYPE_REF_ID
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static array $global_mail_services_cache
final const int CACHE_TYPE_NEW_MAILS
static getNewMailsData(ilObjUser $user, int $left_interval=0)
static getMailObjectRefId()