Source for file Messages.class.php
Documentation is available at Messages.class.php
* R.E. Login 2.0 - Üzenetlista - class/Messages.class.php
* Különböző üzenetlisták lekérdezése<br />
* <b>Dátum:</b> 2010.04.02.
* <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
* <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2010, Takács Ákos
* @license http://www.gnu.org/licenses/gpl.html
require_once System::getIncLoginDir().
'classes/Message.class.php';
* Kimenő / Bejövő / Hírek
* Egy üzenetet megvalósító osztály.<br />
* <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
* <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
* @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
* @copyright Copyright (C) 2010, Takács Ákos
* @license http://www.gnu.org/licenses/gpl.html
private static $errors =
array();
* @param string $func Választott lista. Lehetséges értékei:
* {@link INBOX}, {@ link OUTBOX}, {@link NEWS}
Config::DBPREF.
'messages as messages left join '.
Config::DBPREF.
'users as `from` on
`from`.userid = messages.fromid left join '.
Config::DBPREF.
'users as `to` on
`to`.userid = messages.toid where messages.toid = 0 '.
' order by sendtime desc',10);
if ($func ==
self::INBOX)
Config::DBPREF.
'messages as messages left join '.
Config::DBPREF.
'users as `from` on
`from`.userid = messages.fromid left join '.
Config::DBPREF.
'users as `to` on
`to`.userid = messages.toid where messages.'.
$msg_uid.
' = '.
System::$user->T_users_userid.
' and '.
'deleted != messages.'.
$msg_uid.
' order by sendtime desc',10);
* Statisztika az üzenetekről
* Visszaadja asszociatív tömbben a belépett user üzeneteinek számát
* különböző kategóriákra vonatkozóan.
* <li><b>unread:</b> Olvasatlan bejövő üzenetek száma</li>
* <li><b>unreadout:</b> Olvasatlan kimenő üzenetek száma</li>
* <li><b>inbox:</b> Összes bejövő üzenet</li>
* <li><b>outbox:</b> Összes kimenő üzenet</li>
* <li><b>news:</b> Összes hír</li>
* <li><b>unreadnews:</b> Utolsó olvasás óta írt hírek száma. </li>
$uid = (int)
System::$user->T_users_userid;
$time =
System::$user->newsreadtime;
sum(if(toid = $uid and readtime is null, 1, 0)) as unread,
sum(if(fromid=$uid and readtime is null, 1, 0)) as unreadout,
sum(if(toid=$uid, 1, 0)) as inbox,
sum(if(fromid=$uid, 1, 0)) as outbox,
sum(if(toid=0, 1, 0)) as news,
sum(if(toid !=0 or timestampdiff(SECOND, sendtime, '$time') >= 0, 0, 1)) as unreadnews
from ".
Config::DBPREF.
"messages where
($uid in (toid, fromid) and deleted != $uid) or toid = 0
foreach ($stat as &$item)
* Üzenet elküldésének kérése.
* @param string $toname Címzett felhazsnáló neve
* @param string $subject Üzenet tárgya
* @param string $body Üzenet tartalma
* @param bool $news True, ha hír ( Ekkor mindegy mi a $toname ), egyébként false
* @return bool Sikerült-e elküldeni az üzenetet
public static function sendRequest($toname, $subject, $body,$news=
false)
"select userid from ".
Config::DBPREF.
"users where username = '$toname'"))) ? (int)
$result[0] :
0;
self::$errors[] =
'Nincs ilyen felhasználó!';
self::$errors[] =
'Üres üzenetet nem küldhetsz!';
if ($toid ==
System::$user->T_users_userid)
self::$errors[] =
'Magadnak nem küldhetsz üzenetet!';
if (count(self::$errors)) return false;
self::send($toid, $subject, $body);
* @param int $toid Címzett id-je. Ha 0, akkor hír lesz.
* @param string $subject Üzenet tárgya
* @param string $body Üzenet tartalma
private static function send($toid, $subject, $body)
Config::DBPREF.
"messages(`fromid`, `toid`, `subject`, `body`, `sendtime`)
values (".
System::$user->T_users_userid.
",
".
((int)
$toid).
",'$subject','$body','".
System::getTimeStamp().
"')");
public static function errors()
* @param mixed $id Üzenet azonosítója, ha integer. Ha tömb, akkor több
* @param bool $del True, ha azonnal törölni kell a rekordot is. False,
* ha csak akkor kell törölni a rekordot, ha már a másik fél
* töröltnek jelölte az üzenetet.
$uid =
System::$user->T_users_userid;
$sql =
"delete from ".
$pref.
"messages where messageid in ($id) ";
$sql .=
" and ".
$uid.
" in (toid, fromid) and
deleted != 0 and deleted != ".
$uid;
"update ".
$pref.
"messages set
deleted = ".
$uid.
" where ".
$uid.
" in (toid, fromid) and
* Egy felhasználó összes üzenetének törlése, vagy töröltnek jelölése.
* @param int $userid Felhasználó azonosítója
$sql =
"delete from ".
$pref.
"messages where ";
$sql .=
" and ".
$uid.
" in (toid, fromid) and
deleted != 0 and deleted != ".
$uid;
"update ".
$pref.
"messages set
deleted = ".
$uid.
" where ".
$uid.
" in (toid, fromid)";
* Csak admin, vagy tulajdonos törölhet hírt.
* @param mixed $id Hír azonosítója, vagy azonosítók tömbje.
if (!System::$user->rank(array('admin','owner'))) return;
self::deleteMsgs($id,true);
* @param string $box Kimenő, vagy bejövö üzenet
* {@link MESSAGES::INBOX}, {@link MESSAGES::OUTBOX}
public static function url($box =
self::INBOX)
$file =
Config::FILE_MESSAGES_OUTBOX;
$file =
Config::FILE_MESSAGES_INBOX;
$file =
Config::FILE_MESSAGES_NEWS;
$file =
Config::FILE_MESSAGES_INBOX;
* Hírek listájának url-je
Documentation generated on Sun, 04 Apr 2010 22:43:46 +0200 by phpDocumentor 1.4.1