예제 #1
0
 /**
  * Search and include and returns (as string) the used language
  */
 private static function GetLanguage()
 {
     if (!empty(self::$Language)) {
         return self::$Language;
     }
     /* Find out, wich language should used */
     if (isset($_SESSION['UserID'])) {
         self::$Language = SBB::SQL()->GetObject()->Select('users', 'Language', 'ID="' . Session::Read('UserID') . '"', NULL, 1)->Language;
     } else {
         if (isset($_COOKIE['SBB_Lang'])) {
             self::$Language = $_COOKIE['SBB_Lang'];
         }
     }
     if (empty(self::$Language)) {
         self::$Language = SBB::SQL()->GetObject()->Select('language', 'Shortcut', 'DefaultLanguage=1', NULL, 1)->Shortcut;
     }
     /* Include the Languagefiles */
     if (!empty(self::$Language)) {
         $Dir = DIR_LANGUAGE . self::$Language . '/';
         if (is_dir($Dir)) {
             foreach (scandir($Dir) as $File) {
                 if (is_file($Dir . $File) && strpos($Dir . $File, '.php') !== false) {
                     require_once $Dir . $File;
                 }
             }
         } else {
             return false;
         }
     }
     return empty(self::$Language) ? false : self::$Language;
 }
예제 #2
0
 public static function Check(array $Post)
 {
     $SQL = SBB::SQL();
     if (!preg_match('/^[a-zA-Z0-9_\\-\\s]{4,32}$/', $Post['Username'])) {
         self::$Error[] = Language::Get('com.sbb.register.invalid_username');
     }
     if ($Post['Password'] != $Post['PasswordRepeat']) {
         self::$Error[] = Language::Get('com.sbb.register.incorrect_password');
     }
     if ($Post['Email'] != $Post['EmailRepeat']) {
         self::$Error[] = Language::Get('com.sbb.register.incorrect_email');
     }
     if (!preg_match('/^[a-z0-9\\-_]+\\@[a-z0-9\\-]+\\.[a-z]{2,3}$/', $Post['Email'])) {
         self::$Error[] = Language::Get('com.sbb.register.invalid_email');
     }
     $SQL->Select('users', 'UserName', 'Username = \'' . mysql_real_escape_string($Post['Username']) . '\'');
     if ($SQL->NumRows() == 1) {
         self::$Error[] = Language::Get('com.sbb.register.username_exist');
     }
     $SQL->Select('users', 'Email', 'Email = \'' . mysql_real_escape_string($Post['Email']) . '\'');
     if ($SQL->NumRows() == 1) {
         self::$Error[] = Language::Get('com.sbb.register.email_exist');
     }
     if (count(self::$Error) != 0) {
         return false;
     }
     return true;
 }
예제 #3
0
 public static function CreateVariables()
 {
     $Objects = SBB::SQL()->GetObjects()->Select('config', 'ConfigVariable, ConfigValue', 'Type = \'VAR\'');
     $Variables = array();
     if (isset($Objects)) {
         foreach ($Objects as $Variable) {
             $Variables[$Variable->ConfigVariable] = $Variable->ConfigValue;
         }
     }
     return $Variables;
 }
예제 #4
0
 public static function Check(array $Post)
 {
     $SQL = SBB::SQL();
     $SQL->Select('users', 'Salt, Password', 'Username = \'' . mysql_real_escape_string($Post['Username']) . '\'', '', 1);
     $Row = $SQL->FetchObject();
     if ($SQL->NumRows() == 1) {
         if (User::EncryptPassword($Post['Password'], $Row->Salt) != $Row->Password) {
             self::$Error[] = Language::Get('com.sbb.login.wrong_password');
         } else {
             return true;
         }
     } else {
         self::$Error[] = Language::Get('com.sbb.login.notexist_username');
     }
     return false;
 }
예제 #5
0
 public function __construct()
 {
     $this->Infos['Title'] = Language::Get('com.sbb.page.user');
     if (isset($_GET['userID'])) {
         $UserInfos = array();
         SBB::SQL()->Select('users', '*', 'ID = \'' . $_GET['userID'] . '\'', 1);
         $Row = SBB::SQL()->FetchArray();
         $UserInfos[] = $Row;
         $Avatar = new Avatar($Row['Email'], 100);
         SBB::Template()->Assign(array('Page' => 'userPage', 'UserInfos' => $UserInfos, 'Avatar' => $Avatar));
     } else {
         $Users = array();
         SBB::SQL()->Select('users', '*');
         while ($Row = SBB::SQL()->FetchObject) {
             $Users[] = $Row;
         }
         SBB::Template()->Assign(array('Page' => 'userList', 'Users' => $Users));
     }
 }
예제 #6
0
 public static function Render()
 {
     $Active = SBB::Page()->GetInfo('Menu');
     if (isset(self::$ReservedLinks['menu.' . strtolower($Active)])) {
         $Active = 'menu.' . strtolower($Active);
     }
     $MenuList = array();
     $Entries = SBB::SQL()->GetObjects()->Select('menu', '*', NULL, 'Position');
     foreach ($Entries as $Row) {
         if (isset(self::$ReservedLinks[$Row->Target])) {
             $MenuList[] = array('Link' => self::$ReservedLinks[$Row->Target], 'Name' => Language::Get($Row->MenuName), 'Active' => $Active == $Row->Target ? true : false);
         } else {
             $Target = str_replace('?page=', '', $Row - Target);
             $Target = strpos($Target, '&') !== false ? strstr($Target, '&', true) : $Target;
             $MenuList[] = array('Link' => $Row->Target, 'Name' => Language::Get($Row->MenuName), 'Active' => $Active == $Target ? true : false);
         }
     }
     SBB::Template()->Assign(array('Menu' => $MenuList));
 }
예제 #7
0
 public function __construct()
 {
     $this->Infos['Title'] = Language::Get('com.sbb.page.login');
     // If logged in, redirect to start page
     if (isset($_COOKIE['sbb_Token']) || session::Read('UserID')) {
         header("Location: index.php");
     }
     $Message = '';
     if (isset($_POST['Login'])) {
         if (Login::Check($_POST)) {
             SBB::SQL()->Select('users', 'ID', 'Username = \'' . mysql_real_escape_string($_POST['Username']) . '\'', '', 1);
             $UserID = SBB::SQL()->FetchObject()->ID;
             User::Login($UserID, $_POST['StayLoggedIn']);
             $Message = Language::Get('com.sbb.login.success');
             header('Location: index.php');
         } else {
             $Message = '<b>' . Language::Get('com.sbb.error') . ':</b><ul><li>' . implode('</li><li>', Login::GetError()) . '</li></ul>';
         }
     }
     SBB::Template()->Assign(array('Page' => 'Login', 'Message' => $Message));
 }
예제 #8
0
 public static function Logout()
 {
     SBB::SQL()->Delete('session', 'Token = \'' . $_COOKIE['sbb_Token'] . '\'');
     SBB::SQL()->Delete('session', 'Token = \'' . Session::Read('Token') . '\'');
     Session::Remove('UserID');
     Session::Remove('Token');
     setcookie('sbb_Token', '', time() - 60 * 60 * 24 * 365);
 }