/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/helpers/url_helper.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
 * CodeIgniter URL Helpers
 
20
 *
 
21
 * @package             CodeIgniter
 
22
 * @subpackage  Helpers
 
23
 * @category    Helpers
 
24
 * @author              ExpressionEngine Dev Team
 
25
 * @link                http://codeigniter.com/user_guide/helpers/url_helper.html
 
26
 */
 
27
 
 
28
// ------------------------------------------------------------------------
 
29
 
 
30
/**
 
31
 * Site URL
 
32
 *
 
33
 * Create a local URL based on your basepath. Segments can be passed via the
 
34
 * first parameter either as a string or an array.
 
35
 *
 
36
 * @access      public
 
37
 * @param       string
 
38
 * @return      string
 
39
 */
 
40
if ( ! function_exists('site_url'))
 
41
{
 
42
        function site_url($uri = '')
 
43
        {
 
44
                $CI =& get_instance();
 
45
                return $CI->config->site_url($uri);
 
46
        }
 
47
}
 
48
 
 
49
// ------------------------------------------------------------------------
 
50
 
 
51
/**
 
52
 * Base URL
 
53
 * 
 
54
 * Create a local URL based on your basepath.
 
55
 * Segments can be passed in as a string or an array, same as site_url
 
56
 * or a URL to a file can be passed in, e.g. to an image file.
 
57
 *
 
58
 * @access      public
 
59
 * @param string
 
60
 * @return      string
 
61
 */
 
62
if ( ! function_exists('base_url'))
 
63
{
 
64
        function base_url($uri = '')
 
65
        {
 
66
                $CI =& get_instance();
 
67
                return $CI->config->base_url($uri);
 
68
        }
 
69
}
 
70
 
 
71
// ------------------------------------------------------------------------
 
72
 
 
73
/**
 
74
 * Current URL
 
75
 *
 
76
 * Returns the full URL (including segments) of the page where this
 
77
 * function is placed
 
78
 *
 
79
 * @access      public
 
80
 * @return      string
 
81
 */
 
82
if ( ! function_exists('current_url'))
 
83
{
 
84
        function current_url()
 
85
        {
 
86
                $CI =& get_instance();
 
87
                return $CI->config->site_url($CI->uri->uri_string());
 
88
        }
 
89
}
 
90
 
 
91
// ------------------------------------------------------------------------
 
92
/**
 
93
 * URL String
 
94
 *
 
95
 * Returns the URI segments.
 
96
 *
 
97
 * @access      public
 
98
 * @return      string
 
99
 */
 
100
if ( ! function_exists('uri_string'))
 
101
{
 
102
        function uri_string()
 
103
        {
 
104
                $CI =& get_instance();
 
105
                return $CI->uri->uri_string();
 
106
        }
 
107
}
 
108
 
 
109
// ------------------------------------------------------------------------
 
110
 
 
111
/**
 
112
 * Index page
 
113
 *
 
114
 * Returns the "index_page" from your config file
 
115
 *
 
116
 * @access      public
 
117
 * @return      string
 
118
 */
 
119
if ( ! function_exists('index_page'))
 
120
{
 
121
        function index_page()
 
122
        {
 
123
                $CI =& get_instance();
 
124
                return $CI->config->item('index_page');
 
125
        }
 
126
}
 
127
 
 
128
// ------------------------------------------------------------------------
 
129
 
 
130
/**
 
131
 * Anchor Link
 
132
 *
 
133
 * Creates an anchor based on the local URL.
 
134
 *
 
135
 * @access      public
 
136
 * @param       string  the URL
 
137
 * @param       string  the link title
 
138
 * @param       mixed   any attributes
 
139
 * @return      string
 
140
 */
 
141
if ( ! function_exists('anchor'))
 
142
{
 
143
        function anchor($uri = '', $title = '', $attributes = '')
 
144
        {
 
145
                $title = (string) $title;
 
146
 
 
147
                if ( ! is_array($uri))
 
148
                {
 
149
                        $site_url = ( ! preg_match('!^\w+://! i', $uri)) ? site_url($uri) : $uri;
 
150
                }
 
151
                else
 
152
                {
 
153
                        $site_url = site_url($uri);
 
154
                }
 
155
 
 
156
                if ($title == '')
 
157
                {
 
158
                        $title = $site_url;
 
159
                }
 
160
 
 
161
                if ($attributes != '')
 
162
                {
 
163
                        $attributes = _parse_attributes($attributes);
 
164
                }
 
165
 
 
166
                return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>';
 
167
        }
 
168
}
 
169
 
 
170
// ------------------------------------------------------------------------
 
171
 
 
172
/**
 
173
 * Anchor Link - Pop-up version
 
174
 *
 
175
 * Creates an anchor based on the local URL. The link
 
176
 * opens a new window based on the attributes specified.
 
177
 *
 
178
 * @access      public
 
179
 * @param       string  the URL
 
180
 * @param       string  the link title
 
181
 * @param       mixed   any attributes
 
182
 * @return      string
 
183
 */
 
184
if ( ! function_exists('anchor_popup'))
 
185
{
 
186
        function anchor_popup($uri = '', $title = '', $attributes = FALSE)
 
187
        {
 
188
                $title = (string) $title;
 
189
 
 
190
                $site_url = ( ! preg_match('!^\w+://! i', $uri)) ? site_url($uri) : $uri;
 
191
 
 
192
                if ($title == '')
 
193
                {
 
194
                        $title = $site_url;
 
195
                }
 
196
 
 
197
                if ($attributes === FALSE)
 
198
                {
 
199
                        return "<a href='javascript:void(0);' onclick=\"window.open('".$site_url."', '_blank');\">".$title."</a>";
 
200
                }
 
201
 
 
202
                if ( ! is_array($attributes))
 
203
                {
 
204
                        $attributes = array();
 
205
                }
 
206
 
 
207
                foreach (array('width' => '800', 'height' => '600', 'scrollbars' => 'yes', 'status' => 'yes', 'resizable' => 'yes', 'screenx' => '0', 'screeny' => '0', ) as $key => $val)
 
208
                {
 
209
                        $atts[$key] = ( ! isset($attributes[$key])) ? $val : $attributes[$key];
 
210
                        unset($attributes[$key]);
 
211
                }
 
212
 
 
213
                if ($attributes != '')
 
214
                {
 
215
                        $attributes = _parse_attributes($attributes);
 
216
                }
 
217
 
 
218
                return "<a href='javascript:void(0);' onclick=\"window.open('".$site_url."', '_blank', '"._parse_attributes($atts, TRUE)."');\"$attributes>".$title."</a>";
 
219
        }
 
220
}
 
221
 
 
222
// ------------------------------------------------------------------------
 
223
 
 
224
/**
 
225
 * Mailto Link
 
226
 *
 
227
 * @access      public
 
228
 * @param       string  the email address
 
229
 * @param       string  the link title
 
230
 * @param       mixed   any attributes
 
231
 * @return      string
 
232
 */
 
233
if ( ! function_exists('mailto'))
 
234
{
 
235
        function mailto($email, $title = '', $attributes = '')
 
236
        {
 
237
                $title = (string) $title;
 
238
 
 
239
                if ($title == "")
 
240
                {
 
241
                        $title = $email;
 
242
                }
 
243
 
 
244
                $attributes = _parse_attributes($attributes);
 
245
 
 
246
                return '<a href="mailto:'.$email.'"'.$attributes.'>'.$title.'</a>';
 
247
        }
 
248
}
 
249
 
 
250
// ------------------------------------------------------------------------
 
251
 
 
252
/**
 
253
 * Encoded Mailto Link
 
254
 *
 
255
 * Create a spam-protected mailto link written in Javascript
 
256
 *
 
257
 * @access      public
 
258
 * @param       string  the email address
 
259
 * @param       string  the link title
 
260
 * @param       mixed   any attributes
 
261
 * @return      string
 
262
 */
 
263
if ( ! function_exists('safe_mailto'))
 
264
{
 
265
        function safe_mailto($email, $title = '', $attributes = '')
 
266
        {
 
267
                $title = (string) $title;
 
268
 
 
269
                if ($title == "")
 
270
                {
 
271
                        $title = $email;
 
272
                }
 
273
 
 
274
                for ($i = 0; $i < 16; $i++)
 
275
                {
 
276
                        $x[] = substr('<a href="mailto:', $i, 1);
 
277
                }
 
278
 
 
279
                for ($i = 0; $i < strlen($email); $i++)
 
280
                {
 
281
                        $x[] = "|".ord(substr($email, $i, 1));
 
282
                }
 
283
 
 
284
                $x[] = '"';
 
285
 
 
286
                if ($attributes != '')
 
287
                {
 
288
                        if (is_array($attributes))
 
289
                        {
 
290
                                foreach ($attributes as $key => $val)
 
291
                                {
 
292
                                        $x[] =  ' '.$key.'="';
 
293
                                        for ($i = 0; $i < strlen($val); $i++)
 
294
                                        {
 
295
                                                $x[] = "|".ord(substr($val, $i, 1));
 
296
                                        }
 
297
                                        $x[] = '"';
 
298
                                }
 
299
                        }
 
300
                        else
 
301
                        {
 
302
                                for ($i = 0; $i < strlen($attributes); $i++)
 
303
                                {
 
304
                                        $x[] = substr($attributes, $i, 1);
 
305
                                }
 
306
                        }
 
307
                }
 
308
 
 
309
                $x[] = '>';
 
310
 
 
311
                $temp = array();
 
312
                for ($i = 0; $i < strlen($title); $i++)
 
313
                {
 
314
                        $ordinal = ord($title[$i]);
 
315
 
 
316
                        if ($ordinal < 128)
 
317
                        {
 
318
                                $x[] = "|".$ordinal;
 
319
                        }
 
320
                        else
 
321
                        {
 
322
                                if (count($temp) == 0)
 
323
                                {
 
324
                                        $count = ($ordinal < 224) ? 2 : 3;
 
325
                                }
 
326
 
 
327
                                $temp[] = $ordinal;
 
328
                                if (count($temp) == $count)
 
329
                                {
 
330
                                        $number = ($count == 3) ? (($temp['0'] % 16) * 4096) + (($temp['1'] % 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64);
 
331
                                        $x[] = "|".$number;
 
332
                                        $count = 1;
 
333
                                        $temp = array();
 
334
                                }
 
335
                        }
 
336
                }
 
337
 
 
338
                $x[] = '<'; $x[] = '/'; $x[] = 'a'; $x[] = '>';
 
339
 
 
340
                $x = array_reverse($x);
 
341
                ob_start();
 
342
 
 
343
        ?><script type="text/javascript">
 
344
        //<![CDATA[
 
345
        var l=new Array();
 
346
        <?php
 
347
        $i = 0;
 
348
        foreach ($x as $val){ ?>l[<?php echo $i++; ?>]='<?php echo $val; ?>';<?php } ?>
 
349
 
 
350
        for (var i = l.length-1; i >= 0; i=i-1){
 
351
        if (l[i].substring(0, 1) == '|') document.write("&#"+unescape(l[i].substring(1))+";");
 
352
        else document.write(unescape(l[i]));}
 
353
        //]]>
 
354
        </script><?php
 
355
 
 
356
                $buffer = ob_get_contents();
 
357
                ob_end_clean();
 
358
                return $buffer;
 
359
        }
 
360
}
 
361
 
 
362
// ------------------------------------------------------------------------
 
363
 
 
364
/**
 
365
 * Auto-linker
 
366
 *
 
367
 * Automatically links URL and Email addresses.
 
368
 * Note: There's a bit of extra code here to deal with
 
369
 * URLs or emails that end in a period.  We'll strip these
 
370
 * off and add them after the link.
 
371
 *
 
372
 * @access      public
 
373
 * @param       string  the string
 
374
 * @param       string  the type: email, url, or both
 
375
 * @param       bool    whether to create pop-up links
 
376
 * @return      string
 
377
 */
 
378
if ( ! function_exists('auto_link'))
 
379
{
 
380
        function auto_link($str, $type = 'both', $popup = FALSE)
 
381
        {
 
382
                if ($type != 'email')
 
383
                {
 
384
                        if (preg_match_all("#(^|\s|\()((http(s?)://)|(www\.))(\w+[^\s\)\<]+)#i", $str, $matches))
 
385
                        {
 
386
                                $pop = ($popup == TRUE) ? " target=\"_blank\" " : "";
 
387
 
 
388
                                for ($i = 0; $i < count($matches['0']); $i++)
 
389
                                {
 
390
                                        $period = '';
 
391
                                        if (preg_match("|\.$|", $matches['6'][$i]))
 
392
                                        {
 
393
                                                $period = '.';
 
394
                                                $matches['6'][$i] = substr($matches['6'][$i], 0, -1);
 
395
                                        }
 
396
 
 
397
                                        $str = str_replace($matches['0'][$i],
 
398
                                                                                $matches['1'][$i].'<a href="http'.
 
399
                                                                                $matches['4'][$i].'://'.
 
400
                                                                                $matches['5'][$i].
 
401
                                                                                $matches['6'][$i].'"'.$pop.'>http'.
 
402
                                                                                $matches['4'][$i].'://'.
 
403
                                                                                $matches['5'][$i].
 
404
                                                                                $matches['6'][$i].'</a>'.
 
405
                                                                                $period, $str);
 
406
                                }
 
407
                        }
 
408
                }
 
409
 
 
410
                if ($type != 'url')
 
411
                {
 
412
                        if (preg_match_all("/([a-zA-Z0-9_\.\-\+]+)@([a-zA-Z0-9\-]+)\.([a-zA-Z0-9\-\.]*)/i", $str, $matches))
 
413
                        {
 
414
                                for ($i = 0; $i < count($matches['0']); $i++)
 
415
                                {
 
416
                                        $period = '';
 
417
                                        if (preg_match("|\.$|", $matches['3'][$i]))
 
418
                                        {
 
419
                                                $period = '.';
 
420
                                                $matches['3'][$i] = substr($matches['3'][$i], 0, -1);
 
421
                                        }
 
422
 
 
423
                                        $str = str_replace($matches['0'][$i], safe_mailto($matches['1'][$i].'@'.$matches['2'][$i].'.'.$matches['3'][$i]).$period, $str);
 
424
                                }
 
425
                        }
 
426
                }
 
427
 
 
428
                return $str;
 
429
        }
 
430
}
 
431
 
 
432
// ------------------------------------------------------------------------
 
433
 
 
434
/**
 
435
 * Prep URL
 
436
 *
 
437
 * Simply adds the http:// part if no scheme is included
 
438
 *
 
439
 * @access      public
 
440
 * @param       string  the URL
 
441
 * @return      string
 
442
 */
 
443
if ( ! function_exists('prep_url'))
 
444
{
 
445
        function prep_url($str = '')
 
446
        {
 
447
                if ($str == 'http://' OR $str == '')
 
448
                {
 
449
                        return '';
 
450
                }
 
451
 
 
452
                $url = parse_url($str);
 
453
 
 
454
                if ( ! $url OR ! isset($url['scheme']))
 
455
                {
 
456
                        $str = 'http://'.$str;
 
457
                }
 
458
 
 
459
                return $str;
 
460
        }
 
461
}
 
462
 
 
463
// ------------------------------------------------------------------------
 
464
 
 
465
/**
 
466
 * Create URL Title
 
467
 *
 
468
 * Takes a "title" string as input and creates a
 
469
 * human-friendly URL string with a "separator" string 
 
470
 * as the word separator.
 
471
 *
 
472
 * @access      public
 
473
 * @param       string  the string
 
474
 * @param       string  the separator
 
475
 * @return      string
 
476
 */
 
477
if ( ! function_exists('url_title'))
 
478
{
 
479
        function url_title($str, $separator = '-', $lowercase = FALSE)
 
480
        {
 
481
                if ($separator == 'dash') 
 
482
                {
 
483
                    $separator = '-';
 
484
                }
 
485
                else if ($separator == 'underscore')
 
486
                {
 
487
                    $separator = '_';
 
488
                }
 
489
                
 
490
                $q_separator = preg_quote($separator);
 
491
 
 
492
                $trans = array(
 
493
                        '&.+?;'                 => '',
 
494
                        '[^a-z0-9 _-]'          => '',
 
495
                        '\s+'                   => $separator,
 
496
                        '('.$q_separator.')+'   => $separator
 
497
                );
 
498
 
 
499
                $str = strip_tags($str);
 
500
 
 
501
                foreach ($trans as $key => $val)
 
502
                {
 
503
                        $str = preg_replace("#".$key."#i", $val, $str);
 
504
                }
 
505
 
 
506
                if ($lowercase === TRUE)
 
507
                {
 
508
                        $str = strtolower($str);
 
509
                }
 
510
 
 
511
                return trim($str, $separator);
 
512
        }
 
513
}
 
514
 
 
515
// ------------------------------------------------------------------------
 
516
 
 
517
/**
 
518
 * Header Redirect
 
519
 *
 
520
 * Header redirect in two flavors
 
521
 * For very fine grained control over headers, you could use the Output
 
522
 * Library's set_header() function.
 
523
 *
 
524
 * @access      public
 
525
 * @param       string  the URL
 
526
 * @param       string  the method: location or redirect
 
527
 * @return      string
 
528
 */
 
529
if ( ! function_exists('redirect'))
 
530
{
 
531
        function redirect($uri = '', $method = 'location', $http_response_code = 302)
 
532
        {
 
533
                if ( ! preg_match('#^https?://#i', $uri))
 
534
                {
 
535
                        $uri = site_url($uri);
 
536
                }
 
537
 
 
538
                switch($method)
 
539
                {
 
540
                        case 'refresh'  : header("Refresh:0;url=".$uri);
 
541
                                break;
 
542
                        default                 : header("Location: ".$uri, TRUE, $http_response_code);
 
543
                                break;
 
544
                }
 
545
                exit;
 
546
        }
 
547
}
 
548
 
 
549
// ------------------------------------------------------------------------
 
550
 
 
551
/**
 
552
 * Parse out the attributes
 
553
 *
 
554
 * Some of the functions use this
 
555
 *
 
556
 * @access      private
 
557
 * @param       array
 
558
 * @param       bool
 
559
 * @return      string
 
560
 */
 
561
if ( ! function_exists('_parse_attributes'))
 
562
{
 
563
        function _parse_attributes($attributes, $javascript = FALSE)
 
564
        {
 
565
                if (is_string($attributes))
 
566
                {
 
567
                        return ($attributes != '') ? ' '.$attributes : '';
 
568
                }
 
569
 
 
570
                $att = '';
 
571
                foreach ($attributes as $key => $val)
 
572
                {
 
573
                        if ($javascript == TRUE)
 
574
                        {
 
575
                                $att .= $key . '=' . $val . ',';
 
576
                        }
 
577
                        else
 
578
                        {
 
579
                                $att .= ' ' . $key . '="' . $val . '"';
 
580
                        }
 
581
                }
 
582
 
 
583
                if ($javascript == TRUE AND $att != '')
 
584
                {
 
585
                        $att = substr($att, 0, -1);
 
586
                }
 
587
 
 
588
                return $att;
 
589
        }
 
590
}
 
591
 
 
592
 
 
593
/* End of file url_helper.php */
 
594
/* Location: ./system/helpers/url_helper.php */
 
 
b'\\ No newline at end of file'