/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/html_helper.php

  • Committer: galaxyAbstractor
  • Date: 2013-04-10 15:49:32 UTC
  • mto: (19.1.5 lenasys)
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: galaxyabstractor@gmail.com-20130410154932-4vizlzk0ar5gykvi
* Added an simple admin panel to the codeviewer-cmssy stuff
* Redesigned a bit like the mockups - still stuff to come
* Implemented the codeviewer + admin panel again using the Framework CodeIgniter instead 

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 HTML Helpers
 
20
 *
 
21
 * @package             CodeIgniter
 
22
 * @subpackage  Helpers
 
23
 * @category    Helpers
 
24
 * @author              ExpressionEngine Dev Team
 
25
 * @link                http://codeigniter.com/user_guide/helpers/html_helper.html
 
26
 */
 
27
 
 
28
// ------------------------------------------------------------------------
 
29
 
 
30
/**
 
31
 * Heading
 
32
 *
 
33
 * Generates an HTML heading tag.  First param is the data.
 
34
 * Second param is the size of the heading tag.
 
35
 *
 
36
 * @access      public
 
37
 * @param       string
 
38
 * @param       integer
 
39
 * @return      string
 
40
 */
 
41
if ( ! function_exists('heading'))
 
42
{
 
43
        function heading($data = '', $h = '1', $attributes = '')
 
44
        {
 
45
                $attributes = ($attributes != '') ? ' '.$attributes : $attributes;
 
46
                return "<h".$h.$attributes.">".$data."</h".$h.">";
 
47
        }
 
48
}
 
49
 
 
50
// ------------------------------------------------------------------------
 
51
 
 
52
/**
 
53
 * Unordered List
 
54
 *
 
55
 * Generates an HTML unordered list from an single or multi-dimensional array.
 
56
 *
 
57
 * @access      public
 
58
 * @param       array
 
59
 * @param       mixed
 
60
 * @return      string
 
61
 */
 
62
if ( ! function_exists('ul'))
 
63
{
 
64
        function ul($list, $attributes = '')
 
65
        {
 
66
                return _list('ul', $list, $attributes);
 
67
        }
 
68
}
 
69
 
 
70
// ------------------------------------------------------------------------
 
71
 
 
72
/**
 
73
 * Ordered List
 
74
 *
 
75
 * Generates an HTML ordered list from an single or multi-dimensional array.
 
76
 *
 
77
 * @access      public
 
78
 * @param       array
 
79
 * @param       mixed
 
80
 * @return      string
 
81
 */
 
82
if ( ! function_exists('ol'))
 
83
{
 
84
        function ol($list, $attributes = '')
 
85
        {
 
86
                return _list('ol', $list, $attributes);
 
87
        }
 
88
}
 
89
 
 
90
// ------------------------------------------------------------------------
 
91
 
 
92
/**
 
93
 * Generates the list
 
94
 *
 
95
 * Generates an HTML ordered list from an single or multi-dimensional array.
 
96
 *
 
97
 * @access      private
 
98
 * @param       string
 
99
 * @param       mixed
 
100
 * @param       mixed
 
101
 * @param       integer
 
102
 * @return      string
 
103
 */
 
104
if ( ! function_exists('_list'))
 
105
{
 
106
        function _list($type = 'ul', $list, $attributes = '', $depth = 0)
 
107
        {
 
108
                // If an array wasn't submitted there's nothing to do...
 
109
                if ( ! is_array($list))
 
110
                {
 
111
                        return $list;
 
112
                }
 
113
 
 
114
                // Set the indentation based on the depth
 
115
                $out = str_repeat(" ", $depth);
 
116
 
 
117
                // Were any attributes submitted?  If so generate a string
 
118
                if (is_array($attributes))
 
119
                {
 
120
                        $atts = '';
 
121
                        foreach ($attributes as $key => $val)
 
122
                        {
 
123
                                $atts .= ' ' . $key . '="' . $val . '"';
 
124
                        }
 
125
                        $attributes = $atts;
 
126
                }
 
127
                elseif (is_string($attributes) AND strlen($attributes) > 0)
 
128
                {
 
129
                        $attributes = ' '. $attributes;
 
130
                }
 
131
 
 
132
                // Write the opening list tag
 
133
                $out .= "<".$type.$attributes.">\n";
 
134
 
 
135
                // Cycle through the list elements.  If an array is
 
136
                // encountered we will recursively call _list()
 
137
 
 
138
                static $_last_list_item = '';
 
139
                foreach ($list as $key => $val)
 
140
                {
 
141
                        $_last_list_item = $key;
 
142
 
 
143
                        $out .= str_repeat(" ", $depth + 2);
 
144
                        $out .= "<li>";
 
145
 
 
146
                        if ( ! is_array($val))
 
147
                        {
 
148
                                $out .= $val;
 
149
                        }
 
150
                        else
 
151
                        {
 
152
                                $out .= $_last_list_item."\n";
 
153
                                $out .= _list($type, $val, '', $depth + 4);
 
154
                                $out .= str_repeat(" ", $depth + 2);
 
155
                        }
 
156
 
 
157
                        $out .= "</li>\n";
 
158
                }
 
159
 
 
160
                // Set the indentation for the closing tag
 
161
                $out .= str_repeat(" ", $depth);
 
162
 
 
163
                // Write the closing list tag
 
164
                $out .= "</".$type.">\n";
 
165
 
 
166
                return $out;
 
167
        }
 
168
}
 
169
 
 
170
// ------------------------------------------------------------------------
 
171
 
 
172
/**
 
173
 * Generates HTML BR tags based on number supplied
 
174
 *
 
175
 * @access      public
 
176
 * @param       integer
 
177
 * @return      string
 
178
 */
 
179
if ( ! function_exists('br'))
 
180
{
 
181
        function br($num = 1)
 
182
        {
 
183
                return str_repeat("<br />", $num);
 
184
        }
 
185
}
 
186
 
 
187
// ------------------------------------------------------------------------
 
188
 
 
189
/**
 
190
 * Image
 
191
 *
 
192
 * Generates an <img /> element
 
193
 *
 
194
 * @access      public
 
195
 * @param       mixed
 
196
 * @return      string
 
197
 */
 
198
if ( ! function_exists('img'))
 
199
{
 
200
        function img($src = '', $index_page = FALSE)
 
201
        {
 
202
                if ( ! is_array($src) )
 
203
                {
 
204
                        $src = array('src' => $src);
 
205
                }
 
206
 
 
207
                // If there is no alt attribute defined, set it to an empty string
 
208
                if ( ! isset($src['alt']))
 
209
                {
 
210
                        $src['alt'] = '';
 
211
                }
 
212
 
 
213
                $img = '<img';
 
214
 
 
215
                foreach ($src as $k=>$v)
 
216
                {
 
217
 
 
218
                        if ($k == 'src' AND strpos($v, '://') === FALSE)
 
219
                        {
 
220
                                $CI =& get_instance();
 
221
 
 
222
                                if ($index_page === TRUE)
 
223
                                {
 
224
                                        $img .= ' src="'.$CI->config->site_url($v).'"';
 
225
                                }
 
226
                                else
 
227
                                {
 
228
                                        $img .= ' src="'.$CI->config->slash_item('base_url').$v.'"';
 
229
                                }
 
230
                        }
 
231
                        else
 
232
                        {
 
233
                                $img .= " $k=\"$v\"";
 
234
                        }
 
235
                }
 
236
 
 
237
                $img .= '/>';
 
238
 
 
239
                return $img;
 
240
        }
 
241
}
 
242
 
 
243
// ------------------------------------------------------------------------
 
244
 
 
245
/**
 
246
 * Doctype
 
247
 *
 
248
 * Generates a page document type declaration
 
249
 *
 
250
 * Valid options are xhtml-11, xhtml-strict, xhtml-trans, xhtml-frame,
 
251
 * html4-strict, html4-trans, and html4-frame.  Values are saved in the
 
252
 * doctypes config file.
 
253
 *
 
254
 * @access      public
 
255
 * @param       string  type    The doctype to be generated
 
256
 * @return      string
 
257
 */
 
258
if ( ! function_exists('doctype'))
 
259
{
 
260
        function doctype($type = 'xhtml1-strict')
 
261
        {
 
262
                global $_doctypes;
 
263
 
 
264
                if ( ! is_array($_doctypes))
 
265
                {
 
266
                        if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/doctypes.php'))
 
267
                        {
 
268
                                include(APPPATH.'config/'.ENVIRONMENT.'/doctypes.php');
 
269
                        }
 
270
                        elseif (is_file(APPPATH.'config/doctypes.php'))
 
271
                        {
 
272
                                include(APPPATH.'config/doctypes.php');
 
273
                        }
 
274
 
 
275
                        if ( ! is_array($_doctypes))
 
276
                        {
 
277
                                return FALSE;
 
278
                        }
 
279
                }
 
280
 
 
281
                if (isset($_doctypes[$type]))
 
282
                {
 
283
                        return $_doctypes[$type];
 
284
                }
 
285
                else
 
286
                {
 
287
                        return FALSE;
 
288
                }
 
289
        }
 
290
}
 
291
 
 
292
// ------------------------------------------------------------------------
 
293
 
 
294
/**
 
295
 * Link
 
296
 *
 
297
 * Generates link to a CSS file
 
298
 *
 
299
 * @access      public
 
300
 * @param       mixed   stylesheet hrefs or an array
 
301
 * @param       string  rel
 
302
 * @param       string  type
 
303
 * @param       string  title
 
304
 * @param       string  media
 
305
 * @param       boolean should index_page be added to the css path
 
306
 * @return      string
 
307
 */
 
308
if ( ! function_exists('link_tag'))
 
309
{
 
310
        function link_tag($href = '', $rel = 'stylesheet', $type = 'text/css', $title = '', $media = '', $index_page = FALSE)
 
311
        {
 
312
                $CI =& get_instance();
 
313
 
 
314
                $link = '<link ';
 
315
 
 
316
                if (is_array($href))
 
317
                {
 
318
                        foreach ($href as $k=>$v)
 
319
                        {
 
320
                                if ($k == 'href' AND strpos($v, '://') === FALSE)
 
321
                                {
 
322
                                        if ($index_page === TRUE)
 
323
                                        {
 
324
                                                $link .= 'href="'.$CI->config->site_url($v).'" ';
 
325
                                        }
 
326
                                        else
 
327
                                        {
 
328
                                                $link .= 'href="'.$CI->config->slash_item('base_url').$v.'" ';
 
329
                                        }
 
330
                                }
 
331
                                else
 
332
                                {
 
333
                                        $link .= "$k=\"$v\" ";
 
334
                                }
 
335
                        }
 
336
 
 
337
                        $link .= "/>";
 
338
                }
 
339
                else
 
340
                {
 
341
                        if ( strpos($href, '://') !== FALSE)
 
342
                        {
 
343
                                $link .= 'href="'.$href.'" ';
 
344
                        }
 
345
                        elseif ($index_page === TRUE)
 
346
                        {
 
347
                                $link .= 'href="'.$CI->config->site_url($href).'" ';
 
348
                        }
 
349
                        else
 
350
                        {
 
351
                                $link .= 'href="'.$CI->config->slash_item('base_url').$href.'" ';
 
352
                        }
 
353
 
 
354
                        $link .= 'rel="'.$rel.'" type="'.$type.'" ';
 
355
 
 
356
                        if ($media      != '')
 
357
                        {
 
358
                                $link .= 'media="'.$media.'" ';
 
359
                        }
 
360
 
 
361
                        if ($title      != '')
 
362
                        {
 
363
                                $link .= 'title="'.$title.'" ';
 
364
                        }
 
365
 
 
366
                        $link .= '/>';
 
367
                }
 
368
 
 
369
 
 
370
                return $link;
 
371
        }
 
372
}
 
373
 
 
374
// ------------------------------------------------------------------------
 
375
 
 
376
/**
 
377
 * Generates meta tags from an array of key/values
 
378
 *
 
379
 * @access      public
 
380
 * @param       array
 
381
 * @return      string
 
382
 */
 
383
if ( ! function_exists('meta'))
 
384
{
 
385
        function meta($name = '', $content = '', $type = 'name', $newline = "\n")
 
386
        {
 
387
                // Since we allow the data to be passes as a string, a simple array
 
388
                // or a multidimensional one, we need to do a little prepping.
 
389
                if ( ! is_array($name))
 
390
                {
 
391
                        $name = array(array('name' => $name, 'content' => $content, 'type' => $type, 'newline' => $newline));
 
392
                }
 
393
                else
 
394
                {
 
395
                        // Turn single array into multidimensional
 
396
                        if (isset($name['name']))
 
397
                        {
 
398
                                $name = array($name);
 
399
                        }
 
400
                }
 
401
 
 
402
                $str = '';
 
403
                foreach ($name as $meta)
 
404
                {
 
405
                        $type           = ( ! isset($meta['type']) OR $meta['type'] == 'name') ? 'name' : 'http-equiv';
 
406
                        $name           = ( ! isset($meta['name']))             ? ''    : $meta['name'];
 
407
                        $content        = ( ! isset($meta['content']))  ? ''    : $meta['content'];
 
408
                        $newline        = ( ! isset($meta['newline']))  ? "\n"  : $meta['newline'];
 
409
 
 
410
                        $str .= '<meta '.$type.'="'.$name.'" content="'.$content.'" />'.$newline;
 
411
                }
 
412
 
 
413
                return $str;
 
414
        }
 
415
}
 
416
 
 
417
// ------------------------------------------------------------------------
 
418
 
 
419
/**
 
420
 * Generates non-breaking space entities based on number supplied
 
421
 *
 
422
 * @access      public
 
423
 * @param       integer
 
424
 * @return      string
 
425
 */
 
426
if ( ! function_exists('nbs'))
 
427
{
 
428
        function nbs($num = 1)
 
429
        {
 
430
                return str_repeat("&nbsp;", $num);
 
431
        }
 
432
}
 
433
 
 
434
 
 
435
/* End of file html_helper.php */
 
436
/* Location: ./system/helpers/html_helper.php */
 
 
b'\\ No newline at end of file'