Source for file Message.class.php

Documentation is available at Message.class.php

  1. <?php
  2. /**
  3.  * R.E. Login 2.0 - Üzenet - class/Message.class.php
  4.  *
  5.  * Egy üzenetet megvalósító osztály.<br />
  6.  * <br />
  7.  * <b>Dátum:</b> 2010.04.02.
  8.  *
  9.  * <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
  10.  * <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
  11.  *
  12.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  13.  * @copyright Copyright (C) 2010, Takács Ákos
  14.  * @license http://www.gnu.org/licenses/gpl.html
  15.  * @package RELogin
  16.  * @version 2.0
  17.  */
  18.  
  19. /**
  20.  * Üzenet osztály
  21.  *
  22.  * <b>Szerző weboldala:</b> {@link http://rimelek.hu/}<br />
  23.  * <b>Login weblapja:</b> {@link http://rimelek.hu/meghivos-loginrendszer-r-e-login-v2-0 R.E. Login v2.0}
  24.  *
  25.  *
  26.  * @property int $messageid Üzenet azonosító
  27.  * @property int $fromid Küldő azonosító
  28.  * @property int $toid Címzett azonosító
  29.  * @property string $subject Üzenet tárgya
  30.  * @property string $body Üzenet tartalma
  31.  * @property string $sendtime Üzenet elküldésének sql timestamp-ja
  32.  * @property string $readtime Üzenet elolvasásának sql timestamp-ja
  33.  * @property string $T_from_username Küldő neve
  34.  * @property string $T_to_username Címzett neve
  35.  *
  36.  *
  37.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  38.  * @copyright Copyright (C) 2010, Takács Ákos
  39.  * @license http://www.gnu.org/licenses/gpl.html
  40.  * @package RELogin
  41.  */
  42. class Message extends IsMySQLClass
  43. {
  44.  
  45.     /**
  46.      * Üzenet létrehozása
  47.      *
  48.      * @param int $id Üzenet id-je
  49.      * @param bool $list Listában van-e az üzenet
  50.      */
  51.     public function  __construct($id,$list=false)
  52.     {
  53.         parent::__construct(self::getTables(),$list);
  54.         if (is_numeric($id))
  55.         {
  56.             $id = (int)$id;
  57.             $this->keyName = 'messageid';
  58.             $this->init(Config::DBPREF."messages as messages left join ".
  59.                 Config::DBPREF."users as `from` on
  60.                     `from`.userid = messages.fromid left join ".
  61.                 Config::DBPREF."users as `to` on
  62.                     `to`.userid = messages.toid where ((".
  63.                     System::$user->T_users_userid." in (messages.fromid, messages.toid)
  64.                     and deleted != ".System::$user->T_users_userid.") or messages.toid = 0)
  65.                     and messages.messageid = ".$id,true);
  66.         
  67.     }
  68.  
  69.     /**
  70.      * Táblalista+mezőlista a lekérdezéshez
  71.      *
  72.      * @return array 
  73.      */
  74.     public static function getTables()
  75.     {
  76.         return array(
  77.                 Config::DBPREF."messages as messages" =>
  78.                     array('messageid','fromid','toid','subject','body','sendtime','readtime'),
  79.                 Config::DBPREF."users as from" => array('username'),
  80.                 Config::DBPREF."users as to" => array('username')
  81.             );
  82.     }
  83.  
  84.     /**
  85.      * Tárgy lekérdezése
  86.      *
  87.      * @param bool $short Ha true, akkor rövidített, ... -al kiegészített.
  88.      * @return string A tárgy hosszú, vagy rövid alakja
  89.      */
  90.     public function subject($short=false)
  91.     {
  92.         $subject trim($this->subject);
  93.         if (!$subject)
  94.         {
  95.             $subject "Nincs tárgy!";
  96.         }
  97.  
  98.         if ($short)
  99.         {
  100.             $length mb_strlen($subject,Config::DBCHARSET);
  101.             $subject mb_substr($subject030Config::DBCHARSET);
  102.             if (mb_strlen($subjectConfig::DBCHARSET!= $length)
  103.             {
  104.                 $subject .= "...";
  105.             }
  106.         }
  107.  
  108.         return $subject;
  109.     }
  110.  
  111.     /**
  112.      * Üzenet tartalma formázva
  113.      *
  114.      * @return string 
  115.      */
  116.     public function body()
  117.     {
  118.         return nl2br(htmlspecialchars($this->body));
  119.     }
  120.  
  121.     /**
  122.      *
  123.      * @param int $messageid Üzenet azonosítója Elhagyása esetén az üzenet
  124.      *         saját url-jét adja vissza.
  125.      * @return string Üzenetre mutató url.
  126.      */
  127.     public function msgUrl($messageid=null)
  128.     {
  129.         $url System::getSitedir().Config::FILE_MESSAGES_READ;
  130.         $msgid !is_null($messageid$messageid $this->messageid;
  131.         return Url::set(array('msgid' => $msgid )$url'&amp;');
  132.     }
  133.  
  134.     /**
  135.      * Bejövő üzenet-e az üzenet
  136.      *
  137.      * @return bool 
  138.      */
  139.     public function isIncomming()
  140.     {
  141.         return $this->toid == System::$user->T_users_userid;
  142.     }
  143.  
  144.     /**
  145.      * Kimenő üzenet-e az üzenet
  146.      *
  147.      * @return bool 
  148.      */
  149.     public function isOutgoing()
  150.     {
  151.         return $this->fromid == System::$user->T_users_userid;
  152.     }
  153.  
  154.     /**
  155.      * Hírről van-e szó
  156.      *
  157.      * @return bool 
  158.      */
  159.     public function isNews()
  160.     {
  161.         return $this->toid == 0;
  162.     }
  163.  
  164.     /**
  165.      * Megfelelő üzenet ikon visszaadása
  166.      *
  167.      * Olvasott vagy olvasatlan ikon.
  168.      *
  169.      * @return string 
  170.      */
  171.     public function icon()
  172.     {
  173.         $msgicon empty($this->readtime'msg.gif' 'msg_r.gif';
  174.         return System::getLogindir().'images/'.$msgicon;
  175.     }
  176.  
  177. }
  178. ?>

Documentation generated on Sun, 04 Apr 2010 22:43:45 +0200 by phpDocumentor 1.4.1