/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/system/libraries/User_agent.php

  • Committer: Gustav Hatvigsson
  • Date: 2013-05-30 12:02:31 UTC
  • mfrom: (85.1.28 lenasys)
  • Revision ID: gustav.hartvigsson@gmail.com-20130530120231-ttqgqjqw2w8enn7g
Merged Ohlsons changes:
added function to get ssn and name for the registrationspages in the user model.
added the registrationpage for students.
edited the registration page for instructors
edited the css for both the registrationpages
minor fix to registration css

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
2
/**
 
3
 * CodeIgniter
 
4
 *
 
5
 * An open source application development framework for PHP 5.1.6 or newer
 
6
 *
 
7
 * @package             CodeIgniter
 
8
 * @author              ExpressionEngine Dev Team
 
9
 * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc.
 
10
 * @license             http://codeigniter.com/user_guide/license.html
 
11
 * @link                http://codeigniter.com
 
12
 * @since               Version 1.0
 
13
 * @filesource
 
14
 */
 
15
 
 
16
// ------------------------------------------------------------------------
 
17
 
 
18
/**
 
19
 * User Agent Class
 
20
 *
 
21
 * Identifies the platform, browser, robot, or mobile devise of the browsing agent
 
22
 *
 
23
 * @package             CodeIgniter
 
24
 * @subpackage  Libraries
 
25
 * @category    User Agent
 
26
 * @author              ExpressionEngine Dev Team
 
27
 * @link                http://codeigniter.com/user_guide/libraries/user_agent.html
 
28
 */
 
29
class CI_User_agent {
 
30
 
 
31
        var $agent              = NULL;
 
32
 
 
33
        var $is_browser = FALSE;
 
34
        var $is_robot   = FALSE;
 
35
        var $is_mobile  = FALSE;
 
36
 
 
37
        var $languages  = array();
 
38
        var $charsets   = array();
 
39
 
 
40
        var $platforms  = array();
 
41
        var $browsers   = array();
 
42
        var $mobiles    = array();
 
43
        var $robots             = array();
 
44
 
 
45
        var $platform   = '';
 
46
        var $browser    = '';
 
47
        var $version    = '';
 
48
        var $mobile             = '';
 
49
        var $robot              = '';
 
50
 
 
51
        /**
 
52
         * Constructor
 
53
         *
 
54
         * Sets the User Agent and runs the compilation routine
 
55
         *
 
56
         * @access      public
 
57
         * @return      void
 
58
         */
 
59
        public function __construct()
 
60
        {
 
61
                if (isset($_SERVER['HTTP_USER_AGENT']))
 
62
                {
 
63
                        $this->agent = trim($_SERVER['HTTP_USER_AGENT']);
 
64
                }
 
65
 
 
66
                if ( ! is_null($this->agent))
 
67
                {
 
68
                        if ($this->_load_agent_file())
 
69
                        {
 
70
                                $this->_compile_data();
 
71
                        }
 
72
                }
 
73
 
 
74
                log_message('debug', "User Agent Class Initialized");
 
75
        }
 
76
 
 
77
        // --------------------------------------------------------------------
 
78
 
 
79
        /**
 
80
         * Compile the User Agent Data
 
81
         *
 
82
         * @access      private
 
83
         * @return      bool
 
84
         */
 
85
        private function _load_agent_file()
 
86
        {
 
87
                if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/user_agents.php'))
 
88
                {
 
89
                        include(APPPATH.'config/'.ENVIRONMENT.'/user_agents.php');
 
90
                }
 
91
                elseif (is_file(APPPATH.'config/user_agents.php'))
 
92
                {
 
93
                        include(APPPATH.'config/user_agents.php');
 
94
                }
 
95
                else
 
96
                {
 
97
                        return FALSE;
 
98
                }
 
99
 
 
100
                $return = FALSE;
 
101
 
 
102
                if (isset($platforms))
 
103
                {
 
104
                        $this->platforms = $platforms;
 
105
                        unset($platforms);
 
106
                        $return = TRUE;
 
107
                }
 
108
 
 
109
                if (isset($browsers))
 
110
                {
 
111
                        $this->browsers = $browsers;
 
112
                        unset($browsers);
 
113
                        $return = TRUE;
 
114
                }
 
115
 
 
116
                if (isset($mobiles))
 
117
                {
 
118
                        $this->mobiles = $mobiles;
 
119
                        unset($mobiles);
 
120
                        $return = TRUE;
 
121
                }
 
122
 
 
123
                if (isset($robots))
 
124
                {
 
125
                        $this->robots = $robots;
 
126
                        unset($robots);
 
127
                        $return = TRUE;
 
128
                }
 
129
 
 
130
                return $return;
 
131
        }
 
132
 
 
133
        // --------------------------------------------------------------------
 
134
 
 
135
        /**
 
136
         * Compile the User Agent Data
 
137
         *
 
138
         * @access      private
 
139
         * @return      bool
 
140
         */
 
141
        private function _compile_data()
 
142
        {
 
143
                $this->_set_platform();
 
144
 
 
145
                foreach (array('_set_robot', '_set_browser', '_set_mobile') as $function)
 
146
                {
 
147
                        if ($this->$function() === TRUE)
 
148
                        {
 
149
                                break;
 
150
                        }
 
151
                }
 
152
        }
 
153
 
 
154
        // --------------------------------------------------------------------
 
155
 
 
156
        /**
 
157
         * Set the Platform
 
158
         *
 
159
         * @access      private
 
160
         * @return      mixed
 
161
         */
 
162
        private function _set_platform()
 
163
        {
 
164
                if (is_array($this->platforms) AND count($this->platforms) > 0)
 
165
                {
 
166
                        foreach ($this->platforms as $key => $val)
 
167
                        {
 
168
                                if (preg_match("|".preg_quote($key)."|i", $this->agent))
 
169
                                {
 
170
                                        $this->platform = $val;
 
171
                                        return TRUE;
 
172
                                }
 
173
                        }
 
174
                }
 
175
                $this->platform = 'Unknown Platform';
 
176
        }
 
177
 
 
178
        // --------------------------------------------------------------------
 
179
 
 
180
        /**
 
181
         * Set the Browser
 
182
         *
 
183
         * @access      private
 
184
         * @return      bool
 
185
         */
 
186
        private function _set_browser()
 
187
        {
 
188
                if (is_array($this->browsers) AND count($this->browsers) > 0)
 
189
                {
 
190
                        foreach ($this->browsers as $key => $val)
 
191
                        {
 
192
                                if (preg_match("|".preg_quote($key).".*?([0-9\.]+)|i", $this->agent, $match))
 
193
                                {
 
194
                                        $this->is_browser = TRUE;
 
195
                                        $this->version = $match[1];
 
196
                                        $this->browser = $val;
 
197
                                        $this->_set_mobile();
 
198
                                        return TRUE;
 
199
                                }
 
200
                        }
 
201
                }
 
202
                return FALSE;
 
203
        }
 
204
 
 
205
        // --------------------------------------------------------------------
 
206
 
 
207
        /**
 
208
         * Set the Robot
 
209
         *
 
210
         * @access      private
 
211
         * @return      bool
 
212
         */
 
213
        private function _set_robot()
 
214
        {
 
215
                if (is_array($this->robots) AND count($this->robots) > 0)
 
216
                {
 
217
                        foreach ($this->robots as $key => $val)
 
218
                        {
 
219
                                if (preg_match("|".preg_quote($key)."|i", $this->agent))
 
220
                                {
 
221
                                        $this->is_robot = TRUE;
 
222
                                        $this->robot = $val;
 
223
                                        return TRUE;
 
224
                                }
 
225
                        }
 
226
                }
 
227
                return FALSE;
 
228
        }
 
229
 
 
230
        // --------------------------------------------------------------------
 
231
 
 
232
        /**
 
233
         * Set the Mobile Device
 
234
         *
 
235
         * @access      private
 
236
         * @return      bool
 
237
         */
 
238
        private function _set_mobile()
 
239
        {
 
240
                if (is_array($this->mobiles) AND count($this->mobiles) > 0)
 
241
                {
 
242
                        foreach ($this->mobiles as $key => $val)
 
243
                        {
 
244
                                if (FALSE !== (strpos(strtolower($this->agent), $key)))
 
245
                                {
 
246
                                        $this->is_mobile = TRUE;
 
247
                                        $this->mobile = $val;
 
248
                                        return TRUE;
 
249
                                }
 
250
                        }
 
251
                }
 
252
                return FALSE;
 
253
        }
 
254
 
 
255
        // --------------------------------------------------------------------
 
256
 
 
257
        /**
 
258
         * Set the accepted languages
 
259
         *
 
260
         * @access      private
 
261
         * @return      void
 
262
         */
 
263
        private function _set_languages()
 
264
        {
 
265
                if ((count($this->languages) == 0) AND isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) AND $_SERVER['HTTP_ACCEPT_LANGUAGE'] != '')
 
266
                {
 
267
                        $languages = preg_replace('/(;q=[0-9\.]+)/i', '', strtolower(trim($_SERVER['HTTP_ACCEPT_LANGUAGE'])));
 
268
 
 
269
                        $this->languages = explode(',', $languages);
 
270
                }
 
271
 
 
272
                if (count($this->languages) == 0)
 
273
                {
 
274
                        $this->languages = array('Undefined');
 
275
                }
 
276
        }
 
277
 
 
278
        // --------------------------------------------------------------------
 
279
 
 
280
        /**
 
281
         * Set the accepted character sets
 
282
         *
 
283
         * @access      private
 
284
         * @return      void
 
285
         */
 
286
        private function _set_charsets()
 
287
        {
 
288
                if ((count($this->charsets) == 0) AND isset($_SERVER['HTTP_ACCEPT_CHARSET']) AND $_SERVER['HTTP_ACCEPT_CHARSET'] != '')
 
289
                {
 
290
                        $charsets = preg_replace('/(;q=.+)/i', '', strtolower(trim($_SERVER['HTTP_ACCEPT_CHARSET'])));
 
291
 
 
292
                        $this->charsets = explode(',', $charsets);
 
293
                }
 
294
 
 
295
                if (count($this->charsets) == 0)
 
296
                {
 
297
                        $this->charsets = array('Undefined');
 
298
                }
 
299
        }
 
300
 
 
301
        // --------------------------------------------------------------------
 
302
 
 
303
        /**
 
304
         * Is Browser
 
305
         *
 
306
         * @access      public
 
307
         * @return      bool
 
308
         */
 
309
        public function is_browser($key = NULL)
 
310
        {
 
311
                if ( ! $this->is_browser)
 
312
                {
 
313
                        return FALSE;
 
314
                }
 
315
 
 
316
                // No need to be specific, it's a browser
 
317
                if ($key === NULL)
 
318
                {
 
319
                        return TRUE;
 
320
                }
 
321
 
 
322
                // Check for a specific browser
 
323
                return array_key_exists($key, $this->browsers) AND $this->browser === $this->browsers[$key];
 
324
        }
 
325
 
 
326
        // --------------------------------------------------------------------
 
327
 
 
328
        /**
 
329
         * Is Robot
 
330
         *
 
331
         * @access      public
 
332
         * @return      bool
 
333
         */
 
334
        public function is_robot($key = NULL)
 
335
        {
 
336
                if ( ! $this->is_robot)
 
337
                {
 
338
                        return FALSE;
 
339
                }
 
340
 
 
341
                // No need to be specific, it's a robot
 
342
                if ($key === NULL)
 
343
                {
 
344
                        return TRUE;
 
345
                }
 
346
 
 
347
                // Check for a specific robot
 
348
                return array_key_exists($key, $this->robots) AND $this->robot === $this->robots[$key];
 
349
        }
 
350
 
 
351
        // --------------------------------------------------------------------
 
352
 
 
353
        /**
 
354
         * Is Mobile
 
355
         *
 
356
         * @access      public
 
357
         * @return      bool
 
358
         */
 
359
        public function is_mobile($key = NULL)
 
360
        {
 
361
                if ( ! $this->is_mobile)
 
362
                {
 
363
                        return FALSE;
 
364
                }
 
365
 
 
366
                // No need to be specific, it's a mobile
 
367
                if ($key === NULL)
 
368
                {
 
369
                        return TRUE;
 
370
                }
 
371
 
 
372
                // Check for a specific robot
 
373
                return array_key_exists($key, $this->mobiles) AND $this->mobile === $this->mobiles[$key];
 
374
        }
 
375
 
 
376
        // --------------------------------------------------------------------
 
377
 
 
378
        /**
 
379
         * Is this a referral from another site?
 
380
         *
 
381
         * @access      public
 
382
         * @return      bool
 
383
         */
 
384
        public function is_referral()
 
385
        {
 
386
                if ( ! isset($_SERVER['HTTP_REFERER']) OR $_SERVER['HTTP_REFERER'] == '')
 
387
                {
 
388
                        return FALSE;
 
389
                }
 
390
                return TRUE;
 
391
        }
 
392
 
 
393
        // --------------------------------------------------------------------
 
394
 
 
395
        /**
 
396
         * Agent String
 
397
         *
 
398
         * @access      public
 
399
         * @return      string
 
400
         */
 
401
        public function agent_string()
 
402
        {
 
403
                return $this->agent;
 
404
        }
 
405
 
 
406
        // --------------------------------------------------------------------
 
407
 
 
408
        /**
 
409
         * Get Platform
 
410
         *
 
411
         * @access      public
 
412
         * @return      string
 
413
         */
 
414
        public function platform()
 
415
        {
 
416
                return $this->platform;
 
417
        }
 
418
 
 
419
        // --------------------------------------------------------------------
 
420
 
 
421
        /**
 
422
         * Get Browser Name
 
423
         *
 
424
         * @access      public
 
425
         * @return      string
 
426
         */
 
427
        public function browser()
 
428
        {
 
429
                return $this->browser;
 
430
        }
 
431
 
 
432
        // --------------------------------------------------------------------
 
433
 
 
434
        /**
 
435
         * Get the Browser Version
 
436
         *
 
437
         * @access      public
 
438
         * @return      string
 
439
         */
 
440
        public function version()
 
441
        {
 
442
                return $this->version;
 
443
        }
 
444
 
 
445
        // --------------------------------------------------------------------
 
446
 
 
447
        /**
 
448
         * Get The Robot Name
 
449
         *
 
450
         * @access      public
 
451
         * @return      string
 
452
         */
 
453
        public function robot()
 
454
        {
 
455
                return $this->robot;
 
456
        }
 
457
        // --------------------------------------------------------------------
 
458
 
 
459
        /**
 
460
         * Get the Mobile Device
 
461
         *
 
462
         * @access      public
 
463
         * @return      string
 
464
         */
 
465
        public function mobile()
 
466
        {
 
467
                return $this->mobile;
 
468
        }
 
469
 
 
470
        // --------------------------------------------------------------------
 
471
 
 
472
        /**
 
473
         * Get the referrer
 
474
         *
 
475
         * @access      public
 
476
         * @return      bool
 
477
         */
 
478
        public function referrer()
 
479
        {
 
480
                return ( ! isset($_SERVER['HTTP_REFERER']) OR $_SERVER['HTTP_REFERER'] == '') ? '' : trim($_SERVER['HTTP_REFERER']);
 
481
        }
 
482
 
 
483
        // --------------------------------------------------------------------
 
484
 
 
485
        /**
 
486
         * Get the accepted languages
 
487
         *
 
488
         * @access      public
 
489
         * @return      array
 
490
         */
 
491
        public function languages()
 
492
        {
 
493
                if (count($this->languages) == 0)
 
494
                {
 
495
                        $this->_set_languages();
 
496
                }
 
497
 
 
498
                return $this->languages;
 
499
        }
 
500
 
 
501
        // --------------------------------------------------------------------
 
502
 
 
503
        /**
 
504
         * Get the accepted Character Sets
 
505
         *
 
506
         * @access      public
 
507
         * @return      array
 
508
         */
 
509
        public function charsets()
 
510
        {
 
511
                if (count($this->charsets) == 0)
 
512
                {
 
513
                        $this->_set_charsets();
 
514
                }
 
515
 
 
516
                return $this->charsets;
 
517
        }
 
518
 
 
519
        // --------------------------------------------------------------------
 
520
 
 
521
        /**
 
522
         * Test for a particular language
 
523
         *
 
524
         * @access      public
 
525
         * @return      bool
 
526
         */
 
527
        public function accept_lang($lang = 'en')
 
528
        {
 
529
                return (in_array(strtolower($lang), $this->languages(), TRUE));
 
530
        }
 
531
 
 
532
        // --------------------------------------------------------------------
 
533
 
 
534
        /**
 
535
         * Test for a particular character set
 
536
         *
 
537
         * @access      public
 
538
         * @return      bool
 
539
         */
 
540
        public function accept_charset($charset = 'utf-8')
 
541
        {
 
542
                return (in_array(strtolower($charset), $this->charsets(), TRUE));
 
543
        }
 
544
 
 
545
}
 
546
 
 
547
 
 
548
/* End of file User_agent.php */
 
549
/* Location: ./system/libraries/User_agent.php */
 
 
b'\\ No newline at end of file'