mirror of
https://github.com/YunoHost-Apps/movim_ynh.git
synced 2024-09-03 19:46:19 +02:00
146 lines
3.7 KiB
PHP
Executable file
146 lines
3.7 KiB
PHP
Executable file
<?php
|
|
|
|
namespace modl;
|
|
|
|
class MessageDAO extends SQL {
|
|
function set(Message $message) {
|
|
$this->_sql = '
|
|
insert into message
|
|
(
|
|
session,
|
|
jidto,
|
|
jidfrom,
|
|
resource,
|
|
type,
|
|
subject,
|
|
thread,
|
|
body,
|
|
html,
|
|
published,
|
|
delivered)
|
|
values(
|
|
:session,
|
|
:jidto,
|
|
:jidfrom,
|
|
:resource,
|
|
:type,
|
|
:subject,
|
|
:thread,
|
|
:body,
|
|
:html,
|
|
:published,
|
|
:delivered
|
|
)';
|
|
|
|
$this->prepare(
|
|
'Message',
|
|
array(
|
|
'session' => $message->session,
|
|
'jidto' => $message->jidto,
|
|
'jidfrom' => $message->jidfrom,
|
|
'resource' => $message->resource,
|
|
'type' => $message->type,
|
|
'subject' => $message->subject,
|
|
'thread' => $message->thread,
|
|
'body' => $message->body,
|
|
'html' => $message->html,
|
|
'published' => $message->published,
|
|
'delivered' => $message->delivered
|
|
)
|
|
);
|
|
|
|
return $this->run('Message');
|
|
}
|
|
|
|
function getContact($jid, $limitf = false, $limitr = false) {
|
|
$this->_sql = '
|
|
select * from message
|
|
where session = :session
|
|
and (jidfrom = :jidfrom
|
|
or jidto = :jidto)
|
|
order by published desc';
|
|
|
|
if($limitr)
|
|
$this->_sql = $this->_sql.' limit '.$limitr.' offset '.$limitf;
|
|
|
|
$this->prepare(
|
|
'Message',
|
|
array(
|
|
'session' => $this->_user,
|
|
'jidfrom' => $jid,
|
|
'jidto' => $jid
|
|
)
|
|
);
|
|
|
|
return $this->run('Message');
|
|
}
|
|
|
|
function deleteContact($jid) {
|
|
$this->_sql = '
|
|
delete from message
|
|
where session = :session
|
|
and (jidfrom = :jidfrom
|
|
or jidto = :jidto)';
|
|
|
|
$this->prepare(
|
|
'Message',
|
|
array(
|
|
'jidfrom' => $jid,
|
|
'jidto' => $jid,
|
|
'session' => $this->_user
|
|
)
|
|
);
|
|
|
|
return $this->run('Message');
|
|
}
|
|
|
|
function getRoomSubject($room) {
|
|
$this->_sql = '
|
|
select * from message
|
|
where jidfrom = :jidfrom
|
|
and subject != \'\'
|
|
order by published desc
|
|
limit 1';
|
|
|
|
$this->prepare(
|
|
'Message',
|
|
array(
|
|
'jidfrom' => $room
|
|
)
|
|
);
|
|
|
|
return $this->run('Message', 'item');
|
|
}
|
|
|
|
function clearMessage() {
|
|
$this->_sql = '
|
|
delete from message
|
|
where session = :session';
|
|
|
|
$this->prepare(
|
|
'Message',
|
|
array(
|
|
'session' => $this->_user
|
|
)
|
|
);
|
|
|
|
return $this->run('Message');
|
|
}
|
|
|
|
function getStatistics() {
|
|
$this->_sql = '
|
|
select count(*) as count, extract(month from published) as month, extract(year from published) as year
|
|
from message
|
|
where session = :session
|
|
group by month, year order by year, month';
|
|
|
|
$this->prepare(
|
|
'Message',
|
|
array(
|
|
'session' => $this->_user
|
|
)
|
|
);
|
|
|
|
return $this->run(null, 'array');
|
|
}
|
|
}
|