blob: f4e607f5866639f172e54f42e6de348764e12b35 [file] [log] [blame]
adminb0dd10f2006-08-25 17:25:49 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Derek Allardafd99ac2008-01-19 19:59:14 +00002<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
adminb0dd10f2006-08-25 17:25:49 +00003<head>
4
Derek Allard404e35d2007-08-07 01:00:45 +00005<title>CodeIgniter User Guide : Helper Functions</title>
adminb0dd10f2006-08-25 17:25:49 +00006
7<style type='text/css' media='all'>@import url('../userguide.css');</style>
8<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
9
admin17a890d2006-09-27 20:42:42 +000010<script type="text/javascript" src="../nav/nav.js"></script>
admin2296fc32006-09-27 21:07:02 +000011<script type="text/javascript" src="../nav/prototype.lite.js"></script>
admin17a890d2006-09-27 20:42:42 +000012<script type="text/javascript" src="../nav/moo.fx.js"></script>
Derek Allardb3412372007-10-25 12:15:16 +000013<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
adminb0dd10f2006-08-25 17:25:49 +000014
15<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
16<meta http-equiv='expires' content='-1' />
17<meta http-equiv= 'pragma' content='no-cache' />
18<meta name='robots' content='all' />
Derek Allard3d879d52008-01-18 19:41:32 +000019<meta name='author' content='ExpressionEngine Dev Team' />
Derek Allardd2df9bc2007-04-15 17:41:17 +000020<meta name='description' content='CodeIgniter User Guide' />
adminb0dd10f2006-08-25 17:25:49 +000021
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.jpg" width="153" height="44" 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>
Derek Allard39b622d2008-01-16 21:10:09 +000031<td><h1>CodeIgniter User Guide Version 1.6.0</h1></td>
adminc0d5d522006-10-30 19:40:35 +000032<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
adminb0dd10f2006-08-25 17:25:49 +000033</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">
Derek Allardd2df9bc2007-04-15 17:41:17 +000043<a href="http://www.codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
adminb0dd10f2006-08-25 17:25:49 +000044<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
45Helper Functions
46</td>
Derek Allardbc030912007-06-24 18:25:29 +000047<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>
adminb0dd10f2006-08-25 17:25:49 +000048</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
61category. There are <dfn>URL Helpers</dfn>, that assist in creating links, there are <dfn>Form Helpers</dfn>
62that 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
Derek Allardd2df9bc2007-04-15 17:41:17 +000066<p>Unlike most other systems in CodeIgniter, Helpers are not written in an Object Oriented format. They are simple, procedural functions.
adminb0dd10f2006-08-25 17:25:49 +000067Each helper function performs one specific task, with no dependence on other functions.</p>
68
Derek Allardd2df9bc2007-04-15 17:41:17 +000069<p>CodeIgniter does not load Helper Files by default, so the first step in using
adminb0dd10f2006-08-25 17:25:49 +000070a 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
admin7c5595f2006-09-20 23:35:42 +000072<p>Helpers are typically stored in your <dfn>system/helpers</dfn> directory. Alternately you can create a folder called <kbd>helpers</kbd> inside
Derek Allardd2df9bc2007-04-15 17:41:17 +000073your <kbd>application</kbd> folder and store them there. CodeIgniter will look first in your <dfn>system/application/helpers</dfn>
admine334c472006-10-21 19:44:22 +000074directory. If the directory does not exist or the specified helper is not located there CI will instead look in your global
admin7c5595f2006-09-20 23:35:42 +000075<dfn>system/helpers</dfn> folder.</p>
76
77
adminb0dd10f2006-08-25 17:25:49 +000078<h2>Loading a Helper</h2>
79
80<p>Loading a helper file is quite simple using the following function:</p>
81
82<code>$this->load->helper('<var>name</var>');</code>
83
84<p>Where <var>name</var> is the file name of the helper, without the .php file extension or the "helper" part.</p>
85
86<p>For example, to load the <dfn>URL Helper</dfn> file, which is named <var>url_helper.php</var>, you would do this:</p>
87
88<code>$this->load->helper('<var>url</var>');</code>
89
90<p>A helper can be loaded anywhere within your controller functions (or even within your View files, although that's not a good practice),
91as long as you load it before you use it. You can load your helpers in your controller constructor so that they become available
92automatically in any function, or you can load a helper in a specific function that needs it.</p>
93
94<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>
95
96
97<h2>Loading Multiple Helpers</h2>
98
99<p>If you need to load more than one helper you can specify them in an array, like this:</p>
100
101<code>$this->load->helper( <samp>array(</samp>'<var>helper1</var>', '<var>helper2</var>', '<var>helper3</var>'<samp>)</samp> );</code>
102
103<h2>Auto-loading Helpers</h2>
104
Derek Allardd2df9bc2007-04-15 17:41:17 +0000105<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.
adminb0dd10f2006-08-25 17:25:49 +0000106This is done by opening the <var>application/config/autoload.php</var> file and adding the helper to the autoload array.</p>
107
108
109<h2>Using a Helper</h2>
110
111<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>
112
113<p>For example, to create a link using the <dfn>anchor()</dfn> function in one of your view files you would do this:</p>
114
115<code>&lt;?=anchor('blog/comments', 'Click Here');?&gt;</code>
116
117<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>
118
119
120<h2>Now What?</h2>
121
122<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>
123
124
125</div>
126<!-- END CONTENT -->
127
128
129<div id="footer">
130<p>
Derek Allard9da4dbc2007-04-03 11:39:35 +0000131Previous Topic:&nbsp;&nbsp;<a href="models.html">Models</a>
adminb0dd10f2006-08-25 17:25:49 +0000132&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
133<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
134<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
135Next Topic:&nbsp;&nbsp;<a href="plugins.html">Plugins</a>
Derek Allardc6441282007-07-04 23:54:32 +0000136</p>
Derek Allardd2df9bc2007-04-15 17:41:17 +0000137<p><a href="http://www.codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
adminb0dd10f2006-08-25 17:25:49 +0000138</div>
139
140</body>
141</html>