/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/user_guide/general/helpers.html

  • 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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
2
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
3
<head>
 
4
 
 
5
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
6
<title>Helper Functions : CodeIgniter User Guide</title>
 
7
 
 
8
<style type='text/css' media='all'>@import url('../userguide.css');</style>
 
9
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
 
10
 
 
11
<script type="text/javascript" src="../nav/nav.js"></script>
 
12
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
 
13
<script type="text/javascript" src="../nav/moo.fx.js"></script>
 
14
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
 
15
 
 
16
<meta http-equiv='expires' content='-1' />
 
17
<meta http-equiv= 'pragma' content='no-cache' />
 
18
<meta name='robots' content='all' />
 
19
<meta name='author' content='ExpressionEngine Dev Team' />
 
20
<meta name='description' content='CodeIgniter User Guide' />
 
21
 
 
22
</head>
 
23
<body>
 
24
 
 
25
<!-- START NAVIGATION -->
 
26
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
 
27
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
 
28
<div id="masthead">
 
29
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
 
30
<tr>
 
31
<td><h1>CodeIgniter User Guide Version 2.1.3</h1></td>
 
32
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
 
33
</tr>
 
34
</table>
 
35
</div>
 
36
<!-- END NAVIGATION -->
 
37
 
 
38
 
 
39
<!-- START BREADCRUMB -->
 
40
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
 
41
<tr>
 
42
<td id="breadcrumb">
 
43
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
 
44
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
 
45
Helper Functions
 
46
</td>
 
47
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
 
48
</tr>
 
49
</table>
 
50
<!-- END BREADCRUMB -->
 
51
 
 
52
<br clear="all" />
 
53
 
 
54
 
 
55
<!-- START CONTENT -->
 
56
<div id="content">
 
57
 
 
58
<h1>Helper Functions</h1>
 
59
 
 
60
<p>Helpers, as the name suggests, help you with tasks.  Each helper file is simply a collection of functions in a particular
 
61
category.  There are <dfn>URL Helpers</dfn>, that assist in creating links, there are <dfn>Form Helpers</dfn>
 
62
that help you create form elements, <dfn>Text Helpers</dfn> perform various text formatting routines,
 
63
<dfn>Cookie Helpers</dfn> set and read cookies, <dfn>File Helpers</dfn> help you deal with files, etc.
 
64
</p>
 
65
 
 
66
<p>Unlike most other systems in CodeIgniter, Helpers are not written in an Object Oriented format.  They are simple, procedural functions.
 
67
Each helper function performs one specific task, with no dependence on other functions.</p>
 
68
 
 
69
<p>CodeIgniter does not load Helper Files by default, so the first step in using
 
70
a Helper is to load it.  Once loaded, it becomes globally available in your <a href="../general/controllers.html">controller</a> and <a href="../general/views.html">views</a>.</p>
 
71
 
 
72
<p>Helpers are typically stored in your <dfn>system/helpers</dfn>, or <dfn>application/helpers </dfn>directory. CodeIgniter will look first in your <dfn>application/helpers</dfn>
 
73
directory.  If the directory does not exist or the specified helper is not located there CI will instead look in your global
 
74
<dfn>system/helpers</dfn> folder.</p>
 
75
 
 
76
 
 
77
<h2>Loading a Helper</h2>
 
78
 
 
79
<p>Loading a helper file is quite simple using the following function:</p>
 
80
 
 
81
<code>$this->load->helper('<var>name</var>');</code>
 
82
 
 
83
<p>Where <var>name</var> is the file name of the helper, without the .php file extension or the "helper" part.</p>
 
84
 
 
85
<p>For example, to load the <dfn>URL Helper</dfn> file, which is named <var>url_helper.php</var>, you would do this:</p>
 
86
 
 
87
<code>$this->load->helper('<var>url</var>');</code>
 
88
 
 
89
<p>A helper can be loaded anywhere within your controller functions (or even within your View files, although that's not a good practice),
 
90
as long as you load it before you use it.  You can load your helpers in your controller constructor so that they become available
 
91
automatically in any function, or you can load a helper in a specific function that needs it.</p>
 
92
 
 
93
<p class="important">Note: The Helper loading function above does not return a value, so don't try to assign it to a variable.  Just use it as shown.</p>
 
94
 
 
95
 
 
96
<h2>Loading Multiple Helpers</h2>
 
97
 
 
98
<p>If you need to load more than one helper you can specify them in an array, like this:</p>
 
99
 
 
100
<code>$this->load->helper( <samp>array(</samp>'<var>helper1</var>', '<var>helper2</var>', '<var>helper3</var>'<samp>)</samp> );</code>
 
101
 
 
102
<h2>Auto-loading Helpers</h2>
 
103
 
 
104
<p>If you find that you need a particular helper globally throughout your application, you can tell CodeIgniter to auto-load it during system initialization.
 
105
This is done by opening the <var>application/config/autoload.php</var> file and adding the helper to the autoload array.</p>
 
106
 
 
107
 
 
108
<h2>Using a Helper</h2>
 
109
 
 
110
<p>Once you've loaded the Helper File containing the function you intend to use, you'll call it the way you would a standard PHP function.</p>
 
111
 
 
112
<p>For example, to create a link using the <dfn>anchor()</dfn> function in one of your view files you would do this:</p>
 
113
 
 
114
<code>&lt;?php echo anchor('blog/comments', 'Click Here');?&gt;</code>
 
115
 
 
116
<p>Where "Click Here" is the name of the link, and "blog/comments" is the URI to the controller/function you wish to link to.</p>
 
117
 
 
118
<h2>"Extending" Helpers</h2>
 
119
 
 
120
<p>To "extend" Helpers, create a file in your <dfn>application/helpers/</dfn> folder with an identical name to the existing Helper, but prefixed with <kbd>MY_</kbd> (this item is configurable.  See below.).</p>
 
121
 
 
122
<p>If all you need to do is add some functionality to an existing helper - perhaps add a function or two, or change how a particular
 
123
        helper function operates - then it's overkill to replace the entire helper with your version.  In this case it's better to simply
 
124
        "extend" the Helper.  The term "extend" is used loosely since Helper functions are procedural and discrete and cannot be extended
 
125
        in the traditional programmatic sense.  Under the hood, this gives you the ability to add to the functions a Helper provides,
 
126
        or to modify how the native Helper functions operate.</p>
 
127
 
 
128
<p>For example, to extend the native <kbd>Array Helper</kbd> you'll create a file named <dfn>application/helpers/</dfn><kbd>MY_array_helper.php</kbd>, and add or override functions:</p>
 
129
 
 
130
<code>
 
131
// any_in_array() is not in the Array Helper, so it defines a new function<br />
 
132
function any_in_array($needle, $haystack)<br />
 
133
{<br />
 
134
&nbsp;&nbsp;&nbsp;&nbsp;$needle = (is_array($needle)) ? $needle : array($needle);<br />
 
135
        <br />
 
136
&nbsp;&nbsp;&nbsp;&nbsp;foreach ($needle as $item)<br />
 
137
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
 
138
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (in_array($item, $haystack))<br />
 
139
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
 
140
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<br />
 
141
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
 
142
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
 
143
        <br />
 
144
&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<br />
 
145
}<br />
 
146
<br />
 
147
// random_element() is included in Array Helper, so it overrides the native function<br />
 
148
function random_element($array)<br />
 
149
{<br />
 
150
&nbsp;&nbsp;&nbsp;&nbsp;shuffle($array);<br />
 
151
&nbsp;&nbsp;&nbsp;&nbsp;return array_pop($array);<br />
 
152
}<br />
 
153
</code>
 
154
 
 
155
<h3>Setting Your Own Prefix</h3>
 
156
 
 
157
<p>The filename prefix for "extending" Helpers is the same used to extend libraries and Core classes.  To set your own prefix, open your <dfn>application/config/config.php</dfn> file and look for this item:</p>
 
158
 
 
159
<code>$config['subclass_prefix'] = 'MY_';</code>
 
160
 
 
161
<p>Please note that all native CodeIgniter libraries are prefixed with <kbd>CI_</kbd> so DO NOT use that as your prefix.</p>
 
162
 
 
163
 
 
164
<h2>Now What?</h2>
 
165
 
 
166
<p>In the Table of Contents you'll find a list of all the available Helper Files.  Browse each one to see what they do.</p>
 
167
 
 
168
 
 
169
</div>
 
170
<!-- END CONTENT -->
 
171
 
 
172
 
 
173
<div id="footer">
 
174
<p>
 
175
Previous Topic:&nbsp;&nbsp;<a href="models.html">Models</a>
 
176
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
 
177
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
 
178
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
 
179
Next Topic:&nbsp;&nbsp;<a href="libraries.html">Using Libraries</a>
 
180
</p>
 
181
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
 
182
</div>
 
183
 
 
184
</body>
 
185
</html>
 
 
b'\\ No newline at end of file'