root/dev/common/class.user.php @ 188

Revision 188, 3.1 KB (checked in by exi, 14 years ago)

Changed default td width for options to 160px.
Added the appropiate timeframe to the fast contractlisttable.
Events now can also return a reference to a variable containing additional information.
Killlists now return a non formatted isk-value for losses/kills, please report any errors on other pages.
Added a custom user menu, able to be shownon every page.
Added some code for user logins, please ignore it for now.
Added a small battle statistics frame to the battle overview.
To login as admin now just leave user blank and use the admin password.

Line 
1<?php
2require_once('class.box.php');
3
4class user
5{
6    function user()
7    {
8        trigger_error('The class "user" may only be invoked statically.', E_USER_ERROR);
9    }
10
11    function login($login, $password)
12    {
13        $db = new DBQuery();
14        $db->execute('select * from kb3_user left join kb3_user_extra on kb3_user.usr_id = kb3_user_extra.use_usr_id
15                      WHERE usr_login='."'".slashfix($login)."' and usr_site='".KB_SITE."'");
16        if (!$row = $db->getRow())
17        {
18            return false;
19        }
20        if ($row['usr_pass'] != md5($password))
21        {
22            return false;
23        }
24        $user = $row;
25        if ($row['use_key'])
26        {
27            $user[$row['use_key']] = $row['use_value'];
28        }
29
30        Session::create();
31        while ($row = $db->getRow())
32        {
33            if ($row['use_key'])
34            {
35                $user[$row['use_key']] = $row['use_value'];
36            }
37        }
38        $_SESSION['user'] = $user;
39        user::loggedin(true);
40        return true;
41    }
42
43    function loggedin($bool = null)
44    {
45        static $state;
46
47        if ($bool !== null)
48        {
49            $state = $bool;
50        }
51        if ($state == null)
52        {
53            $state = false;
54        }
55        return $state;
56    }
57
58    // generates the menu for the user
59    function menu()
60    {
61        $box = new Box('User');
62        $box->setIcon('menu-item.gif');
63
64        if (!user::loggedin())
65        {
66            $box->addOption('link', 'Login', '?a=login');
67            $box->addOption('link', 'Register', '?a=register');
68        }
69        else
70        {
71            if (user::get('usr_pilot_id'))
72            {
73                require_once('class.pilot.php');
74
75                $plt = new pilot(user::get('usr_pilot_id'));
76                $box->addOption('link', $plt->getName(), '?a=pilot_detail&plt_id='.$plt->getID());
77            }
78            $box->addOption('link', 'Logout', '?a=logout');
79        }
80
81        event::call('user_menu_create', $box);
82        return $box->generate();
83    }
84
85    function get($key)
86    {
87        if (!isset($_SESSION['user']))
88        {
89            return null;
90        }
91        return $_SESSION['user'][$key];
92    }
93
94    // login,pass,pilot
95    function register($login, $password, $pilot = null, $p_charid = null)
96    {
97        $db = new DBQuery();
98
99        $values[] = KB_SITE;
100        $values[] = $login;
101        $values[] = md5($password);
102        if ($pilot)
103        {
104             $pilot = new Pilot($pilot);
105             $values[] = $pilot->getId();
106             if ($p_charid)
107             {
108                 $pilot->setCharacterID($p_charid);
109             }
110        }
111        else
112        {
113            $values[] = 0;
114        }
115
116        // standard state
117        $values[] = 0;
118        $values = "'".join("','", $values)."'";
119        $db->execute('insert into kb3_user (usr_site, usr_login, usr_pass, usr_pilot_id, usr_state) VALUES ('.$values.')');
120        event::call('user_created', $values);
121    }
122}
123?>
Note: See TracBrowser for help on using the browser.