Source for file Invites.class.php

Documentation is available at Invites.class.php

  1. <?php
  2. /**
  3.  * R.E. Login 2.0 - Meghívólista - class/Invites.class.php
  4.  *
  5.  * Meghívók listája<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.  * Meghívók listájának megvalósítása
  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.  * @author Takács Ákos (Rimelek), programmer [at] rimelek [dot] hu
  26.  * @copyright Copyright (C) 2010, Takács Ákos
  27.  * @license http://www.gnu.org/licenses/gpl.html
  28.  * @package RELogin
  29.  */
  30. class Invites extends IsMySQLListClass
  31. {
  32.     /**
  33.      * Hibaüzenetek tömbje
  34.      *
  35.      * @var array 
  36.      */
  37.     private static $errors array();
  38.  
  39.     /**
  40.      * Lista példányosítása
  41.      * {@link Invite} objektumok lesznek  alistában
  42.      */
  43.     public function  __construct()
  44.     {
  45.         parent::__construct(self::getTables(),'Invite');
  46.     }
  47.  
  48.     /**
  49.      * Tábla és mezőlista a lekérdezéshez
  50.      *
  51.      * @return array 
  52.      */
  53.     public static function getTables()
  54.     {
  55.         return array(
  56.                 Config::DBPREF."invites as invites" => array("email","fromid","code")
  57.                 );
  58.     }
  59.  
  60.     /**
  61.      * Meghívó kiküldése
  62.      *
  63.      * @see System::sendEmail()
  64.      *
  65.      * @param string $email E-mail cím, ahova küldeni kell a meghívót.
  66.      * @return bool Sikeres volt-e a meghívó küldés
  67.      */
  68.     public function send($email)
  69.     {
  70.         $email trim($email);
  71.         require_once System::getIncLoginDir().'classes/UserList.class.php';
  72.         if (UserList::exists('useremail'$emailfalse))
  73.         {
  74.             self::$errors['Ő már regisztrált!';
  75.             return false;
  76.         }
  77.  
  78.         if (self::exists('email'$email))
  79.         {
  80.             self::$errors['Már meghívtad őt, de még nem regisztrált!';
  81.             return false;
  82.         }
  83.  
  84.         require_once System::getIncLoginDir().'classes/Invite.class.php';
  85.         
  86.         $invite new Invite(self::getTables());
  87.         $invite->email $email;
  88.         $invite->fromid System::$user->T_users_userid;
  89.         $invite->code self::createHash();
  90.         $invite->update(false);
  91.         $invite->keyName "inviteid";
  92.         $inviteid $this->add($invite);
  93.  
  94.         $site System::getSitedirWithHTTP();
  95.         $reglink System::getSitedirWithHTTP().Config::FILE_REGISTER;
  96.         $get array();
  97.         parse_str(parse_url($reglink,PHP_URL_QUERY),$get);
  98.         $get['invitehash'$invite->code;
  99.         $get['inviteid'$inviteid;
  100.         $reglink $reglink."?".http_build_query($get'''&amp;');
  101.         $body =
  102.             "Kedves címzett!<br /><br />".PHP_EOL.
  103.             "Weboldalunk (<a href='$site'>$site</a>) <br />".PHP_EOL.
  104.             "egy felhasználója (".System::$user->username.") meghívót küldött neked.<br />".PHP_EOL.
  105.             "Az alábbi linkre kattintva létrehozhatod saját profilodat.<br />".PHP_EOL.
  106.             "<a href='$reglink'>$reglink</a>";
  107.         if (isset($_POST['invite']['message']))
  108.         {
  109.             $body 
  110.                 .= "<br /><br />".PHP_EOL.
  111.                 System::$user->username." üzenete: <br />".PHP_EOL.
  112.                 nl2br(htmlspecialchars($_POST['invite']['message']));
  113.         }
  114.  
  115.         System::sendEmail($email'Meghívó'$body);
  116.         if (System::$user->invitations)
  117.         {
  118.             System::$user->invitations--;
  119.             System::$user->update();
  120.         }
  121.         return true;
  122.     }
  123.  
  124.     /**
  125.      * Random hash generálása
  126.      *
  127.      * @return string 
  128.      */
  129.     public static function createHash()
  130.     {
  131.         return md5(mt_rand().microtime(true));
  132.     }
  133.  
  134.     /**
  135.      * Hibaüzenetek tömbje
  136.      *
  137.      * @return array 
  138.      */
  139.     public static function errors()
  140.     {
  141.         return self::$errors;
  142.     }
  143.  
  144.     /**
  145.      * Létezik-e egy meghívó
  146.      *
  147.      * Létezik-e egy meghívó, aminek $field tulajdonsága egyenlő $value -val.
  148.      *
  149.      * @param string $field Mezőnév
  150.      * @param mixed $value Mező értéke
  151.      * @return bool 
  152.      */
  153.     public static function exists($field,$value)
  154.     {
  155.         $value mysql_real_escape_string($value);
  156.         return (bool)array_shift(mysql_fetch_row(mysql_query(
  157.                 "select count(fromid) from ".
  158.                 Config::DBPREF."invites where `$field` = '$value'")));
  159.     }
  160. }
  161. ?>

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