diff options
author | philsturgeon <devnull@localhost> | 2011-06-15 17:00:03 +0200 |
---|---|---|
committer | philsturgeon <devnull@localhost> | 2011-06-15 17:00:03 +0200 |
commit | 0fe54dbaf89a8337d27b9203f74891cf1a799715 (patch) | |
tree | ce168b3c24788e5a4a31e0cc65b64f54e25ee8a2 /user_guide | |
parent | 3a43c7adae7737d68a0eeca663cc2dd3fc5b0cf3 (diff) | |
parent | 3ef65bd7491f847fecdab1acc9687f0e90eee09b (diff) |
Merged Alex Bilbies MSSQL changes.
Diffstat (limited to 'user_guide')
138 files changed, 1818 insertions, 1287 deletions
diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 4129046ff..945fafb65 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="./toc.html">Table of Contents Page</a></td> </tr> </table> @@ -59,17 +59,99 @@ Change Log <p>The <img src="images/reactor-bullet.png" width="16" height="16" alt="Reactor Marker" /> indicates items that were contributed to CodeIgniter via CodeIgniter Reactor.</p> +<h2>Version 2.0.3</h2> +<p>Release Date: Not Released</p> + +<ul> + <li>Security + <ul> + <li>An improvement was made to the MySQL and MySQLi drivers to prevent exposing a potential vector for SQL injection on sites using multi-byte character sets in the database client connection. <p>An incompatibility in PHP versions < 5.2.3 and MySQL < 5.0.7 with <em>mysql_set_charset()</em> creates a situation where using multi-byte character sets on these environments may potentially expose a SQL injection attack vector. Latin-1, UTF-8, and other "low ASCII" character sets are unaffected on all environments.</p> <p class="critical">If you are running or considering running a multi-byte character set for your database connection, please pay close attention to the server environment you are deploying on to ensure you are not vulnerable.</p></li> + </ul> + <li>General Changes + <ul> + <li>Fixed a bug where there was a misspelling within a code comment in the index.php file.</li> + <li>Added Session Class userdata to the output profiler. Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.</li> + <li>Removed internal usage of the <samp>EXT</samp> constant.</li> + <li>Visual updates to the welcome_message view file and default error templates. Thanks to <a href="https://bitbucket.org/danijelb">danijelb</a> for the pull request.</li> + <li>Added <samp>insert_batch()</samp> function to the PostgreSQL database driver. Thanks to epallerols for the patch.</li> + + </ul> + </li> + <li>Helpers + <ul> + <li>Added an optional third parameter to <samp>heading()</samp> which allows adding html attributes to the rendered heading tag.</li> + </ul> + </li> + <li>Libraries + <ul> + <li>Altered Session to use a longer match against the user_agent string. See upgrade notes if using database sessions.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.0.3</h3> +<ul> + <li class="reactor">Added ENVIRONMENT to reserved constants. (Reactor #196)</li> + <li class="reactor">Changed server check to ensure SCRIPT_NAME is defined. (Reactor #57)</li> + <li class="reactor">Removed <samp>APPPATH.'third_party'</samp> from the packages autoloader to negate needless file stats if no packages exist or if the developer does not load any other packages by default.</li> + <li>Fixed a bug (Reactor #231) where Sessions Library database table example SQL did not contain an index on last_activity. See <a href="installation/upgrade_203.html">Upgrade Notes</a>.</li> + <li>Fixed a bug (Reactor #229) where the Sessions Library example SQL in the documentation contained incorrect SQL.</li> + <li>Fixed a bug (Core #340) where when passing in the second parameter to $this->db->select(), column names in subsequent queries would not be properly escaped.</li> +</ul> + +<h2>Version 2.0.2</h2> +<p>Release Date: April 7, 2011<br /> +Hg Tag: v2.0.2</p> + +<ul> + <li>General changes + <ul> + <li>The <a href="./libraries/security.html">Security library</a> was moved to the core and is now loaded automatically. Please remove your loading calls.</li> + <li>The CI_SHA class is now deprecated. All supported versions of PHP provide a <kbd>sha1()</kbd> function.</li> + <li class="reactor"><kbd>constants.php</kbd> will now be loaded from the environment folder if available.</li> + <li class="reactor">Added language key error logging</li> + <li class="reactor">Made Environment Support optional. Comment out or delete the constant to stop environment checks.</li> + <li class="reactor">Added Environment Support for Hooks.</li> + <li class="reactor">Added CI_ Prefix to the <a href="libraries/caching.html">Cache driver</a>.</li> + <li class="reactor">Added <a href="./general/cli.html">CLI usage</a> documentation.</li> + </ul> + </li> + <li>Helpers + <ul> + <li>Removed the previously deprecated <kbd>dohash()</kbd> from the <a href="./helpers/security_helper.html">Security helper</a>; use <kbd>do_hash()</kbd> instead.</li> + <li class="reactor">Changed the 'plural' function so that it doesn't ruin the captalization of your string. It also take into consideration acronyms which are all caps.</li> + </ul> + </li> + <li>Database + <ul> + <li class="reactor"><kbd>$this->db->count_all_results()</kbd> will now return an integer instead of a string.</li> + </ul> + </li> +</ul> + +<h3>Bug fixes for 2.0.2</h3> +<ul> + <li class="reactor">Fixed a bug (Reactor #145) where the Output Library had parse_exec_vars set to protected.</li> + <li class="reactor">Fixed a bug (Reactor #80) where is_really_writable would create an empty file when on Windows or with safe_mode enabled.</li> + <li class="reactor">Fixed various bugs with User Guide.</li> + <li class="reactor">Added is_cli_request() method to documentation for <a href="libraries/input.html">Input class</a>.</li> + <li class="reactor">Added form_validation_lang entries for <kbd>decimal</kbd>, <kbd>less_than</kbd> and <kbd>greater_than</kbd>.</li> + <li class="reactor"><a href="https://bitbucket.org/ellislab/codeigniter-reactor/issue/153/escape-str-bug-in-mssql-driver">Fixed issue #153</a> Escape Str Bug in MSSQL driver.</li> + <li class="reactor"><a href="https://bitbucket.org/ellislab/codeigniter-reactor/issue/172/bug-in-chrome-and-form_open-in-201">Fixed issue #172</a> Google Chrome 11 posts incorrectly when action is empty.</li> + +</ul> + <h2>Version 2.0.1</h2> -<p>Release Date: n/a<br /> -Hg Tag: n/a</p> +<p>Release Date: March 15, 2011<br /> +Hg Tag: v2.0.1</p> <ul> <li>General changes <ul> <li>Added <kbd>$config['cookie_secure']</kbd> to the config file to allow requiring a secure (HTTPS) in order to set cookies.</li> <li class="reactor">Added the constant <kbd>CI_CORE</kbd> to help differentiate between Core: TRUE and Reactor: FALSE.</li> - <li class="reactor">Added an <kbd>ENVIRONMENT</kbd> constant in index.php, which affects PHP error reporting settings, and optionally, - which configuration files are loaded (see below). Read more on the <a href="general/environments.html">Handling Environments</a> page.</li> + <li class="reactor">Added an <kbd>ENVIRONMENT</kbd> constant in index.php, which affects PHP error reporting settings, and optionally, + which configuration files are loaded (see below). Read more on the <a href="general/environments.html">Handling Environments</a> page.</li> <li class="reactor">Added support for <a href="libraries/config.html#environments">environment-specific</a> configuration files.</li> </ul> </li> @@ -82,6 +164,11 @@ Hg Tag: n/a</p> <li class="reactor"><a href="libraries/output.html">Output Class</a> will now support method chaining.</li> </ul> </li> + <li>Helpers + <ul> + <li class="reactor">Changed the logic for <kbd>form_open()</kbd> in <a href="helpers/form_helper.html">Form helper</a>. If no value is passed it will submit to the current URL.</li> + </ul> + </li> </ul> <h3>Bug fixes for 2.0.1</h3> @@ -101,15 +188,15 @@ Hg Tag: v2.0.0</p> <ul> <li>PHP 4 support is removed. CodeIgniter now requires PHP 5.1.6.</li> <li>Scaffolding, having been deprecated for a number of versions, has been removed.</li> - <li>Plugins have been removed, in favor of Helpers. The CAPTCHA plugin has been converted to a Helper and <a href="./helpers/captcha_helper.html">documented</a>. The JavaScript calendar plugin was removed due to the ready availability of great JavaScript calendars, particularly with jQuery.</li> + <li>Plugins have been removed, in favor of Helpers. The CAPTCHA plugin has been converted to a Helper and <a href="./helpers/captcha_helper.html">documented</a>. The JavaScript calendar plugin was removed due to the ready availability of great JavaScript calendars, particularly with jQuery.</li> <li>Added new special Library type: <a href="./general/drivers.html">Drivers</a>.</li> - <li class="reactor">Added full query-string support. See the config file for details.</li> + <li class="reactor">Added full query-string support. See the config file for details.</li> <li>Moved the application folder outside of the system folder.</li> <li>Moved system/cache and system/logs directories to the application directory.</li> <li>Added routing overrides to the main index.php file, enabling the normal routing to be overridden on a per "index" file basis.</li> - <li>Added the ability to set config values (or override config values) directly from data set in the main index.php file. This allows a single application to be used with multiple front controllers, each having its own config values.</li> + <li>Added the ability to set config values (or override config values) directly from data set in the main index.php file. This allows a single application to be used with multiple front controllers, each having its own config values.</li> <li>Added <kbd>$config['directory_trigger']</kbd> to the config file so that a controller sub-directory can be specified when running _GET strings instead of URI segments.</li> - <li>Added ability to set "Package" paths - specific paths where the Loader and Config classes should try to look first for a requested file. This allows distribution of sub-applications with their own libraries, models, config files, etc. in a single "package" directory. See the <a href="libraries/loader.html">Loader class</a> documentation for more details.</li> + <li>Added ability to set "Package" paths - specific paths where the Loader and Config classes should try to look first for a requested file. This allows distribution of sub-applications with their own libraries, models, config files, etc. in a single "package" directory. See the <a href="libraries/loader.html">Loader class</a> documentation for more details.</li> <li>In-development code is now hosted at <a href="http://bitbucket.org/ellislab/codeigniter-reactor/">BitBucket</a>.</li> <li>Removed the deprecated Validation Class.</li> <li>Added CI_ Prefix to all core classes.</li> @@ -176,7 +263,7 @@ Hg Tag: v2.0.0</p> <li>Added <kbd>convert_accented_characters()</kbd> function to <a href="./helpers/text_helper.html">text helper</a>.</li> <li>Added accept-charset to the list of inserted attributes of <kbd>form_open()</kbd> in the <a href="helpers/form_helper.html">Form Helper</a>.</li> <li>Deprecated the <kbd>dohash()</kbd> function in favour of <kbd>do_hash()</kbd> for naming consistency.</li> - <li>Non-backwards compatible change made to <kbd>get_dir_file_info()</kbd> in the <a href="helpers/file_helper.html">File Helper</a>. No longer recurses + <li>Non-backwards compatible change made to <kbd>get_dir_file_info()</kbd> in the <a href="helpers/file_helper.html">File Helper</a>. No longer recurses by default so as to encourage responsible use (this function can cause server performance issues when used without caution).</li> <li>Modified the second parameter of <kbd>directory_map()</kbd> in the <a href="helpers/directory_helper.html">Directory Helper</a> to accept an integer to specify recursion depth.</li> <li>Modified <kbd>delete_files()</kbd> in the <a href="helpers/file_helper.html">File Helper</a> to return FALSE on failure.</li> @@ -195,7 +282,7 @@ Hg Tag: v2.0.0</p> <li>Other Changes <ul> <li>Added an optional second parameter to <kbd>show_404()</kbd> to disable logging.</li> - <li>Updated loader to automatically apply the sub-class prefix as an option when loading classes. Class names can be prefixed with the standard "CI_" or the same prefix as the subclass prefix, or no prefix at all.</li> + <li>Updated loader to automatically apply the sub-class prefix as an option when loading classes. Class names can be prefixed with the standard "CI_" or the same prefix as the subclass prefix, or no prefix at all.</li> <li>Increased randomness with <kbd>is_really_writable()</kbd> to avoid file collisions when hundreds or thousands of requests occur at once.</li> <li>Switched some DIR_WRITE_MODE constant uses to FILE_WRITE_MODE where files and not directories are being operated on.</li> <li><kbd>get_mime_by_extension()</kbd> is now case insensitive.</li> @@ -405,15 +492,15 @@ Hg Tag: 1.7.0</p> <ul> <li>Libraries <ul> - <li>Added a new <a href="libraries/form_validation.html">Form Validation Class</a>. It simplifies setting rules and field names, supports arrays as field names, allows groups of validation rules to be saved in a config file, and adds some helper functions for use in view files. <strong>Please note that the old Validation class is now deprecated</strong>. We will leave it in the library folder for some time so that existing applications that use it will not break, but you are encouraged to migrate to the new version.</li> + <li>Added a new <a href="libraries/form_validation.html">Form Validation Class</a>. It simplifies setting rules and field names, supports arrays as field names, allows groups of validation rules to be saved in a config file, and adds some helper functions for use in view files. <strong>Please note that the old Validation class is now deprecated</strong>. We will leave it in the library folder for some time so that existing applications that use it will not break, but you are encouraged to migrate to the new version.</li> <li>Updated the <a href="libraries/sessions.html">Sessions class</a> so that any custom data being saved gets stored to a database rather than the session cookie (assuming you are using a database to store session data), permitting much more data to be saved.</li> <li>Added the ability to store libraries in subdirectories within either the main "libraries" or the local application "libraries" folder. Please see the <a href="libraries/loader.html">Loader class</a> for more info.</li> <li>Added the ability to assign library objects to your own variable names when you use <kbd>$this->load->library()</kbd>. Please see the <a href="libraries/loader.html">Loader class</a> for more info.</li> <li>Added controller class/method info to <a href="general/profiling.html">Profiler class</a> and support for multiple database connections.</li> <li>Improved the "auto typography" feature and moved it out of the helper into its own <a href="libraries/typography.html">Typography Class</a>.</li> <li>Improved performance and accuracy of <kbd>xss_clean()</kbd>, including reduction of false positives on image/file tests.</li> - <li>Improved <a href="./libraries/parser.html">Parser class</a> to allow multiple calls to the parse() function. The output of each is appended in the output.</li> - <li>Added <dfn>max_filename</dfn> option to set a file name length limit in the <a href="libraries/file_uploading.html">File Upload Class</a>.</li> + <li>Improved <a href="./libraries/parser.html">Parser class</a> to allow multiple calls to the parse() function. The output of each is appended in the output.</li> + <li>Added <dfn>max_filename</dfn> option to set a file name length limit in the <a href="libraries/file_uploading.html">File Upload Class</a>.</li> <li>Added <dfn>set_status_header()</dfn> function to <a href="libraries/output.html">Output class</a>.</li> <li>Modified <a href="libraries/pagination.html">Pagination</a> class to only output the "First" link when the link for page one would not be shown.</li> <li>Added support for mb_strlen in the <a href="libraries/form_validation.html">Form Validation</a> class so that multi-byte languages will calculate string lengths properly.</li> @@ -421,8 +508,8 @@ Hg Tag: 1.7.0</p> </li> <li>Database <ul> - <li>Improved Active Record class to allow full path column and table names: hostname.database.table.column. Also improved the alias handling.</li> - <li>Improved how table and column names are escaped and prefixed. It now honors full path names when adding prefixes and escaping.</li> + <li>Improved Active Record class to allow full path column and table names: hostname.database.table.column. Also improved the alias handling.</li> + <li>Improved how table and column names are escaped and prefixed. It now honors full path names when adding prefixes and escaping.</li> <li>Added Active Record caching feature to "update" and "delete" functions.</li> <li>Added removal of non-printing control characters in <kbd>escape_str()</kbd> of DB drivers that do not have native PHP escaping mechanisms (mssql, oci8, odbc), to avoid potential SQL errors, and possible sources of SQL injection.</li> <li>Added port support to MySQL, MySQLi, and MS SQL database drivers.</li> @@ -431,10 +518,10 @@ Hg Tag: 1.7.0</p> </li> <li>Helpers <ul> - <li>Added several new "setting" functions to the <a href="helpers/form_helper.html">Form helper</a> that allow POST data to be retrieved and set into forms. These are intended to be used on their own, or with the new <a href="libraries/form_validation.html">Form Validation Class</a>.</li> - <li>Added <kbd>current_url()</kbd> and uri_segments() to <a href="helpers/url_helper.html">URL helper</a>.</li> + <li>Added several new "setting" functions to the <a href="helpers/form_helper.html">Form helper</a> that allow POST data to be retrieved and set into forms. These are intended to be used on their own, or with the new <a href="libraries/form_validation.html">Form Validation Class</a>.</li> + <li>Added <kbd>current_url()</kbd> and uri_segments() to <a href="helpers/url_helper.html">URL helper</a>.</li> <li>Altered <kbd>auto_link()</kbd> in the <a href="helpers/url_helper.html">URL helper</a> so that email addresses with "+" included will be linked.</li> - <li>Added <kbd>meta()</kbd> function to <a href="helpers/html_helper.html">HTML helper</a>.</li> + <li>Added <kbd>meta()</kbd> function to <a href="helpers/html_helper.html">HTML helper</a>.</li> <li>Improved accuracy of calculations in <a href="helpers/number_helper.html">Number helper</a>.</li> <li>Removed added newlines ("\n") from most form and html helper functions.</li> <li>Tightened up validation in the <a href="helpers/date_helper.html">Date helper</a> function <kbd>human_to_unix()</kbd>, and eliminated the POSIX regex.</li> @@ -476,10 +563,10 @@ Hg Tag: 1.7.0</p> <li>Fixed Oracle bug (#3306) that was preventing multiple queries in one action.</li> <li>Fixed ODBC bug that was ignoring connection params due to its use of a constructor.</li> <li>Fixed a DB driver bug with num_rows() that would cause an error with the Oracle driver.</li> - <li>Fixed MS SQL bug (#4915). Added brackets around database name in MS SQL driver when selecting the database, in the event that reserved characters are used in the name.</li> + <li>Fixed MS SQL bug (#4915). Added brackets around database name in MS SQL driver when selecting the database, in the event that reserved characters are used in the name.</li> <li>Fixed a DB caching bug (4718) in which the path was incorrect when no URI segments were present.</li> - <li>Fixed Image_lib class bug #4562. A path was not defined for NetPBM.</li> - <li>Fixed Image_lib class bug #4532. When cropping an image with identical height/width settings on output, a copy is made.</li> + <li>Fixed Image_lib class bug #4562. A path was not defined for NetPBM.</li> + <li>Fixed Image_lib class bug #4532. When cropping an image with identical height/width settings on output, a copy is made.</li> <li>Fixed DB_driver bug (4900), in which a database error was not being logged correctly.</li> <li>Fixed DB backup bug in which field names were not being escaped.</li> <li>Fixed a DB Active Record caching bug in which multiple calls to cached data were not being honored.</li> @@ -720,8 +807,8 @@ Hg Tag: 1.6.1</p> <ul> <li>Added <kbd>protect_identifiers()</kbd> in <a href="./database/active_record.html">Active Record</a>.</li> <li>All AR queries are backticked if appropriate to the database.</li> - <li>Added <kbd>where_in()</kbd>, <kbd>or_where_in()</kbd>, <kbd>where_not_in()</kbd>, <kbd>or_where_not_in()</kbd>, <kbd>not_like()</kbd> and <kbd>or_not_like()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li> - <li>Added support for <kbd>limit()</kbd> into <kbd>update()</kbd> and <kbd>delete()</kbd> statements in <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added <kbd>where_in()</kbd>, <kbd>or_where_in()</kbd>, <kbd>where_not_in()</kbd>, <kbd>or_where_not_in()</kbd>, <kbd>not_like()</kbd> and <kbd>or_not_like()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li> + <li>Added support for <kbd>limit()</kbd> into <kbd>update()</kbd> and <kbd>delete()</kbd> statements in <a href="./database/active_record.html">Active Record</a>.</li> <li>Added <kbd>empty_table()</kbd> and <kbd>truncate_table()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li> <li>Added the ability to pass an array of tables to the <kbd>delete()</kbd> statement in <a href="./database/active_record.html">Active Record</a>.</li> <li>Added <kbd>count_all_results()</kbd> function to <a href="./database/active_record.html">Active Record</a>.</li> @@ -740,7 +827,7 @@ Hg Tag: 1.6.1</p> <li>Added $this->db->dbprefix() to manually add database prefixes.</li> <li>Added 'random' as an <kbd>order_by()</kbd> option , and removed "rand()" as a listed option as it was MySQL only.</li> <li>Added a check for NULL fields in the MySQL database backup utility.</li> - <li>Added "constrain_by_prefix" parameter to db->list_table() function. If set to TRUE it will limit the result to only table names with the current prefix.</li> + <li>Added "constrain_by_prefix" parameter to db->list_table() function. If set to TRUE it will limit the result to only table names with the current prefix.</li> <li>Deprecated from Active Record; <kbd>getwhere()</kbd> for <kbd>get_where()</kbd>; <kbd>groupby()</kbd> for <kbd>group_by()</kbd>; <kbd>havingor()</kbd> for <kbd>having_or()</kbd>; <kbd>orderby()</kbd> for <kbd>order_by</kbd>; <kbd>orwhere()</kbd> for <kbd>or_where()</kbd>; and <kbd>orlike()</kbd> for <kbd>or_like()</kbd>.</li> <li>Modified <kbd>csv_from_result()</kbd> to output CSV data more in the spirit of basic rules of RFC 4180.</li> <li>Added 'char_set' and 'dbcollat' database configuration settings, to explicitly set the client communication properly.</li> @@ -859,7 +946,7 @@ Hg Tag: 1.6.1</p> <li>Fixed a bug in Validation where <kbd>valid_ip()</kbd> wasn't called properly.</li> <li>Fixed a bug in Validation where individual error messages for checkboxes wasn't supported.</li> <li>Fixed a bug in captcha calling an invalid PHP function.</li> - <li>Fixed a bug in the cookie helper "set_cookie" function. It was not honoring the config settings.</li> + <li>Fixed a bug in the cookie helper "set_cookie" function. It was not honoring the config settings.</li> <li>Fixed a bug that was making validation callbacks required even when not set as such.</li> <li>Fixed a bug in the XML-RPC library so if a type is specified, a more intelligent decision is made as to the default type.</li> <li>Fixed an example of comma-separated emails in the email library documentation.</li> @@ -871,7 +958,7 @@ Hg Tag: 1.6.1</p> <li>Fixed a typo in the docblock comments that had CodeIgniter spelled CodeIgnitor.</li> <li>Fixed a typo in the <a href="./helpers/string_helper.html">String Helper</a> (uniquid changed to uniqid).</li> <li>Fixed typos in the email Language class (email_attachment_unredable, email_filed_smtp_login), and FTP Class (ftp_unable_to_remame).</li> - <li>Added a stripslashes() into the Upload Library.</li> + <li>Added a stripslashes() into the Upload Library.</li> <li>Fixed a series of grammatical and spelling errors in the language files.</li> <li>Fixed assorted user guide typos.</li> </ul> @@ -883,10 +970,10 @@ Hg Tag: 1.6.1</p> <li>Added array to string into the <a href="general/profiling.html">profiler</a>.</li> <li>Added some additional mime types in application/config/mimes.php.</li> <li>Added filename_security() method to <a href="./libraries/input.html">Input library</a>.</li> - <li>Added some additional arguments to the <a href="./helpers/inflector_helper.html">Inflection helper</a> singular() to compensate for words ending in "s". Also added a force parameter to pluralize().</li> - <li>Added $config['charset'] to the config file. Default value is 'UTF-8', used in some string handling functions.</li> + <li>Added some additional arguments to the <a href="./helpers/inflector_helper.html">Inflection helper</a> singular() to compensate for words ending in "s". Also added a force parameter to pluralize().</li> + <li>Added $config['charset'] to the config file. Default value is 'UTF-8', used in some string handling functions.</li> <li>Fixed MSSQL insert_id().</li> - <li>Fixed a logic error in the DB trans_status() function. It was incorrectly returning TRUE on failure and FALSE on success.</li> + <li>Fixed a logic error in the DB trans_status() function. It was incorrectly returning TRUE on failure and FALSE on success.</li> <li>Fixed a bug that was allowing multiple load attempts on extended classes.</li> <li>Fixed a bug in the bootstrap file that was incorrectly attempting to discern the full server path even when it was explicity set by the user.</li> <li>Fixed a bug in the escape_str() function in the MySQL driver.</li> @@ -902,7 +989,7 @@ Hg Tag: 1.6.1</p> <li>Fixed a bug where one could unset certain PHP superglobals by setting them via GET or POST data</li> <li>Fixed an undefined function error in the insert_id() function of the PostgreSQL driver</li> <li>Fixed various doc typos. </li> - <li>Documented two functions from the <a href="./helpers/string_helper.html">String helper </a> that were missing from the user guide: trim_slashes() and reduce_double_slashes().</li> + <li>Documented two functions from the <a href="./helpers/string_helper.html">String helper </a> that were missing from the user guide: trim_slashes() and reduce_double_slashes().</li> <li>Docs now validate to XHTML 1 transitional</li> <li>Updated the XSS Filtering to take into account the IE expression() ability and improved certain deletions to prevent possible exploits</li> <li>Modified the Router so that when Query Strings are Enabled, the controller trigger and function trigger values are sanitized for filename include security.</li> @@ -910,7 +997,7 @@ Hg Tag: 1.6.1</p> <li>Modified XSS Cleaning routine to be more performance friendly and compatible with PHP 5.2's new PCRE backtrack and recursion limits.</li> <li>Modified the <a href="./helpers/url_helper.html">URL Helper</a> to type cast the $title as a string in case a numeric value is supplied</li> <li>Modified Form Helper form_dropdown() to type cast the keys and values of the options array as strings, allowing numeric values to be properly set as 'selected'</li> - <li>Deprecated the use if <kbd>is_numeric()</kbd> in various places since it allows periods. Due to compatibility problems with <kbd>ctype_digit()</kbd>, making it unreliable in some installations, the following regular expression was used instead: <kbd>preg_match("/[^0-9]/", $n)</kbd></li> + <li>Deprecated the use if <kbd>is_numeric()</kbd> in various places since it allows periods. Due to compatibility problems with <kbd>ctype_digit()</kbd>, making it unreliable in some installations, the following regular expression was used instead: <kbd>preg_match("/[^0-9]/", $n)</kbd></li> <li>Deprecated: APPVER has been deprecated and replaced with CI_VERSION for clarity. </li> </ul> <h2>Version 1.5.3</h2> @@ -936,7 +1023,7 @@ Hg Tag: 1.6.1</p> <li>Fixed a bug in the <a href="./helpers/download_helper.html">download_helper</a> that was causing Internet Explorer to load rather than download </li> <li>Fixed a bug in the Active Record Join function that was not taking table prefixes into consideration.</li> <li>Removed unescaped variables in error messages of Input and Router classes</li> - <li>Fixed a bug in the Loader that was causing errors on Libraries loaded twice. A debug message is now silently made in the log. </li> + <li>Fixed a bug in the Loader that was causing errors on Libraries loaded twice. A debug message is now silently made in the log. </li> <li>Fixed a bug in the <a href="./helpers/form_helper.html">form helper</a> that gave textarea a value attribute </li> <li>Fixed a bug in the <a href="./libraries/image_lib.php">Image Library</a> that was ignoring resizing the same size image </li> <li>Fixed some doc typos.</li> @@ -989,10 +1076,10 @@ Hg Tag: 1.6.1</p> <li>Added <a href="./database/results.html">$query->free_result()</a> to database class.</li> <li>Added <a href="./database/fields.html">$query->list_fields()</a> function to database class</li> <li>Added <a href="./database/helpers.html">$this->db->platform()</a> function</li> -<li>Added new <a href="./helpers/file_helper.html">File Helper</a>: get_filenames()</li> -<li>Added new helper: <a href="./helpers/smiley_helper.html">Smiley Helper</a></li> -<li>Added support for <ul> and <ol> lists in the <a href="./helpers/html_helper.html">HTML Helper</a></li> -<li>Added the ability to rewrite <a href="./general/alternative_php.html">short tags</a> on-the-fly, converting them to standard PHP statements, for those servers that do not support short tags. This allows the cleaner syntax to be used regardless of whether it's supported by the server.</li> +<li>Added new <a href="./helpers/file_helper.html">File Helper</a>: get_filenames()</li> +<li>Added new helper: <a href="./helpers/smiley_helper.html">Smiley Helper</a></li> +<li>Added support for <ul> and <ol> lists in the <a href="./helpers/html_helper.html">HTML Helper</a></li> +<li>Added the ability to rewrite <a href="./general/alternative_php.html">short tags</a> on-the-fly, converting them to standard PHP statements, for those servers that do not support short tags. This allows the cleaner syntax to be used regardless of whether it's supported by the server.</li> <li>Added the ability to <a href="./general/managing_apps.html">rename or relocate the "application" folder</a>.</li> <li>Added more thorough initialization in the upload class so that all class variables are reset.</li> <li>Added "is_numeric" to validation, which uses the native PHP is_numeric function.</li> @@ -1000,7 +1087,7 @@ Hg Tag: 1.6.1</p> <li>Moved most of the functions in the Controller class into the Loader class, allowing fewer reserved function names for controllers when running under PHP 5.</li> <li>Updated the DB Result class to return an empty array when $query->result() doesn't produce a result.</li> <li>Updated the <dfn>input->cookie()</dfn> and <dfn>input->post()</dfn> functions in <a href="./libraries/input.html">Input Class</a> to permit arrays contained cookies that are arrays to be run through the XSS filter.</li> -<li>Documented three functions from the <a href="./libraries/validation.html">Validation class</a> that were missing from the user guide: set_select(), set_radio(), and set_checkbox().</li> +<li>Documented three functions from the <a href="./libraries/validation.html">Validation class</a> that were missing from the user guide: set_select(), set_radio(), and set_checkbox().</li> <li>Fixed a bug in the Email class related to SMTP Helo data.</li> <li>Fixed a bug in the word wrapping helper and function in the email class.</li> <li>Fixed a bug in the validation class.</li> @@ -1011,9 +1098,9 @@ Hg Tag: 1.6.1</p> <li>Fixed a pagination bug that was permitting negative values in the URL.</li> <li>Fixed an oversight in which the Loader class was not allowed to be extended.</li> <li>Changed <dfn>_get_config()</dfn> to <dfn>get_config()</dfn> since the function is not a private one.</li> -<li><strong>Deprecated "init" folder</strong>. Initialization happens automatically now. <a href="./general/creating_libraries.html">Please see documentation</a>.</li> -<li><strong>Deprecated</strong> $this->db->field_names() USE $this->db->list_fields()</li> -<li><strong>Deprecated</strong> the <dfn>$config['log_errors']</dfn> item from the config.php file. Instead, <dfn>$config['log_threshold']</dfn> can be set to "0" to turn it off.</li> +<li><strong>Deprecated "init" folder</strong>. Initialization happens automatically now. <a href="./general/creating_libraries.html">Please see documentation</a>.</li> +<li><strong>Deprecated</strong> $this->db->field_names() USE $this->db->list_fields()</li> +<li><strong>Deprecated</strong> the <dfn>$config['log_errors']</dfn> item from the config.php file. Instead, <dfn>$config['log_threshold']</dfn> can be set to "0" to turn it off.</li> </ul> @@ -1024,10 +1111,10 @@ Hg Tag: 1.6.1</p> <ul> <li>Added a new feature that passes URI segments directly to your function calls as parameters. See the <a href="./general/controllers.html">Controllers</a> page for more info.</li> -<li>Added support for a function named <dfn>_output()</dfn>, which when used in your controllers will received the final rendered output from the output class. More info in the <a href="controllers.html">Controllers</a> page.</li> +<li>Added support for a function named <dfn>_output()</dfn>, which when used in your controllers will received the final rendered output from the output class. More info in the <a href="controllers.html">Controllers</a> page.</li> <li>Added several new functions in the <a href="./libraries/uri.html">URI Class</a> to let you retrieve and manipulate URI segments that have been re-routed using the <a href="routing.html">URI Routing</a> feature. Previously, the URI class did not permit you to access any re-routed URI segments, but now it does.</li> <li>Added <a href="./libraries/output.html">$this->output->set_header()</a> function, which allows you to set server headers.</li> -<li>Updated plugins, helpers, and language classes to allow your <dfn>application</dfn> folder to contain its own plugins, helpers, and language folders. Previously they were always treated as global for your entire installation. If your application folder contains any of these resources they will be used <em>instead</em> the global ones.</li> +<li>Updated plugins, helpers, and language classes to allow your <dfn>application</dfn> folder to contain its own plugins, helpers, and language folders. Previously they were always treated as global for your entire installation. If your application folder contains any of these resources they will be used <em>instead</em> the global ones.</li> <li>Added <a href="./helpers/inflector_helper.html">Inflector helper</a>.</li> <li>Added <dfn>element()</dfn> function in the <a href="./helpers/array_helper.html">array helper</a>.</li> <li>Added <dfn>RAND()</dfn> to active record <dfn>orderby()</dfn> function.</li> @@ -1043,8 +1130,8 @@ Hg Tag: 1.6.1</p> <li>Fixed an oversight in the upload class. An item mentioned in the 1.4 changelog was missing.</li> <li>Added some code to allow email attachments to be reset when sending batches of email.</li> <li>Deprecated the <dfn>application/scripts</dfn> folder. It will continue to work for legacy users, but it is recommended that you create your own -<a href="./general/libraries.html">libraries</a> or <a href="./general/models.html">models</a> instead. It was originally added before CI had user libraries or models, but it's not needed anymore.</li> -<li>Deprecated the <dfn>$autoload['core']</dfn> item from the <kbd>autoload.php</kbd> file. Instead, please now use: <kbd>$autoload['libraries']</kbd></li> +<a href="./general/libraries.html">libraries</a> or <a href="./general/models.html">models</a> instead. It was originally added before CI had user libraries or models, but it's not needed anymore.</li> +<li>Deprecated the <dfn>$autoload['core']</dfn> item from the <kbd>autoload.php</kbd> file. Instead, please now use: <kbd>$autoload['libraries']</kbd></li> <li>Deprecated the following database functions: $this->db->smart_escape_str() and $this->db->fields().</li> </ul> @@ -1055,7 +1142,7 @@ Hg Tag: 1.6.1</p> <ul> <li>Added <a href="./general/hooks.html">Hooks</a> feature, enabling you to tap into and modify the inner workings of the framework without hacking the core files.</li> -<li>Added the ability to organize controller files <a href="./general/controllers.html">into sub-folders</a>. Kudos to Marco for <a href="http://codeigniter.com/forums/viewthread/627/">suggesting</a> this (and the next two) feature.</li> +<li>Added the ability to organize controller files <a href="./general/controllers.html">into sub-folders</a>. Kudos to Marco for <a href="http://codeigniter.com/forums/viewthread/627/">suggesting</a> this (and the next two) feature.</li> <li>Added regular expressions support for <a href="./general/routing.html">routing rules</a>.</li> <li>Added the ability to <a href="./general/controllers.html">remap function calls</a> within your controllers.</li> <li>Added the ability to <a href="./general/core_classes.html">replace core system classes</a> with your own classes.</li> @@ -1070,7 +1157,7 @@ Hg Tag: 1.6.1</p> <li>Updated the URI Protocol code to allow more options so that URLs will work more reliably in different environments.</li> <li>Updated the <dfn>form_open()</dfn> helper to allow the GET method to be used.</li> <li>Updated the MySQLi <dfn>execute()</dfn> function with some code to help prevent lost connection errors.</li> -<li>Updated the SQLite Driver to check for object support before attempting to return results as objects. If unsupported it returns an array.</li> +<li>Updated the SQLite Driver to check for object support before attempting to return results as objects. If unsupported it returns an array.</li> <li>Updated the Models loader function to allow multiple loads of the same model.</li> <li>Updated the MS SQL driver so that single quotes are escaped.</li> <li>Updated the Postgres and ODBC drivers for better compatibility.</li> @@ -1078,7 +1165,7 @@ Hg Tag: 1.6.1</p> <li>Removed some references that were interfering with PHP 4.4.1 compatibility.</li> <li>Removed backticks from Postgres class since these are not needed.</li> <li>Renamed <dfn>display()</dfn> to <dfn>_display()</dfn> in the Output class to make it clear that it's a private function.</li> -<li>Deprecated the hash() function due to a naming conflict with a native PHP function with the same name. Please use <kbd>dohash()</kbd> instead.</li> +<li>Deprecated the hash() function due to a naming conflict with a native PHP function with the same name. Please use <kbd>dohash()</kbd> instead.</li> <li>Fixed an bug that was preventing the input class from unsetting GET variables.</li> <li>Fixed a router bug that was making it too greedy when matching end segments.</li> <li>Fixed a bug that was preventing multiple discrete database calls.</li> @@ -1112,11 +1199,11 @@ Hg Tag: 1.6.1</p> <ul> <li>Models do <strong>not</strong> connect automatically to the database as of this version. <a href="./general/models.html">More info here</a>.</li> -<li>Updated the Sessions class to utilize the active record class when running session related queries. Previously the queries assumed MySQL syntax.</li> +<li>Updated the Sessions class to utilize the active record class when running session related queries. Previously the queries assumed MySQL syntax.</li> <li>Updated alternator() function to re-initialize when called with no arguments, allowing multiple calls.</li> <li>Fixed a bug in the active record "having" function.</li> <li>Fixed a problem in the validation class which was making checkboxes be ignored when required.</li> -<li>Fixed a bug in the word_limiter() helper function. It was cutting off the fist word.</li> +<li>Fixed a bug in the word_limiter() helper function. It was cutting off the fist word.</li> <li>Fixed a bug in the xss_clean function due to a PHP bug that affects some versions of html_entity_decode.</li> <li>Fixed a validation bug that was preventing rules from being set twice in one controller.</li> <li>Fixed a calendar bug that was not letting it use dynamically loaded languages.</li> @@ -1134,7 +1221,7 @@ Hg Tag: 1.6.1</p> <ul> <li>Changed the behavior of the validation class such that if a "required" rule is NOT explicitly stated for a field then all other tests get ignored.</li> <li>Fixed a bug in the Controller class that was causing it to look in the local "init" folder instead of the main system one.</li> -<li>Fixed a bug in the init_pagination file. The $config item was not being set correctly.</li> +<li>Fixed a bug in the init_pagination file. The $config item was not being set correctly.</li> <li>Fixed a bug in the auto typography helper that was causing inconsistent behavior.</li> <li>Fixed a couple bugs in the Model class.</li> <li>Fixed some documentation typos and errata.</li> @@ -1147,8 +1234,8 @@ Hg Tag: 1.6.1</p> <ul> <li>Added a <a href="./libraries/unit_testing.html">Unit Testing Library</a>.</li> -<li>Added the ability to pass objects to the <strong>insert()</strong> and <strong>update()</strong> database functions. -This feature enables you to (among other things) use your <a href="./general/models.html">Model class</a> variables to run queries with. See the Models page for details.</li> +<li>Added the ability to pass objects to the <strong>insert()</strong> and <strong>update()</strong> database functions. +This feature enables you to (among other things) use your <a href="./general/models.html">Model class</a> variables to run queries with. See the Models page for details.</li> <li>Added the ability to pass objects to the <a href="./general/views.html">view loading function</a>: $this->load->view('my_view', <var>$object</var>);</li> <li>Added <kbd>getwhere</kbd> function to <a href="./database/active_record.html">Active Record class</a>.</li> <li>Added <kbd>count_all</kbd> function to <a href="./database/active_record.html">Active Record class</a>.</li> @@ -1172,10 +1259,10 @@ This feature enables you to (among other things) use your <a href="./general/mo <li>Redesigned the database libraries to support additional RDBMs (Postgres, MySQLi, etc.).</li> <li>Redesigned the <a href="./database/active_record.html">Active Record class</a> to enable more varied types of queries with simpler syntax, and advanced features like JOINs.</li> <li>Added a feature to the database class that lets you run <a href="./database/call_function.html">custom function calls</a>.</li> -<li>Added support for <a href="controllers.html">private functions</a> in your controllers. Any controller function name that starts with an underscore will not be served by a URI request.</li> +<li>Added support for <a href="controllers.html">private functions</a> in your controllers. Any controller function name that starts with an underscore will not be served by a URI request.</li> <li>Added the ability to pass your own initialization parameters to your <a href="creating_libraries.html">custom core libraries</a> when using $this->load->library()</li> -<li>Added support for running standard <a href="urls.html">query string URLs</a>. These can be optionally enabled in your config file.</li> -<li>Added the ability to <a href="urls.html">specify a "suffix"</a>, which will be appended to your URLs. For example, you could add .html to your URLs, making them appear static. This feature is enabled in your config file.</li> +<li>Added support for running standard <a href="urls.html">query string URLs</a>. These can be optionally enabled in your config file.</li> +<li>Added the ability to <a href="urls.html">specify a "suffix"</a>, which will be appended to your URLs. For example, you could add .html to your URLs, making them appear static. This feature is enabled in your config file.</li> <li>Added a new error template for use with native PHP errors.</li> <li>Added "alternator" function in the <a href="./helpers/string_helper.html">string helpers</a>.</li> <li>Removed slashing from the input class. After much debate we decided to kill this feature.</li> @@ -1186,7 +1273,7 @@ all controller methods are prefixed with <dfn>_ci</dfn> to avoid controller coll <li>Deprecated: <var>$this->db->use_table()</var> has been deprecated. Please read the <a href="./database/active_record.html">Active Record</a> page for information.</li> <li>Deprecated: <var>$this->db->smart_escape_str()</var> has been deprecated. Please use this instead: <var>$this->db->escape()</var></li> <li>Fixed a bug in the exception handler which was preventing some PHP errors from showing up.</li> -<li>Fixed a typo in the URI class. $this->total_segment() should be plural: $this->total_segments()</li> +<li>Fixed a typo in the URI class. $this->total_segment() should be plural: $this->total_segments()</li> <li>Fixed some typos in the default calendar template</li> <li>Fixed some typos in the user guide</li> </ul> @@ -1204,12 +1291,12 @@ all controller methods are prefixed with <dfn>_ci</dfn> to avoid controller coll <ul> <li>Redesigned some internal aspects of the framework to resolve scoping problems that surfaced during the beta tests. The problem was most notable when instantiating classes in your constructors, particularly if those classes in turn did work in their constructors.</li> <li>Added a global function named <a href="ancillary_classes.html">get_instance()</a> allowing the main CodeIgniter object to be accessible throughout your own classes.</li> -<li>Added new <a href="./helpers/file_helper.html">File Helper</a>: delete_files()</li> -<li>Added new <a href="./helpers/url_helper.html">URL Helpers</a>: base_url(), index_page()</li> +<li>Added new <a href="./helpers/file_helper.html">File Helper</a>: delete_files()</li> +<li>Added new <a href="./helpers/url_helper.html">URL Helpers</a>: base_url(), index_page()</li> <li>Added the ability to create your own <a href="creating_libraries.html">core libraries</a> and store them in your local application directory.</li> <li>Added an <kbd>overwrite</kbd> option to the <a href="./libraries/file_uploading.html">Upload class</a>, enabling files to be overwritten rather than having the file name appended.</li> <li>Added Javascript Calendar plugin.</li> -<li>Added search feature to user guide. Note: This is done using Google, which at the time of this writing has not crawled all the pages of the docs.</li> +<li>Added search feature to user guide. Note: This is done using Google, which at the time of this writing has not crawled all the pages of the docs.</li> <li>Updated the parser class so that it allows tag pars within other tag pairs.</li> <li>Fixed a bug in the DB "where" function.</li> <li>Fixed a bug that was preventing custom config files to be auto-loaded.</li> diff --git a/user_guide/database/active_record.html b/user_guide/database/active_record.html index f2f33e212..566b260c9 100644 --- a/user_guide/database/active_record.html +++ b/user_guide/database/active_record.html @@ -27,7 +27,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -59,12 +59,12 @@ Active Record <p>CodeIgniter uses a modified version of the Active Record Database Pattern. This pattern allows information to be retrieved, inserted, and updated in your database with minimal scripting. In some cases only one or two lines of code are necessary to perform a database action. -CodeIgniter does not require that each database table be its own class file. It instead provides a more simplified interface.</p> +CodeIgniter does not require that each database table be its own class file. It instead provides a more simplified interface.</p> <p>Beyond simplicity, a major benefit to using the Active Record features is that it allows you to create database independent applications, since the query syntax -is generated by each database adapter. It also allows for safer queries, since the values are escaped automatically by the system.</p> +is generated by each database adapter. It also allows for safer queries, since the values are escaped automatically by the system.</p> -<p class="important"><strong>Note:</strong> If you intend to write your own queries you can disable this class in your database config file, allowing the core database library and adapter to utilize fewer resources.<br /></p> +<p class="important"><strong>Note:</strong> If you intend to write your own queries you can disable this class in your database config file, allowing the core database library and adapter to utilize fewer resources.<br /></p> <ul> <li><a href="#select">Selecting Data</a></li> @@ -84,7 +84,7 @@ is generated by each database adapter. It also allows for safer queries, since <h2>$this->db->get();</h2> -<p>Runs the selection query and returns the result. Can be used by itself to retrieve all records from a table:</p> +<p>Runs the selection query and returns the result. Can be used by itself to retrieve all records from a table:</p> <code>$query = $this->db->get('mytable');<br /> <br /> @@ -126,7 +126,7 @@ $this->db->select('title, content, date');<br /> $query = $this->db->get('mytable');<br /> <br /> // Produces: SELECT title, content, date FROM mytable</code></p> -<p class="important"><strong>Note:</strong> If you are selecting all (*) from a table you do not need to use this function. When omitted, CodeIgniter assumes you wish to SELECT *</p> +<p class="important"><strong>Note:</strong> If you are selecting all (*) from a table you do not need to use this function. When omitted, CodeIgniter assumes you wish to SELECT *</p> <p>$this->db->select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.</p> <p><code>$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE); <br /> @@ -278,7 +278,7 @@ $this->db->or_where('id >', $id); <h2>$this->db->where_in();</h2> -<p>Generates a WHERE field IN ('item', 'item') SQL query joined with AND if appropriate</p> +<p>Generates a WHERE field IN ('item', 'item') SQL query joined with AND if appropriate</p> <p><code> $names = array('Frank', 'Todd', 'James');<br /> $this->db->where_in('username', $names);<br /> @@ -322,7 +322,7 @@ $this->db->or_where('id >', $id); <code>$this->db->like('title', 'match');<br /> $this->db->like('body', 'match'); <br /><br /> - // WHERE title LIKE '%match%' AND body LIKE '%match%</code> + // WHERE title LIKE '%match%' AND body LIKE '%match%</code> If you want to control where the wildcard (%) is placed, you can use an optional third argument. Your options are 'before', 'after' and 'both' (which is the default). <code>$this->db->like('title', 'match', 'before'); <br /> @@ -340,7 +340,7 @@ $this->db->or_where('id >', $id); $array = array('title' => $match, 'page1' => $match, 'page2' => $match);<br /><br /> $this->db->like($array); - <br /><br />// WHERE title LIKE '%match%' AND page1 LIKE '%match%' AND page2 LIKE '%match%'</code></li> + <br /><br />// WHERE title LIKE '%match%' AND page1 LIKE '%match%' AND page2 LIKE '%match%'</code></li> </ol> @@ -351,7 +351,7 @@ $this->db->or_where('id >', $id); $this->db->like('title', 'match');<br /> $this->db->or_like('body', $match); <br /> -<br />// WHERE title LIKE '%match%' OR body LIKE '%match%'</code> +<br />// WHERE title LIKE '%match%' OR body LIKE '%match%'</code> @@ -367,7 +367,7 @@ $this->db->or_like('body', $match); <code> $this->db->like('title', 'match');<br /> $this->db->or_not_like('body', 'match'); <br /> <br /> -// WHERE title LIKE '%match% OR body NOT LIKE '%match%'</code> +// WHERE title LIKE '%match% OR body NOT LIKE '%match%'</code> <h2>$this->db->group_by();</h2> <p>Permits you to write the GROUP BY portion of your query:</p> @@ -385,7 +385,7 @@ $this->db->or_not_like('body', 'match'); <br /> <h2> $this->db->distinct();<br /> </h2> -<p>Adds the "DISTINCT" keyword to a query</p> +<p>Adds the "DISTINCT" keyword to a query</p> <p><code>$this->db->distinct();<br /> $this->db->get('table');<br /> <br /> @@ -397,7 +397,7 @@ $this->db->or_not_like('body', 'match'); <br /> <br /> // Produces: HAVING user_id = 45<br /> <br /> -$this->db->having('user_id', 45); <br /> +$this->db->having('user_id', 45); <br /> // Produces: HAVING user_id = 45<br /> <br /> </code> @@ -409,16 +409,16 @@ $this->db->having('user_id', 45); <br /> <br /> // Produces: HAVING title = 'My Title', id < 45</code></p> <p>If you are using a database that CodeIgniter escapes queries for, you can prevent escaping content by passing an optional third argument, and setting it to FALSE.</p> -<p><code>$this->db->having('user_id', 45); <br /> +<p><code>$this->db->having('user_id', 45); <br /> // Produces: HAVING `user_id` = 45 in some databases such as MySQL <br /> - $this->db->having('user_id', 45, FALSE); <br /> + $this->db->having('user_id', 45, FALSE); <br /> // Produces: HAVING user_id = 45</code></p> <h2>$this->db->or_having();</h2> <p>Identical to having(), only separates multiple clauses with "OR".</p> <h2>$this->db->order_by();</h2> <p>Lets you set an ORDER BY clause. The first parameter contains the name of the column you would like to order by. -The second parameter lets you set the direction of the result. Options are <kbd>asc</kbd> or <kbd>desc</kbd>, or <kbd>random</kbd>. </p> +The second parameter lets you set the direction of the result. Options are <kbd>asc</kbd> or <kbd>desc</kbd>, or <kbd>random</kbd>. </p> <code>$this->db->order_by("title", "desc"); <br /> @@ -455,12 +455,12 @@ $this->db->limit(10);<br /> <code> $this->db->limit(10, 20);<br /> <br /> -// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</code> +// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</code> <h2>$this->db->count_all_results();</h2> -<p>Permits you to determine the number of rows in a particular Active Record query. Queries will accept Active Record restrictors such as where(), or_where(), like(), or_like(), etc. Example:</p> +<p>Permits you to determine the number of rows in a particular Active Record query. Queries will accept Active Record restrictors such as where(), or_where(), like(), or_like(), etc. Example:</p> <code>echo $this->db->count_all_results('<var>my_table</var>');<br /> // Produces an integer, like 25<br /> @@ -472,7 +472,7 @@ echo $this->db->count_all_results();<br /> <h2>$this->db->count_all();</h2> -<p>Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:</p> +<p>Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:</p> <code>echo $this->db->count_all('<var>my_table</var>');<br /> <br /> @@ -485,7 +485,7 @@ echo $this->db->count_all_results();<br /> <h2>$this->db->insert();</h2> <p>Generates an insert string based on the data you supply, and runs the query. You can either pass an -<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p> +<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p> <code> $data = array(<br /> @@ -505,9 +505,9 @@ $this->db->insert('mytable', $data); <code> /*<br /> class Myclass {<br /> - var $title = 'My Title';<br /> - var $content = 'My Content';<br /> - var $date = 'My Date';<br /> + var $title = 'My Title';<br /> + var $content = 'My Content';<br /> + var $date = 'My Date';<br /> }<br /> */<br /> <br /> @@ -517,13 +517,13 @@ $this->db->insert('mytable', $object); <br /><br /> // Produces: INSERT INTO mytable (title, content, date) VALUES ('My Title', 'My Content', 'My Date')</code> -<p>The first parameter will contain the table name, the second is an associative array of values.</p> +<p>The first parameter will contain the table name, the second is an object.</p> <p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p> <h2>$this->db->insert_batch();</h2> <p>Generates an insert string based on the data you supply, and runs the query. You can either pass an -<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p> +<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p> <code> $data = array(<br/> @@ -539,9 +539,9 @@ $data = array(<br/> )<br/> );<br /> <br /> -$this->db->insert_batch('mytable', $data); +$this->db->update_batch('mytable', $data); <br /><br /> -// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')</code> +// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')</code> <p>The first parameter will contain the table name, the second is an associative array of values.</p> @@ -588,9 +588,9 @@ $this->db->insert('mytable'); <code> /*<br /> class Myclass {<br /> - var $title = 'My Title';<br /> - var $content = 'My Content';<br /> - var $date = 'My Date';<br /> + var $title = 'My Title';<br /> + var $content = 'My Content';<br /> + var $date = 'My Date';<br /> }<br /> */<br /> <br /> @@ -606,7 +606,7 @@ $this->db->insert('mytable'); <h1>Updating Data</h1> <h2>$this->db->update();</h2> -<p>Generates an update string and runs the query based on the data you supply. You can pass an +<p>Generates an update string and runs the query based on the data you supply. You can pass an <strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p> @@ -630,9 +630,9 @@ $this->db->update('mytable', $data); <code> /*<br /> class Myclass {<br /> - var $title = 'My Title';<br /> - var $content = 'My Content';<br /> - var $date = 'My Date';<br /> + var $title = 'My Title';<br /> + var $content = 'My Content';<br /> + var $date = 'My Date';<br /> }<br /> */<br /> <br /> @@ -711,7 +711,7 @@ $this->db->truncate('mytable'); <br /> <h1><a name="chaining"> </a>Method Chaining</h1> -<p>Method chaining allows you to simplify your syntax by connecting multiple functions. Consider this example:</p> +<p>Method chaining allows you to simplify your syntax by connecting multiple functions. Consider this example:</p> <code> <dfn>$this->db</dfn><kbd>-></kbd><var>select</var>('title')<kbd>-></kbd><var>from</var>('mytable')<kbd>-></kbd><var>where</var>('id', $id)<kbd>-></kbd><var>limit</var>(10, 20);<br /> @@ -752,14 +752,14 @@ $this->db->get('tablename');<br /> $this->db->select('field2');<br /> $this->db->get('tablename');<br /> <br /> -//Generates: SELECT `field1`, `field2` FROM (`tablename`)<br /> +//Generates: SELECT `field1`, `field2` FROM (`tablename`)<br /> <br /> $this->db->flush_cache();<br /> <br /> $this->db->select('field2');<br /> $this->db->get('tablename');<br /> <br /> -//Generates: SELECT `field2` FROM (`tablename`)</code></p> +//Generates: SELECT `field2` FROM (`tablename`)</code></p> <p class="important"> <strong>Note:</strong> The following statements can be cached: select, from, join, where, like, group_by, having, order_by, set</p> <p> </p> diff --git a/user_guide/database/caching.html b/user_guide/database/caching.html index ec2e5c40b..76a91216d 100644 --- a/user_guide/database/caching.html +++ b/user_guide/database/caching.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -62,7 +62,7 @@ Database Caching Class <p>The Database Caching Class permits you to cache your queries as text files for reduced database load.</p> <p class="important"><strong>Important:</strong> This class is initialized automatically by the database driver -when caching is enabled. Do NOT load this class manually.<br /><br /> +when caching is enabled. Do NOT load this class manually.<br /><br /> <strong>Also note:</strong> Not all query result functions are available when you use caching. Please read this page carefully.</p> @@ -84,12 +84,12 @@ when caching is enabled. Do NOT load this class manually.<br /><br /> <p>CodeIgniter's query caching system happens dynamically when your pages are viewed. When caching is enabled, the first time a web page is loaded, the query result object will be serialized and stored in a text file on your server. The next time the page is loaded the cache file will be used instead of -accessing your database. Your database usage can effectively be reduced to zero for any pages that have been cached.</p> +accessing your database. Your database usage can effectively be reduced to zero for any pages that have been cached.</p> <p>Only <dfn>read-type</dfn> (SELECT) queries can be cached, since these are the only type of queries that produce a result. <dfn>Write-type</dfn> (INSERT, UPDATE, etc.) queries, since they don't generate a result, will not be cached by the system.</p> -<p>Cache files DO NOT expire. Any queries that have been cached will remain cached until you delete them. The caching system +<p>Cache files DO NOT expire. Any queries that have been cached will remain cached until you delete them. The caching system permits you clear caches associated with individual pages, or you can delete the entire collection of cache files. Typically you'll want to use the housekeeping functions described below to delete cache files after certain events take place, like when you've added new information to your database.</p> @@ -99,33 +99,33 @@ events take place, like when you've added new information to your database.</p> <p>Getting a performance gain as a result of caching depends on many factors. If you have a highly optimized database under very little load, you probably won't see a performance boost. If your database is under heavy use you probably will see an improved response, assuming your file-system is not -overly taxed. Remember that caching simply changes how your information is retrieved, shifting it from being a database +overly taxed. Remember that caching simply changes how your information is retrieved, shifting it from being a database operation to a file-system one.</p> <p>In some clustered server environments, for example, caching may be detrimental since file-system operations are so intense. On single servers in shared environments, caching will probably be beneficial. Unfortunately there is no -single answer to the question of whether you should cache your database. It really depends on your situation.</p> +single answer to the question of whether you should cache your database. It really depends on your situation.</p> <h2>How are Cache Files Stored?</h2> -<p>CodeIgniter places the result of EACH query into its own cache file. Sets of cache files are further organized into -sub-folders corresponding to your controller functions. To be precise, the sub-folders are named identically to the +<p>CodeIgniter places the result of EACH query into its own cache file. Sets of cache files are further organized into +sub-folders corresponding to your controller functions. To be precise, the sub-folders are named identically to the first two segments of your URI (the controller class name and function name).</p> <p>For example, let's say you have a controller called <dfn>blog</dfn> with a function called <dfn>comments</dfn> that -contains three queries. The caching system will create a cache folder +contains three queries. The caching system will create a cache folder called <kbd>blog+comments</kbd>, into which it will write three cache files.</p> <p>If you use dynamic queries that change based on information in your URI (when using pagination, for example), each instance of -the query will produce its own cache file. It's possible, therefore, to end up with many times more cache files than you have +the query will produce its own cache file. It's possible, therefore, to end up with many times more cache files than you have queries.</p> <h2>Managing your Cache Files</h2> -<p>Since cache files do not expire, you'll need to build deletion routines into your application. For example, let's say you have a blog -that allows user commenting. Whenever a new comment is submitted you'll want to delete the cache files associated with the -controller function that serves up your comments. You'll find two delete functions described below that help you +<p>Since cache files do not expire, you'll need to build deletion routines into your application. For example, let's say you have a blog +that allows user commenting. Whenever a new comment is submitted you'll want to delete the cache files associated with the +controller function that serves up your comments. You'll find two delete functions described below that help you clear data.</p> @@ -155,8 +155,8 @@ pertain to run-time operations.</p> <h2>$this->db->cache_on() / $this->db->cache_off()</h2> -<p>Manually enables/disables caching. This can be useful if you want to -keep certain queries from being cached. Example:</p> +<p>Manually enables/disables caching. This can be useful if you want to +keep certain queries from being cached. Example:</p> <code> // Turn caching on<br /> @@ -177,9 +177,9 @@ $query = $this->db->query("SELECT * FROM another_table"); <p>Deletes the cache files associated with a particular page. This is useful if you need to clear caching after you update your database.</p> -<p>The caching system saves your cache files to folders that correspond to the URI of the page you are viewing. For example, if you are viewing +<p>The caching system saves your cache files to folders that correspond to the URI of the page you are viewing. For example, if you are viewing a page at <dfn>example.com/index.php/blog/comments</dfn>, the caching system will put all cache files associated with it in a folder -called <dfn>blog+comments</dfn>. To delete those particular cache files you will use:</p> +called <dfn>blog+comments</dfn>. To delete those particular cache files you will use:</p> <code>$this->db->cache_delete('blog', 'comments');</code> @@ -188,7 +188,7 @@ called <dfn>blog+comments</dfn>. To delete those particular cache files you wil <h2>$this->db->cache_delete_all()</h2> -<p>Clears all existing cache files. Example:</p> +<p>Clears all existing cache files. Example:</p> <code>$this->db->cache_delete_all();</code> diff --git a/user_guide/database/call_function.html b/user_guide/database/call_function.html index e34369f37..7f294401e 100644 --- a/user_guide/database/call_function.html +++ b/user_guide/database/call_function.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -63,13 +63,13 @@ Custom Function Calls <p>This function enables you to call PHP database functions that are not natively included in CodeIgniter, in a platform independent manner. For example, lets say you want to call the <dfn>mysql_get_client_info()</dfn> function, which is <strong>not</strong> natively supported -by CodeIgniter. You could do so like this: +by CodeIgniter. You could do so like this: </p> <code>$this->db->call_function('<var>get_client_info</var>');</code> -<p>You must supply the name of the function, <strong>without</strong> the <var>mysql_</var> prefix, in the first parameter. The prefix is added -automatically based on which database driver is currently being used. This permits you to run the same function on different database platforms. +<p>You must supply the name of the function, <strong>without</strong> the <var>mysql_</var> prefix, in the first parameter. The prefix is added +automatically based on which database driver is currently being used. This permits you to run the same function on different database platforms. Obviously not all function calls are identical between platforms, so there are limits to how useful this function can be in terms of portability.</p> <p>Any parameters needed by the function you are calling will be added to the second parameter.</p> @@ -77,7 +77,7 @@ Obviously not all function calls are identical between platforms, so there are l <code>$this->db->call_function('<var>some_function</var>', $param1, $param2, etc..);</code> -<p>Often, you will either need to supply a database connection ID or a database result ID. The connection ID can be accessed using:</p> +<p>Often, you will either need to supply a database connection ID or a database result ID. The connection ID can be accessed using:</p> <code>$this->db->conn_id;</code> diff --git a/user_guide/database/configuration.html b/user_guide/database/configuration.html index d71cd34db..b34705410 100644 --- a/user_guide/database/configuration.html +++ b/user_guide/database/configuration.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -74,7 +74,7 @@ $db['default']['dbprefix'] = "";<br /> $db['default']['pconnect'] = TRUE;<br /> $db['default']['db_debug'] = FALSE;<br /> $db['default']['cache_on'] = FALSE;<br /> -$db['default']['cachedir'] = "";<br /> +$db['default']['cachedir'] = "";<br /> $db['default']['char_set'] = "utf8";<br /> $db['default']['dbcollat'] = "utf8_general_ci";<br /> $db['default']['swap_pre'] = "";<br /> @@ -82,7 +82,7 @@ $db['default']['autoinit'] = TRUE;<br /> $db['default']['stricton'] = FALSE;</code> <p>The reason we use a multi-dimensional array rather than a more simple one is to permit you to optionally store -multiple sets of connection values. If, for example, you run multiple environments (development, production, test, etc.) +multiple sets of connection values. If, for example, you run multiple environments (development, production, test, etc.) under a single installation, you can set up a connection group for each, then switch between groups as needed. For example, to set up a "test" environment you would do this:</p> @@ -95,7 +95,7 @@ $db['test']['dbprefix'] = "";<br /> $db['test']['pconnect'] = TRUE;<br /> $db['test']['db_debug'] = FALSE;<br /> $db['test']['cache_on'] = FALSE;<br /> -$db['test']['cachedir'] = "";<br /> +$db['test']['cachedir'] = "";<br /> $db['test']['char_set'] = "utf8";<br /> $db['test']['dbcollat'] = "utf8_general_ci";<br /> $db['test']['swap_pre'] = "";<br /> @@ -107,7 +107,7 @@ $db['test']['stricton'] = FALSE;</code> <code>$active_group = "test";</code> -<p>Note: The name "test" is arbitrary. It can be anything you want. By default we've used the word "default" +<p>Note: The name "test" is arbitrary. It can be anything you want. By default we've used the word "default" for the primary connection, but it too can be renamed to something more relevant to your project.</p> <h3>Active Record</h3> @@ -126,21 +126,21 @@ for the primary connection, but it too can be renamed to something more relevant <li><strong>password</strong> - The password used to connect to the database.</li> <li><strong>database</strong> - The name of the database you want to connect to.</li> <li><strong>dbdriver</strong> - The database type. ie: mysql, postgres, odbc, etc. Must be specified in lower case.</li> -<li><strong>dbprefix</strong> - An optional table prefix which will added to the table name when running <a href="active_record.html">Active Record</a> queries. This permits multiple CodeIgniter installations to share one database.</li> +<li><strong>dbprefix</strong> - An optional table prefix which will added to the table name when running <a href="active_record.html">Active Record</a> queries. This permits multiple CodeIgniter installations to share one database.</li> <li><strong>pconnect</strong> - TRUE/FALSE (boolean) - Whether to use a persistent connection.</li> <li><strong>db_debug</strong> - TRUE/FALSE (boolean) - Whether database errors should be displayed.</li> <li><strong>cache_on</strong> - TRUE/FALSE (boolean) - Whether database query caching is enabled, see also <a href="caching.html">Database Caching Class</a>.</li> <li><strong>cachedir</strong> - The absolute server path to your database query cache directory.</li> <li><strong>char_set</strong> - The character set used in communicating with the database.</li> -<li><strong>dbcollat</strong> - The character collation used in communicating with the database.</li> -<li><strong>swap_pre</strong> - A default table prefix that should be swapped with <var>dbprefix</var>. This is useful for distributed applications where you might run manually written queries, and need the prefix to still be customizable by the end user.</li> +<li><strong>dbcollat</strong> - The character collation used in communicating with the database. <p class="important"><strong>Note:</strong> For MySQL and MySQLi databases, this setting is only used as a backup if your server is running PHP < 5.2.3 or MySQL < 5.0.7. There is an incompatibility in PHP with mysql_real_escape_string() which can make your site vulnerable to SQL injection if you are using a multi-byte character set and are running versions lower than these. Sites using Latin-1 or UTF-8 database character set and collation are unaffected.</p></li> +<li><strong>swap_pre</strong> - A default table prefix that should be swapped with <var>dbprefix</var>. This is useful for distributed applications where you might run manually written queries, and need the prefix to still be customizable by the end user.</li> <li><strong>autoinit</strong> - Whether or not to automatically connect to the database when the library loads. If set to false, the connection will take place prior to executing the first query.</li> <li><strong>stricton</strong> - TRUE/FALSE (boolean) - Whether to force "Strict Mode" connections, good for ensuring strict SQL while developing an application.</li> -<li><strong>port</strong> - The database port number. To use this value you have to add a line to the database config array.<code>$db['default']['port'] = 5432;</code> +<li><strong>port</strong> - The database port number. To use this value you have to add a line to the database config array.<code>$db['default']['port'] = 5432;</code> </ul> <p class="important"><strong>Note:</strong> Depending on what database platform you are using (MySQL, Postgres, etc.) -not all values will be needed. For example, when using SQLite you will not need to supply a username or password, and +not all values will be needed. For example, when using SQLite you will not need to supply a username or password, and the database name will be the path to your database file. The information above assumes you are using MySQL.</p> diff --git a/user_guide/database/connecting.html b/user_guide/database/connecting.html index 1e971986e..1a74f5571 100644 --- a/user_guide/database/connecting.html +++ b/user_guide/database/connecting.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -84,8 +84,8 @@ to the group specified in your database config file. For most people, this is th <ol> <li>The database connection values, passed either as an array or a DSN string.</li> - <li>TRUE/FALSE (boolean). Whether to return the connection ID (see Connecting to Multiple Databases below).</li> - <li>TRUE/FALSE (boolean). Whether to enable the Active Record class. Set to TRUE by default.</li> + <li>TRUE/FALSE (boolean). Whether to return the connection ID (see Connecting to Multiple Databases below).</li> + <li>TRUE/FALSE (boolean). Whether to enable the Active Record class. Set to TRUE by default.</li> </ol> @@ -148,7 +148,7 @@ you can pass the connection values as indicated above).</p> <p>By setting the second parameter to TRUE (boolean) the function will return the database object.</p> <div class="important"> -<p>When you connect this way, you will use your object name to issue commands rather than the syntax used throughout this guide. In other words, rather than issuing commands with:</p> +<p>When you connect this way, you will use your object name to issue commands rather than the syntax used throughout this guide. In other words, rather than issuing commands with:</p> <p>$this->db->query();<br />$this->db->result();<br /> etc...</p> diff --git a/user_guide/database/examples.html b/user_guide/database/examples.html index c0eabd846..6bb8beb32 100644 --- a/user_guide/database/examples.html +++ b/user_guide/database/examples.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,7 +61,7 @@ Database Example Code <h1>Database Quick Start: Example Code</h1> -<p>The following page contains example code showing how the database class is used. For complete details please +<p>The following page contains example code showing how the database class is used. For complete details please read the individual pages describing each function.</p> @@ -73,7 +73,7 @@ read the individual pages describing each function.</p> <p>Once loaded the class is ready to be used as described below.</p> -<p>Note: If all your pages require database access you can connect automatically. See the <a href="connecting.html">connecting</a> page for details.</p> +<p>Note: If all your pages require database access you can connect automatically. See the <a href="connecting.html">connecting</a> page for details.</p> <h2>Standard Query With Multiple Results (Object Version)</h2> @@ -90,7 +90,7 @@ foreach ($query->result() as $row)<br /> echo 'Total Results: ' . $query->num_rows(); </code> -<p>The above <dfn>result()</dfn> function returns an array of <strong>objects</strong>. Example: $row->title</p> +<p>The above <dfn>result()</dfn> function returns an array of <strong>objects</strong>. Example: $row->title</p> <h2>Standard Query With Multiple Results (Array Version)</h2> @@ -104,7 +104,7 @@ foreach ($query->result_array() as $row)<br /> echo $row['email'];<br /> }</code> -<p>The above <dfn>result_array()</dfn> function returns an array of standard array indexes. Example: $row['title']</p> +<p>The above <dfn>result_array()</dfn> function returns an array of standard array indexes. Example: $row['title']</p> <h2>Testing for Results</h2> @@ -137,7 +137,7 @@ $row = $query->row();<br /> echo $row->name;<br /> </code> -<p>The above <dfn>row()</dfn> function returns an <strong>object</strong>. Example: $row->name</p> +<p>The above <dfn>row()</dfn> function returns an <strong>object</strong>. Example: $row->name</p> <h2>Standard Query With Single Result (Array version)</h2> @@ -148,7 +148,7 @@ $row = $query->row_array();<br /> echo $row['name'];<br /> </code> -<p>The above <dfn>row_array()</dfn> function returns an <strong>array</strong>. Example: $row['name']</p> +<p>The above <dfn>row_array()</dfn> function returns an <strong>array</strong>. Example: $row['name']</p> <h2>Standard Insert</h2> diff --git a/user_guide/database/fields.html b/user_guide/database/fields.html index b1dbd0012..b20436129 100644 --- a/user_guide/database/fields.html +++ b/user_guide/database/fields.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -92,7 +92,7 @@ foreach ($query->list_fields() as $field)<br /> <h2>$this->db->field_exists()</h2> <p>Sometimes it's helpful to know whether a particular field exists before performing an action. -Returns a boolean TRUE/FALSE. Usage example:</p> +Returns a boolean TRUE/FALSE. Usage example:</p> <code> if ($this->db->field_exists('field_name', 'table_name'))<br /> @@ -101,7 +101,7 @@ if ($this->db->field_exists('field_name', 'table_name'))<br /> } </code> -<p>Note: Replace <em>field_name</em> with the name of the column you are looking for, and replace +<p>Note: Replace <em>field_name</em> with the name of the column you are looking for, and replace <em>table_name</em> with the name of the table you are looking for.</p> diff --git a/user_guide/database/forge.html b/user_guide/database/forge.html index d18db5820..bbef053e4 100644 --- a/user_guide/database/forge.html +++ b/user_guide/database/forge.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -151,7 +151,7 @@ already be running, since the forge class relies on it.</p> ),<br /> );<br /> </code></p> -<p>After the fields have been defined, they can be added using <dfn>$this->dbforge->add_field($fields);</dfn> followed by a call to the <dfn>create_table()</dfn> function.</p> +<p>After the fields have been defined, they can be added using <dfn>$this->dbforge->add_field($fields);</dfn> followed by a call to the <dfn>create_table()</dfn> function.</p> <h3>$this->dbforge->add_field()</h3> <p>The add fields function will accept the above array.</p> <h3>Passing strings as fields</h3> @@ -164,7 +164,7 @@ already be running, since the forge class relies on it.</p> // gives id INT(9) NOT NULL AUTO_INCREMENT</code></p> <h2><a name="add_key" id="add_key"></a>Adding Keys</h2> <p>Generally speaking, you'll want your table to have Keys. This is accomplished with <dfn>$this->dbforge->add_key('field')</dfn>. An optional second parameter set to TRUE will make it a primary key. Note that <dfn>add_key()</dfn> must be followed by a call to <dfn>create_table()</dfn>.</p> -<p>Multiple column non-primary keys must be sent as an array. Sample output below is for MySQL.</p> +<p>Multiple column non-primary keys must be sent as an array. Sample output below is for MySQL.</p> <p><code>$this->dbforge->add_key('blog_id', TRUE);<br /> // gives PRIMARY KEY `blog_id` (`blog_id`)<br /> <br /> @@ -187,7 +187,7 @@ already be running, since the forge class relies on it.</p> <h2><a name="drop_table" id="drop_table"></a>Dropping a table</h2> <p>Executes a DROP TABLE sql</p> <p><code>$this->dbforge->drop_table('table_name');<br /> - // gives DROP TABLE IF EXISTS table_name</code></p> + // gives DROP TABLE IF EXISTS table_name</code></p> <h2><a name="rename_table" id="rename_table"></a>Renaming a table</h2> <p>Executes a TABLE rename</p> <p><code>$this->dbforge->rename_table('old_table_name', 'new_table_name');<br /> @@ -200,7 +200,7 @@ already be running, since the forge class relies on it.</p> );<br /> $this->dbforge->add_column('table_name', $fields);<br /> <br /> -// gives ALTER TABLE table_name ADD preferences TEXT</code></p> +// gives ALTER TABLE table_name ADD preferences TEXT</code></p> <h2>$this->dbforge->drop_column()</h2> <p>Used to remove a column from a table. </p> <p><code>$this->dbforge->drop_column('table_name', 'column_to_drop');</code></p> @@ -214,7 +214,7 @@ $this->dbforge->add_column('table_name', $fields);<br /> );<br /> $this->dbforge->modify_column('table_name', $fields);<br /> <br /> - // gives ALTER TABLE table_name CHANGE old_name new_name TEXT </code></p> + // gives ALTER TABLE table_name CHANGE old_name new_name TEXT </code></p> <p> </p> </div> <!-- END CONTENT --> diff --git a/user_guide/database/helpers.html b/user_guide/database/helpers.html index f4ad8dfe6..650dd7a0b 100644 --- a/user_guide/database/helpers.html +++ b/user_guide/database/helpers.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -67,12 +67,12 @@ Query Helpers <h2>$this->db->affected_rows()</h2> <p>Displays the number of affected rows, when doing "write" type queries (insert, update, etc.).</p> -<p>Note: In MySQL "DELETE FROM TABLE" returns 0 affected rows. The database class has a small hack that allows it to return the -correct number of affected rows. By default this hack is enabled but it can be turned off in the database driver file.</p> +<p>Note: In MySQL "DELETE FROM TABLE" returns 0 affected rows. The database class has a small hack that allows it to return the +correct number of affected rows. By default this hack is enabled but it can be turned off in the database driver file.</p> <h2>$this->db->count_all();</h2> -<p>Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:</p> +<p>Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:</p> <code>echo $this->db->count_all('<var>my_table</var>');<br /> <br /> // Produces an integer, like 25 @@ -90,11 +90,11 @@ correct number of affected rows. By default this hack is enabled but it can be <h2>$this->db->last_query();</h2> -<p>Returns the last query that was run (the query string, not the result). Example:</p> +<p>Returns the last query that was run (the query string, not the result). Example:</p> <code>$str = $this->db->last_query();<br /> <br /> -// Produces: SELECT * FROM sometable.... +// Produces: SELECT * FROM sometable.... </code> @@ -109,7 +109,7 @@ correct number of affected rows. By default this hack is enabled but it can be $str = $this->db->insert_string('table_name', $data); </code> -<p>The first parameter is the table name, the second is an associative array with the data to be inserted. The above example produces:</p> +<p>The first parameter is the table name, the second is an associative array with the data to be inserted. The above example produces:</p> <code>INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@example.com', 'example.com')</code> <p class="important">Note: Values are automatically escaped, producing safer queries.</p> diff --git a/user_guide/database/index.html b/user_guide/database/index.html index cc2d2166b..1f0a1da7d 100644 --- a/user_guide/database/index.html +++ b/user_guide/database/index.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -63,7 +63,7 @@ Database Library structures and Active Record patterns. The database functions offer clear, simple syntax.</p> <ul> - <li><a href="examples.html">Quick Start: Usage Examples</a></li> + <li><a href="examples.html">Quick Start: Usage Examples</a></li> <li><a href="configuration.html">Database Configuration</a></li> <li><a href="connecting.html">Connecting to a Database</a></li> <li><a href="queries.html">Running Queries</a></li> @@ -86,7 +86,7 @@ structures and Active Record patterns. The database functions offer clear, simpl <div id="footer"> <p> -Previous Topic: <a href="../libraries/config.html">Config Class</a> +Previous Topic: <a href="../libraries/caching.html">Caching Class</a> · <a href="#top">Top of Page</a> · <a href="../index.html">User Guide Home</a> · diff --git a/user_guide/database/queries.html b/user_guide/database/queries.html index e3d6ab186..685da43dc 100644 --- a/user_guide/database/queries.html +++ b/user_guide/database/queries.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -68,14 +68,14 @@ Queries <code>$this->db->query('YOUR QUERY HERE');</code> <p>The <dfn>query()</dfn> function returns a database result <strong>object</strong> when "read" type queries are run, -which you can use to <a href="results.html">show your results</a>. When "write" type queries are run it simply returns TRUE or FALSE -depending on success or failure. When retrieving data you will typically assign the query to your own variable, like this:</p> +which you can use to <a href="results.html">show your results</a>. When "write" type queries are run it simply returns TRUE or FALSE +depending on success or failure. When retrieving data you will typically assign the query to your own variable, like this:</p> <code><var>$query</var> = $this->db->query('YOUR QUERY HERE');</code> <h2>$this->db->simple_query();</h2> -<p>This is a simplified version of the <dfn>$this->db->query()</dfn> function. It ONLY returns TRUE/FALSE on success or failure. +<p>This is a simplified version of the <dfn>$this->db->query()</dfn> function. It ONLY returns TRUE/FALSE on success or failure. It DOES NOT return a database result set, nor does it set the query timer, or compile bind data, or store your query for debugging. It simply lets you submit a query. Most users will rarely use this function.</p> @@ -100,16 +100,16 @@ CodeIgniter has three methods that help you do this:</p> <ol> <li><strong>$this->db->escape()</strong> This function determines the data type so that it -can escape only string data. It also automatically adds single quotes around the data so you don't have to: +can escape only string data. It also automatically adds single quotes around the data so you don't have to: <code>$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";</code></li> -<li><strong>$this->db->escape_str()</strong> This function escapes the data passed to it, regardless of type. +<li><strong>$this->db->escape_str()</strong> This function escapes the data passed to it, regardless of type. Most of the time you'll use the above function rather than this one. Use the function like this: <code>$sql = "INSERT INTO table (title) VALUES('".$this->db->escape_str($title)."')";</code></li> -<li><strong>$this->db->escape_like_str()</strong> This method should be used when strings are to be used in LIKE +<li><strong>$this->db->escape_like_str()</strong> This method should be used when strings are to be used in LIKE conditions so that LIKE wildcards ('%', '_') in the string are also properly escaped. <code>$search = '20% raise';<br /> @@ -130,7 +130,7 @@ $this->db->query($sql, array(3, 'live', 'Rick')); </code> <p>The question marks in the query are automatically replaced with the values in the array in the second parameter of the query function.</p> -<p class="important">The secondary benefit of using binds is that the values are automatically escaped, producing safer queries. You don't have to remember to manually escape data; the engine does it automatically for you.</p> +<p class="important">The secondary benefit of using binds is that the values are automatically escaped, producing safer queries. You don't have to remember to manually escape data; the engine does it automatically for you.</p> diff --git a/user_guide/database/results.html b/user_guide/database/results.html index e9a5cb4cf..0b82752a7 100644 --- a/user_guide/database/results.html +++ b/user_guide/database/results.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -112,7 +112,7 @@ Query Results <h2>result_array()</h2> - <p>This function returns the query result as a pure array, or an empty array when no result is produced. Typically you'll use this in a foreach loop, like this:</p> + <p>This function returns the query result as a pure array, or an empty array when no result is produced. Typically you'll use this in a foreach loop, like this:</p> <code> $query = $this->db->query("YOUR QUERY");<br /> <br /> @@ -126,8 +126,8 @@ Query Results <h2>row()</h2> - <p>This function returns a single result row. If your query has more than one row, it returns only the first row. - The result is returned as an <strong>object</strong>. Here's a usage example:</p> + <p>This function returns a single result row. If your query has more than one row, it returns only the first row. + The result is returned as an <strong>object</strong>. Here's a usage example:</p> <code> $query = $this->db->query("YOUR QUERY");<br /> <br /> @@ -157,7 +157,7 @@ Query Results <h2>row_array()</h2> - <p>Identical to the above <var>row()</var> function, except it returns an array. Example:</p> + <p>Identical to the above <var>row()</var> function, except it returns an array. Example:</p> <code> $query = $this->db->query("YOUR QUERY");<br /> @@ -209,7 +209,7 @@ echo $query->num_rows(); </code> <h2>$query->num_fields()</h2> -<p>The number of FIELDS (columns) returned by the query. Make sure to call the function using your query result object:</p> +<p>The number of FIELDS (columns) returned by the query. Make sure to call the function using your query result object:</p> <code>$query = $this->db->query('SELECT * FROM my_table');<br /><br /> echo $query->num_fields(); @@ -218,9 +218,9 @@ echo $query->num_fields(); <h2>$query->free_result()</h2> -<p>It frees the memory associated with the result and deletes the result resource ID. Normally PHP frees its memory automatically at the end of script -execution. However, if you are running a lot of queries in a particular script you might want to free the result after each query result has been -generated in order to cut down on memory consumptions. Example: +<p>It frees the memory associated with the result and deletes the result resource ID. Normally PHP frees its memory automatically at the end of script +execution. However, if you are running a lot of queries in a particular script you might want to free the result after each query result has been +generated in order to cut down on memory consumptions. Example: </p> <code>$query = $this->db->query('SELECT title FROM my_table');<br /><br /> @@ -228,12 +228,12 @@ foreach ($query->result() as $row)<br /> {<br /> echo $row->title;<br /> }<br /> -$query->free_result(); // The $query result object will no longer be available<br /> +$query->free_result(); // The $query result object will no longer be available<br /> <br /> $query2 = $this->db->query('SELECT name FROM some_table');<br /><br /> $row = $query2->row();<br /> echo $row->name;<br /> -$query2->free_result(); // The $query2 result object will no longer be available +$query2->free_result(); // The $query2 result object will no longer be available </code> diff --git a/user_guide/database/table_data.html b/user_guide/database/table_data.html index 90ce478da..631e3b9d1 100644 --- a/user_guide/database/table_data.html +++ b/user_guide/database/table_data.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -65,7 +65,7 @@ Table Data <h2>$this->db->list_tables();</h2> -<p>Returns an array containing the names of all the tables in the database you are currently connected to. Example:</p> +<p>Returns an array containing the names of all the tables in the database you are currently connected to. Example:</p> <code>$tables = $this->db->list_tables();<br /> <br /> @@ -79,7 +79,7 @@ foreach ($tables as $table)<br /> <h2>$this->db->table_exists();</h2> <p>Sometimes it's helpful to know whether a particular table exists before running an operation on it. -Returns a boolean TRUE/FALSE. Usage example:</p> +Returns a boolean TRUE/FALSE. Usage example:</p> <code> if ($this->db->table_exists('table_name'))<br /> @@ -88,7 +88,7 @@ if ($this->db->table_exists('table_name'))<br /> } </code> -<p>Note: Replace <em>table_name</em> with the name of the table you are looking for.</p> +<p>Note: Replace <em>table_name</em> with the name of the table you are looking for.</p> diff --git a/user_guide/database/transactions.html b/user_guide/database/transactions.html index 448e468d9..68d76dff6 100644 --- a/user_guide/database/transactions.html +++ b/user_guide/database/transactions.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,18 +61,18 @@ Transactions <h1>Transactions</h1> -<p>CodeIgniter's database abstraction allows you to use <dfn>transactions</dfn> with databases that support transaction-safe table types. In MySQL, you'll need -to be running InnoDB or BDB table types rather than the more common MyISAM. Most other database platforms support transactions natively.</p> +<p>CodeIgniter's database abstraction allows you to use <dfn>transactions</dfn> with databases that support transaction-safe table types. In MySQL, you'll need +to be running InnoDB or BDB table types rather than the more common MyISAM. Most other database platforms support transactions natively.</p> <p>If you are not familiar with -transactions we recommend you find a good online resource to learn about them for your particular database. The information below assumes you +transactions we recommend you find a good online resource to learn about them for your particular database. The information below assumes you have a basic understanding of transactions. </p> <h2>CodeIgniter's Approach to Transactions</h2> -<p>CodeIgniter utilizes an approach to transactions that is very similar to the process used by the popular database class ADODB. We've chosen that approach -because it greatly simplifies the process of running transactions. In most cases all that is required are two lines of code.</p> +<p>CodeIgniter utilizes an approach to transactions that is very similar to the process used by the popular database class ADODB. We've chosen that approach +because it greatly simplifies the process of running transactions. In most cases all that is required are two lines of code.</p> <p>Traditionally, transactions have required a fair amount of work to implement since they demand that you to keep track of your queries and determine whether to <dfn>commit</dfn> or <dfn>rollback</dfn> based on the success or failure of your queries. This is particularly cumbersome with @@ -98,7 +98,7 @@ of any given query.</p> <h2>Strict Mode</h2> -<p>By default CodeIgniter runs all transactions in <dfn>Strict Mode</dfn>. When strict mode is enabled, if you are running multiple groups of +<p>By default CodeIgniter runs all transactions in <dfn>Strict Mode</dfn>. When strict mode is enabled, if you are running multiple groups of transactions, if one group fails all groups will be rolled back. If strict mode is disabled, each group is treated independently, meaning a failure of one group will not affect any others.</p> @@ -127,7 +127,7 @@ if (<kbd>$this->db->trans_status()</kbd> === FALSE)<br /> <h2>Enabling Transactions</h2> -<p>Transactions are enabled automatically the moment you use <dfn>$this->db->trans_start()</dfn>. If you would like to disable transactions you +<p>Transactions are enabled automatically the moment you use <dfn>$this->db->trans_start()</dfn>. If you would like to disable transactions you can do so using <dfn>$this->db->trans_off()</dfn>:</p> <code> diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html index 4a8b6739e..64343cc01 100644 --- a/user_guide/database/utilities.html +++ b/user_guide/database/utilities.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -105,7 +105,7 @@ foreach ($dbs as $db)<br /> <h2><a name="exists"></a>$this->dbutil->database_exists();</h2> <p>Sometimes it's helpful to know whether a particular database exists. -Returns a boolean TRUE/FALSE. Usage example:</p> +Returns a boolean TRUE/FALSE. Usage example:</p> <code> if ($this->dbutil->database_exists('database_name'))<br /> @@ -114,7 +114,7 @@ if ($this->dbutil->database_exists('database_name'))<br /> } </code> -<p>Note: Replace <em>database_name</em> with the name of the table you are looking for. This function is case sensitive.</p> +<p>Note: Replace <em>database_name</em> with the name of the table you are looking for. This function is case sensitive.</p> @@ -184,7 +184,7 @@ echo $this->dbutil->csv_from_result($query); </code> <p>The second and third parameters allows you to -set the delimiter and newline character. By default tabs are used as the delimiter and "\n" is used as a new line. Example:</p> +set the delimiter and newline character. By default tabs are used as the delimiter and "\n" is used as a new line. Example:</p> <code> $delimiter = ",";<br /> @@ -193,14 +193,14 @@ $newline = "\r\n";<br /> echo $this->dbutil->csv_from_result($query, $delimiter, $newline); </code> -<p><strong>Important:</strong> This function will NOT write the CSV file for you. It simply creates the CSV layout. +<p><strong>Important:</strong> This function will NOT write the CSV file for you. It simply creates the CSV layout. If you need to write the file use the <a href="../helpers/file_helper.html">File Helper</a>.</p> <h2><a name="xml"></a>$this->dbutil->xml_from_result($db_result)</h2> <p>Permits you to generate an XML file from a query result. The first parameter expects a query result object, the second -may contain an optional array of config parameters. Example:</p> +may contain an optional array of config parameters. Example:</p> <code> $this->load->dbutil();<br /> @@ -217,18 +217,18 @@ $config = array (<br /> echo $this->dbutil->xml_from_result($query, $config); </code> -<p><strong>Important:</strong> This function will NOT write the XML file for you. It simply creates the XML layout. +<p><strong>Important:</strong> This function will NOT write the XML file for you. It simply creates the XML layout. If you need to write the file use the <a href="../helpers/file_helper.html">File Helper</a>.</p> <h2><a name="backup"></a>$this->dbutil->backup()</h2> -<p>Permits you to backup your full database or individual tables. The backup data can be compressed in either Zip or Gzip format.</p> +<p>Permits you to backup your full database or individual tables. The backup data can be compressed in either Zip or Gzip format.</p> <p class="important"><strong>Note:</strong> This features is only available for MySQL databases.</p> <p>Note: Due to the limited execution time and memory available to PHP, backing up very large -databases may not be possible. If your database is very large you might need to backup directly from your SQL server +databases may not be possible. If your database is very large you might need to backup directly from your SQL server via the command line, or have your server admin do it for you if you do not have root privileges.</p> <h3>Usage Example</h3> @@ -278,7 +278,7 @@ $this->dbutil->backup($prefs); <th>Options</th> <th>Description</th> </tr><tr> -<td class="td"><strong>tables</strong></td><td class="td">empty array</td><td class="td">None</td><td class="td">An array of tables you want backed up. If left blank all tables will be exported.</td> +<td class="td"><strong>tables</strong></td><td class="td">empty array</td><td class="td">None</td><td class="td">An array of tables you want backed up. If left blank all tables will be exported.</td> </tr><tr> <td class="td"><strong>ignore</strong></td><td class="td">empty array</td><td class="td">None</td><td class="td">An array of tables you want the backup routine to ignore.</td> </tr><tr> @@ -306,7 +306,7 @@ Previous Topic: <a href="forge.html">DB Forge Class</a> · <a href="#top">Top of Page</a> · <a href="../index.html">User Guide Home</a> · -Next Topic: <a href="../libraries/email.html"> Email Class</a></p> +Next Topic: <a href="../libraries/javascript.html">Javascript Class</a></p> <p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> </div> diff --git a/user_guide/doc_style/index.html b/user_guide/doc_style/index.html index 2d2718d44..f69846f2e 100644 --- a/user_guide/doc_style/index.html +++ b/user_guide/doc_style/index.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/doc_style/template.html b/user_guide/doc_style/template.html index d59d5e4ed..e25503200 100644 --- a/user_guide/doc_style/template.html +++ b/user_guide/doc_style/template.html @@ -51,7 +51,7 @@ Foo Class <h1>Foo Class</h1> -<p>Brief description of Foo Class. If it extends a native CodeIgniter class, please link to the class in the CodeIgniter documents here.</p> +<p>Brief description of Foo Class. If it extends a native CodeIgniter class, please link to the class in the CodeIgniter documents here.</p> <p class="important"><strong>Important:</strong> This is an important note with <kbd>EMPHASIS</kbd>.</p> diff --git a/user_guide/general/alternative_php.html b/user_guide/general/alternative_php.html index c843f2f6e..574ab35d7 100644 --- a/user_guide/general/alternative_php.html +++ b/user_guide/general/alternative_php.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,19 +58,19 @@ Alternate PHP Syntax <h1>Alternate PHP Syntax for View Files</h1> <p>If you do not utilize CodeIgniter's <a href="../libraries/parser.html">template engine</a>, you'll be using pure PHP -in your View files. To minimize the PHP code in these files, and to make it easier to identify the code blocks it is recommended that you use -PHPs alternative syntax for control structures and short tag echo statements. If you are not familiar with this syntax, it allows you to eliminate the braces from your code, +in your View files. To minimize the PHP code in these files, and to make it easier to identify the code blocks it is recommended that you use +PHPs alternative syntax for control structures and short tag echo statements. If you are not familiar with this syntax, it allows you to eliminate the braces from your code, and eliminate "echo" statements.</p> <h2>Automatic Short Tag Support</h2> <p><strong>Note:</strong> If you find that the syntax described in this page does not work on your server it might be that "short tags" are disabled in your PHP ini file. CodeIgniter will optionally rewrite short tags on-the-fly, -allowing you to use that syntax even if your server doesn't support it. This feature can be enabled in your +allowing you to use that syntax even if your server doesn't support it. This feature can be enabled in your <dfn>config/config.php</dfn> file.</p> <p class="important">Please note that if you do use this feature, if PHP errors are encountered -in your <strong>view files</strong>, the error message and line number will not be accurately shown. Instead, all errors +in your <strong>view files</strong>, the error message and line number will not be accurately shown. Instead, all errors will be shown as <kbd>eval()</kbd> errors.</p> @@ -89,7 +89,7 @@ will be shown as <kbd>eval()</kbd> errors.</p> <h2>Alternative Control Structures</h2> <p>Controls structures, like <var>if</var>, <var>for</var>, <var>foreach</var>, and <var>while</var> can be -written in a simplified format as well. Here is an example using foreach:</p> +written in a simplified format as well. Here is an example using foreach:</p> <code> <ul><br /> @@ -102,14 +102,14 @@ written in a simplified format as well. Here is an example using foreach:</p> <br /> </ul></code> -<p>Notice that there are no braces. Instead, the end brace is replaced with <var>endforeach</var>. +<p>Notice that there are no braces. Instead, the end brace is replaced with <var>endforeach</var>. Each of the control structures listed above has a similar closing syntax: <var>endif</var>, <var>endfor</var>, <var>endforeach</var>, and <var>endwhile</var></p> -<p>Also notice that instead of using a semicolon after each structure (except the last one), there is a colon. This is +<p>Also notice that instead of using a semicolon after each structure (except the last one), there is a colon. This is important!</p> -<p>Here is another example, using if/elseif/else. Notice the colons:</p> +<p>Here is another example, using if/elseif/else. Notice the colons:</p> <code><var><?php if ($username == 'sally'): ?></var><br /> diff --git a/user_guide/general/ancillary_classes.html b/user_guide/general/ancillary_classes.html index fc5d0bec5..a7365e706 100644 --- a/user_guide/general/ancillary_classes.html +++ b/user_guide/general/ancillary_classes.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/general/autoloader.html b/user_guide/general/autoloader.html index e05ee03ef..405dda30f 100644 --- a/user_guide/general/autoloader.html +++ b/user_guide/general/autoloader.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -75,7 +75,7 @@ consider auto-loading them for convenience.</p> loaded to the <samp>autoload</samp> array. You'll find instructions in that file corresponding to each type of item.</p> -<p class="important"><strong>Note:</strong> Do not include the file extension (.php) when adding items to the autoload array.</p> +<p class="important"><strong>Note:</strong> Do not include the file extension (.php) when adding items to the autoload array.</p> diff --git a/user_guide/general/caching.html b/user_guide/general/caching.html index 9f49b95d6..abfe6ded9 100644 --- a/user_guide/general/caching.html +++ b/user_guide/general/caching.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -68,8 +68,8 @@ By caching your pages, since they are saved in their fully rendered state, you c <h2>How Does Caching Work?</h2> <p>Caching can be enabled on a per-page basis, and you can set the length of time that a page should remain cached before being refreshed. -When a page is loaded for the first time, the cache file will be written to your <dfn>application/cache</dfn> folder. On subsequent page loads the cache file will be retrieved -and sent to the requesting user's browser. If it has expired, it will be deleted and refreshed before being sent to the browser.</p> +When a page is loaded for the first time, the cache file will be written to your <dfn>application/cache</dfn> folder. On subsequent page loads the cache file will be retrieved +and sent to the requesting user's browser. If it has expired, it will be deleted and refreshed before being sent to the browser.</p> <p>Note: The Benchmark tag is not cached so you can still view your page load speed when caching is enabled.</p> @@ -90,8 +90,8 @@ most logical to you. Once the tag is in place, your pages will begin being cache <h2>Deleting Caches</h2> -<p>If you no longer wish to cache a file you can remove the caching tag and it will no longer be refreshed when it expires. Note: -Removing the tag will not delete the cache immediately. It will have to expire normally. If you need to remove it earlier you +<p>If you no longer wish to cache a file you can remove the caching tag and it will no longer be refreshed when it expires. Note: +Removing the tag will not delete the cache immediately. It will have to expire normally. If you need to remove it earlier you will need to manually delete it from your cache folder.</p> diff --git a/user_guide/general/cli.html b/user_guide/general/cli.html new file mode 100644 index 000000000..962954b15 --- /dev/null +++ b/user_guide/general/cli.html @@ -0,0 +1,150 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Running via the CLI : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<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> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> › +<a href="../index.html">User Guide Home</a> › +Running via the CLI +</td> +<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 <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" /> <input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Running via the CLI</h1> + +<p> + As well as calling an applications <a href="./controllers.html">Controllers</a> via the URL in a browser they can also be loaded via the command-line interface (CLI). +</p> + + +<ul> +<li><a href="#what">What is the CLI?</a></li> +<li><a href="#why">Why use this method?</a></li> +<li><a href="#how">How does it work?</a></li> +</ul> + + +<a name="what"></a> +<h2>What is the CLI?</h2> + +<p><dfn>The command-line interface is a text-based method of interacting with computers that looks like what most people remember as DOS.</dfn></p> + +<a name="why"></a> + +<h2>Why run via the command-line?</h2> + +<p> + There are many reasons for running CodeIgniter from the command-line, but they are not always obvious.</p> + +<ul> + <li>Run your cron-jobs without needing to use wget or curl</li> + <li>Make your cron-jobs inaccessible from being loaded in the URL by checking for <kbd>IS_CLI</kbd></li> + <li>Make interactive "tasks" that can do things like set permissions, prune cache folders, run backups, etc.</li> + <li>Integrate with other applications in other languages. For example, a random C++ script could call one command and run code in your models!</li> +</ul> + +<a name="how"></a> +<h2>Let's try it: Hello World!</h2> + +<p>Let's create a simple controller so you can see it in action. Using your text editor, create a file called <dfn>tools.php</dfn>, and put the following code in it:</p> + +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +<?php +class Tools extends CI_Controller { + + public function message($to = 'World') + { + echo "Hello {$to}!".PHP_EOL; + } +} +?> +</textarea> + +<p>Then save the file to your <dfn>application/controllers/</dfn> folder.</p> + +<p>Now normally you would visit the your site using a URL similar to this:</p> + +<code>example.com/index.php/<var>tools</var>/<var>message</var>/<var>to</var></code> + +<p>Instead, we are going to open Terminal in Mac/Lunix or go to Run > "cmd" in Windows and navigate to our CodeIgniter project.</p> + +<blockquote> + $ cd /path/to/project;<br/> + $ php index.php tools message +</blockquote> + +<p>If you did it right, you should see <samp>Hello World!</samp>.</p> + +<blockquote> + $ php index.php tools message "John Smith" +</blockquote> + +<p>Here we are passing it a argument in the same way that URL parameters work. "John Smith" is passed as a argument and output is: <samp>Hello John Smith!</samp>.</p> + +<h2>That's it!</h2> + +<p>That, in a nutshell, is all there is to know about controllers on the command line. Remember that this is just a normal controller, so routing and _remap works fine.</p> + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic: <a href="urls.html">CodeIgniter URLs</a> + · +<a href="#top">Top of Page</a> · +<a href="../index.html">User Guide Home</a> · +Next Topic: <a href="reserved_names.html">Reserved Names</a></p> +<p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html>
\ No newline at end of file diff --git a/user_guide/general/common_functions.html b/user_guide/general/common_functions.html index 03c455346..3c7a5df9e 100644 --- a/user_guide/general/common_functions.html +++ b/user_guide/general/common_functions.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -68,7 +68,7 @@ Auto-loading Resources $str = quoted_printable_encode($str);<br /> }</code> -<p>Returns boolean <kbd>TRUE</kbd> if the installed version of PHP is equal to or greater than the supplied version number. Returns <kbd>FALSE</kbd> if the installed version of PHP is lower than the supplied version number.</p> +<p>Returns boolean <kbd>TRUE</kbd> if the installed version of PHP is equal to or greater than the supplied version number. Returns <kbd>FALSE</kbd> if the installed version of PHP is lower than the supplied version number.</p> <h2>is_really_writable('<var>path/to/file</var>')</h2> @@ -92,10 +92,10 @@ else<br /> <h2>set_status_header(<var>code</var>, '<var>text</var>');</h2> -<p>Permits you to manually set a server status header. Example:</p> +<p>Permits you to manually set a server status header. Example:</p> <code>set_status_header(401);<br /> -// Sets the header as: Unauthorized</code> +// Sets the header as: Unauthorized</code> <p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">See here</a> for a full list of headers.</p> diff --git a/user_guide/general/controllers.html b/user_guide/general/controllers.html index 91e700aba..01ef3d1ff 100644 --- a/user_guide/general/controllers.html +++ b/user_guide/general/controllers.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -91,14 +91,14 @@ Controllers <a name="hello"></a> <h2>Let's try it: Hello World!</h2> -<p>Let's create a simple controller so you can see it in action. Using your text editor, create a file called <dfn>blog.php</dfn>, and put the following code in it:</p> +<p>Let's create a simple controller so you can see it in action. Using your text editor, create a file called <dfn>blog.php</dfn>, and put the following code in it:</p> <textarea class="textarea" style="width:100%" cols="50" rows="10"> <?php class Blog extends CI_Controller { - function index() + public function index() { echo 'Hello World!'; } @@ -116,7 +116,7 @@ class Blog extends CI_Controller { <p>If you did it right, you should see <samp>Hello World!</samp>.</p> -<p>Note: Class names must start with an uppercase letter. In other words, this is valid:</p> +<p>Note: Class names must start with an uppercase letter. In other words, this is valid:</p> <code><?php<br /> class <var>Blog</var> extends CI_Controller {<br /> @@ -139,26 +139,26 @@ class <var>blog</var> extends CI_Controller {<br /> <a name="functions"></a> <h2>Functions</h2> -<p>In the above example the function name is <dfn>index()</dfn>. The "index" function is always loaded by default if the -<strong>second segment</strong> of the URI is empty. Another way to show your "Hello World" message would be this:</p> +<p>In the above example the function name is <dfn>index()</dfn>. The "index" function is always loaded by default if the +<strong>second segment</strong> of the URI is empty. Another way to show your "Hello World" message would be this:</p> <code>example.com/index.php/<var>blog</var>/<samp>index</samp>/</code> <p><strong>The second segment of the URI determines which function in the controller gets called.</strong></p> -<p>Let's try it. Add a new function to your controller:</p> +<p>Let's try it. Add a new function to your controller:</p> <textarea class="textarea" style="width:100%" cols="50" rows="15"> <?php class Blog extends CI_Controller { - function index() + public function index() { echo 'Hello World!'; } - function comments() + public function comments() { echo 'Look at this!'; } @@ -187,7 +187,7 @@ class Blog extends CI_Controller { <?php<br /> class Products extends CI_Controller {<br /> <br /> - function shoes($sandals, $id)<br /> + public function shoes($sandals, $id)<br /> {<br /> echo $sandals;<br /> echo $id;<br /> @@ -204,7 +204,7 @@ passed to your function will be the re-routed ones.</p> <h2>Defining a Default Controller</h2> <p>CodeIgniter can be told to load a default controller when a URI is not present, -as will be the case when only your site root URL is requested. To specify a default controller, open +as will be the case when only your site root URL is requested. To specify a default controller, open your <dfn>application/config/routes.php</dfn> file and set this variable:</p> <code>$route['default_controller'] = '<var>Blog</var>';</code> @@ -220,18 +220,18 @@ specifying any URI segments you'll see your Hello World message by default.</p> <p>As noted above, the second segment of the URI typically determines which function in the controller gets called. CodeIgniter permits you to override this behavior through the use of the <kbd>_remap()</kbd> function:</p> -<code>function _remap()<br /> +<code>public function _remap()<br /> {<br /> // Some code here...<br /> }</code> <p class="important"><strong>Important:</strong> If your controller contains a function named <kbd>_remap()</kbd>, it will <strong>always</strong> -get called regardless of what your URI contains. It overrides the normal behavior in which the URI determines which function is called, +get called regardless of what your URI contains. It overrides the normal behavior in which the URI determines which function is called, allowing you to define your own function routing rules.</p> <p>The overridden function call (typically the second segment of the URI) will be passed as a parameter to the <kbd>_remap()</kbd> function:</p> -<code>function _remap(<var>$method</var>)<br /> +<code>public function _remap(<var>$method</var>)<br /> {<br /> if ($method == 'some_method')<br /> {<br /> @@ -245,10 +245,10 @@ allowing you to define your own function routing rules.</p> <p>Any extra segments after the method name are passed into <kbd>_remap()</kbd> as an optional second parameter. This array can be used in combination with PHP's <a href="http://php.net/call_user_func_array">call_user_func_array</a> to emulate CodeIgniter's default behavior.</p> -<code>function _remap($method, $params = array())<br /> +<code>public function _remap($method, $params = array())<br /> {<br /> $method = 'process_'.$method;<br /> - if (method_exists($this, $method)<br /> + if (method_exists($this, $method))<br /> {<br /> return call_user_func_array(array($this, $method), $params);<br /> }<br /> @@ -259,9 +259,9 @@ allowing you to define your own function routing rules.</p> <a name="output"></a> <h2>Processing Output</h2> -<p>CodeIgniter has an output class that takes care of sending your final rendered data to the web browser automatically. More information on this can be found in the -<a href="views.html">Views</a> and <a href="../libraries/output.html">Output class</a> pages. In some cases, however, you might want to -post-process the finalized data in some way and send it to the browser yourself. CodeIgniter permits you to +<p>CodeIgniter has an output class that takes care of sending your final rendered data to the web browser automatically. More information on this can be found in the +<a href="views.html">Views</a> and <a href="../libraries/output.html">Output class</a> pages. In some cases, however, you might want to +post-process the finalized data in some way and send it to the browser yourself. CodeIgniter permits you to add a function named <dfn>_output()</dfn> to your controller that will receive the finalized output data.</p> <p><strong>Important:</strong> If your controller contains a function named <kbd>_output()</kbd>, it will <strong>always</strong> @@ -270,12 +270,12 @@ be called by the output class instead of echoing the finalized data directly. Th <p>Here is an example:</p> <code> -function _output($output)<br /> +public function _output($output)<br /> {<br /> echo $output;<br /> }</code> -<p class="important">Please note that your <dfn>_output()</dfn> function will receive the data in its finalized state. Benchmark and memory usage data will be rendered, +<p class="important">Please note that your <dfn>_output()</dfn> function will receive the data in its finalized state. Benchmark and memory usage data will be rendered, cache files written (if you have caching enabled), and headers will be sent (if you use that <a href="../libraries/output.html">feature</a>) before it is handed off to the _output() function.<br /> <br /> @@ -287,18 +287,18 @@ To have your controller's output cached properly, its <dfn>_output()</dfn> metho }</code> If you are using this feature the page execution timer and memory usage stats might not be perfectly accurate -since they will not take into acccount any further processing you do. For an alternate way to control output <em>before</em> any of the final processing is done, please see +since they will not take into acccount any further processing you do. For an alternate way to control output <em>before</em> any of the final processing is done, please see the available methods in the <a href="../libraries/output.html">Output Class</a>.</p> <a name="private"></a> <h2>Private Functions</h2> -<p>In some cases you may want certain functions hidden from public access. To make a function private, simply add an +<p>In some cases you may want certain functions hidden from public access. To make a function private, simply add an underscore as the name prefix and it will not be served via a URL request. For example, if you were to have a function like this:</p> <code> -function _utility()<br /> +private function _utility()<br /> {<br /> // some code<br /> }</code> @@ -312,11 +312,11 @@ function _utility()<br /> <a name="subfolders"></a> <h2>Organizing Your Controllers into Sub-folders</h2> -<p>If you are building a large application you might find it convenient to organize your controllers into sub-folders. CodeIgniter permits you to do this.</p> +<p>If you are building a large application you might find it convenient to organize your controllers into sub-folders. CodeIgniter permits you to do this.</p> <p>Simply create folders within your <dfn>application/controllers</dfn> directory and place your controller classes within them.</p> -<p><strong>Note:</strong> When using this feature the first segment of your URI must specify the folder. For example, lets say you have a controller +<p><strong>Note:</strong> When using this feature the first segment of your URI must specify the folder. For example, lets say you have a controller located here:</p> <code>application/controllers/<kbd>products</kbd>/shoes.php</code> @@ -326,7 +326,7 @@ located here:</p> <code>example.com/index.php/products/shoes/show/123</code> <p>Each of your sub-folders may contain a default controller which will be -called if the URL contains only the sub-folder. Simply name your default controller as specified in your +called if the URL contains only the sub-folder. Simply name your default controller as specified in your <dfn>application/config/routes.php</dfn> file</p> @@ -346,7 +346,7 @@ called if the URL contains only the sub-folder. Simply name your default contro <?php<br /> class <kbd>Blog</kbd> extends CI_Controller {<br /> <br /> - function <kbd>__construct()</kbd><br /> + public function <kbd>__construct()</kbd><br /> {<br /> <var>parent::__construct();</var><br /> // Your own constructor code<br /> diff --git a/user_guide/general/core_classes.html b/user_guide/general/core_classes.html index 11410a31f..e5521b453 100644 --- a/user_guide/general/core_classes.html +++ b/user_guide/general/core_classes.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -111,12 +111,12 @@ class CI_Input {<br /><br /> <h2>Extending Core Class</h2> <p>If all you need to do is add some functionality to an existing library - perhaps add a function or two - then -it's overkill to replace the entire library with your version. In this case it's better to simply extend the class. +it's overkill to replace the entire library with your version. In this case it's better to simply extend the class. Extending a class is nearly identical to replacing a class with a couple exceptions:</p> <ul> <li>The class declaration must extend the parent class.</li> -<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</li> +<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</li> </ul> <p>For example, to extend the native <kbd>Input</kbd> class you'll create a file named <dfn>application/core/</dfn><kbd>MY_Input.php</kbd>, and declare your class with:</p> diff --git a/user_guide/general/creating_drivers.html b/user_guide/general/creating_drivers.html index 6208dd5d3..a7594056b 100644 --- a/user_guide/general/creating_drivers.html +++ b/user_guide/general/creating_drivers.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/general/creating_libraries.html b/user_guide/general/creating_libraries.html index b7b66f0c1..a44ec47b7 100644 --- a/user_guide/general/creating_libraries.html +++ b/user_guide/general/creating_libraries.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,7 +58,7 @@ Creating Libraries <h1>Creating Libraries</h1> <p>When we use the term "Libraries" we are normally referring to the classes that are located in the <kbd>libraries</kbd> -directory and described in the Class Reference of this user guide. In this case, however, we will instead describe how you can create +directory and described in the Class Reference of this user guide. In this case, however, we will instead describe how you can create your own libraries within your <dfn>application/libraries</dfn> directory in order to maintain separation between your local resources and the global framework resources.</p> @@ -75,7 +75,7 @@ to an existing library. Or you can even replace native libraries just by placing <p>The page below explains these three concepts in detail.</p> -<p class="important"><strong>Note:</strong> The Database classes can not be extended or replaced with your own classes. All other classes are able to be replaced/extended.</p> +<p class="important"><strong>Note:</strong> The Database classes can not be extended or replaced with your own classes. All other classes are able to be replaced/extended.</p> <h2>Storage</h2> @@ -88,24 +88,24 @@ they are initialized.</p> <ul> <li>File names must be capitalized. For example: <dfn>Myclass.php</dfn></li> -<li>Class declarations must be capitalized. For example: <kbd>class Myclass</kbd></li> +<li>Class declarations must be capitalized. For example: <kbd>class Myclass</kbd></li> <li>Class names and file names must match.</li> </ul> <h2>The Class File</h2> -<p>Classes should have this basic prototype (Note: We are using the name <kbd>Someclass</kbd> purely as an example):</p> +<p>Classes should have this basic prototype (Note: We are using the name <kbd>Someclass</kbd> purely as an example):</p> -<code><?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); +<code><?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); <br /><br /> class Someclass {<br /> <br /> - function some_function()<br /> + public function some_function()<br /> {<br /> }<br /> }<br /><br /> -?></code> +/* End of file Someclass.php */</code> <h2>Using Your Class</h2> @@ -136,19 +136,19 @@ $this->load->library('Someclass', <kbd>$params</kbd>);</code> <p>If you use this feature you must set up your class constructor to expect data:</p> -<code><?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');<br /> +<code><?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');<br /> <br /> class Someclass {<br /> <br /> - function __construct($params)<br /> + public function __construct($params)<br /> {<br /> // Do something with $params<br /> }<br /> }<br /><br /> ?></code> -<p class="important">You can also pass parameters stored in a config file. Simply create a config file named identically to the class <kbd>file name</kbd> -and store it in your <dfn>application/config/</dfn> folder. Note that if you dynamically pass parameters as described above, +<p class="important">You can also pass parameters stored in a config file. Simply create a config file named identically to the class <kbd>file name</kbd> +and store it in your <dfn>application/config/</dfn> folder. Note that if you dynamically pass parameters as described above, the config file option will not be available.</p> @@ -202,7 +202,7 @@ etc. <h2>Replacing Native Libraries with Your Versions</h2> <p>Simply by naming your class files identically to a native library will cause CodeIgniter to use it instead of the native one. To use this -feature you must name the file and the class declaration exactly the same as the native library. For example, to replace the native <kbd>Email</kbd> library +feature you must name the file and the class declaration exactly the same as the native library. For example, to replace the native <kbd>Email</kbd> library you'll create a file named <dfn>application/libraries/Email.php</dfn>, and declare your class with:</p> <code> @@ -222,12 +222,12 @@ class CI_Email {<br /><br /> <h2>Extending Native Libraries</h2> <p>If all you need to do is add some functionality to an existing library - perhaps add a function or two - then -it's overkill to replace the entire library with your version. In this case it's better to simply extend the class. +it's overkill to replace the entire library with your version. In this case it's better to simply extend the class. Extending a class is nearly identical to replacing a class with a couple exceptions:</p> <ul> <li>The class declaration must extend the parent class.</li> -<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</li> +<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</li> </ul> <p>For example, to extend the native <kbd>Email</kbd> class you'll create a file named <dfn>application/libraries/</dfn><kbd>MY_Email.php</kbd>, and declare your class with:</p> @@ -243,7 +243,7 @@ class MY_Email extends CI_Email {<br /><br /> <code> class MY_Email extends CI_Email {<br /> <br /> - function __construct()<br /> + public function __construct()<br /> {<br /> parent::__construct();<br /> }<br /> @@ -252,12 +252,12 @@ class MY_Email extends CI_Email {<br /> <h3>Loading Your Sub-class</h3> -<p>To load your sub-class you'll use the standard syntax normally used. DO NOT include your prefix. For example, +<p>To load your sub-class you'll use the standard syntax normally used. DO NOT include your prefix. For example, to load the example above, which extends the Email class, you will use:</p> <code>$this->load->library('<kbd>email</kbd>');</code> -<p>Once loaded you will use the class variable as you normally would for the class you are extending. In the case of +<p>Once loaded you will use the class variable as you normally would for the class you are extending. In the case of the email class all calls will use:</p> diff --git a/user_guide/general/credits.html b/user_guide/general/credits.html index b6915924c..64b72c47d 100644 --- a/user_guide/general/credits.html +++ b/user_guide/general/credits.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,11 +58,12 @@ Credits <h1>Credits</h1> <p>CodeIgniter was originally developed by <a href="http://www.ellislab.com/">Rick Ellis</a> (CEO of -<a href="http://ellislab.com/">EllisLab, Inc.</a>). The framework was written for performance in the real +<a href="http://ellislab.com/">EllisLab, Inc.</a>). The framework was written for performance in the real world, with many of the class libraries, helpers, and sub-systems borrowed from the code-base of <a href="http://www.expressionengine.com/">ExpressionEngine</a>.</p> -<p>It is currently developed and maintained by the ExpressionEngine Development Team.</p> +<p>It is currently developed and maintained by the ExpressionEngine Development Team.<br /> +Bleeding edge development is spearheaded by the handpicked contributors of the Reactor Team.</p> <p>A hat tip goes to Ruby on Rails for inspiring us to create a PHP framework, and for bringing frameworks into the general consciousness of the web community.</p> diff --git a/user_guide/general/drivers.html b/user_guide/general/drivers.html index 83ed9852d..4cdb56880 100644 --- a/user_guide/general/drivers.html +++ b/user_guide/general/drivers.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,15 +58,15 @@ Using CodeIgniter Drivers <h1>Using CodeIgniter Drivers</h1> -<p>Drivers are a special type of Library that has a parent class and any number of potential child classes. Child classes have access to the parent class, but not their siblings. Drivers provide an elegant syntax in your <a href="controllers.html">controllers</a> for libraries that benefit from or require being broken down into discrete classes.</p> +<p>Drivers are a special type of Library that has a parent class and any number of potential child classes. Child classes have access to the parent class, but not their siblings. Drivers provide an elegant syntax in your <a href="controllers.html">controllers</a> for libraries that benefit from or require being broken down into discrete classes.</p> -<p>Drivers are found in the <dfn>system/libraries</dfn> folder, in their own folder which is identically named to the parent library class. Also inside that folder is a subfolder named <kbd>drivers</kbd>, which contains all of the possible child class files.</p> +<p>Drivers are found in the <dfn>system/libraries</dfn> folder, in their own folder which is identically named to the parent library class. Also inside that folder is a subfolder named <kbd>drivers</kbd>, which contains all of the possible child class files.</p> <p>To use a driver you will initialize it within a controller using the following initialization function:</p> <code>$this->load->driver('<var>class name</var>'); </code> -<p>Where <var>class name</var> is the name of the driver class you want to invoke. For example, to load a driver named "Some Parent" you would do this:</p> +<p>Where <var>class name</var> is the name of the driver class you want to invoke. For example, to load a driver named "Some Parent" you would do this:</p> <code>$this->load->driver('<var>some_parent</var>');</code> diff --git a/user_guide/general/environments.html b/user_guide/general/environments.html index 690c14c2c..9aed1d6ff 100644 --- a/user_guide/general/environments.html +++ b/user_guide/general/environments.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<title>Creating Libraries : CodeIgniter User Guide</title> +<title>Handling Multiple Environments : CodeIgniter User Guide</title> <style type='text/css' media='all'>@import url('../userguide.css');</style> <link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -42,7 +42,7 @@ <td id="breadcrumb"> <a href="http://codeigniter.com/">CodeIgniter Home</a> › <a href="../index.html">User Guide Home</a> › -Creating Libraries +Handling Multiple Environments </td> <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 <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" /> <input type="submit" class="submit" name="sa" value="Go" /></form></td> </tr> @@ -58,17 +58,17 @@ Creating Libraries <h1>Handling Multiple Environments</h1> <p> - Developers often desire different system behavior depending on whether - an application is running in a development or production - environment. For example, verbose error output is something that would - be useful while developing an application, but it may also pose a security issue when "live". + Developers often desire different system behavior depending on whether + an application is running in a development or production + environment. For example, verbose error output is something that would + be useful while developing an application, but it may also pose a security issue when "live". </p> <h2>The ENVIRONMENT Constant</h2> <p> - By default, CodeIgniter comes with the environment constant set to - '<kbd>development</kbd>'. At the top of index.php, you will see: + By default, CodeIgniter comes with the environment constant set to + '<kbd>development</kbd>'. At the top of index.php, you will see: </p> <code> @@ -76,35 +76,35 @@ define('<var>ENVIRONMENT</var>', '<var>development</var>'); </code> <p> - In addition to affecting some basic framework behavior (see the next section), - you may use this constant in your own development to differentiate - between which environment you are running in. + In addition to affecting some basic framework behavior (see the next section), + you may use this constant in your own development to differentiate + between which environment you are running in. </p> <h2>Effects On Default Framework Behavior</h2> <p> - There are some places in the CodeIgniter system where the <kbd>ENVIRONMENT</kbd> - constant is used. This section describes how default framework behavior is - affected. + There are some places in the CodeIgniter system where the <kbd>ENVIRONMENT</kbd> + constant is used. This section describes how default framework behavior is + affected. </p> <h3>Error Reporting</h3> <p> - Setting the <kbd>ENVIRONMENT</kbd> constant to a value of '<kbd>development</kbd>' will - cause all PHP errors to be rendered to the browser when they occur. Conversely, - setting the constant to '<kbd>production</kbd>' will disable all error output. Disabling - error reporting in production is a <a href="security.html">good security practice</a>. + Setting the <kbd>ENVIRONMENT</kbd> constant to a value of '<kbd>development</kbd>' will + cause all PHP errors to be rendered to the browser when they occur. Conversely, + setting the constant to '<kbd>production</kbd>' will disable all error output. Disabling + error reporting in production is a <a href="security.html">good security practice</a>. </p> <h3>Configuration Files</h3> <p> - Optionally, you can have CodeIgniter load environment-specific - configuration files. This may be useful for managing things like differing API keys - across multiple environments. This is described in more detail in the - environment section of the <a href="../libraries/config.html#environments">Config Class</a> documentation. + Optionally, you can have CodeIgniter load environment-specific + configuration files. This may be useful for managing things like differing API keys + across multiple environments. This is described in more detail in the + environment section of the <a href="../libraries/config.html#environments">Config Class</a> documentation. </p> </div> @@ -113,11 +113,11 @@ define('<var>ENVIRONMENT</var>', '<var>development</var>'); <div id="footer"> <p> -Previous Topic: <a href="libraries.html">Using CodeIgniter Libraries</a> +Previous Topic: <a href="managing_apps.html">Managing Applications</a> · <a href="#top">Top of Page</a> · <a href="../index.html">User Guide Home</a> · -Next Topic: <a href="drivers.html">Using CodeIgniter Drivers</a> +Next Topic: <a href="alternative_php.html">Alternative PHP Syntax</a> </p> <p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> </div> diff --git a/user_guide/general/errors.html b/user_guide/general/errors.html index 98af3f0c7..b1664c68d 100644 --- a/user_guide/general/errors.html +++ b/user_guide/general/errors.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -60,13 +60,13 @@ Error Handling <p>CodeIgniter lets you build error reporting into your applications using the functions described below. In addition, it has an error logging class that permits error and debugging messages to be saved as text files.</p> -<p class="important"><strong>Note:</strong> By default, CodeIgniter displays all PHP errors. You might -wish to change this behavior once your development is complete. You'll find the <dfn>error_reporting()</dfn> +<p class="important"><strong>Note:</strong> By default, CodeIgniter displays all PHP errors. You might +wish to change this behavior once your development is complete. You'll find the <dfn>error_reporting()</dfn> function located at the top of your main index.php file. Disabling error reporting will NOT prevent log files from being written if there are errors.</p> <p>Unlike most systems in CodeIgniter, the error functions are simple procedural interfaces that are available -globally throughout the application. This approach permits error messages to get triggered without having to worry +globally throughout the application. This approach permits error messages to get triggered without having to worry about class/function scoping.</p> <p>The following functions let you generate errors:</p> @@ -88,9 +88,9 @@ Note that CodeIgniter automatically shows 404 messages if controllers are not fo <h2>log_message('<var>level</var>', '<samp>message</samp>')</h2> -<p>This function lets you write messages to your log files. You must supply one of three "levels" +<p>This function lets you write messages to your log files. You must supply one of three "levels" in the first parameter, indicating what type of message it is (debug, error, info), with the message -itself in the second parameter. Example:</p> +itself in the second parameter. Example:</p> <code> if ($some_var == "")<br /> @@ -108,14 +108,14 @@ log_message('info', 'The purpose of some variable is to provide some value.');<b <p>There are three message types:</p> <ol> -<li>Error Messages. These are actual errors, such as PHP errors or user errors.</li> -<li>Debug Messages. These are messages that assist in debugging. For example, if a class has been initialized, you could log this as debugging info.</li> -<li>Informational Messages. These are the lowest priority messages, simply giving information regarding some process. CodeIgniter doesn't natively generate any info messages but you may want to in your application.</li> +<li>Error Messages. These are actual errors, such as PHP errors or user errors.</li> +<li>Debug Messages. These are messages that assist in debugging. For example, if a class has been initialized, you could log this as debugging info.</li> +<li>Informational Messages. These are the lowest priority messages, simply giving information regarding some process. CodeIgniter doesn't natively generate any info messages but you may want to in your application.</li> </ol> <p class="important"><strong>Note:</strong> In order for the log file to actually be written, the - "logs" folder must be writable. In addition, you must set the "threshold" for logging. + "logs" folder must be writable. In addition, you must set the "threshold" for logging in <dfn>application/config/config.php</dfn>. You might, for example, only want error messages to be logged, and not the other two types. If you set it to zero logging will be disabled.</p> diff --git a/user_guide/general/helpers.html b/user_guide/general/helpers.html index cc3e22644..99f47178e 100644 --- a/user_guide/general/helpers.html +++ b/user_guide/general/helpers.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,20 +57,20 @@ Helper Functions <h1>Helper Functions</h1> -<p>Helpers, as the name suggests, help you with tasks. Each helper file is simply a collection of functions in a particular -category. There are <dfn>URL Helpers</dfn>, that assist in creating links, there are <dfn>Form Helpers</dfn> +<p>Helpers, as the name suggests, help you with tasks. Each helper file is simply a collection of functions in a particular +category. There are <dfn>URL Helpers</dfn>, that assist in creating links, there are <dfn>Form Helpers</dfn> that help you create form elements, <dfn>Text Helpers</dfn> perform various text formatting routines, <dfn>Cookie Helpers</dfn> set and read cookies, <dfn>File Helpers</dfn> help you deal with files, etc. </p> -<p>Unlike most other systems in CodeIgniter, Helpers are not written in an Object Oriented format. They are simple, procedural functions. +<p>Unlike most other systems in CodeIgniter, Helpers are not written in an Object Oriented format. They are simple, procedural functions. Each helper function performs one specific task, with no dependence on other functions.</p> <p>CodeIgniter does not load Helper Files by default, so the first step in using -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> +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> <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> -directory. If the directory does not exist or the specified helper is not located there CI will instead look in your global +directory. If the directory does not exist or the specified helper is not located there CI will instead look in your global <dfn>system/helpers</dfn> folder.</p> @@ -87,10 +87,10 @@ directory. If the directory does not exist or the specified helper is not locat <code>$this->load->helper('<var>url</var>');</code> <p>A helper can be loaded anywhere within your controller functions (or even within your View files, although that's not a good practice), -as long as you load it before you use it. You can load your helpers in your controller constructor so that they become available +as long as you load it before you use it. You can load your helpers in your controller constructor so that they become available automatically in any function, or you can load a helper in a specific function that needs it.</p> -<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> +<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> <h2>Loading Multiple Helpers</h2> @@ -117,12 +117,12 @@ This is done by opening the <var>application/config/autoload.php</var> file and <h2>"Extending" Helpers</h2> -<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> +<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> <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 - helper function operates - then it's overkill to replace the entire helper with your version. In this case it's better to simply - "extend" the Helper. The term "extend" is used loosely since Helper functions are procedural and discrete and cannot be extended - in the traditional programmatic sense. Under the hood, this gives you the ability to add to the functions a Helper provides, + helper function operates - then it's overkill to replace the entire helper with your version. In this case it's better to simply + "extend" the Helper. The term "extend" is used loosely since Helper functions are procedural and discrete and cannot be extended + in the traditional programmatic sense. Under the hood, this gives you the ability to add to the functions a Helper provides, or to modify how the native Helper functions operate.</p> <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> @@ -154,7 +154,7 @@ function random_element($array)<br /> <h3>Setting Your Own Prefix</h3> -<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> +<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> <code>$config['subclass_prefix'] = 'MY_';</code> @@ -163,7 +163,7 @@ function random_element($array)<br /> <h2>Now What?</h2> -<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> +<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> </div> diff --git a/user_guide/general/hooks.html b/user_guide/general/hooks.html index 1a77389a9..1293d12eb 100644 --- a/user_guide/general/hooks.html +++ b/user_guide/general/hooks.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -73,7 +73,7 @@ your own scripts in some other location. <h2>Defining a Hook</h2> -<p>Hooks are defined in <dfn>application/config/hooks.php</dfn> file. Each hook is specified as an array with this prototype:</p> +<p>Hooks are defined in <dfn>application/config/hooks.php</dfn> file. Each hook is specified as an array with this prototype:</p> <code> $hook['pre_controller'] = array(<br /> @@ -85,14 +85,14 @@ $hook['pre_controller'] = array(<br /> );</code> <p><strong>Notes:</strong><br />The array index correlates to the name of the particular hook point you want to -use. In the above example the hook point is <kbd>pre_controller</kbd>. A list of hook points is found below. +use. In the above example the hook point is <kbd>pre_controller</kbd>. A list of hook points is found below. The following items should be defined in your associative hook array:</p> <ul> <li><strong>class</strong> The name of the class you wish to invoke. If you prefer to use a procedural function instead of a class, leave this item blank.</li> <li><strong>function</strong> The function name you wish to call.</li> <li><strong>filename</strong> The file name containing your class/function.</li> -<li><strong>filepath</strong> The name of the directory containing your script. Note: Your script must be located in a directory INSIDE your <kbd>application</kbd> folder, so the file path is relative to that folder. For example, if your script is located in <dfn>application/hooks</dfn>, you will simply use <samp>hooks</samp> as your filepath. If your script is located in <dfn>application/hooks/utilities</dfn> you will use <samp>hooks/utilities</samp> as your filepath. No trailing slash.</li> +<li><strong>filepath</strong> The name of the directory containing your script. Note: Your script must be located in a directory INSIDE your <kbd>application</kbd> folder, so the file path is relative to that folder. For example, if your script is located in <dfn>application/hooks</dfn>, you will simply use <samp>hooks</samp> as your filepath. If your script is located in <dfn>application/hooks/utilities</dfn> you will use <samp>hooks/utilities</samp> as your filepath. No trailing slash.</li> <li><strong>params</strong> Any parameters you wish to pass to your script. This item is optional.</li> </ul> @@ -122,7 +122,7 @@ $hook['pre_controller']<kbd>[]</kbd> = array(<br /> <code>$hook['pre_controller']<kbd>[]</kbd></code> -<p>This permits you to have the same hook point with multiple scripts. The order you define your array will be the execution order.</p> +<p>This permits you to have the same hook point with multiple scripts. The order you define your array will be the execution order.</p> <h2>Hook Points</h2> @@ -131,7 +131,7 @@ $hook['pre_controller']<kbd>[]</kbd> = array(<br /> <ul> <li><strong>pre_system</strong><br /> - Called very early during system execution. Only the benchmark and hooks class have been loaded at this point. No routing or other processes have happened.</li> + Called very early during system execution. Only the benchmark and hooks class have been loaded at this point. No routing or other processes have happened.</li> <li><strong>pre_controller</strong><br /> Called immediately prior to any of your controllers being called. All base classes, routing, and security checks have been done.</li> <li><strong>post_controller_constructor</strong><br /> @@ -139,10 +139,10 @@ $hook['pre_controller']<kbd>[]</kbd> = array(<br /> <li><strong>post_controller</strong><br /> Called immediately after your controller is fully executed.</li> <li><strong>display_override</strong><br /> - Overrides the <dfn>_display()</dfn> function, used to send the finalized page to the web browser at the end of system execution. This permits you to - use your own display methodology. Note that you will need to reference the CI superobject with <dfn>$this->CI =& get_instance()</dfn> and then the finalized data will be available by calling <dfn>$this->CI->output->get_output()</dfn></li> + Overrides the <dfn>_display()</dfn> function, used to send the finalized page to the web browser at the end of system execution. This permits you to + use your own display methodology. Note that you will need to reference the CI superobject with <dfn>$this->CI =& get_instance()</dfn> and then the finalized data will be available by calling <dfn>$this->CI->output->get_output()</dfn></li> <li><strong>cache_override</strong><br /> - Enables you to call your own function instead of the <dfn>_display_cache()</dfn> function in the output class. This permits you to use your own cache display mechanism.</li> + Enables you to call your own function instead of the <dfn>_display_cache()</dfn> function in the output class. This permits you to use your own cache display mechanism.</li> <li><strong>post_system</strong><br /> Called after the final rendered page is sent to the browser, at the end of system execution after the finalized data is sent to the browser.</li> </ul> diff --git a/user_guide/general/libraries.html b/user_guide/general/libraries.html index 82c409bf0..ff869247f 100644 --- a/user_guide/general/libraries.html +++ b/user_guide/general/libraries.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -63,7 +63,7 @@ In most cases, to use one of these classes involves initializing it within a <a <code>$this->load->library('<var>class name</var>'); </code> -<p>Where <var>class name</var> is the name of the class you want to invoke. For example, to load the form validation class you would do this:</p> +<p>Where <var>class name</var> is the name of the class you want to invoke. For example, to load the form validation class you would do this:</p> <code>$this->load->library('<var>form_validation</var>'); </code> diff --git a/user_guide/general/managing_apps.html b/user_guide/general/managing_apps.html index 4b4493dce..a6f9b72a0 100644 --- a/user_guide/general/managing_apps.html +++ b/user_guide/general/managing_apps.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,7 +58,7 @@ Managing your Applications <h1>Managing your Applications</h1> <p>By default it is assumed that you only intend to use CodeIgniter to manage one application, which you will build in your -<dfn>application/</dfn> directory. It is possible, however, to have multiple sets of applications that share a single +<dfn>application/</dfn> directory. It is possible, however, to have multiple sets of applications that share a single CodeIgniter installation, or even to rename or relocate your <dfn>application</dfn> folder.</p> <h2>Renaming the Application Folder</h2> @@ -83,7 +83,7 @@ To do so open your main <kbd>index.php</kbd> and set a <em>full server path</em> put all of the directories located inside your <kbd>application</kbd> folder into their own sub-folder.</p> -<p>For example, let's say you want to create two applications, "foo" and "bar". You could structure your +<p>For example, let's say you want to create two applications, "foo" and "bar". You could structure your application folders like this:</p> <code>applications/<var>foo</var>/<br /> @@ -103,12 +103,12 @@ applications/<samp>bar</samp>/views/</code> <p>To select a particular application for use requires that you open your main <kbd>index.php</kbd> file and set the <dfn>$application_folder</dfn> -variable. For example, to select the "foo" application for use you would do this:</p> +variable. For example, to select the "foo" application for use you would do this:</p> <code>$application_folder = "applications/foo";</code> <p class="important"><strong>Note:</strong> Each of your applications will need its own <dfn>index.php</dfn> file which -calls the desired application. The index.php file can be named anything you want.</p> +calls the desired application. The index.php file can be named anything you want.</p> diff --git a/user_guide/general/models.html b/user_guide/general/models.html index 9afec7ef2..c0e494351 100644 --- a/user_guide/general/models.html +++ b/user_guide/general/models.html @@ -27,7 +27,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -72,8 +72,8 @@ Models <h2><a name="what"></a>What is a Model?</h2> -<p>Models are PHP classes that are designed to work with information in your database. For example, let's say -you use CodeIgniter to manage a blog. You might have a model class that contains functions to insert, update, and +<p>Models are PHP classes that are designed to work with information in your database. For example, let's say +you use CodeIgniter to manage a blog. You might have a model class that contains functions to insert, update, and retrieve your blog data. Here is an example of what such a model class might look like:</p> <code> @@ -116,10 +116,10 @@ class Blogmodel extends CI_Model {<br /> }</code> <p>Note: The functions in the above example use the <a href="../database/active_record.html">Active Record</a> database functions.</p> -<p class="important"><strong>Note:</strong> For the sake of simplicity in this example we're using $_POST directly. This is generally bad practice, and a more common approach would be to use the <a href="../libraries/input.html">Input Class</a> $this->input->post('title')</p> +<p class="important"><strong>Note:</strong> For the sake of simplicity in this example we're using $_POST directly. This is generally bad practice, and a more common approach would be to use the <a href="../libraries/input.html">Input Class</a> $this->input->post('title')</p> <h2><a name="anatomy"></a>Anatomy of a Model</h2> -<p>Model classes are stored in your <dfn>application/models/</dfn> folder. They can be nested within sub-folders if you +<p>Model classes are stored in your <dfn>application/models/</dfn> folder. They can be nested within sub-folders if you want this type of organization.</p> <p>The basic prototype for a model class is this:</p> @@ -134,10 +134,10 @@ class <var>Model_name</var> extends CI_Model {<br /> }<br /> }</code> -<p>Where <var>Model_name</var> is the name of your class. Class names <strong>must</strong> have the first letter capitalized with the rest of the name lowercase. +<p>Where <var>Model_name</var> is the name of your class. Class names <strong>must</strong> have the first letter capitalized with the rest of the name lowercase. Make sure your class extends the base Model class.</p> -<p>The file name will be a lower case version of your class name. For example, if your class is this:</p> +<p>The file name will be a lower case version of your class name. For example, if your class is this:</p> <code> class <var>User_model</var> extends CI_Model {<br /> @@ -161,7 +161,7 @@ To load a model you will use the following function:</p> <code>$this->load->model('<var>Model_name</var>');</code> -<p>If your model is located in a sub-folder, include the relative path from your models folder. For example, if +<p>If your model is located in a sub-folder, include the relative path from your models folder. For example, if you have a model located at <dfn>application/models/blog/queries.php</dfn> you'll load it using:</p> <code>$this->load->model('<var>blog/queries</var>');</code> @@ -200,12 +200,12 @@ class Blog_controller extends CI_Controller {<br /> }</code> <h2><a name="auto_load_model" id="auto_load_model"></a>Auto-loading Models</h2> -<p>If you find that you need a particular model globally throughout your application, you can tell CodeIgniter to auto-load it during system initialization. This is done by opening the application/config/autoload.php file and adding the model to the autoload array.</p> +<p>If you find that you need a particular model globally throughout your application, you can tell CodeIgniter to auto-load it during system initialization. This is done by opening the application/config/autoload.php file and adding the model to the autoload array.</p> <h2><a name="conn"></a>Connecting to your Database</h2> -<p>When a model is loaded it does <strong>NOT</strong> connect automatically to your database. The following options for connecting are available to you:</p> +<p>When a model is loaded it does <strong>NOT</strong> connect automatically to your database. The following options for connecting are available to you:</p> <ul> <li>You can connect using the standard database methods <a href="../database/connecting.html">described here</a>, either from within your Controller class or your Model class.</li> diff --git a/user_guide/general/profiling.html b/user_guide/general/profiling.html index c8d7eb431..fdf8b6c2b 100644 --- a/user_guide/general/profiling.html +++ b/user_guide/general/profiling.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -87,7 +87,7 @@ This information can be useful during development in order to help with debuggin <h2>Enabling and Disabling Profiler Sections</h2> - <p>Each section of Profiler data can be enabled or disabled by setting a corresponding config variable to <var>TRUE</var> or <var>FALSE</var>. This can be done one of two ways. First, you can set application wide defaults with the <dfn>application/config/profiler.php</dfn> config file.</p> + <p>Each section of Profiler data can be enabled or disabled by setting a corresponding config variable to <var>TRUE</var> or <var>FALSE</var>. This can be done one of two ways. First, you can set application wide defaults with the <dfn>application/config/profiler.php</dfn> config file.</p> <code>$config['config'] = FALSE;<br /> $config['queries'] = FALSE;<br /></code> @@ -105,55 +105,60 @@ This information can be useful during development in order to help with debuggin <table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> <tr> - <th>Key</th> - <th>Description</th> - <th>Default</th> - </tr><tr> - - <td class="td"><strong>benchmarks</strong></td> - <td class="td">Elapsed time of Benchmark points and total execution time</td> - <td class="td">TRUE</td> - </tr><tr> - - <td class="td"><strong>config</strong></td> - <td class="td">CodeIgniter Config variables</td> - <td class="td">TRUE</td> - </tr><tr> - - <td class="td"><strong>controller_info</strong></td> - <td class="td">The Controller class and method requested</td> - <td class="td">TRUE</td> - </tr><tr> - - <td class="td"><strong>get</strong></td> - <td class="td">Any GET data passed in the request</td> - <td class="td">TRUE</td> - </tr><tr> - - <td class="td"><strong>http_headers</strong></td> - <td class="td">The HTTP headers for the current request</td> - <td class="td">TRUE</td> - </tr><tr> - - <td class="td"><strong>memory_usage</strong></td> - <td class="td">Amount of memory consumed by the current request, in bytes</td> - <td class="td">TRUE</td> - </tr><tr> - - <td class="td"><strong>post</strong></td> - <td class="td">Any POST data passed in the request</td> - <td class="td">TRUE</td> - </tr><tr> - - <td class="td"><strong>queries</strong></td> - <td class="td">Listing of all database queries executed, including execution time</td> - <td class="td">TRUE</td> - </tr><tr> - - <td class="td"><strong>uri_string</strong></td> - <td class="td">The URI of the current request</td> - <td class="td">TRUE</td> - </tr><tr> + <th>Key</th> + <th>Description</th> + <th>Default</th> + </tr> + <tr> + <td class="td"><strong>benchmarks</strong></td> + <td class="td">Elapsed time of Benchmark points and total execution time</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>config</strong></td> + <td class="td">CodeIgniter Config variables</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>controller_info</strong></td> + <td class="td">The Controller class and method requested</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>get</strong></td> + <td class="td">Any GET data passed in the request</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>http_headers</strong></td> + <td class="td">The HTTP headers for the current request</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>memory_usage</strong></td> + <td class="td">Amount of memory consumed by the current request, in bytes</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>post</strong></td> + <td class="td">Any POST data passed in the request</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>queries</strong></td> + <td class="td">Listing of all database queries executed, including execution time</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>uri_string</strong></td> + <td class="td">The URI of the current request</td> + <td class="td">TRUE</td> + </tr> + <tr> + <td class="td"><strong>query_toggle_count</strong></td> + <td class="td">The number of queries after which the query block will default to hidden.</td> + <td class="td">25</td> + </tr> </table> diff --git a/user_guide/general/quick_reference.html b/user_guide/general/quick_reference.html index 388f25978..9273708f3 100644 --- a/user_guide/general/quick_reference.html +++ b/user_guide/general/quick_reference.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/general/requirements.html b/user_guide/general/requirements.html index fbe38261d..ab0e28857 100644 --- a/user_guide/general/requirements.html +++ b/user_guide/general/requirements.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/general/reserved_names.html b/user_guide/general/reserved_names.html index c12ee6e15..48b6b2a5e 100644 --- a/user_guide/general/reserved_names.html +++ b/user_guide/general/reserved_names.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,8 +61,8 @@ Controllers <h3>Controller names</h3> <p>Since your controller classes will extend the main application controller you must be careful not to name your functions identically to the ones used by that class, otherwise your local functions -will override them. The following -is a list of reserved names. Do not name your controller any of these:</p> +will override them. The following +is a list of reserved names. Do not name your controller any of these:</p> <ul> <li>Controller</li> <li>CI_Base</li> @@ -90,6 +90,7 @@ is a list of reserved names. Do not name your controller any of these:</p> </ul> <h3>Constants</h3> <ul> + <li>ENVIRONMENT</li> <li>EXT</li> <li>FCPATH</li> <li>SELF</li> diff --git a/user_guide/general/routing.html b/user_guide/general/routing.html index e973d2351..6f06ad64f 100644 --- a/user_guide/general/routing.html +++ b/user_guide/general/routing.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -80,7 +80,7 @@ To overcome this, CodeIgniter allows you to remap the URI handler.</p> <h2>Setting your own routing rules</h2> -<p>Routing rules are defined in your <var>application/config/routes.php</var> file. In it you'll see an array called <dfn>$route</dfn> that +<p>Routing rules are defined in your <var>application/config/routes.php</var> file. In it you'll see an array called <dfn>$route</dfn> that permits you to specify your own routing criteria. Routes can either be specified using <dfn>wildcards</dfn> or <dfn>Regular Expressions</dfn></p> @@ -90,7 +90,7 @@ permits you to specify your own routing criteria. Routes can either be specified <code>$route['product/:num'] = "catalog/product_lookup";</code> -<p>In a route, the array key contains the URI to be matched, while the array value contains the destination it should be re-routed to. +<p>In a route, the array key contains the URI to be matched, while the array value contains the destination it should be re-routed to. In the above example, if the literal word "product" is found in the first segment of the URL, and a number is found in the second segment, the "catalog" class and the "product_lookup" method are instead used.</p> @@ -111,10 +111,10 @@ Higher routes will always take precedence over lower ones.</p> <p>A URL containing the word "journals" in the first segment will be remapped to the "blogs" class.</p> <code>$route['blog/joe'] = "blogs/users/34";</code> -<p>A URL containing the segments blog/joe will be remapped to the "blogs" class and the "users" method. The ID will be set to "34".</p> +<p>A URL containing the segments blog/joe will be remapped to the "blogs" class and the "users" method. The ID will be set to "34".</p> <code>$route['product/(:any)'] = "catalog/product_lookup";</code> -<p>A URL with "product" as the first segment, and anything in the second will be remapped to the "catalog" class and the "product_lookup" method.</p> +<p>A URL with "product" as the first segment, and anything in the second will be remapped to the "catalog" class and the "product_lookup" method.</p> <code>$route['product/(:num)'] = "catalog/product_lookup_by_id/$1";</code> <p>A URL with "product" as the first segment, and a number in the second will be remapped to the "catalog" class and the "product_lookup_by_id" method passing in the match as a variable to the function.</p> @@ -123,7 +123,7 @@ Higher routes will always take precedence over lower ones.</p> <h2>Regular Expressions</h2> -<p>If you prefer you can use regular expressions to define your routing rules. Any valid regular expression is allowed, as are back-references.</p> +<p>If you prefer you can use regular expressions to define your routing rules. Any valid regular expression is allowed, as are back-references.</p> <p class="important"><strong>Note:</strong> If you use back-references you must use the dollar syntax rather than the double backslash syntax.</p> @@ -142,9 +142,14 @@ Higher routes will always take precedence over lower ones.</p> <code>$route['default_controller'] = 'welcome';</code> <p>This route indicates which controller class should be loaded if the URI contains no data, which will be the case -when people load your root URL. In the above example, the "welcome" class would be loaded. You +when people load your root URL. In the above example, the "welcome" class would be loaded. You are encouraged to always have a default route otherwise a 404 page will appear by default.</p> +<code>$route['404_override'] = '';</code> + +<p>This route indicates which controller class should be loaded if the requested controller is not found. It will override the default 404 +error page. It won't affect to the <samp>show_404()</samp> function, which will continue loading the default <dfn>error_404.php</dfn> file at <var>application/errors/error_404.php</var>.</p> + <p class="important"><strong>Important:</strong> The reserved routes must come before any wildcard or regular expression routes.</p> </div> diff --git a/user_guide/general/security.html b/user_guide/general/security.html index 5ecfcf18a..31dd7978c 100644 --- a/user_guide/general/security.html +++ b/user_guide/general/security.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -64,7 +64,7 @@ CodeIgniter's internal security features.</p> <h2>URI Security</h2> <p>CodeIgniter is fairly restrictive regarding which characters it allows in your URI strings in order to help -minimize the possibility that malicious data can be passed to your application. URIs may only contain the following: +minimize the possibility that malicious data can be passed to your application. URIs may only contain the following: </p> <ul> @@ -76,33 +76,27 @@ minimize the possibility that malicious data can be passed to your application. <li>Dash: -</li> </ul> -<h2>GET, POST, and COOKIE Data</h2> - -<p>GET data is simply disallowed by CodeIgniter since the system utilizes URI segments rather than traditional URL query strings (unless -you have the query string option enabled in your config file). The global GET -array is <strong>unset</strong> by the Input class during system initialization.</p> - <h2>Register_globals</h2> -<p>During system initialization all global variables are unset, except those found in the $_POST and $_COOKIE arrays. The unsetting +<p>During system initialization all global variables are unset, except those found in the $_GET, $_POST, and $_COOKIE arrays. The unsetting routine is effectively the same as register_globals = off.</p> <a name="error_reporting"></a> <h2>error_reporting</h2> <p> - In production environments, it is typically desirable to disable PHP's - error reporting by setting the internal error_reporting flag to a value of 0. This disables native PHP - errors from being rendered as output, which may potentially contain - sensitive information. + In production environments, it is typically desirable to disable PHP's + error reporting by setting the internal error_reporting flag to a value of 0. This disables native PHP + errors from being rendered as output, which may potentially contain + sensitive information. </p> <p> - Setting CodeIgniter's <kbd>ENVIRONMENT</kbd> constant in index.php to a - value of '<kbd>production</kbd>' will turn off these errors. In development - mode, it is recommended that a value of '<kbd>development</kbd>' is used. - More information about differentiating between environments can be found - on the <a href="environments.html">Handling Environments</a> page. + Setting CodeIgniter's <kbd>ENVIRONMENT</kbd> constant in index.php to a + value of '<kbd>production</kbd>' will turn off these errors. In development + mode, it is recommended that a value of '<kbd>development</kbd>' is used. + More information about differentiating between environments can be found + on the <a href="environments.html">Handling Environments</a> page. </p> <h2>magic_quotes_runtime</h2> @@ -117,7 +111,7 @@ XML-RPC data, or even data from the SERVER array, you are encouraged to practice <ol> <li>Filter the data as if it were tainted.</li> -<li>Validate the data to ensure it conforms to the correct type, length, size, etc. (sometimes this step can replace step one)</li> +<li>Validate the data to ensure it conforms to the correct type, length, size, etc. (sometimes this step can replace step one)</li> <li>Escape the data before submitting it into your database.</li> </ol> @@ -127,7 +121,7 @@ XML-RPC data, or even data from the SERVER array, you are encouraged to practice <li><h2>XSS Filtering</h2> -<p>CodeIgniter comes with a Cross Site Scripting filter. This filter looks for commonly +<p>CodeIgniter comes with a Cross Site Scripting filter. This filter looks for commonly used techniques to embed malicious Javascript into your data, or other types of code that attempt to hijack cookies or do other malicious things. The XSS Filter is described <a href="../libraries/security.html">here</a>. </p> diff --git a/user_guide/general/styleguide.html b/user_guide/general/styleguide.html index caddddcc4..fc9ceb2e7 100644 --- a/user_guide/general/styleguide.html +++ b/user_guide/general/styleguide.html @@ -34,7 +34,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -102,13 +102,13 @@ Style Guide <h2><a name="file_format"></a>File Format</h2> <div class="guidelineDetails"> - <p>Files should be saved with Unicode (UTF-8) encoding. The <abbr title="Byte Order Mark">BOM</abbr> - should <em>not</em> be used. Unlike UTF-16 and UTF-32, there's no byte order to indicate in + <p>Files should be saved with Unicode (UTF-8) encoding. The <abbr title="Byte Order Mark">BOM</abbr> + should <em>not</em> be used. Unlike UTF-16 and UTF-32, there's no byte order to indicate in a UTF-8 encoded file, and the <abbr title="Byte Order Mark">BOM</abbr> can have a negative side effect in PHP of sending output, - preventing the application from being able to set its own headers. Unix line endings should + preventing the application from being able to set its own headers. Unix line endings should be used (LF).</p> - <p>Here is how to apply these settings in some of the more common text editors. Instructions for your + <p>Here is how to apply these settings in some of the more common text editors. Instructions for your text editor may vary; check your text editor's documentation.</p> <h5>TextMate</h5> @@ -137,8 +137,8 @@ Style Guide <h2><a name="php_closing_tag"></a>PHP Closing Tag</h2> <div class="guidelineDetails"> - <p>The PHP closing tag on a PHP document <strong>?></strong> is optional to the PHP parser. However, if used, any whitespace following the closing tag, whether introduced - by the developer, user, or an FTP application, can cause unwanted output, PHP errors, or if the latter are suppressed, blank pages. For this reason, all PHP files should + <p>The PHP closing tag on a PHP document <strong>?></strong> is optional to the PHP parser. However, if used, any whitespace following the closing tag, whether introduced + by the developer, user, or an FTP application, can cause unwanted output, PHP errors, or if the latter are suppressed, blank pages. For this reason, all PHP files should <strong>OMIT</strong> the closing PHP tag, and instead use a comment block to mark the end of file and it's location relative to the application root. This allows you to still identify a file as being complete and not truncated.</p> <code><strong>INCORRECT</strong>: @@ -161,7 +161,7 @@ echo "Here's my code!"; <h2><a name="class_and_method_naming"></a>Class and Method Naming</h2> <div class="guidelineDetails"> - <p>Class names should always start with an uppercase letter. Multiple words should be separated with an underscore, and not CamelCased. All other class methods should be entirely lowercased and named to clearly indicate their function, preferably including a verb. Try to avoid overly long and verbose names.</p> + <p>Class names should always start with an uppercase letter. Multiple words should be separated with an underscore, and not CamelCased. All other class methods should be entirely lowercased and named to clearly indicate their function, preferably including a verb. Try to avoid overly long and verbose names.</p> <code><strong>INCORRECT</strong>: class superclass @@ -184,7 +184,7 @@ class Super_class</code> <code><strong>INCORRECT</strong>: function fileproperties() // not descriptive and needs underscore separator function fileProperties() // not descriptive and uses CamelCase -function getfileproperties() // Better! But still missing underscore separator +function getfileproperties() // Better! But still missing underscore separator function getFileProperties() // uses CamelCase function get_the_file_properties_from_the_file() // wordy @@ -196,7 +196,7 @@ function get_file_properties() // descriptive, underscore separator, and all low <h2><a name="variable_names"></a>Variable Names</h2> <div class="guidelineDetails"> - <p>The guidelines for variable naming is very similar to that used for class methods. Namely, variables should contain only lowercase letters, use underscore separators, and be reasonably named to indicate their purpose and contents. Very short, non-word variables should only be used as iterators in for() loops.</p> + <p>The guidelines for variable naming is very similar to that used for class methods. Namely, variables should contain only lowercase letters, use underscore separators, and be reasonably named to indicate their purpose and contents. Very short, non-word variables should only be used as iterators in for() loops.</p> <code><strong>INCORRECT</strong>: $j = 'foo'; // single letter variables should only be used in for() loops $Str // contains uppercase letters @@ -216,7 +216,7 @@ $last_city <h2><a name="commenting"></a>Commenting</h2> <div class="guidelineDetails"> - <p>In general, code should be commented prolifically. It not only helps describe the flow and intent of the code for less experienced programmers, but can prove invaluable when returning to your own code months down the line. There is not a required format for comments, but the following are recommended.</p> + <p>In general, code should be commented prolifically. It not only helps describe the flow and intent of the code for less experienced programmers, but can prove invaluable when returning to your own code months down the line. There is not a required format for comments, but the following are recommended.</p> <p><a href="http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblock">DocBlock</a> style comments preceding class and method declarations so they can be picked up by IDEs:</p> @@ -246,9 +246,9 @@ function xml_encode($str)</code> $parts = explode("\n", $str); // A longer comment that needs to give greater detail on what is -// occurring and why can use multiple single-line comments. Try to +// occurring and why can use multiple single-line comments. Try to // keep the width reasonable, around 70 characters is the easiest to -// read. Don't hesitate to link to permanent external resources +// read. Don't hesitate to link to permanent external resources // that may provide greater detail: // // http://example.com/information_about_something/in_particular/ @@ -260,7 +260,7 @@ $parts = $this->foo($parts); <h2><a name="constants"></a>Constants</h2> <div class="guidelineDetails"> - <p>Constants follow the same guidelines as do variables, except constants should always be fully uppercase. <em>Always use CodeIgniter constants when appropriate, i.e. SLASH, LD, RD, PATH_CACHE, etc.</em></p> + <p>Constants follow the same guidelines as do variables, except constants should always be fully uppercase. <em>Always use CodeIgniter constants when appropriate, i.e. SLASH, LD, RD, PATH_CACHE, etc.</em></p> <code><strong>INCORRECT</strong>: myConstant // missing underscore separator and not fully uppercase N // no single-letter constants @@ -298,7 +298,7 @@ function foo($bar = NULL)</code> <strong>&&</strong> is preferred over <strong>AND</strong> but either are acceptable, and a space should always precede and follow <strong>!</strong>.</p> <code><strong>INCORRECT</strong>: if ($foo || $bar) -if ($foo AND $bar) // okay but not recommended for common syntax highlighting applications +if ($foo AND $bar) // okay but not recommended for common syntax highlighting applications if (!$foo) if (! is_array($foo)) @@ -314,8 +314,8 @@ if ( ! is_array($foo)) <h2><a name="comparing_return_values_and_typecasting"></a>Comparing Return Values and Typecasting</h2> <div class="guidelineDetails"> - <p>Some PHP functions return FALSE on failure, but may also have a valid return value of "" or 0, which would evaluate to FALSE in loose comparisons. Be explicit by comparing the variable type when using these return values in conditionals to ensure the return value is indeed what you expect, and not a value that has an equivalent loose-type evaluation.</p> - <p>Use the same stringency in returning and checking your own variables. Use <strong>===</strong> and <strong>!==</strong> as necessary. + <p>Some PHP functions return FALSE on failure, but may also have a valid return value of "" or 0, which would evaluate to FALSE in loose comparisons. Be explicit by comparing the variable type when using these return values in conditionals to ensure the return value is indeed what you expect, and not a value that has an equivalent loose-type evaluation.</p> + <p>Use the same stringency in returning and checking your own variables. Use <strong>===</strong> and <strong>!==</strong> as necessary. <code><strong>INCORRECT</strong>: // If 'foo' is at the beginning of the string, strpos will return a 0, @@ -329,7 +329,7 @@ if (strpos($str, 'foo') === FALSE) <code><strong>INCORRECT</strong>: function build_string($str = "") { - if ($str == "") // uh-oh! What if FALSE or the integer 0 is passed as an argument? + if ($str == "") // uh-oh! What if FALSE or the integer 0 is passed as an argument? { } @@ -344,7 +344,7 @@ function build_string($str = "") } }</code> - <p>See also information regarding <a href="http://us3.php.net/manual/en/language.types.type-juggling.php#language.types.typecasting">typecasting</a>, which can be quite useful. Typecasting has a slightly different effect which may be desirable. When casting a variable as a string, for instance, NULL and boolean FALSE variables become empty strings, 0 (and other numbers) become strings of digits, and boolean TRUE becomes "1":</p> + <p>See also information regarding <a href="http://us3.php.net/manual/en/language.types.type-juggling.php#language.types.typecasting">typecasting</a>, which can be quite useful. Typecasting has a slightly different effect which may be desirable. When casting a variable as a string, for instance, NULL and boolean FALSE variables become empty strings, 0 (and other numbers) become strings of digits, and boolean TRUE becomes "1":</p> <code>$str = (string) $str; // cast $str as a string</code> @@ -362,7 +362,7 @@ function build_string($str = "") <h2><a name="whitespace_in_files"></a>Whitespace in Files</h2> <div class="guidelineDetails"> - <p>No whitespace can precede the opening PHP tag or follow the closing PHP tag. Output is buffered, so whitespace in your files can cause output to begin before CodeIgniter outputs its content, leading to errors and an inability for CodeIgniter to send proper headers. In the examples below, select the text with your mouse to reveal the incorrect whitespace.</p> + <p>No whitespace can precede the opening PHP tag or follow the closing PHP tag. Output is buffered, so whitespace in your files can cause output to begin before CodeIgniter outputs its content, leading to errors and an inability for CodeIgniter to send proper headers. In the examples below, select the text with your mouse to reveal the incorrect whitespace.</p> <p><strong>INCORRECT</strong>:</p> <code> @@ -381,14 +381,14 @@ function build_string($str = "") <h2><a name="compatibility"></a>Compatibility</h2> <div class="guidelineDetails"> - <p>Unless specifically mentioned in your add-on's documentation, all code must be compatible with PHP version 4.3+. Additionally, do not use PHP functions that require non-default libraries to be installed unless your code contains an alternative method when the function is not available, or you implicitly document that your add-on requires said PHP libraries.</p> + <p>Unless specifically mentioned in your add-on's documentation, all code must be compatible with PHP version 5.1+. Additionally, do not use PHP functions that require non-default libraries to be installed unless your code contains an alternative method when the function is not available, or you implicitly document that your add-on requires said PHP libraries.</p> </div> <h2><a name="class_and_file_names_using_common_words"></a>Class and File Names using Common Words</h2> <div class="guidelineDetails"> - <p>When your class or filename is a common word, or might quite likely be identically named in another PHP script, provide a unique prefix to help prevent collision. Always realize that your end users may be running other add-ons or third party PHP scripts. Choose a prefix that is unique to your identity as a developer or company.</p> + <p>When your class or filename is a common word, or might quite likely be identically named in another PHP script, provide a unique prefix to help prevent collision. Always realize that your end users may be running other add-ons or third party PHP scripts. Choose a prefix that is unique to your identity as a developer or company.</p> <code><strong>INCORRECT</strong>: class Email pi.email.php @@ -405,7 +405,7 @@ class Pre_import mod.pre_import.php <h2><a name="database_table_names"></a>Database Table Names</h2> <div class="guidelineDetails"> - <p>Any tables that your add-on might use must use the 'exp_' prefix, followed by a prefix uniquely identifying you as the developer or company, and then a short descriptive table name. You do not need to be concerned about the database prefix being used on the user's installation, as CodeIgniter's database class will automatically convert 'exp_' to what is actually being used.</p> + <p>Any tables that your add-on might use must use the 'exp_' prefix, followed by a prefix uniquely identifying you as the developer or company, and then a short descriptive table name. You do not need to be concerned about the database prefix being used on the user's installation, as CodeIgniter's database class will automatically convert 'exp_' to what is actually being used.</p> <code><strong>INCORRECT</strong>: email_addresses // missing both prefixes @@ -416,35 +416,35 @@ exp_email_addresses // missing unique prefix exp_pre_email_addresses </code> - <p class="important"><strong>NOTE:</strong> Be mindful that MySQL has a limit of 64 characters for table names. This should not be an issue as table names that would exceed this would likely have unreasonable names. For instance, the following table name exceeds this limitation by one character. Silly, no? <strong>exp_pre_email_addresses_of_registered_users_in_seattle_washington</strong> + <p class="important"><strong>NOTE:</strong> Be mindful that MySQL has a limit of 64 characters for table names. This should not be an issue as table names that would exceed this would likely have unreasonable names. For instance, the following table name exceeds this limitation by one character. Silly, no? <strong>exp_pre_email_addresses_of_registered_users_in_seattle_washington</strong> </div> <h2><a name="one_file_per_class"></a>One File per Class</h2> <div class="guidelineDetails"> - <p>Use separate files for each class your add-on uses, unless the classes are <em>closely related</em>. An example of CodeIgniter files that contains multiple classes is the Database class file, which contains both the DB class and the DB_Cache class, and the Magpie plugin, which contains both the Magpie and Snoopy classes.</p> + <p>Use separate files for each class your add-on uses, unless the classes are <em>closely related</em>. An example of CodeIgniter files that contains multiple classes is the Database class file, which contains both the DB class and the DB_Cache class, and the Magpie plugin, which contains both the Magpie and Snoopy classes.</p> </div> <h2><a name="whitespace"></a>Whitespace</h2> <div class="guidelineDetails"> - <p>Use tabs for whitespace in your code, not spaces. This may seem like a small thing, but using tabs instead of whitespace allows the developer looking at your code to have indentation at levels that they prefer and customize in whatever application they use. And as a side benefit, it results in (slightly) more compact files, storing one tab character versus, say, four space characters.</p> + <p>Use tabs for whitespace in your code, not spaces. This may seem like a small thing, but using tabs instead of whitespace allows the developer looking at your code to have indentation at levels that they prefer and customize in whatever application they use. And as a side benefit, it results in (slightly) more compact files, storing one tab character versus, say, four space characters.</p> </div> <h2><a name="line_breaks"></a>Line Breaks</h2> <div class="guidelineDetails"> - <p>Files must be saved with Unix line breaks. This is more of an issue for developers who work in Windows, but in any case ensure that your text editor is setup to save files with Unix line breaks.</p> + <p>Files must be saved with Unix line breaks. This is more of an issue for developers who work in Windows, but in any case ensure that your text editor is setup to save files with Unix line breaks.</p> </div> <h2><a name="code_indenting"></a>Code Indenting</h2> <div class="guidelineDetails"> - <p>Use Allman style indenting. With the exception of Class declarations, braces are always placed on a line by themselves, and indented at the same level as the control statement that "owns" them.</p> + <p>Use Allman style indenting. With the exception of Class declarations, braces are always placed on a line by themselves, and indented at the same level as the control statement that "owns" them.</p> <code><strong>INCORRECT</strong>: function foo($bar) { @@ -501,7 +501,7 @@ for ($i = 0; $i < 10; $i++) <h2><a name="bracket_spacing"></a>Bracket and Parenthetic Spacing</h2> <div class="guidelineDetails"> - <p>In general, parenthesis and brackets should not use any additional spaces. The exception is that a space should always follow PHP control structures that accept arguments with parenthesis (declare, do-while, elseif, for, foreach, if, switch, while), to help distinguish them from functions and increase readability.</p> + <p>In general, parenthesis and brackets should not use any additional spaces. The exception is that a space should always follow PHP control structures that accept arguments with parenthesis (declare, do-while, elseif, for, foreach, if, switch, while), to help distinguish them from functions and increase readability.</p> <code>INCORRECT: $arr[ $foo ] = 'foo'; @@ -558,9 +558,9 @@ _convert_text() // private method</code> <h2><a name="php_errors"></a>PHP Errors</h2> <div class="guidelineDetails"> - <p>Code must run error free and not rely on warnings and notices to be hidden to meet this requirement. For instance, never access a variable that you did not set yourself (such as $_POST array keys) without first checking to see that it isset().</p> + <p>Code must run error free and not rely on warnings and notices to be hidden to meet this requirement. For instance, never access a variable that you did not set yourself (such as $_POST array keys) without first checking to see that it isset().</p> - <p>Make sure that while developing your add-on, error reporting is enabled for ALL users, and that display_errors is enabled in the PHP environment. You can check this setting with:</p> + <p>Make sure that while developing your add-on, error reporting is enabled for ALL users, and that display_errors is enabled in the PHP environment. You can check this setting with:</p> <code>if (ini_get('display_errors') == 1) { @@ -571,7 +571,7 @@ _convert_text() // private method</code> <code>ini_set('display_errors', 1);</code> - <p class="important"><strong>NOTE:</strong> Setting the <a href="http://us.php.net/manual/en/ref.errorfunc.php#ini.display-errors">display_errors</a> setting with ini_set() at runtime is not identical to having it enabled in the PHP environment. Namely, it will not have any effect if the script has fatal errors</p> + <p class="important"><strong>NOTE:</strong> Setting the <a href="http://us.php.net/manual/en/ref.errorfunc.php#ini.display-errors">display_errors</a> setting with ini_set() at runtime is not identical to having it enabled in the PHP environment. Namely, it will not have any effect if the script has fatal errors</p> </div> @@ -609,7 +609,7 @@ $bat = str_replace($foo, $bar, $bag); <h2><a name="strings"></a>Strings</h2> <div class="guidelineDetails"> - <p>Always use single quoted strings unless you need variables parsed, and in cases where you do need variables parsed, use braces to prevent greedy token parsing. You may also use double-quoted strings if the string contains single quotes, so you do not have to use escape characters.</p> + <p>Always use single quoted strings unless you need variables parsed, and in cases where you do need variables parsed, use braces to prevent greedy token parsing. You may also use double-quoted strings if the string contains single quotes, so you do not have to use escape characters.</p> <code><strong>INCORRECT</strong>: "My String" // no variable parsing, so no use for double quotes diff --git a/user_guide/general/urls.html b/user_guide/general/urls.html index 4ce6c3995..b975b701f 100644 --- a/user_guide/general/urls.html +++ b/user_guide/general/urls.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,7 +58,7 @@ URLS <h1>CodeIgniter URLs</h1> -<p>By default, URLs in CodeIgniter are designed to be search-engine and human friendly. Rather than using the standard "query string" +<p>By default, URLs in CodeIgniter are designed to be search-engine and human friendly. Rather than using the standard "query string" approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a <strong>segment-based</strong> approach:</p> <code>example.com/<var>news</var>/<dfn>article</dfn>/<samp>my_article</samp></code> @@ -78,7 +78,7 @@ approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a <st </ol> <p>The <a href="../libraries/uri.html">URI Class</a> and the <a href="../helpers/url_helper.html">URL Helper</a> -contain functions that make it easy to work with your URI data. In addition, your URLs can be remapped using the +contain functions that make it easy to work with your URI data. In addition, your URLs can be remapped using the <a href="routing.html">URI Routing</a> feature for more flexibility.</p> @@ -103,7 +103,7 @@ a request for your index.php file.</p> <h2>Adding a URL Suffix</h2> <p>In your <dfn>config/config.php</dfn> file you can specify a suffix that will be added to all URLs generated -by CodeIgniter. For example, if a URL is this:</p> +by CodeIgniter. For example, if a URL is this:</p> <code>example.com/index.php/products/view/shoes</code> @@ -125,7 +125,7 @@ open your config file you'll see these items:</p> $config['controller_trigger'] = 'c';<br /> $config['function_trigger'] = 'm';</code> -<p>If you change "enable_query_strings" to TRUE this feature will become active. Your controllers and functions will then +<p>If you change "enable_query_strings" to TRUE this feature will become active. Your controllers and functions will then be accessible using the "trigger" words you've set to invoke your controllers and methods:</p> <code>index.php?c=controller&m=method</code> diff --git a/user_guide/general/views.html b/user_guide/general/views.html index 746f7b846..ece746592 100644 --- a/user_guide/general/views.html +++ b/user_guide/general/views.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,7 +61,7 @@ Views In fact, views can flexibly be embedded within other views (within other views, etc., etc.) if you need this type of hierarchy.</p> -<p>Views are never called directly, they must be loaded by a <a href="controllers.html">controller</a>. Remember that in an MVC framework, the Controller acts as the +<p>Views are never called directly, they must be loaded by a <a href="controllers.html">controller</a>. Remember that in an MVC framework, the Controller acts as the traffic cop, so it is responsible for fetching a particular view. If you have not read the <a href="controllers.html">Controllers</a> page you should do so before continuing.</p> @@ -90,7 +90,7 @@ you should do so before continuing.</p> <code>$this->load->view('<var>name</var>');</code> -<p>Where <var>name</var> is the name of your view file. Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p> +<p>Where <var>name</var> is the name of your view file. Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p> <p>Now, open the controller file you made earlier called <dfn>blog.php</dfn>, and replace the echo statement with the view loading function:</p> @@ -109,19 +109,19 @@ class Blog extends CI_Controller { </textarea> -<p>If you visit your site using the URL you did earlier you should see your new view. The URL was similar to this:</p> +<p>If you visit your site using the URL you did earlier you should see your new view. The URL was similar to this:</p> <code>example.com/index.php/<var>blog</var>/</code> <h2>Loading multiple views</h2> -<p>CodeIgniter will intelligently handle multiple calls to $this->load->view from within a controller. If more than one call happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:</p> +<p>CodeIgniter will intelligently handle multiple calls to $this->load->view from within a controller. If more than one call happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:</p> <p><code><?php<br /> <br /> class Page extends CI_Controller {<br /><br /> function index()<br /> {<br /> - $data['page_title'] = 'Your title';<br /> + $data['page_title'] = 'Your title';<br /> $this->load->view('header');<br /> $this->load->view('menu');<br /> $this->load->view('content', $data);<br /> @@ -132,8 +132,8 @@ class Page extends CI_Controller {<br /><br /> ?></code></p> <p>In the example above, we are using "dynamically added data", which you will see below.</p> <h2>Storing Views within Sub-folders</h2> -<p>Your view files can also be stored within sub-folders if you prefer that type of organization. When doing so you will need -to include the folder name loading the view. Example:</p> +<p>Your view files can also be stored within sub-folders if you prefer that type of organization. When doing so you will need +to include the folder name loading the view. Example:</p> <code>$this->load->view('<kbd>folder_name</kbd>/<var>file_name</var>');</code> @@ -159,7 +159,7 @@ $this->load->view('blogview', <var>$data</var>);</code> <p>Note: If you use an object, the class variables will be turned into array elements.</p> -<p>Let's try it with your controller file. Open it add this code:</p> +<p>Let's try it with your controller file. Open it add this code:</p> <textarea class="textarea" style="width:100%" cols="50" rows="14"> <?php @@ -195,8 +195,8 @@ class Blog extends CI_Controller { <h2>Creating Loops</h2> -<p>The data array you pass to your view files is not limited to simple variables. You can -pass multi dimensional arrays, which can be looped to generate multiple rows. For example, if you +<p>The data array you pass to your view files is not limited to simple variables. You can +pass multi dimensional arrays, which can be looped to generate multiple rows. For example, if you pull data from your database it will typically be in the form of a multi-dimensional array.</p> <p>Here's a simple example. Add this to your controller:</p> @@ -243,15 +243,15 @@ class Blog extends CI_Controller { </body> </html> </textarea> -<p><strong>Note:</strong> You'll notice that in the example above we are using PHP's alternative syntax. If you +<p><strong>Note:</strong> You'll notice that in the example above we are using PHP's alternative syntax. If you are not familiar with it you can read about it <a href="alternative_php.html">here</a>.</p> <h2>Returning views as data</h2> <p>There is a third <strong>optional</strong> parameter lets you change the behavior of the function so that it returns data as a string -rather than sending it to your browser. This can be useful if you want to process the data in some way. If you -set the parameter to <kbd>true</kbd> (boolean) it will return data. The default behavior is <kbd>false</kbd>, which sends it -to your browser. Remember to assign it to a variable if you want the data returned:</p> +rather than sending it to your browser. This can be useful if you want to process the data in some way. If you +set the parameter to <kbd>true</kbd> (boolean) it will return data. The default behavior is <kbd>false</kbd>, which sends it +to your browser. Remember to assign it to a variable if you want the data returned:</p> <code>$string = $this->load->view('<var>myfile</var>', '', <kbd>true</kbd>);</code> diff --git a/user_guide/helpers/array_helper.html b/user_guide/helpers/array_helper.html index 2bbf89cad..139bbe2b5 100644 --- a/user_guide/helpers/array_helper.html +++ b/user_guide/helpers/array_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -70,8 +70,8 @@ Array Helper <h2>element()</h2> -<p>Lets you fetch an item from an array. The function tests whether the array index is set and whether it has a value. If -a value exists it is returned. If a value does not exist it returns FALSE, or whatever you've specified as the default value via the third parameter. Example:</p> +<p>Lets you fetch an item from an array. The function tests whether the array index is set and whether it has a value. If +a value exists it is returned. If a value does not exist it returns FALSE, or whatever you've specified as the default value via the third parameter. Example:</p> <code> $array = array('color' => 'red', 'shape' => 'round', 'size' => '');<br /> @@ -86,7 +86,7 @@ echo element('size', $array, NULL); <h2>random_element()</h2> -<p>Takes an array as input and returns a random element from it. Usage example:</p> +<p>Takes an array as input and returns a random element from it. Usage example:</p> <code>$quotes = array(<br /> "I find that the harder I work, the more luck I seem to have. - Thomas Jefferson",<br /> @@ -102,8 +102,8 @@ echo random_element($quotes);</code> <h2>elements()</h2> -<p>Lets you fetch a number of items from an array. The function tests whether each of the array indices is set. If an index does not exist -it is set to FALSE, or whatever you've specified as the default value via the third parameter. Example:</p> +<p>Lets you fetch a number of items from an array. The function tests whether each of the array indices is set. If an index does not exist +it is set to FALSE, or whatever you've specified as the default value via the third parameter. Example:</p> <code> $array = array(<br /> @@ -142,7 +142,7 @@ array(<br /> ); </code> -<p>This is useful when sending the <kbd>$_POST</kbd> array to one of your Models. This prevents users from +<p>This is useful when sending the <kbd>$_POST</kbd> array to one of your Models. This prevents users from sending additional POST data to be entered into your tables:</p> <code> @@ -159,10 +159,10 @@ $this->post_model->update(elements(array('id', 'title', 'content'), $_POST)); <div id="footer"> <p> -Previous Topic: <a href="../libraries/zip.html">Zip Encoding Class</a> · +Previous Topic: <a href="../libraries/javascript.html">Javascript Class</a> · <a href="#top">Top of Page</a> · <a href="../index.html">User Guide Home</a> · -Next Topic: <a href="compatibility_helper.html">Compatibility Helper</a></p> +Next Topic: <a href="captcha_helper.html">CAPTCHA Helper</a></p> <p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> </div> diff --git a/user_guide/helpers/captcha_helper.html b/user_guide/helpers/captcha_helper.html index 3a863c995..c80c2fbe5 100644 --- a/user_guide/helpers/captcha_helper.html +++ b/user_guide/helpers/captcha_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -68,7 +68,7 @@ CAPTCHA Helper <p>The following functions are available:</p> -<h2>captcha_create(<var>$data</var>)</h2> +<h2>create_captcha(<var>$data</var>)</h2> <p>Takes an array of information to generate the CAPTCHA as input and creates the image to your specifications, returning an array of associative data about the image.</p> @@ -83,7 +83,7 @@ CAPTCHA Helper <code><img src="http://example.com/captcha/12345.jpg" width="140" height="50" /></code></p> <p>The "time" is the micro timestamp used as the image name without the file - extension. It will be a number like this: 1139612155.3422</p> + extension. It will be a number like this: 1139612155.3422</p> <p>The "word" is the word that appears in the captcha image, which if not supplied to the function, will be a random string.</p> @@ -109,13 +109,13 @@ echo $cap['image'];</code> <li>The captcha function requires the GD image library.</li> <li>Only the img_path and img_url are required.</li> <li>If a "word" is not supplied, the function will generate a random - ASCII string. You might put together your own word library that + ASCII string. You might put together your own word library that you can draw randomly from.</li> <li>If you do not specify a path to a TRUE TYPE font, the native ugly GD font will be used.</li> <li>The "captcha" folder must be writable (666, or 777)</li> <li>The "expiration" (in seconds) signifies how long an image will - remain in the captcha folder before it will be deleted. The default + remain in the captcha folder before it will be deleted. The default is two hours.</li> </ul> @@ -137,7 +137,7 @@ echo $cap['image'];</code> KEY `word` (`word`)<br /> );</code> - <p>Here is an example of usage with a database. On the page where the CAPTCHA will be shown you'll have something like this:</p> + <p>Here is an example of usage with a database. On the page where the CAPTCHA will be shown you'll have something like this:</p> <code>$this->load->helper('captcha');<br /> $vals = array(<br /> @@ -167,7 +167,7 @@ $expiration = time()-7200; // Two hour limit<br /> $this->db->query("DELETE FROM captcha WHERE captcha_time < ".$expiration); <br /> <br /> // Then see if a captcha exists:<br /> -$sql = "SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND date > ?";<br /> +$sql = "SELECT COUNT(*) AS count FROM captcha WHERE word = ? AND ip_address = ? AND captcha_time > ?";<br /> $binds = array($_POST['captcha'], $this->input->ip_address(), $expiration);<br /> $query = $this->db->query($sql, $binds);<br /> $row = $query->row();<br /> @@ -183,11 +183,11 @@ if ($row->count == 0)<br /> <div id="footer"> <p> -Previous Topic: <a href="url_helper.html">URL Helper</a> +Previous Topic: <a href="array_helper.html">Array Helper</a> · <a href="#top">Top of Page</a> · -<a href="../index.html">User Guide Home</a> -</p> +<a href="../index.html">User Guide Home</a> · +Next Topic: <a href="cookie_helper.html">Cookie Helper</a></p> <p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> </div> diff --git a/user_guide/helpers/cookie_helper.html b/user_guide/helpers/cookie_helper.html index 860979bd8..889c3346e 100644 --- a/user_guide/helpers/cookie_helper.html +++ b/user_guide/helpers/cookie_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -70,20 +70,20 @@ Cookie Helper <h2>set_cookie()</h2> -<p>This helper function gives you view file friendly syntax to set browser cookies. Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->set_cookie().</p> +<p>This helper function gives you view file friendly syntax to set browser cookies. Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->set_cookie().</p> <h2>get_cookie()</h2> -<p>This helper function gives you view file friendly syntax to get browser cookies. Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->cookie().</p> +<p>This helper function gives you view file friendly syntax to get browser cookies. Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->cookie().</p> <h2>delete_cookie()</h2> -<p>Lets you delete a cookie. Unless you've set a custom path or other values, only the name of the cookie is needed:</p> +<p>Lets you delete a cookie. Unless you've set a custom path or other values, only the name of the cookie is needed:</p> <code>delete_cookie("name");</code> -<p>This function is otherwise identical to <dfn>set_cookie()</dfn>, except that it does not have the value and expiration parameters. You can submit an array +<p>This function is otherwise identical to <dfn>set_cookie()</dfn>, except that it does not have the value and expiration parameters. You can submit an array of values in the first parameter or you can set discrete parameters.</p> <code>delete_cookie($name, $domain, $path, $prefix)</code> @@ -95,7 +95,7 @@ of values in the first parameter or you can set discrete parameters.</p> <div id="footer"> <p> -Previous Topic: <a href="compatibility_helper.html">Compatibility Helper</a> +Previous Topic: <a href="captcha_helper.html">CAPTCHA Helper</a> · <a href="#top">Top of Page</a> · <a href="../index.html">User Guide Home</a> · diff --git a/user_guide/helpers/date_helper.html b/user_guide/helpers/date_helper.html index ba9aa8ef5..a2933420c 100644 --- a/user_guide/helpers/date_helper.html +++ b/user_guide/helpers/date_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -72,7 +72,7 @@ Date Helper <h2>now()</h2> <p>Returns the current time as a Unix timestamp, referenced either to your server's local time or GMT, based on the "time reference" -setting in your config file. If you do not intend to set your master time reference to GMT (which you'll typically do if you +setting in your config file. If you do not intend to set your master time reference to GMT (which you'll typically do if you run a site that lets each user set their own timezone settings) there is no benefit to using this function over PHP's time() function. </p> @@ -82,10 +82,10 @@ run a site that lets each user set their own timezone settings) there is no bene <h2>mdate()</h2> <p>This function is identical to PHPs <a href="http://www.php.net/date">date()</a> function, except that it lets you -use MySQL style date codes, where each code letter is preceded with a percent sign: %Y %m %d etc.</p> +use MySQL style date codes, where each code letter is preceded with a percent sign: %Y %m %d etc.</p> <p>The benefit of doing dates this way is that you don't have to worry about escaping any characters that -are not date codes, as you would normally have to do with the date() function. Example:</p> +are not date codes, as you would normally have to do with the date() function. Example:</p> <code>$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";<br /> $time = time();<br /> @@ -149,7 +149,7 @@ echo standard_date($format, $time); <tr> <td>DATE_RFC1123</td> <td>RFC 1123</td> - <td>Sun, 14 Aug 2005 16:13:03 UTC</td> + <td>Sun, 14 Aug 2005 16:13:03 UTC</td> </tr> <tr> <td>DATE_RFC2822</td> @@ -170,7 +170,7 @@ echo standard_date($format, $time); <h2>local_to_gmt()</h2> -<p>Takes a Unix timestamp as input and returns it as GMT. Example:</p> +<p>Takes a Unix timestamp as input and returns it as GMT. Example:</p> <code>$now = time();<br /> <br /> @@ -180,11 +180,11 @@ $gmt = local_to_gmt($now);</code> <h2>gmt_to_local()</h2> <p>Takes a Unix timestamp (referenced to GMT) as input, and converts it to a localized timestamp based on the -timezone and Daylight Saving time submitted. Example:</p> +timezone and Daylight Saving time submitted. Example:</p> <code> $timestamp = '1140153693';<br /> -$timezone = 'UM8';<br /> +$timezone = 'UM8';<br /> $daylight_saving = TRUE;<br /> <br /> echo gmt_to_local($timestamp, $timezone, $daylight_saving);</code> @@ -208,7 +208,7 @@ $unix = mysql_to_unix($mysql);</code> <p>This can be useful if you need to display a date in a form field for submission.</p> -<p>The time can be formatted with or without seconds, and it can be set to European or US format. If only +<p>The time can be formatted with or without seconds, and it can be set to European or US format. If only the timestamp is submitted it will return the time without seconds formatted for the U.S. Examples:</p> <code>$now = time();<br /> @@ -222,9 +222,9 @@ echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds</code> <h2>human_to_unix()</h2> -<p>The opposite of the above function. Takes a "human" time as input and returns it as Unix. This function is -useful if you accept "human" formatted dates submitted via a form. Returns FALSE (boolean) if -the date string passed to it is not formatted as indicated above. Example:</p> +<p>The opposite of the above function. Takes a "human" time as input and returns it as Unix. This function is +useful if you accept "human" formatted dates submitted via a form. Returns FALSE (boolean) if +the date string passed to it is not formatted as indicated above. Example:</p> <code>$now = time();<br /> <br /> @@ -242,9 +242,9 @@ $unix = human_to_unix($human);</code> <code>1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes</code> -<p>The first parameter must contain a Unix timestamp. The second parameter must contain a -timestamp that is greater that the first timestamp. If the second parameter empty, the current time will be used. The most common purpose -for this function is to show how much time has elapsed from some point in time in the past to now. Example:</p> +<p>The first parameter must contain a Unix timestamp. The second parameter must contain a +timestamp that is greater that the first timestamp. If the second parameter empty, the current time will be used. The most common purpose +for this function is to show how much time has elapsed from some point in time in the past to now. Example:</p> <code>$post_date = '1079621429';<br /> $now = time();<br /> @@ -256,7 +256,7 @@ echo timespan($post_date, $now);</code> <h2>days_in_month()</h2> -<p>Returns the number of days in a given month/year. Takes leap years into account. Example:</p> +<p>Returns the number of days in a given month/year. Takes leap years into account. Example:</p> <code>echo days_in_month(06, 2005);</code> <p>If the second parameter is empty, the current year will be used.</p> @@ -304,7 +304,7 @@ echo timespan($post_date, $now);</code> <p>This menu is useful if you run a membership site in which your users are allowed to set their local timezone value.</p> -<p>The first parameter lets you set the "selected" state of the menu. For example, to set Pacific time as the default you will do this:</p> +<p>The first parameter lets you set the "selected" state of the menu. For example, to set Pacific time as the default you will do this:</p> <code>echo timezone_menu('UM8');</code> diff --git a/user_guide/helpers/directory_helper.html b/user_guide/helpers/directory_helper.html index d9a3d0e99..2086fe1f3 100644 --- a/user_guide/helpers/directory_helper.html +++ b/user_guide/helpers/directory_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -78,12 +78,12 @@ and builds an array representation of it and all its contained files. Example:</ <p class="important"><strong>Note:</strong> Paths are almost always relative to your main index.php file.</p> -<p>Sub-folders contained within the directory will be mapped as well. If you wish to control the recursion depth, +<p>Sub-folders contained within the directory will be mapped as well. If you wish to control the recursion depth, you can do so using the second parameter (integer). A depth of 1 will only map the top level directory:</p> <code>$map = directory_map('./mydirectory/', 1);</code> -<p>By default, hidden files will not be included in the returned array. To override this behavior, +<p>By default, hidden files will not be included in the returned array. To override this behavior, you may set a third parameter to <var>true</var> (boolean):</p> <code>$map = directory_map('./mydirectory/', FALSE, TRUE);</code> diff --git a/user_guide/helpers/download_helper.html b/user_guide/helpers/download_helper.html index 7fc9c440e..335e97d3d 100644 --- a/user_guide/helpers/download_helper.html +++ b/user_guide/helpers/download_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/helpers/email_helper.html b/user_guide/helpers/email_helper.html index 6e11ba0e6..8a3868a73 100644 --- a/user_guide/helpers/email_helper.html +++ b/user_guide/helpers/email_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/helpers/file_helper.html b/user_guide/helpers/file_helper.html index 85a76e100..2d06fa25b 100644 --- a/user_guide/helpers/file_helper.html +++ b/user_guide/helpers/file_helper.html @@ -27,7 +27,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -69,11 +69,11 @@ File Helper <h2>read_file('<var>path</var>')</h2> -<p>Returns the data contained in the file specified in the path. Example:</p> +<p>Returns the data contained in the file specified in the path. Example:</p> <code>$string = read_file('./path/to/file.php');</code> -<p>The path can be a relative or full server path. Returns FALSE (boolean) on failure.</p> +<p>The path can be a relative or full server path. Returns FALSE (boolean) on failure.</p> <p class="important"><strong>Note:</strong> The path is relative to your main site index.php file, NOT your controller or view files. CodeIgniter uses a front controller so paths are always relative to the main site index.</p> @@ -83,7 +83,7 @@ might not work if you are trying to access a file above the calling script.</p> <h2>write_file('<var>path</var>', <kbd>$data</kbd>)</h2> -<p>Writes data to the file specified in the path. If the file does not exist the function will create it. Example:</p> +<p>Writes data to the file specified in the path. If the file does not exist the function will create it. Example:</p> <code> $data = 'Some file data';<br /> @@ -101,7 +101,7 @@ else<br /> <code>write_file('./path/to/file.php', $data, <var>'r+'</var>);</code> -<p>The default mode is <kbd>wb</kbd>. Please see the <a href="http://php.net/fopen">PHP user guide</a> for mode options.</p> +<p>The default mode is <kbd>wb</kbd>. Please see the <a href="http://php.net/fopen">PHP user guide</a> for mode options.</p> <p>Note: In order for this function to write data to a file its file permissions must be set such that it is writable (666, 777, etc.). If the file does not already exist, the directory containing it must be writable.</p> @@ -111,7 +111,7 @@ CodeIgniter uses a front controller so paths are always relative to the main sit <h2>delete_files('<var>path</var>')</h2> -<p>Deletes ALL files contained in the supplied path. Example:</p> +<p>Deletes ALL files contained in the supplied path. Example:</p> <code>delete_files('./path/to/directory/');</code> <p>If the second parameter is set to <kbd>true</kbd>, any directories contained within the supplied root path will be deleted as well. Example:</p> @@ -127,12 +127,12 @@ can optionally be added to the file names by setting the second parameter to TRU <h2>get_dir_file_info('<var>path/to/directory/</var>', <kbd>$top_level_only</kbd> = TRUE)</h2> -<p>Reads the specified directory and builds an array containing the filenames, filesize, dates, and permissions. Sub-folders contained within the specified path are only read if forced +<p>Reads the specified directory and builds an array containing the filenames, filesize, dates, and permissions. Sub-folders contained within the specified path are only read if forced by sending the second parameter, <kbd>$top_level_only</kbd> to <samp>FALSE</samp>, as this can be an intensive operation.</p> <h2>get_file_info('<var>path/to/file</var>', <kbd>$file_information</kbd>)</h2> -<p>Given a file and path, returns the name, path, size, date modified. Second parameter allows you to explicitly declare what information you want returned; options are: name, server_path, size, date, readable, writable, executable, fileperms. Returns FALSE if the file cannot be found.</p> +<p>Given a file and path, returns the name, path, size, date modified. Second parameter allows you to explicitly declare what information you want returned; options are: name, server_path, size, date, readable, writable, executable, fileperms. Returns FALSE if the file cannot be found.</p> <p class="important"><strong>Note:</strong> The "writable" uses the PHP function is_writable() which is known to have issues on the IIS webserver. Consider using fileperms instead, which returns information from PHP's fileperms() function.</p> <h2>get_mime_by_extension('<var>file</var>')</h2> @@ -142,7 +142,7 @@ can optionally be added to the file names by setting the second parameter to TRU <code>$file = "somefile.png";<br /> echo $file . ' is has a mime type of ' . get_mime_by_extension($file);</code> </p> -<p class="critical"><strong>Note:</strong> This is not an accurate way of determining file mime types, and is here strictly as a convenience. It should not be used for security.</p> +<p class="critical"><strong>Note:</strong> This is not an accurate way of determining file mime types, and is here strictly as a convenience. It should not be used for security.</p> <h2>symbolic_permissions(<kbd>$perms</kbd>)</h2> diff --git a/user_guide/helpers/form_helper.html b/user_guide/helpers/form_helper.html index 62544c459..b4a5730f2 100644 --- a/user_guide/helpers/form_helper.html +++ b/user_guide/helpers/form_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -72,7 +72,7 @@ Form Helper <h2>form_open()</h2> -<p>Creates an opening form tag with a base URL <strong>built from your config preferences</strong>. It will optionally let you +<p>Creates an opening form tag with a base URL <strong>built from your config preferences</strong>. It will optionally let you add form attributes and hidden input fields, and will always add the attribute <kbd>accept-charset</kbd> based on the charset value in your config file.</p> <p>The main benefit of using this tag rather than hard coding your own HTML is that it permits your site to be more portable @@ -122,7 +122,7 @@ which is necessary if you would like to use the form to upload files with.</p> <h2>form_hidden()</h2> -<p>Lets you generate hidden input fields. You can either submit a name/value string to create one field:</p> +<p>Lets you generate hidden input fields. You can either submit a name/value string to create one field:</p> <code>form_hidden('username', 'johndoe');<br /> <br /> @@ -149,7 +149,7 @@ echo form_hidden($data);<br /> <h2>form_input()</h2> -<p>Lets you generate a standard text input field. You can minimally pass the field name and value in the first +<p>Lets you generate a standard text input field. You can minimally pass the field name and value in the first and second parameter:</p> <code>echo form_input('username', 'johndoe');</code> @@ -196,9 +196,9 @@ example, you will instead specify "rows" and "cols".</p> <h2>form_dropdown()</h2> -<p>Lets you create a standard drop-down field. The first parameter will contain the name of the field, +<p>Lets you create a standard drop-down field. The first parameter will contain the name of the field, the second parameter will contain an associative array of options, and the third parameter will contain the -value you wish to be selected. You can also pass an array of multiple items through the third parameter, and CodeIgniter will create a multiple select for you. Example:</p> +value you wish to be selected. You can also pass an array of multiple items through the third parameter, and CodeIgniter will create a multiple select for you. Example:</p> <code>$options = array(<br /> 'small' => 'Small Shirt',<br /> @@ -215,7 +215,7 @@ echo form_dropdown('shirts', $options, 'large');<br /> <br /> <select name="shirts"><br /> <option value="small">Small Shirt</option><br /> -<option value="med">Medium Shirt</option><br /> +<option value="med">Medium Shirt</option><br /> <option value="large" selected="selected">Large Shirt</option><br /> <option value="xlarge">Extra Large Shirt</option><br /> </select><br /> @@ -226,7 +226,7 @@ echo form_dropdown('shirts', $options, $shirts_on_sale);<br /> <br /> <select name="shirts" multiple="multiple"><br /> <option value="small" selected="selected">Small Shirt</option><br /> -<option value="med">Medium Shirt</option><br /> +<option value="med">Medium Shirt</option><br /> <option value="large" selected="selected">Large Shirt</option><br /> <option value="xlarge">Extra Large Shirt</option><br /> </select></code> @@ -243,9 +243,9 @@ echo form_dropdown('shirts', $options, 'large', $js);</code> <h2>form_multiselect()</h2> -<p>Lets you create a standard multiselect field. The first parameter will contain the name of the field, +<p>Lets you create a standard multiselect field. The first parameter will contain the name of the field, the second parameter will contain an associative array of options, and the third parameter will contain the -value or values you wish to be selected. The parameter usage is identical to using <kbd>form_dropdown()</kbd> above, +value or values you wish to be selected. The parameter usage is identical to using <kbd>form_dropdown()</kbd> above, except of course that the name of the field will need to use POST array syntax, e.g. <samp>foo[]</samp>.</p> @@ -267,7 +267,7 @@ echo form_fieldset_close(); </fieldset></code> <p>Similar to other functions, you can submit an associative array in the second parameter if you prefer to set additional attributes. </p> <p><code>$attributes = array('id' => 'address_info', 'class' => 'address_info');<br /> - echo form_fieldset('Address Information', $attributes);<br /> + echo form_fieldset('Address Information', $attributes);<br /> echo "<p>fieldset content here</p>\n";<br /> echo form_fieldset_close(); <br /> <br /> @@ -277,11 +277,11 @@ echo form_fieldset_close(); <br /> <p>form content here</p> <br /> </fieldset></code></p> <h2>form_fieldset_close()</h2> -<p>Produces a closing </fieldset> tag. The only advantage to using this function is it permits you to pass data to it - which will be added below the tag. For example:</p> +<p>Produces a closing </fieldset> tag. The only advantage to using this function is it permits you to pass data to it + which will be added below the tag. For example:</p> <code>$string = "</div></div>";<br /> <br /> -echo fieldset_close($string);<br /> +echo form_fieldset_close($string);<br /> <br /> // Would produce:<br /> </fieldset><br /> @@ -309,7 +309,7 @@ echo form_checkbox($data);<br /> // Would produce:<br /><br /> <input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" /></code> -<p>As with other functions, if you would like the tag to contain additional data, like JavaScript, you can pass it as a string in the +<p>As with other functions, if you would like the tag to contain additional data, like JavaScript, you can pass it as a string in the fourth parameter:</p> <code>$js = 'onClick="some_function()"';<br /> @@ -330,7 +330,7 @@ fourth parameter:</p> <br /> <input type="submit" name="mysubmit" value="Submit Post!" /></code> <p>Similar to other functions, you can submit an associative array in the first parameter if you prefer to set your own attributes. - The third parameter lets you add extra data to your form, like JavaScript.</p> + The third parameter lets you add extra data to your form, like JavaScript.</p> <h2>form_label()</h2> <p>Lets you generate a <label>. Simple example:</p> <code>echo form_label('What is your Name', 'username');<br /> @@ -338,13 +338,13 @@ fourth parameter:</p> // Would produce: <br /> <label for="username">What is your Name</label></code> -<p>Similar to other functions, you can submit an associative array in the third parameter if you prefer to set additional attributes. </p> +<p>Similar to other functions, you can submit an associative array in the third parameter if you prefer to set additional attributes. </p> <p><code>$attributes = array(<br /> 'class' => 'mycustomclass',<br /> 'style' => 'color: #000;',<br /> );<br /> - echo form_label('What is your Name', 'username', $attributes);<br /> - <br /> + echo form_label('What is your Name', 'username', $attributes);<br /> + <br /> // Would produce: <br /> <label for="username" class="mycustomclass" style="color: #000;">What is your Name</label></code></p> <h2>form_reset()</h2> @@ -386,8 +386,8 @@ echo form_button('mybutton', 'Click Me', $js); <h2>form_close()</h2> -<p>Produces a closing </form> tag. The only advantage to using this function is it permits you to pass data to it -which will be added below the tag. For example:</p> +<p>Produces a closing </form> tag. The only advantage to using this function is it permits you to pass data to it +which will be added below the tag. For example:</p> <code>$string = "</div></div>";<br /> <br /> @@ -404,7 +404,7 @@ echo form_close($string);<br /> <h2>form_prep()</h2> -<p>Allows you to safely use HTML and characters such as quotes within form elements without breaking out of the form. Consider this example:</p> +<p>Allows you to safely use HTML and characters such as quotes within form elements without breaking out of the form. Consider this example:</p> <code>$string = 'Here is a string containing <strong>"quoted"</strong> text.';<br /> <br /> @@ -431,7 +431,7 @@ The second (optional) parameter allows you to set a default value for the form. <h2>set_select()</h2> -<p>If you use a <dfn><select></dfn> menu, this function permits you to display the menu item that was selected. The first parameter +<p>If you use a <dfn><select></dfn> menu, this function permits you to display the menu item that was selected. The first parameter must contain the name of the select menu, the second parameter must contain the value of each item, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE).</p> @@ -439,16 +439,16 @@ each item, and the third (optional) parameter lets you set an item as the defaul <code> <select name="myselect"><br /> -<option value="one" <dfn><?php echo set_select('myselect', 'one', TRUE); ?></dfn> >One</option><br /> -<option value="two" <dfn><?php echo set_select('myselect', 'two'); ?></dfn> >Two</option><br /> -<option value="three" <dfn><?php echo set_select('myselect', 'three'); ?></dfn> >Three</option><br /> +<option value="one" <dfn><?php echo set_select('myselect', 'one', TRUE); ?></dfn> >One</option><br /> +<option value="two" <dfn><?php echo set_select('myselect', 'two'); ?></dfn> >Two</option><br /> +<option value="three" <dfn><?php echo set_select('myselect', 'three'); ?></dfn> >Three</option><br /> </select> </code> <h2>set_checkbox()</h2> -<p>Permits you to display a checkbox in the state it was submitted. The first parameter +<p>Permits you to display a checkbox in the state it was submitted. The first parameter must contain the name of the checkbox, the second parameter must contain its value, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE). Example:</p> <code><input type="checkbox" name="mycheck" value="1" <dfn><?php echo set_checkbox('mycheck', '1'); ?></dfn> /><br /> @@ -459,8 +459,8 @@ must contain the name of the checkbox, the second parameter must contain its val <p>Permits you to display radio buttons in the state they were submitted. This function is identical to the <strong>set_checkbox()</strong> function above.</p> -<code><input type="radio" name="myradio" value="1" <dfn><?php echo set_radio('myradio', '1', TRUE); ?></dfn> /><br /> -<input type="radio" name="myradio" value="2" <dfn><?php echo set_radio('myradio', '2'); ?></dfn> /></code> +<code><input type="radio" name="myradio" value="1" <dfn><?php echo set_radio('myradio', '1', TRUE); ?></dfn> /><br /> +<input type="radio" name="myradio" value="2" <dfn><?php echo set_radio('myradio', '2'); ?></dfn> /></code> diff --git a/user_guide/helpers/html_helper.html b/user_guide/helpers/html_helper.html index 07fd6d3dc..665081fb6 100644 --- a/user_guide/helpers/html_helper.html +++ b/user_guide/helpers/html_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -84,13 +84,18 @@ HTML Helper <p>The above would produce: <br /><br /><br /></p> <h2><a name="heading"></a>heading()</h2> -<p>Lets you create HTML <h1> tags. The first parameter will contain the data, the -second the size of the heading. Example:</p> +<p>Lets you create HTML <h1> tags. The first parameter will contain the data, the +second the size of the heading. Example:</p> <code>echo heading('Welcome!', 3);</code> -<p>The above would produce: <h3>Welcome!</h3></p> +<p>The above would produce: <h3>Welcome!</h3></p> + +<p>Additionally, in order to add attributes to the heading tag such as HTML classes, ids or inline styles, a third parameter is available.</p> +<code>echo heading('Welcome!', 3, 'class="pink"')</code> +<p>The above code produces: <h3 class="pink">Welcome!<<h3></p> + <h2><a name="img"></a>img()</h2> -<p>Lets you create HTML <img /> tags. The first parameter contains the image source. Example:</p> +<p>Lets you create HTML <img /> tags. The first parameter contains the image source. Example:</p> <code>echo img('images/picture.jpg');<br /> // gives <img src="http://site.com/images/picture.jpg" /></code> <p>There is an optional second parameter that is a TRUE/FALSE value that specifics if the src should have the page specified by $config['index_page'] added to the address it creates. Presumably, this would be if you were using a media controller.</p> @@ -111,7 +116,7 @@ second the size of the heading. Example:</p> // <img src="http://site.com/index.php/images/picture.jpg" alt="Me, demonstrating how to eat 4 slices of pizza at one time" class="post_images" width="200" height="200" title="That was quite a night" rel="lightbox" /></code></p> <h2><a name="link_tag"></a>link_tag()</h2> -<p>Lets you create HTML <link /> tags. This is useful for stylesheet links, as well as other links. The parameters are href, with optional rel, type, title, media and index_page. index_page is a TRUE/FALSE value that specifics if the href should have the page specified by $config['index_page'] added to the address it creates.<code> +<p>Lets you create HTML <link /> tags. This is useful for stylesheet links, as well as other links. The parameters are href, with optional rel, type, title, media and index_page. index_page is a TRUE/FALSE value that specifics if the href should have the page specified by $config['index_page'] added to the address it creates.<code> echo link_tag('css/mystyles.css');<br /> // gives <link href="http://site.com/css/mystyles.css" rel="stylesheet" type="text/css" /></code></p> <p>Further examples:</p> @@ -266,20 +271,20 @@ echo ul($list, $attributes);</code> <h2><a name="meta"></a>meta()</h2> -<p>Helps you generate meta tags. You can pass strings to the function, or simple arrays, or multidimensional ones. Examples:</p> +<p>Helps you generate meta tags. You can pass strings to the function, or simple arrays, or multidimensional ones. Examples:</p> <code> echo meta('description', 'My Great site');<br /> -// Generates: <meta name="description" content="My Great Site" /><br /> +// Generates: <meta name="description" content="My Great Site" /><br /> <br /><br /> -echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); // Note the third parameter. Can be "equiv" or "name"<br /> -// Generates: <meta http-equiv="Content-type" content="text/html; charset=utf-8" /><br /> +echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); // Note the third parameter. Can be "equiv" or "name"<br /> +// Generates: <meta http-equiv="Content-type" content="text/html; charset=utf-8" /><br /> <br /><br /> echo meta(array('name' => 'robots', 'content' => 'no-cache'));<br /> -// Generates: <meta name="robots" content="no-cache" /><br /> +// Generates: <meta name="robots" content="no-cache" /><br /> <br /><br /> @@ -293,7 +298,7 @@ $meta = array(<br /> <br /> echo meta($meta); <br /> -// Generates: <br /> +// Generates: <br /> // <meta name="robots" content="no-cache" /><br /> // <meta name="description" content="My Great Site" /><br /> // <meta name="keywords" content="love, passion, intrigue, deception" /><br /> @@ -314,7 +319,7 @@ echo doctype('html4-trans');<br /> // <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> </code> -<p>The following is a list of doctype choices. These are configurable, and pulled from <samp>application/config/doctypes.php</samp></p> +<p>The following is a list of doctype choices. These are configurable, and pulled from <samp>application/config/doctypes.php</samp></p> <table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> <tr> diff --git a/user_guide/helpers/inflector_helper.html b/user_guide/helpers/inflector_helper.html index bd44fea74..087675454 100644 --- a/user_guide/helpers/inflector_helper.html +++ b/user_guide/helpers/inflector_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -71,7 +71,7 @@ Inflector Helper <h2>singular()</h2> -<p>Changes a plural word to singular. Example:</p> +<p>Changes a plural word to singular. Example:</p> <code> $word = "dogs";<br /> @@ -81,7 +81,7 @@ echo singular($word); // Returns "dog" <h2>plural()</h2> -<p>Changes a singular word to plural. Example:</p> +<p>Changes a singular word to plural. Example:</p> <code> $word = "dog";<br /> @@ -94,7 +94,7 @@ echo plural($word); // Returns "dogs" echo plural($word, TRUE); // Returns "passes" </code> <h2>camelize()</h2> -<p>Changes a string of words separated by spaces or underscores to camel case. Example:</p> +<p>Changes a string of words separated by spaces or underscores to camel case. Example:</p> <code> $word = "my_dog_spot";<br /> @@ -104,7 +104,7 @@ echo camelize($word); // Returns "myDogSpot" <h2>underscore()</h2> -<p>Takes multiple words separated by spaces and underscores them. Example:</p> +<p>Takes multiple words separated by spaces and underscores them. Example:</p> <code> $word = "my dog spot";<br /> @@ -114,7 +114,7 @@ echo underscore($word); // Returns "my_dog_spot" <h2>humanize()</h2> -<p>Takes multiple words separated by underscores and adds spaces between them. Each word is capitalized. Example:</p> +<p>Takes multiple words separated by underscores and adds spaces between them. Each word is capitalized. Example:</p> <code> $word = "my_dog_spot";<br /> diff --git a/user_guide/helpers/language_helper.html b/user_guide/helpers/language_helper.html index 5c0cb26d5..e10733baf 100644 --- a/user_guide/helpers/language_helper.html +++ b/user_guide/helpers/language_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -73,7 +73,7 @@ Language Helper <p>This function returns a line of text from a loaded language file with simplified syntax that may be more desirable for view files than calling <kbd>$this->lang->line()</kbd>. - The optional second parameter will also output a form label for you. Example:</p> + The optional second parameter will also output a form label for you. Example:</p> <code>echo lang('<samp>language_key</samp>', '<samp>form_item_id</samp>');<br /> // becomes <label for="form_item_id">language_key</label></code> diff --git a/user_guide/helpers/number_helper.html b/user_guide/helpers/number_helper.html index afe5bc3fe..a04f37c86 100644 --- a/user_guide/helpers/number_helper.html +++ b/user_guide/helpers/number_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -71,7 +71,7 @@ Number Helper <h2>byte_format()</h2> -<p>Formats a numbers as bytes, based on size, and adds the appropriate suffix. Examples:</p> +<p>Formats a numbers as bytes, based on size, and adds the appropriate suffix. Examples:</p> <code> echo byte_format(456); // Returns 456 Bytes<br /> diff --git a/user_guide/helpers/path_helper.html b/user_guide/helpers/path_helper.html index 205cce20e..584a127f9 100644 --- a/user_guide/helpers/path_helper.html +++ b/user_guide/helpers/path_helper.html @@ -27,7 +27,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/helpers/security_helper.html b/user_guide/helpers/security_helper.html index 2dba7bb8e..49e0365d1 100644 --- a/user_guide/helpers/security_helper.html +++ b/user_guide/helpers/security_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -71,19 +71,19 @@ Security Helper <h2>xss_clean()</h2> -<p>Provides Cross Site Script Hack filtering. This function is an alias to the one in the -<a href="../libraries/input.html">Input class</a>. More info can be found there.</p> +<p>Provides Cross Site Script Hack filtering. This function is an alias to the one in the +<a href="../libraries/input.html">Input class</a>. More info can be found there.</p> <h2>sanitize_filename()</h2> -<p>Provides protection against directory traversal. This function is an alias to the one in the -<a href="../libraries/security.html">Security class</a>. More info can be found there.</p> +<p>Provides protection against directory traversal. This function is an alias to the one in the +<a href="../libraries/security.html">Security class</a>. More info can be found there.</p> <h2>do_hash()</h2> -<p>Permits you to create SHA1 or MD5 one way hashes suitable for encrypting passwords. Will create SHA1 by default. Examples:</p> +<p>Permits you to create SHA1 or MD5 one way hashes suitable for encrypting passwords. Will create SHA1 by default. Examples:</p> <code> $str = do_hash($str); // SHA1<br /> @@ -91,13 +91,13 @@ $str = do_hash($str); // SHA1<br /> $str = do_hash($str, 'md5'); // MD5 </code> -<p class="important"><strong>Note:</strong> This function was formerly named <kbd>dohash()</kbd>, which has been deprecated in favour of <kbd>do_hash()</kbd>.</p> +<p class="important"><strong>Note:</strong> This function was formerly named <kbd>dohash()</kbd>, which has been deprecated in favour of <kbd>do_hash()</kbd>.</p> <h2>strip_image_tags()</h2> -<p>This is a security function that will strip image tags from a string. It leaves the image URL as plain text.</p> +<p>This is a security function that will strip image tags from a string. It leaves the image URL as plain text.</p> <code>$string = strip_image_tags($string);</code> diff --git a/user_guide/helpers/smiley_helper.html b/user_guide/helpers/smiley_helper.html index 18df9876f..4668f106e 100644 --- a/user_guide/helpers/smiley_helper.html +++ b/user_guide/helpers/smiley_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -83,7 +83,7 @@ Your users can click a desired smiley and with the help of some JavaScript it wi requires that you first download and install the smiley images, then create a controller and the View as described.</p> <p class="important"><strong>Important:</strong> Before you begin, please <a href="http://codeigniter.com/download_files/smileys.zip">download the smiley images</a> and put them in -a publicly accessible place on your server. This helper also assumes you have the smiley replacement array located at +a publicly accessible place on your server. This helper also assumes you have the smiley replacement array located at <dfn>application/config/smileys.php</dfn></p> @@ -166,7 +166,7 @@ you can give your smiley links a generic name that will be tied to a specific id <h2>get_clickable_smileys()</h2> -<p>Returns an array containing your smiley images wrapped in a clickable link. You must supply the URL to your smiley folder +<p>Returns an array containing your smiley images wrapped in a clickable link. You must supply the URL to your smiley folder and a field id or field alias.</p> <code>$image_array = get_smiley_links("http://example.com/images/smileys/", "comment");</code> @@ -187,10 +187,10 @@ This function is designed to be placed into the <head> area of your web pa <h2>parse_smileys()</h2> <p>Takes a string of text as input and replaces any contained plain text smileys into the image -equivalent. The first parameter must contain your string, the second must contain the URL to your smiley folder:</p> +equivalent. The first parameter must contain your string, the second must contain the URL to your smiley folder:</p> <code> -$str = 'Here are some simileys: :-) ;-)'; +$str = 'Here are some simileys: :-) ;-)'; $str = parse_smileys($str, "http://example.com/images/smileys/"); diff --git a/user_guide/helpers/string_helper.html b/user_guide/helpers/string_helper.html index 11b6b2736..6fc2cf5f7 100644 --- a/user_guide/helpers/string_helper.html +++ b/user_guide/helpers/string_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -70,9 +70,9 @@ String Helper <h2>random_string()</h2> -<p>Generates a random string based on the type and length you specify. Useful for creating passwords or generating random hashes.</p> +<p>Generates a random string based on the type and length you specify. Useful for creating passwords or generating random hashes.</p> -<p>The first parameter specifies the type of string, the second parameter specifies the length. The following choices are available:</p> +<p>The first parameter specifies the type of string, the second parameter specifies the length. The following choices are available:</p> alpha, alunum, numeric, nozero, unique, md5, encrypt and sha1 <ul> @@ -92,7 +92,7 @@ String Helper <h2>alternator()</h2> -<p>Allows two or more items to be alternated between, when cycling through a loop. Example:</p> +<p>Allows two or more items to be alternated between, when cycling through a loop. Example:</p> <code>for ($i = 0; $i < 10; $i++)<br /> {<br /> diff --git a/user_guide/helpers/text_helper.html b/user_guide/helpers/text_helper.html index a7f0f2b18..3c83f3d42 100644 --- a/user_guide/helpers/text_helper.html +++ b/user_guide/helpers/text_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -71,22 +71,22 @@ Text Helper <h2>word_limiter()</h2> -<p>Truncates a string to the number of <strong>words</strong> specified. Example:</p> +<p>Truncates a string to the number of <strong>words</strong> specified. Example:</p> <code> $string = "Here is a nice text string consisting of eleven words.";<br /> <br /> $string = word_limiter($string, 4);<br /><br /> -// Returns: Here is a nice… +// Returns: Here is a nice… </code> -<p>The third parameter is an optional suffix added to the string. By default it adds an ellipsis.</p> +<p>The third parameter is an optional suffix added to the string. By default it adds an ellipsis.</p> <h2>character_limiter()</h2> -<p>Truncates a string to the number of <strong>characters</strong> specified. It maintains the integrity +<p>Truncates a string to the number of <strong>characters</strong> specified. It maintains the integrity of words so the character count may be slightly more or less then what you specify. Example:</p> <code> @@ -94,7 +94,7 @@ $string = "Here is a nice text string consisting of eleven words.";<br /> <br /> $string = character_limiter($string, 20);<br /><br /> -// Returns: Here is a nice text string… +// Returns: Here is a nice text string… </code> <p>The third parameter is an optional suffix added to the string, if undeclared this helper uses an ellipsis.</p> @@ -125,9 +125,9 @@ part it should correctly identify characters outside the normal range (like acce <h2>word_censor()</h2> -<p>Enables you to censor words within a text string. The first parameter will contain the original string. The -second will contain an array of words which you disallow. The third (optional) parameter can contain a replacement value -for the words. If not specified they are replaced with pound signs: ####. Example:</p> +<p>Enables you to censor words within a text string. The first parameter will contain the original string. The +second will contain an array of words which you disallow. The third (optional) parameter can contain a replacement value +for the words. If not specified they are replaced with pound signs: ####. Example:</p> <code> $disallowed = array('darn', 'shucks', 'golly', 'phooey');<br /> @@ -137,7 +137,7 @@ $string = word_censor($string, $disallowed, 'Beep!');</code> <h2>highlight_code()</h2> -<p>Colorizes a string of code (PHP, HTML, etc.). Example:</p> +<p>Colorizes a string of code (PHP, HTML, etc.). Example:</p> <code>$string = highlight_code($string);</code> @@ -146,9 +146,9 @@ $string = word_censor($string, $disallowed, 'Beep!');</code> <h2>highlight_phrase()</h2> -<p>Will highlight a phrase within a text string. The first parameter will contain the original string, the second will -contain the phrase you wish to highlight. The third and fourth parameters will contain the opening/closing HTML tags -you would like the phrase wrapped in. Example:</p> +<p>Will highlight a phrase within a text string. The first parameter will contain the original string, the second will +contain the phrase you wish to highlight. The third and fourth parameters will contain the opening/closing HTML tags +you would like the phrase wrapped in. Example:</p> <code> $string = "Here is a nice text string about nothing in particular.";<br /> @@ -164,7 +164,7 @@ $string = highlight_phrase($string, "nice text", '<span style="color:#990000" <h2>word_wrap()</h2> -<p>Wraps text at the specified <strong>character</strong> count while maintaining complete words. Example:</p> +<p>Wraps text at the specified <strong>character</strong> count while maintaining complete words. Example:</p> <code>$string = "Here is a simple string of text that will help us demonstrate this function.";<br /> <br /> @@ -180,8 +180,8 @@ function</code> <h2>ellipsize()</h2> <p>This function will strip tags from a string, split it at a defined maximum length, and insert an ellipsis.</p> -<p>The first parameter is the string to ellipsize, the second is the number of characters in the final string. The third parameter is where in the string the ellipsis should appear from 0 - 1, left to right. For example. a value of 1 will place the ellipsis at the right of the string, .5 in the middle, and 0 at the left.</p> -<p>An optional forth parameter is the kind of ellipsis. By default, <samp>&hellip;</samp> will be inserted.</p> +<p>The first parameter is the string to ellipsize, the second is the number of characters in the final string. The third parameter is where in the string the ellipsis should appear from 0 - 1, left to right. For example. a value of 1 will place the ellipsis at the right of the string, .5 in the middle, and 0 at the left.</p> +<p>An optional forth parameter is the kind of ellipsis. By default, <samp>&hellip;</samp> will be inserted.</p> <code>$str = 'this_string_is_entirely_too_long_and_might_break_my_design.jpg';<br /> <br /> diff --git a/user_guide/helpers/typography_helper.html b/user_guide/helpers/typography_helper.html index 425c20ec1..e75528fbb 100644 --- a/user_guide/helpers/typography_helper.html +++ b/user_guide/helpers/typography_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -71,7 +71,7 @@ Typography Helper <h2>auto_typography()</h2> -<p>Formats text so that it is semantically and typographically correct HTML. Please see the <a href="../libraries/typography.html">Typography Class</a> for more info.</p> +<p>Formats text so that it is semantically and typographically correct HTML. Please see the <a href="../libraries/typography.html">Typography Class</a> for more info.</p> <p>Usage example:</p> diff --git a/user_guide/helpers/url_helper.html b/user_guide/helpers/url_helper.html index 6d8bdc240..0bcf1e7ae 100644 --- a/user_guide/helpers/url_helper.html +++ b/user_guide/helpers/url_helper.html @@ -27,7 +27,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -69,13 +69,13 @@ URL Helper <h2>site_url()</h2> -<p>Returns your site URL, as specified in your config file. The index.php file (or whatever you have set as your +<p>Returns your site URL, as specified in your config file. The index.php file (or whatever you have set as your site <dfn>index_page</dfn> in your config file) will be added to the URL, as will any URI segments you pass to the function.</p> <p>You are encouraged to use this function any time you need to generate a local URL so that your pages become more portable in the event your URL changes.</p> -<p>Segments can be optionally passed to the function as a string or an array. Here is a string example:</p> +<p>Segments can be optionally passed to the function as a string or an array. Here is a string example:</p> <code>echo site_url("news/local/123");</code> @@ -90,7 +90,7 @@ echo site_url($segments);</code> <h2>base_url()</h2> -<p>Returns your site base URL, as specified in your config file. Example:</p> +<p>Returns your site base URL, as specified in your config file. Example:</p> <code>echo base_url();</code> @@ -99,7 +99,7 @@ echo site_url($segments);</code> <h2>uri_string()</h2> -<p>Returns the URI segments of any page that contains this function. For example, if your URL was this:</p> +<p>Returns the URI segments of any page that contains this function. For example, if your URL was this:</p> <code>http://some-site.com/blog/comments/123</code> <p>The function would return:</p> @@ -107,7 +107,7 @@ echo site_url($segments);</code> <h2>index_page()</h2> -<p>Returns your site "index" page, as specified in your config file. Example:</p> +<p>Returns your site "index" page, as specified in your config file. Example:</p> <code>echo index_page();</code> @@ -122,15 +122,15 @@ echo site_url($segments);</code> <code>anchor(<var>uri segments</var>, <var>text</var>, <var>attributes</var>)</code> -<p>The first parameter can contain any segments you wish appended to the URL. As with the <dfn>site_url()</dfn> function above, +<p>The first parameter can contain any segments you wish appended to the URL. As with the <dfn>site_url()</dfn> function above, segments can be a string or an array.</p> -<p><strong>Note:</strong> If you are building links that are internal to your application do not include the base URL (http://...). This +<p><strong>Note:</strong> If you are building links that are internal to your application do not include the base URL (http://...). This will be added automatically from the information specified in your config file. Include only the URI segments you wish appended to the URL.</p> -<p>The second segment is the text you would like the link to say. If you leave it blank, the URL will be used.</p> +<p>The second segment is the text you would like the link to say. If you leave it blank, the URL will be used.</p> -<p>The third parameter can contain a list of attributes you would like added to the link. The attributes can be a simple string or an associative array.</p> +<p>The third parameter can contain a list of attributes you would like added to the link. The attributes can be a simple string or an associative array.</p> <p>Here are some examples:</p> @@ -148,7 +148,7 @@ will be added automatically from the information specified in your config file. <p>Nearly identical to the <dfn>anchor()</dfn> function except that it opens the URL in a new window. You can specify JavaScript window attributes in the third parameter to control how the window is opened. If -the third parameter is not set it will simply open a new window with your own browser settings. Here is an example +the third parameter is not set it will simply open a new window with your own browser settings. Here is an example with attributes:</p> <code> @@ -173,7 +173,7 @@ If you want the function to use all of its defaults simply pass an empty array i <h2>mailto()</h2> -<p>Creates a standard HTML email link. Usage example:</p> +<p>Creates a standard HTML email link. Usage example:</p> <code>echo mailto('me@my-site.com', 'Click Here to Contact Me');</code> @@ -188,12 +188,12 @@ written with JavaScript to help prevent the email address from being harvested b <h2>auto_link()</h2> -<p>Automatically turns URLs and email addresses contained in a string into links. Example:</p> +<p>Automatically turns URLs and email addresses contained in a string into links. Example:</p> <code>$string = auto_link($string);</code> -<p>The second parameter determines whether URLs and emails are converted or just one or the other. Default behavior is both -if the parameter is not specified. Email links are encoded as safe_mailto() as shown above.</p> +<p>The second parameter determines whether URLs and emails are converted or just one or the other. Default behavior is both +if the parameter is not specified. Email links are encoded as safe_mailto() as shown above.</p> <p>Converts only URLs:</p> <code>$string = auto_link($string, 'url');</code> @@ -201,42 +201,42 @@ if the parameter is not specified. Email links are encoded as safe_mailto() as <p>Converts only Email addresses:</p> <code>$string = auto_link($string, 'email');</code> -<p>The third parameter determines whether links are shown in a new window. The value can be TRUE or FALSE (boolean):</p> +<p>The third parameter determines whether links are shown in a new window. The value can be TRUE or FALSE (boolean):</p> <code>$string = auto_link($string, 'both', TRUE);</code> <h2>url_title()</h2> <p>Takes a string as input and creates a human-friendly URL string. This is useful if, for example, you have a blog -in which you'd like to use the title of your entries in the URL. Example:</p> +in which you'd like to use the title of your entries in the URL. Example:</p> <code>$title = "What's wrong with CSS?";<br /> <br /> $url_title = url_title($title);<br /> <br /> -// Produces: Whats-wrong-with-CSS +// Produces: Whats-wrong-with-CSS </code> -<p>The second parameter determines the word delimiter. By default dashes are used. Options are: <dfn>dash</dfn>, or <dfn>underscore</dfn>:</p> +<p>The second parameter determines the word delimiter. By default dashes are used. Options are: <dfn>dash</dfn>, or <dfn>underscore</dfn>:</p> <code>$title = "What's wrong with CSS?";<br /> <br /> $url_title = url_title($title, 'underscore');<br /> <br /> -// Produces: Whats_wrong_with_CSS +// Produces: Whats_wrong_with_CSS </code> -<p>The third parameter determines whether or not lowercase characters are forced. By default they are not. Options are boolean <dfn>TRUE</dfn>/<dfn>FALSE</dfn>:</p> +<p>The third parameter determines whether or not lowercase characters are forced. By default they are not. Options are boolean <dfn>TRUE</dfn>/<dfn>FALSE</dfn>:</p> <code>$title = "What's wrong with CSS?";<br /> <br /> $url_title = url_title($title, 'underscore', TRUE);<br /> <br /> -// Produces: whats_wrong_with_css +// Produces: whats_wrong_with_css </code> <h3>prep_url()</h3> -<p>This function will add <kbd>http://</kbd> in the event that a scheme is missing from a URL. Pass the URL string to the function like this:</p> +<p>This function will add <kbd>http://</kbd> in the event that a scheme is missing from a URL. Pass the URL string to the function like this:</p> <code> $url = "example.com";<br /><br /> $url = prep_url($url);</code> @@ -250,7 +250,7 @@ $url = prep_url($url);</code> to the controller you want to direct to will create the link. The function will build the URL based on your config file values.</p> <p>The optional second parameter allows you to choose between the "location" -method (default) or the "refresh" method. Location is faster, but on Windows servers it can sometimes be a problem. The optional third parameter allows you to send a specific HTTP Response Code - this could be used for example to create 301 redirects for search engine purposes. The default Response Code is 302. The third parameter is <em>only</em> available with 'location' redirects, and not 'refresh'. Examples:</p> +method (default) or the "refresh" method. Location is faster, but on Windows servers it can sometimes be a problem. The optional third parameter allows you to send a specific HTTP Response Code - this could be used for example to create 301 redirects for search engine purposes. The default Response Code is 302. The third parameter is <em>only</em> available with 'location' redirects, and not 'refresh'. Examples:</p> <code>if ($logged_in == FALSE)<br /> {<br /> @@ -262,7 +262,7 @@ redirect('/article/13', 'location', 301);</code> <p class="important"><strong>Note:</strong> In order for this function to work it must be used before anything is outputted to the browser since it utilizes server headers.<br /> -<strong>Note:</strong> For very fine grained control over headers, you should use the <a href="../libraries/output.html">Output Library</a>'s set_header() function.</p> +<strong>Note:</strong> For very fine grained control over headers, you should use the <a href="../libraries/output.html">Output Library</a>'s set_header() function.</p> diff --git a/user_guide/helpers/xml_helper.html b/user_guide/helpers/xml_helper.html index 446a01d8c..b3d408c7d 100644 --- a/user_guide/helpers/xml_helper.html +++ b/user_guide/helpers/xml_helper.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -78,7 +78,7 @@ Less then and greater than characters: < ><br /> Single and double quotes: ' "<br /> Dashes: -</p> -<p>This function ignores ampersands if they are part of existing character entities. Example:</p> +<p>This function ignores ampersands if they are part of existing character entities. Example:</p> <code>$string = xml_convert($string);</code> diff --git a/user_guide/index.html b/user_guide/index.html index 882eec0f8..2681004e3 100644 --- a/user_guide/index.html +++ b/user_guide/index.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/downloads.html b/user_guide/installation/downloads.html index da93bb678..f452ba471 100644 --- a/user_guide/installation/downloads.html +++ b/user_guide/installation/downloads.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,8 +58,9 @@ Downloading CodeIgniter <h1>Downloading CodeIgniter</h1> <ul> - <li><a href="http://codeigniter.com/downloads/">CodeIgniter V 2.0.1 (Current version)</a></li> - <li><a href="http://codeigniter.com/download_files/CodeIgniter_2.0.0.zip">CodeIgniter V 2.0.0</a></li> + <li><a href="http://codeigniter.com/downloads/">CodeIgniter V 2.0.2 (Current version)</a></li> + <li><a href="http://codeigniter.com/download_files/reactor/CodeIgniter_2.0.1.zip">CodeIgniter V 2.0.1</a></li> + <li><a href="http://codeigniter.com/download_files/reactor/CodeIgniter_2.0.0.zip">CodeIgniter V 2.0.0</a></li> <li><a href="http://codeigniter.com/download_files/CodeIgniter_1.7.3.zip">CodeIgniter V 1.7.3</a></li> <li><a href="http://codeigniter.com/download_files/CodeIgniter_1.7.2.zip">CodeIgniter V 1.7.2</a></li> <li><a href="http://codeigniter.com/download_files/CodeIgniter_1.7.1.zip">CodeIgniter V 1.7.1</a></li> diff --git a/user_guide/installation/index.html b/user_guide/installation/index.html index 8ba41313c..f62aadb5e 100644 --- a/user_guide/installation/index.html +++ b/user_guide/installation/index.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,24 +61,24 @@ Installation Instructions <ol> <li>Unzip the package.</li> -<li>Upload the CodeIgniter folders and files to your server. Normally the index.php file will be at your root.</li> -<li>Open the <dfn>application/config/config.php</dfn> file with a text editor and set your base URL. If you intend to use encryption or sessions, set your encryption key.</li> +<li>Upload the CodeIgniter folders and files to your server. Normally the index.php file will be at your root.</li> +<li>Open the <dfn>application/config/config.php</dfn> file with a text editor and set your base URL. If you intend to use encryption or sessions, set your encryption key.</li> <li>If you intend to use a database, open the <dfn>application/config/database.php</dfn> file with a text editor and set your database settings.</li> </ol> <p>If you wish to increase security by hiding the location of your CodeIgniter files you can rename the <dfn>system</dfn> and <dfn>application</dfn> folders -to something more private. If you do rename them, you must open your main <kbd>index.php</kbd> file and set the <samp>$system_folder</samp> and <samp>$application_folder</samp> +to something more private. If you do rename them, you must open your main <kbd>index.php</kbd> file and set the <samp>$system_folder</samp> and <samp>$application_folder</samp> variables at the top of the file with the new name you've chosen.</p> -<p>For the best security, both the <dfn>system</dfn> and any <dfn>application</dfn> folders should be placed above web root so that they are not directly accessible via a browser. By default, .htaccess files are included in each folder to help prevent direct access, but it is best to remove them from public access entirely in case the web server configuration changes or doesn't abide by the .htaccess.</p> +<p>For the best security, both the <dfn>system</dfn> and any <dfn>application</dfn> folders should be placed above web root so that they are not directly accessible via a browser. By default, .htaccess files are included in each folder to help prevent direct access, but it is best to remove them from public access entirely in case the web server configuration changes or doesn't abide by the .htaccess.</p> <p>After moving them, open your main <kdb>index.php</kbd> file and set the <samp>$system_folder</samp> and <samp>$application_folder</samp> variables, preferably with a full path, e.g. '<dfn>/www/MyUser/system</dfn>'.</p> <p> - One additional measure to take in production environments is to disable - PHP error reporting and any other development-only functionality. In CodeIgniter, - this can be done by setting the <kbd>ENVIRONMENT</kbd> constant, which is - more fully described on the <a href="../general/security.html">security page</a>. + One additional measure to take in production environments is to disable + PHP error reporting and any other development-only functionality. In CodeIgniter, + this can be done by setting the <kbd>ENVIRONMENT</kbd> constant, which is + more fully described on the <a href="../general/security.html">security page</a>. </p> <p>That's it!</p> diff --git a/user_guide/installation/troubleshooting.html b/user_guide/installation/troubleshooting.html index c1c423a76..f99fc0a32 100644 --- a/user_guide/installation/troubleshooting.html +++ b/user_guide/installation/troubleshooting.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,8 +61,8 @@ Trouble Shooting does not support the PATH_INFO variable needed to serve search-engine friendly URLs. As a first step, open your <dfn>application/config/config.php</dfn> file and look for the <kbd>URI Protocol</kbd> -information. It will recommend that you try a couple alternate settings. If it still doesn't work after you've tried this you'll need -to force CodeIgniter to add a question mark to your URLs. To do this open your <kbd>application/config/config.php</kbd> file and change this:</p> +information. It will recommend that you try a couple alternate settings. If it still doesn't work after you've tried this you'll need +to force CodeIgniter to add a question mark to your URLs. To do this open your <kbd>application/config/config.php</kbd> file and change this:</p> <code>$config['index_page'] = "index.php";</code> diff --git a/user_guide/installation/upgrade_120.html b/user_guide/installation/upgrade_120.html index da49549a5..563c98c60 100644 --- a/user_guide/installation/upgrade_120.html +++ b/user_guide/installation/upgrade_120.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/upgrade_130.html b/user_guide/installation/upgrade_130.html index 759177612..e6bb9480e 100644 --- a/user_guide/installation/upgrade_130.html +++ b/user_guide/installation/upgrade_130.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,7 +57,7 @@ Upgrading from 1.2 to 1.3 <h1>Upgrading from 1.2 to 1.3</h1> -<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.2. If you +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.2. If you have not upgraded to that version please do so first.</p> @@ -72,8 +72,8 @@ with a static one.</p> <p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> <ul> -<li>application/<strong>models</strong>/ (new for 1.3)</li> -<li>codeigniter (new for 1.3)</li> +<li>application/<strong>models</strong>/ (new for 1.3)</li> +<li>codeigniter (new for 1.3)</li> <li>drivers</li> <li>helpers</li> <li>init</li> @@ -109,7 +109,7 @@ replace this folder:</p> <h2>Step 3: Update your index.php file</h2> -<p>Please open your main <dfn>index.php</dfn> file (located at your root). At the very bottom of the file, change this:</p> +<p>Please open your main <dfn>index.php</dfn> file (located at your root). At the very bottom of the file, change this:</p> <code>require_once BASEPATH.'libraries/Front_controller'.EXT;</code> diff --git a/user_guide/installation/upgrade_131.html b/user_guide/installation/upgrade_131.html index a2f742532..a7025f2a7 100644 --- a/user_guide/installation/upgrade_131.html +++ b/user_guide/installation/upgrade_131.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,7 +57,7 @@ Upgrading from 1.3 to 1.3.1 <h1>Upgrading from 1.3 to 1.3.1</h1> -<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3. If you +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3. If you have not upgraded to that version please do so first.</p> <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> diff --git a/user_guide/installation/upgrade_132.html b/user_guide/installation/upgrade_132.html index e0e562231..3b71594dc 100644 --- a/user_guide/installation/upgrade_132.html +++ b/user_guide/installation/upgrade_132.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,7 +57,7 @@ Upgrading from 1.3.1 to 1.3.2 <h1>Upgrading from 1.3.1 to 1.3.2</h1> -<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.1. If you +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.1. If you have not upgraded to that version please do so first.</p> <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> diff --git a/user_guide/installation/upgrade_133.html b/user_guide/installation/upgrade_133.html index 1fb537a76..a81f67bf5 100644 --- a/user_guide/installation/upgrade_133.html +++ b/user_guide/installation/upgrade_133.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,7 +57,7 @@ Upgrading from 1.3.2 to 1.3.3 <h1>Upgrading from 1.3.2 to 1.3.3</h1> -<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.2. If you +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.2. If you have not upgraded to that version please do so first.</p> <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> @@ -83,9 +83,9 @@ have not upgraded to that version please do so first.</p> <p>If you are <strong>NOT</strong> using CodeIgniter's <a href="../general/models.html">Models</a> feature disregard this step.</p> -<p>As of version 1.3.3, CodeIgniter does <strong>not</strong> connect automatically to your database when a model is loaded. This -allows you greater flexibility in determining which databases you would like used with your models. If your application is not connecting -to your database prior to a model being loaded you will have to update your code. There are several options for connecting, +<p>As of version 1.3.3, CodeIgniter does <strong>not</strong> connect automatically to your database when a model is loaded. This +allows you greater flexibility in determining which databases you would like used with your models. If your application is not connecting +to your database prior to a model being loaded you will have to update your code. There are several options for connecting, <a href="../general/models.html">as described here</a>.</p> diff --git a/user_guide/installation/upgrade_140.html b/user_guide/installation/upgrade_140.html index 9da635cf1..234e2f5b3 100644 --- a/user_guide/installation/upgrade_140.html +++ b/user_guide/installation/upgrade_140.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,7 +57,7 @@ Upgrading from 1.3.3 to 1.4.0 <h1>Upgrading from 1.3.3 to 1.4.0</h1> -<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.3. If you +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.3. If you have not upgraded to that version please do so first.</p> <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> @@ -95,7 +95,7 @@ have not upgraded to that version please do so first.</p> |-------------------------------------------------------------------------- | | If you would like to use the "hooks" feature you must enable it by -| setting this variable to TRUE (boolean). See the user guide for details. +| setting this variable to TRUE (boolean). See the user guide for details. | */ $config['enable_hooks'] = FALSE; @@ -111,7 +111,7 @@ $config['enable_hooks'] = FALSE; | get a warning message. | | As a security measure you are STRONGLY encouraged to restrict URLs to -| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_- +| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_- | | Leave blank to allow all characters -- but only if you are insane. | diff --git a/user_guide/installation/upgrade_141.html b/user_guide/installation/upgrade_141.html index f1dad54f4..79e51e4ab 100644 --- a/user_guide/installation/upgrade_141.html +++ b/user_guide/installation/upgrade_141.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -56,7 +56,7 @@ Upgrading from 1.4.0 to 1.4.1 </td> <h1>Upgrading from 1.4.0 to 1.4.1</h1> -<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.0. If you +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.0. If you have not upgraded to that version please do so first.</p> <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> @@ -88,16 +88,16 @@ have not upgraded to that version please do so first.</p> | Output Compression |-------------------------------------------------------------------------- | -| Enables Gzip output compression for faster page loads. When enabled, +| Enables Gzip output compression for faster page loads. When enabled, | the output class will test whether your server supports Gzip. | Even if it does, however, not all browsers support compression | so enable only if you are reasonably sure your visitors can handle it. | -| VERY IMPORTANT: If you are getting a blank page when compression is enabled it +| VERY IMPORTANT: If you are getting a blank page when compression is enabled it | means you are prematurely outputting something to your browser. It could -| even be a line of whitespace at the end of one of your scripts. For +| even be a line of whitespace at the end of one of your scripts. For | compression to work, nothing can be sent before the output buffer is called -| by the output class. Do not "echo" any values with compression enabled. +| by the output class. Do not "echo" any values with compression enabled. | */ $config['compress_output'] = FALSE; diff --git a/user_guide/installation/upgrade_150.html b/user_guide/installation/upgrade_150.html index dd5a90d7a..9cd0089c0 100644 --- a/user_guide/installation/upgrade_150.html +++ b/user_guide/installation/upgrade_150.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,7 +57,7 @@ Upgrading from 1.4.1 to 1.5.0 <h1>Upgrading from 1.4.1 to 1.5.0</h1> -<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.1. If you +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.1. If you have not upgraded to that version please do so first.</p> <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> @@ -105,7 +105,7 @@ $db['default']['cachedir'] = ''; |-------------------------------------------------------------------------- | | This item allows you to set the filename/classname prefix when extending -| native libraries. For more information please see the user guide: +| native libraries. For more information please see the user guide: | | http://codeigniter.com/user_guide/general/core_classes.html | http://codeigniter.com/user_guide/general/creating_libraries.html @@ -120,7 +120,7 @@ $config['subclass_prefix'] = 'MY_'; | | If your PHP installation does not have short tag support enabled CI | can rewrite the tags on-the-fly, enabling you to utilize that syntax -| in your view files. Options are TRUE or FALSE (boolean) +| in your view files. Options are TRUE or FALSE (boolean) | */ $config['rewrite_short_tags'] = FALSE; @@ -136,7 +136,7 @@ $config['rewrite_short_tags'] = FALSE; |-------------------------------------------------------------------------- | | If you would like errors or debug messages logged set this variable to -| TRUE (boolean). Note: You must set the file permissions on the "logs" folder +| TRUE (boolean). Note: You must set the file permissions on the "logs" folder | such that it is writable. | */ diff --git a/user_guide/installation/upgrade_152.html b/user_guide/installation/upgrade_152.html index f548e259d..136e3090b 100644 --- a/user_guide/installation/upgrade_152.html +++ b/user_guide/installation/upgrade_152.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,7 +57,7 @@ Upgrading from 1.5.0 to 1.5.2 <h1>Upgrading from 1.5.0 to 1.5.2</h1> -<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.5.0 or 1.5.1. If you +<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.5.0 or 1.5.1. If you have not upgraded to that version please do so first.</p> <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> diff --git a/user_guide/installation/upgrade_153.html b/user_guide/installation/upgrade_153.html index d76d8f173..fe6978aac 100644 --- a/user_guide/installation/upgrade_153.html +++ b/user_guide/installation/upgrade_153.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/upgrade_154.html b/user_guide/installation/upgrade_154.html index 4c534ffcb..e5086813d 100644 --- a/user_guide/installation/upgrade_154.html +++ b/user_guide/installation/upgrade_154.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/upgrade_160.html b/user_guide/installation/upgrade_160.html index 366826fb8..2adeff379 100644 --- a/user_guide/installation/upgrade_160.html +++ b/user_guide/installation/upgrade_160.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -84,16 +84,16 @@ Upgrading from 1.5.4 to 1.6.0 <p>Add the following to application/config/autoload.php</p> <p><code> /*<br /> | -------------------------------------------------------------------<br /> - | Auto-load Model files<br /> + | Auto-load Model files<br /> | -------------------------------------------------------------------<br /> | Prototype:<br /> |<br /> - | $autoload['model'] = array('my_model');<br /> + | $autoload['model'] = array('my_model');<br /> |<br /> */<br /> <br /> $autoload['model'] = array();</code></p> -<h2>Step 4: Add to your database.php </h2> +<h2>Step 4: Add to your database.php </h2> <p>Make the following changes to your application/config/database.php file:</p> <p>Add the following variable above the database configuration options, with <dfn>$active_group</dfn></p> <p><code>$active_record = TRUE;</code></p> diff --git a/user_guide/installation/upgrade_161.html b/user_guide/installation/upgrade_161.html index c809b63dc..2dc2de59e 100644 --- a/user_guide/installation/upgrade_161.html +++ b/user_guide/installation/upgrade_161.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/upgrade_162.html b/user_guide/installation/upgrade_162.html index f4792c2f8..0add80f8a 100644 --- a/user_guide/installation/upgrade_162.html +++ b/user_guide/installation/upgrade_162.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/upgrade_163.html b/user_guide/installation/upgrade_163.html index 915a7231d..73441397e 100644 --- a/user_guide/installation/upgrade_163.html +++ b/user_guide/installation/upgrade_163.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/upgrade_170.html b/user_guide/installation/upgrade_170.html index d286cf289..6fd92f52a 100644 --- a/user_guide/installation/upgrade_170.html +++ b/user_guide/installation/upgrade_170.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -88,14 +88,14 @@ Here is an example of what this column might look like for MySQL:</p> <code>ALTER TABLE `ci_sessions` ADD `user_data` text NOT NULL</code> -<p>You'll find more information regarding the new Session functionality in the <a href="../libraries/sessions.html">Session class</a> page.</p> +<p>You'll find more information regarding the new Session functionality in the <a href="../libraries/sessions.html">Session class</a> page.</p> <h2>Step 3: Update your Validation Syntax</h2> -<p>This is an <strong>optional</strong>, but recommended step, for people currently using the Validation class. CI 1.7 introduces a new <a href="../libraries/form_validation.html">Form Validation class</a>, which -deprecates the old Validation library. We have left the old one in place so that existing applications that use it will not break, but you are encouraged to -migrate to the new version as soon as possible. Please read the user guide carefully as the new library works a little differently, and has several new features.</p> +<p>This is an <strong>optional</strong>, but recommended step, for people currently using the Validation class. CI 1.7 introduces a new <a href="../libraries/form_validation.html">Form Validation class</a>, which +deprecates the old Validation library. We have left the old one in place so that existing applications that use it will not break, but you are encouraged to +migrate to the new version as soon as possible. Please read the user guide carefully as the new library works a little differently, and has several new features.</p> diff --git a/user_guide/installation/upgrade_171.html b/user_guide/installation/upgrade_171.html index 6058232b9..baee208a8 100644 --- a/user_guide/installation/upgrade_171.html +++ b/user_guide/installation/upgrade_171.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/upgrade_172.html b/user_guide/installation/upgrade_172.html index b5c95b169..dbf0fb019 100644 --- a/user_guide/installation/upgrade_172.html +++ b/user_guide/installation/upgrade_172.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/installation/upgrade_200.html b/user_guide/installation/upgrade_200.html index c4a588772..cd39d924d 100644 --- a/user_guide/installation/upgrade_200.html +++ b/user_guide/installation/upgrade_200.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -69,8 +69,8 @@ Upgrading from 1.7.2 to 2.0.0 <h2>Step 2: Adjust get_dir_file_info() where necessary</h2> -<p>Version 2.0.0 brings a non-backwards compatible change to <kbd>get_dir_file_info()</kbd> in the <a href="../helpers/file_helper.html">File Helper</a>. Non-backwards compatible changes are extremely rare - in CodeIgniter, but this one we feel was warranted due to how easy it was to create serious server performance issues. If you <em>need</em> +<p>Version 2.0.0 brings a non-backwards compatible change to <kbd>get_dir_file_info()</kbd> in the <a href="../helpers/file_helper.html">File Helper</a>. Non-backwards compatible changes are extremely rare + in CodeIgniter, but this one we feel was warranted due to how easy it was to create serious server performance issues. If you <em>need</em> recursiveness where you are using this helper function, change such instances, setting the second parameter, <kbd>$top_level_only</kbd> to FALSE:</p> <code>get_dir_file_info('/path/to/directory', <kbd>FALSE</kbd>);</code> @@ -79,7 +79,7 @@ Upgrading from 1.7.2 to 2.0.0 <h2>Step 3: Convert your Plugins to Helpers</h2> -<p>2.0.0 gets rid of the "Plugin" system as their functionality was identical to Helpers, but non-extensible. You will need to rename your plugin files from <var>filename_pi.php</var> to <var>filename_helper.php</var>, move them to your <kbd>helpers</kbd> folder, and change all instances of: +<p>2.0.0 gets rid of the "Plugin" system as their functionality was identical to Helpers, but non-extensible. You will need to rename your plugin files from <var>filename_pi.php</var> to <var>filename_helper.php</var>, move them to your <kbd>helpers</kbd> folder, and change all instances of: <code>$this->load->plugin('foo');</code> @@ -94,7 +94,7 @@ to <p class="important"><strong>Note:</strong> If your application does not use the Encryption library, does not store Encrypted data permanently, or is on an environment that does not support Mcrypt, you may skip this step.</p> <p>The Encryption library has had a number of improvements, some for encryption strength and some for performance, that has an unavoidable consequence of - making it no longer possible to decode encrypted data produced by the original version of this library. To help with the transition, a new method has + making it no longer possible to decode encrypted data produced by the original version of this library. To help with the transition, a new method has been added, <kbd>encode_from_legacy()</kbd> that will decode the data with the original algorithm and return a re-encoded string using the improved methods. This will enable you to easily replace stale encrypted data with fresh in your applications, either on the fly or en masse.</p> @@ -104,7 +104,7 @@ to <p>The compatibility helper has been removed from the CodeIgniter core. All methods in it should be natively available in supported PHP versions.</p> <h2>Step 6: Update Class extension</h2> -<p>All core classes are now prefixed with <kbd>CI_</kbd>. Update Models and Controllers to extend CI_Model and CI_Controller, respectively.</p> +<p>All core classes are now prefixed with <kbd>CI_</kbd>. Update Models and Controllers to extend CI_Model and CI_Controller, respectively.</p> <h2>Step 7: Update Parent Constructor calls</h2> <p>All native CodeIgniter classes now use the PHP 5 <kbd>__construct()</kbd> convention. Please update extended libraries to call <kbd>parent::__construct()</kbd>.</p> diff --git a/user_guide/installation/upgrade_201.html b/user_guide/installation/upgrade_201.html index ec01b9b33..fe99cc0ce 100644 --- a/user_guide/installation/upgrade_201.html +++ b/user_guide/installation/upgrade_201.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -66,10 +66,26 @@ Upgrading from 2.0.0 to 2.0.1 <p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + <h2>Step 2: Replace config/mimes.php</h2> <p>This config file has been updated to contain more mime types, please copy it to <kbd>application/config/mimes.php</kbd>.</p> + +<h2>Step 3: Check for forms posting to default controller</h2> + +<p> + The default behavior for <kbd>form_open()</kbd> when called with no parameters used to be to post to the default controller, but it will now just leave an empty action="" meaning the form will submit to the current URL. + If submitting to the default controller was the expected behavior it will need to be changed from: +</p> + +<code>echo form_open(); //<form action="" method="post" accept-charset="utf-8"></code> + +<p>to use either a / or <kbd>base_url()</kbd>:</p> + +<code>echo form_open('/'); //<form action="http://example.com/index.php/" method="post" accept-charset="utf-8"><br/> +echo form_open(base_url()); //<form action="http://example.com/" method="post" accept-charset="utf-8"></code> + </div> <!-- END CONTENT --> diff --git a/user_guide/installation/upgrade_202.html b/user_guide/installation/upgrade_202.html new file mode 100644 index 000000000..93c537227 --- /dev/null +++ b/user_guide/installation/upgrade_202.html @@ -0,0 +1,97 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.0.1 to 2.0.2 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<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> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> › +<a href="../index.html">User Guide Home</a> › +Upgrading from 2.0.1 to 2.0.2 +</td> +<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 <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" /> <input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.0.1 to 2.0.2</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + + +<h2>Step 2: Remove loading calls for the Security Library</h2> + +<p>Security has been moved to the core and is now always loaded automatically. Make sure you remove any loading calls as they will result in PHP errors.</p> + + +<h2>Step 3: Move MY_Security</h2> + +<p>If you are overriding or extending the Security library, you will need to move it to <kbd>application/core</kbd>.</p> + +<p><samp>csrf_token_name</samp> and <samp>csrf_hash</samp> have changed to protected class properties. Please use <samp>security->get_csrf_hash()</samp> and <samp>security->get_csrf_token_name()</samp> to access those values.</p> + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic: <a href="index.html">Installation Instructions</a> + · +<a href="#top">Top of Page</a> · +<a href="../index.html">User Guide Home</a> · +Next Topic: <a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html>
\ No newline at end of file diff --git a/user_guide/installation/upgrade_203.html b/user_guide/installation/upgrade_203.html new file mode 100644 index 000000000..d1c9a940f --- /dev/null +++ b/user_guide/installation/upgrade_203.html @@ -0,0 +1,125 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>Upgrading from 2.0.2 to 2.0.3 : CodeIgniter User Guide</title> + +<style type='text/css' media='all'>@import url('../userguide.css');</style> +<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> + +<script type="text/javascript" src="../nav/nav.js"></script> +<script type="text/javascript" src="../nav/prototype.lite.js"></script> +<script type="text/javascript" src="../nav/moo.fx.js"></script> +<script type="text/javascript" src="../nav/user_guide_menu.js"></script> + +<meta http-equiv='expires' content='-1' /> +<meta http-equiv= 'pragma' content='no-cache' /> +<meta name='robots' content='all' /> +<meta name='author' content='ExpressionEngine Dev Team' /> +<meta name='description' content='CodeIgniter User Guide' /> + +</head> +<body> + +<!-- START NAVIGATION --> +<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div> +<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> +<div id="masthead"> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td><h1>CodeIgniter User Guide Version 2.0.3</h1></td> +<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> +</tr> +</table> +</div> +<!-- END NAVIGATION --> + + +<!-- START BREADCRUMB --> +<table cellpadding="0" cellspacing="0" border="0" style="width:100%"> +<tr> +<td id="breadcrumb"> +<a href="http://codeigniter.com/">CodeIgniter Home</a> › +<a href="../index.html">User Guide Home</a> › +Upgrading from 2.0.2 to 2.0.3 +</td> +<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 <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" /> <input type="submit" class="submit" name="sa" value="Go" /></form></td> +</tr> +</table> +<!-- END BREADCRUMB --> + +<br clear="all" /> + + +<!-- START CONTENT --> +<div id="content"> + +<h1>Upgrading from 2.0.2 to 2.0.3</h1> + +<p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p> + + +<h2>Step 1: Update your CodeIgniter files</h2> + +<p>Replace all files and directories in your "system" folder and replace your index.php file. If any modifications were made to your index.php they will need to be made fresh in this new one.</p> + +<p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p> + +<h2>Step 2: Update CodeIgniter files</h2> + +<p>Replace the files and directories in your "system" folder with the new versions:</p> + +<h2>Step 3: Update your main index.php file</h2> + +<p>If you are running a stock <dfn>index.php</dfn> file simply replace your version with the new one.</p> + +<p>If your <dfn>index.php</dfn> file has internal modifications, please add your modifications to the new file and use it.</p> + +<h2>Step 4: Replace config/user_agents.php</h2> + +<p>This config file has been updated to contain more user agent types, please copy it to <kbd>application/config/user_agents.php</kbd>.</p> + +<h2>Step 5: Change references of the EXT constant to ".php"</h2> +<p class="important"><strong>Note:</strong> The EXT Constant has been marked as deprecated, but has not been removed from the application. You are encouraged to make the changes sooner rather than later.</p> + +<h2>Step 6: Remove APPPATH.'third_party' from autoload.php</h2> + +<p>Open application/autoload.php, and look for the following:</p> + +<code>$autoload['packages'] = array(APPPATH.'third_party');</code> + +<p>If you have not chosen to load any additional packages, that line can be changed to:</p> +<code>$autoload['packages'] = array();</code> + +<p>Which should provide for nominal performance gains if not autoloading packages.</p> + +<h2>Update Sessions Database Tables</h2> + +<p>If you are using database sessions with the CI Session Library, please update your <samp>ci_sessions</samp> database table as follows:</p> + +<code> + CREATE INDEX last_activity_idx ON ci_sessions(last_activity); + ALTER TABLE ci_sessions MODIFY user_agent VARCHAR(120); +</code> + + + + +</div> +<!-- END CONTENT --> + + +<div id="footer"> +<p> +Previous Topic: <a href="index.html">Installation Instructions</a> + · +<a href="#top">Top of Page</a> · +<a href="../index.html">User Guide Home</a> · +Next Topic: <a href="troubleshooting.html">Troubleshooting</a> +</p> +<p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> +</div> + +</body> +</html>
\ No newline at end of file diff --git a/user_guide/installation/upgrade_b11.html b/user_guide/installation/upgrade_b11.html index dd0a9bcdb..d2fc20d18 100644 --- a/user_guide/installation/upgrade_b11.html +++ b/user_guide/installation/upgrade_b11.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,7 +61,7 @@ Upgrading from Beta 1.0 to Beta 1.1 <h2>Step 1: Replace your index file</h2> -<p>Replace your main <kbd>index.php</kbd> file with the new index.php file. Note: If you have renamed your "system" folder you will need to edit this info in the new file.</p> +<p>Replace your main <kbd>index.php</kbd> file with the new index.php file. Note: If you have renamed your "system" folder you will need to edit this info in the new file.</p> <h2>Step 2: Relocate your config folder</h2> @@ -91,7 +91,7 @@ the following item to your version: <dfn>language/english/calendar_lang.php</dfn <h2>Step 5: Edit your config file</h2> -<p>The original <kbd>application/config/config.php</kbd> file has a typo in it Open the file and look for the items related to cookies:</p> +<p>The original <kbd>application/config/config.php</kbd> file has a typo in it Open the file and look for the items related to cookies:</p> <code>$conf['cookie_prefix'] = "";<br /> $conf['cookie_domain'] = "";<br /> @@ -112,7 +112,7 @@ $config['cookie_path'] = "/";</code> |------------------------------------------------<br /> |<br /> | This item determines which server global <br /> -| should be used to retrieve the URI string. The <br /> +| should be used to retrieve the URI string. The <br /> | default setting of "auto" works for most servers.<br /> | If your links do not seem to work, try one of <br /> | the other delicious flavors:<br /> diff --git a/user_guide/installation/upgrading.html b/user_guide/installation/upgrading.html index 073e7a7cc..014ffa3f3 100644 --- a/user_guide/installation/upgrading.html +++ b/user_guide/installation/upgrading.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -60,6 +60,8 @@ Upgrading from a Previous Version <p>Please read the upgrade notes corresponding to the version you are upgrading from.</p> <ul> + <li><a href="upgrade_203.html">Upgrading from 2.0.2 to 2.0.3</a></li> + <li><a href="upgrade_202.html">Upgrading from 2.0.1 to 2.0.2</a></li> <li><a href="upgrade_201.html">Upgrading from 2.0 to 2.0.1</a></li> <li><a href="upgrade_200.html">Upgrading from 1.7.2 to 2.0</a></li> <li><a href="upgrade_172.html">Upgrading from 1.7.1 to 1.7.2</a></li> diff --git a/user_guide/libraries/benchmark.html b/user_guide/libraries/benchmark.html index e8182d080..4dadf6b83 100644 --- a/user_guide/libraries/benchmark.html +++ b/user_guide/libraries/benchmark.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -83,7 +83,7 @@ timing of the entire system execution to be shown.</p> <a name="using"></a> <h2>Using the Benchmark Class</h2> -<p>The Benchmark class can be used within your <a href="../general/controllers.html">controllers</a>, <a href="../general/views.html">views</a>, or your <a href="../general/models.html">models</a>. The process for usage is this:</p> +<p>The Benchmark class can be used within your <a href="../general/controllers.html">controllers</a>, <a href="../general/views.html">views</a>, or your <a href="../general/models.html">models</a>. The process for usage is this:</p> <ol> <li>Mark a start point</li> @@ -101,7 +101,7 @@ $this->benchmark->mark('code_end');<br /> <br /> echo $this->benchmark->elapsed_time('code_start', 'code_end');</code> -<p class="important"><strong>Note:</strong> The words "code_start" and "code_end" are arbitrary. They are simply words used to set two markers. You can +<p class="important"><strong>Note:</strong> The words "code_start" and "code_end" are arbitrary. They are simply words used to set two markers. You can use any words you want, and you can set multiple sets of markers. Consider this example:</p> <code>$this->benchmark->mark('dog');<br /> @@ -154,8 +154,8 @@ is sent to the browser, simply place this in one of your view templates:</p> <code><?php echo $this->benchmark->elapsed_time();?></code> <p>You'll notice that it's the same function used in the examples above to calculate the time between two point, except you are -<strong>not</strong> using any parameters. When the parameters are absent, CodeIgniter does not stop the benchmark until right before the final -output is sent to the browser. It doesn't matter where you use the function call, the timer will continue to run until the very end.</p> +<strong>not</strong> using any parameters. When the parameters are absent, CodeIgniter does not stop the benchmark until right before the final +output is sent to the browser. It doesn't matter where you use the function call, the timer will continue to run until the very end.</p> <p>An alternate way to show your elapsed time in your view files is to use this pseudo-variable, if you prefer not to use the pure PHP:</p> <code>{elapsed_time}</code> diff --git a/user_guide/libraries/caching.html b/user_guide/libraries/caching.html index 3d3354436..7e1339217 100644 --- a/user_guide/libraries/caching.html +++ b/user_guide/libraries/caching.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,7 +58,7 @@ Caching Driver <h1>Caching Driver</h1> -<p>CodeIgniter features wrappers around some of the most popular forms of fast and dynamic caching. All but file-based caching require specific server requirements, and a Fatal Exception will be thrown if server requirements are not met.</p> +<p>CodeIgniter features wrappers around some of the most popular forms of fast and dynamic caching. All but file-based caching require specific server requirements, and a Fatal Exception will be thrown if server requirements are not met.</p> <h2>Table of Contents</h2> <ul> @@ -97,7 +97,7 @@ echo $foo; <h2>is_supported(<var>driver</var>['string'])</h2> -<p>This function is automatically called when accessing drivers via <samp>$this->cache->get()</samp>. However, if the individual drivers are used, make sure to call this function to ensure the driver is supported in the hosting environment.</p> +<p>This function is automatically called when accessing drivers via <samp>$this->cache->get()</samp>. However, if the individual drivers are used, make sure to call this function to ensure the driver is supported in the hosting environment.</p> <code> if ($this->cache->apc->is_supported())<br /> @@ -111,23 +111,23 @@ if ($this->cache->apc->is_supported())<br /> <h2>get(<var>id</var>['string'])</h2> -<p>This function will attempt to fetch an item from the cache store. If the item does not exist, the function will return <samp>FALSE</samp>.</p> +<p>This function will attempt to fetch an item from the cache store. If the item does not exist, the function will return <samp>FALSE</samp>.</p> <code>$foo = $this->cache->get('my_cached_item');</code> <h2>save(<var>id</var>['string'], <var>data</var>['mixed'], <var>ttl</var>['int'])</h2> -<p>This function will save an item to the cache store. If saving fails, the function will return <samp>FALSE</samp>.</p> +<p>This function will save an item to the cache store. If saving fails, the function will return <samp>FALSE</samp>.</p> <p>The optional third parameter (Time To Live) defaults to 60 seconds.</p> <code>$this->cache->save('cache_item_id', 'data_to_cache');</code> <h2>delete(<var>id</var>['string'])</h2> -<p>This function will delete a specific item from the cache store. If item deletion fails, the function will return <samp>FALSE</samp>.</p> +<p>This function will delete a specific item from the cache store. If item deletion fails, the function will return <samp>FALSE</samp>.</p> <code>$this->cache->delete('cache_item_id');</code> <h2>clean()</h2> -<p>This function will 'clean' the entire cache. If the deletion of the cache files fails, the function will return <samp>FALSE</samp>.</p> +<p>This function will 'clean' the entire cache. If the deletion of the cache files fails, the function will return <samp>FALSE</samp>.</p> <code>$this->cache->clean();</code> @@ -154,7 +154,7 @@ if ($this->cache->apc->is_supported())<br /> <h2 id="file">File-based Caching</h2> -<p>Unlike caching from the Output Class, the driver file-based caching allows for pieces of view files to be cached. Use this with care, and make sure to benchmark your application, as a point can come where disk I/O will negate positive gains by caching.</p> +<p>Unlike caching from the Output Class, the driver file-based caching allows for pieces of view files to be cached. Use this with care, and make sure to benchmark your application, as a point can come where disk I/O will negate positive gains by caching.</p> <p>All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:</p> <code>$this->load->driver('cache');<br /> @@ -172,7 +172,7 @@ if ($this->cache->apc->is_supported())<br /> <h2 id="dummy">Dummy Cache</h2> -<p>This is a caching backend that will always 'miss.' It stores no data, but lets you keep your caching code in place in environments that don't support your chosen cache.</p> +<p>This is a caching backend that will always 'miss.' It stores no data, but lets you keep your caching code in place in environments that don't support your chosen cache.</p> </div> <!-- END CONTENT --> @@ -180,11 +180,11 @@ if ($this->cache->apc->is_supported())<br /> <div id="footer"> <p> -Previous Topic: <a href="errors.html">Error Handling</a> +Previous Topic: <a href="zip.html">Zip Encoding Class</a> · <a href="#top">Top of Page</a> · <a href="../index.html">User Guide Home</a> · -Next Topic: <a href="profiling.html">Profiling Your Application</a> +Next Topic: <a href="../database/index.html">Database Class</a> </p> <p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> </div> diff --git a/user_guide/libraries/calendar.html b/user_guide/libraries/calendar.html index 347b3d92b..06dfec71e 100644 --- a/user_guide/libraries/calendar.html +++ b/user_guide/libraries/calendar.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -86,13 +86,13 @@ To show a calendar for a specific month and year you will pass this information <br /> echo $this->calendar->generate(<kbd>2006</kbd>, <kbd>6</kbd>);</code> -<p>The above code will generate a calendar showing the month of June in 2006. The first parameter specifies the year, the second parameter specifies the month.</p> +<p>The above code will generate a calendar showing the month of June in 2006. The first parameter specifies the year, the second parameter specifies the month.</p> <h2>Passing Data to your Calendar Cells</h2> <p>To add data to your calendar cells involves creating an associative array in which the keys correspond to the days -you wish to populate and the array value contains the data. The array is passed to the third parameter of the calendar -generating function. Consider this example:</p> +you wish to populate and the array value contains the data. The array is passed to the third parameter of the calendar +generating function. Consider this example:</p> <code>$this->load->library('calendar');<br /> <br /> @@ -114,7 +114,7 @@ how data passed to your cells is handled so you can pass different types of info <h2>Setting Display Preferences</h2> -<p>There are seven preferences you can set to control various aspects of the calendar. Preferences are set by passing an +<p>There are seven preferences you can set to control various aspects of the calendar. Preferences are set by passing an array of preferences in the second parameter of the loading function. Here is an example:</p> @@ -129,7 +129,7 @@ $this->load->library('calendar', $prefs);<br /> <br /> echo $this->calendar->generate();</code> -<p>The above code would start the calendar on saturday, use the "long" month heading, and the "short" day names. More information +<p>The above code would start the calendar on saturday, use the "long" month heading, and the "short" day names. More information regarding preferences below.</p> @@ -180,7 +180,7 @@ echo $this->calendar->generate(<var>$this->uri->segment(3)</var>, <var>$this->ur <ul> <li>You must set the "show_next_prev" to TRUE.</li> <li>You must supply the URL to the controller containing your calendar in the "next_prev_url" preference.</li> -<li>You must supply the "year" and "month" to the calendar generating function via the URI segments where they appear (Note: The calendar class automatically adds the year/month to the base URL you provide.).</li> +<li>You must supply the "year" and "month" to the calendar generating function via the URI segments where they appear (Note: The calendar class automatically adds the year/month to the base URL you provide.).</li> </ul> diff --git a/user_guide/libraries/cart.html b/user_guide/libraries/cart.html index fe87a23f2..433bd5089 100644 --- a/user_guide/libraries/cart.html +++ b/user_guide/libraries/cart.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,13 +61,13 @@ Shopping Cart Class <p>The Cart Class permits items to be added to a session that stays active while a user is browsing your site. These items can be retrieved and displayed in a standard "shopping cart" format, allowing the user to update the quantity or remove items from the cart.</p> -<p>Please note that the Cart Class ONLY provides the core "cart" functionality. It does not provide shipping, credit card authorization, or other processing components.</p> +<p>Please note that the Cart Class ONLY provides the core "cart" functionality. It does not provide shipping, credit card authorization, or other processing components.</p> <h2>Initializing the Shopping Cart Class</h2> <p><strong>Important:</strong> The Cart class utilizes CodeIgniter's -<a href="sessions.html">Session Class</a> to save the cart information to a database, so before using the Cart class you must set up a database table +<a href="sessions.html">Session Class</a> to save the cart information to a database, so before using the Cart class you must set up a database table as indicated in the <a href="sessions.html">Session Documentation</a> , and set the session preferences in your <kbd>application/config/config.php</kbd> file to utilize a database.</p> <p>To initialize the Shopping Cart Class in your controller constructor, use the <dfn>$this->load->library</dfn> function:</p> @@ -106,19 +106,19 @@ It is intended to be used in cases where your product has options associated wit <li><strong>qty</strong> - The quantity being purchased. <li><strong>price</strong> - The price of the item. <li><strong>name</strong> - The name of the item. -<li><strong>options</strong> - Any additional attributes that are needed to identify the product. These must be passed via an array. +<li><strong>options</strong> - Any additional attributes that are needed to identify the product. These must be passed via an array. </ul> -<p>In addition to the five indexes above, there are two reserved words: <dfn>rowid</dfn> and <dfn>subtotal</dfn>. These are used internally by the Cart class, so +<p>In addition to the five indexes above, there are two reserved words: <dfn>rowid</dfn> and <dfn>subtotal</dfn>. These are used internally by the Cart class, so please do NOT use those words as index names when inserting data into the cart.</p> -<p>Your array may contain additional data. Anything you include in your array will be stored in the session. However, it is best to standardize your data among +<p>Your array may contain additional data. Anything you include in your array will be stored in the session. However, it is best to standardize your data among all your products in order to make displaying the information in a table easier.</p> <h2>Adding Multiple Items to The Cart</h2> -<p>By using a multi-dimensional array, as shown below, it is possible to add multiple products to the cart in one action. This is useful in cases where you wish to allow +<p>By using a multi-dimensional array, as shown below, it is possible to add multiple products to the cart in one action. This is useful in cases where you wish to allow people to select from among several items on the same page.</p> @@ -170,10 +170,10 @@ $this->cart->insert($data); <table cellpadding="6" cellspacing="1" style="width:100%" border="0"> <tr> - <th>QTY</th> - <th>Item Description</th> - <th style="text-align:right">Item Price</th> - <th style="text-align:right">Sub-Total</th> + <th>QTY</th> + <th>Item Description</th> + <th style="text-align:right">Item Price</th> + <th style="text-align:right">Sub-Total</th> </tr> <?php $i = 1; ?> @@ -183,8 +183,8 @@ $this->cart->insert($data); <?php echo form_hidden($i.'[rowid]', $items['rowid']); ?> <tr> - <td><?php echo form_input(array('name' => $i.'[qty]', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5')); ?></td> - <td> + <td><?php echo form_input(array('name' => $i.'[qty]', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5')); ?></td> + <td> <?php echo $items['name']; ?> <?php if ($this->cart->has_options($items['rowid']) == TRUE): ?> @@ -199,9 +199,9 @@ $this->cart->insert($data); <?php endif; ?> - </td> - <td style="text-align:right"><?php echo $this->cart->format_number($items['price']); ?></td> - <td style="text-align:right">$<?php echo $this->cart->format_number($items['subtotal']); ?></td> + </td> + <td style="text-align:right"><?php echo $this->cart->format_number($items['price']); ?></td> + <td style="text-align:right">$<?php echo $this->cart->format_number($items['subtotal']); ?></td> </tr> <?php $i++; ?> @@ -209,9 +209,9 @@ $this->cart->insert($data); <?php endforeach; ?> <tr> - <td colspan="2"> </td> - <td class="right"><strong>Total</strong></td> - <td class="right">$<?php echo $this->cart->format_number($this->cart->total()); ?></td> + <td colspan="2"> </td> + <td class="right"><strong>Total</strong></td> + <td class="right">$<?php echo $this->cart->format_number($this->cart->total()); ?></td> </tr> </table> @@ -265,11 +265,11 @@ $this->cart->update($data); </code> -<p><strong>What is a Row ID?</strong> The <kbd>row ID</kbd> is a unique identifier that is generated by the cart code when an item is added to the cart. The reason a +<p><strong>What is a Row ID?</strong> The <kbd>row ID</kbd> is a unique identifier that is generated by the cart code when an item is added to the cart. The reason a unique ID is created is so that identical products with different options can be managed by the cart.</p> -<p>For example, let's say someone buys two identical t-shirts (same product ID), but in different sizes. The product ID (and other attributes) will be -identical for both sizes because it's the same shirt. The only difference will be the size. The cart must therefore have a means of identifying this +<p>For example, let's say someone buys two identical t-shirts (same product ID), but in different sizes. The product ID (and other attributes) will be +identical for both sizes because it's the same shirt. The only difference will be the size. The cart must therefore have a means of identifying this difference so that the two sizes of shirts can be managed independently. It does so by creating a unique "row ID" based on the product ID and any options associated with it.</p> <p>In nearly all cases, updating the cart will be something the user does via the "view cart" page, so as a developer, it is unlikely that you will ever have to concern yourself @@ -311,7 +311,7 @@ function when the update form is submitted. Please examine the construction of t <h2>$this->cart->has_options(rowid);</h2> -<p>Returns TRUE (boolean) if a particular row in the cart contains options. This function is designed to be used in a loop with <dfn>$this->cart->contents()</dfn>, since you must pass the <kbd>rowid</kbd> to this function, as shown in the <dfn>Displaying the Cart</dfn> example above.</p> +<p>Returns TRUE (boolean) if a particular row in the cart contains options. This function is designed to be used in a loop with <dfn>$this->cart->contents()</dfn>, since you must pass the <kbd>rowid</kbd> to this function, as shown in the <dfn>Displaying the Cart</dfn> example above.</p> <h2>$this->cart->product_options(rowid);</h2> @@ -322,7 +322,7 @@ function when the update form is submitted. Please examine the construction of t <h2>$this->cart->destroy();</h2> -<p>Permits you to destroy the cart. This function will likely be called when you are finished processing the customer's order.</p> +<p>Permits you to destroy the cart. This function will likely be called when you are finished processing the customer's order.</p> diff --git a/user_guide/libraries/config.html b/user_guide/libraries/config.html index af7bcfe61..c0192ca0a 100644 --- a/user_guide/libraries/config.html +++ b/user_guide/libraries/config.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,7 +58,7 @@ Config Class <h1>Config Class</h1> -<p>The Config class provides a means to retrieve configuration preferences. These preferences can +<p>The Config class provides a means to retrieve configuration preferences. These preferences can come from the default config file (<samp>application/config/config.php</samp>) or from your own custom config files.</p> <p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> @@ -66,7 +66,7 @@ come from the default config file (<samp>application/config/config.php</samp>) o <h2>Anatomy of a Config File</h2> -<p>By default, CodeIgniter has one primary config file, located at <samp>application/config/config.php</samp>. If you open the file using +<p>By default, CodeIgniter has one primary config file, located at <samp>application/config/config.php</samp>. If you open the file using your text editor you'll see that config items are stored in an array called <var>$config</var>.</p> <p>You can add your own config items to @@ -74,7 +74,7 @@ this file, or if you prefer to keep your configuration items separate (assuming simply create your own file and save it in <dfn>config</dfn> folder.</p> <p><strong>Note:</strong> If you do create your own config files use the same format as the primary one, storing your items in -an array called <var>$config</var>. CodeIgniter will intelligently manage these files so there will be no conflict even though +an array called <var>$config</var>. CodeIgniter will intelligently manage these files so there will be no conflict even though the array has the same name (assuming an array index is not named the same as another).</p> <h2>Loading a Config File</h2> @@ -92,12 +92,12 @@ so you will only need to load a config file if you have created your own.</p> <p>Where <var>filename</var> is the name of your config file, without the .php file extension.</p> -<p>If you need to load multiple config files normally they will be merged into one master config array. Name collisions can occur, however, if -you have identically named array indexes in different config files. To avoid collisions you can set the second parameter to <kbd>TRUE</kbd> +<p>If you need to load multiple config files normally they will be merged into one master config array. Name collisions can occur, however, if +you have identically named array indexes in different config files. To avoid collisions you can set the second parameter to <kbd>TRUE</kbd> and each config file will be stored in an array index corresponding to the name of the config file. Example:</p> <code> -// Stored in an array with this prototype: $this->config['blog_settings'] = $config<br /> +// Stored in an array with this prototype: $this->config['blog_settings'] = $config<br /> $this->config->load('<var>blog_settings</var>', <kbd>TRUE</kbd>);</code> <p>Please see the section entitled <dfn>Fetching Config Items</dfn> below to learn how to retrieve config items set this way.</p> @@ -109,7 +109,7 @@ $this->config->load('<var>blog_settings</var>', <kbd>TRUE</kbd>);</code> </li> <li><strong>Auto-loading</strong> -<p>If you find that you need a particular config file globally, you can have it loaded automatically by the system. To do this, +<p>If you find that you need a particular config file globally, you can have it loaded automatically by the system. To do this, open the <strong>autoload.php</strong> file, located at <samp>application/config/autoload.php</samp>, and add your config file as indicated in the file.</p> </li> @@ -129,7 +129,7 @@ indicated in the file.</p> <p>The function returns FALSE (boolean) if the item you are trying to fetch does not exist.</p> <p>If you are using the second parameter of the <kbd>$this->config->load</kbd> function in order to assign your config items to a specific index -you can retrieve it by specifying the index name in the second parameter of the <kbd>$this->config->item()</kbd> function. Example:</p> +you can retrieve it by specifying the index name in the second parameter of the <kbd>$this->config->item()</kbd> function. Example:</p> <code> // Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"<br /> @@ -154,32 +154,32 @@ $site_name = $blog_config['site_name'];</code> <h2>Environments</h2> <p> - You may load different configuration files depending on the current environment. - The <kbd>ENVIRONMENT</kbd> constant is defined in index.php, and is described - in detail in the <a href="../general/environments.html">Handling Environments</a> - section. + You may load different configuration files depending on the current environment. + The <kbd>ENVIRONMENT</kbd> constant is defined in index.php, and is described + in detail in the <a href="../general/environments.html">Handling Environments</a> + section. </p> <p> - To create an environment-specific configuration file, - create or copy a configuration file in application/config/{ENVIRONMENT}/{FILENAME}.php + To create an environment-specific configuration file, + create or copy a configuration file in application/config/{ENVIRONMENT}/{FILENAME}.php </p> <p>For example, to create a production-only config.php, you would:</p> <ol> - <li>Create the directory application/config/production/</li> - <li>Copy your existing config.php into the above directory</li> - <li>Edit application/config/production/config.php so it contains your production settings</li> + <li>Create the directory application/config/production/</li> + <li>Copy your existing config.php into the above directory</li> + <li>Edit application/config/production/config.php so it contains your production settings</li> </ol> <p> - When you set the <kbd>ENVIRONMENT</kbd> constant to 'production', the settings - for your new production-only config.php will be loaded. + When you set the <kbd>ENVIRONMENT</kbd> constant to 'production', the settings + for your new production-only config.php will be loaded. </p> <p>You can place the following configuration files in environment-specific folders:</p> - + <ul> <li>Default CodeIgniter configuration files</li> <li>Your own custom configuration files</li> diff --git a/user_guide/libraries/email.html b/user_guide/libraries/email.html index a02d6587f..61e139187 100644 --- a/user_guide/libraries/email.html +++ b/user_guide/libraries/email.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -78,7 +78,7 @@ Email Class <p>Sending email is not only simple, but you can configure it on the fly or set your preferences in a config file.</p> -<p>Here is a basic example demonstrating how you might send email. Note: This example assumes you are sending the email from one of your +<p>Here is a basic example demonstrating how you might send email. Note: This example assumes you are sending the email from one of your <a href="../general/controllers.html">controllers</a>.</p> <code>$this->load->library('email');<br /> @@ -103,7 +103,7 @@ echo $this->email->print_debugger();</code> <p>There are 17 different preferences available to tailor how your email messages are sent. You can either set them manually as described here, or automatically via preferences stored in your config file, described below:</p> -<p>Preferences are set by passing an array of preference values to the email <dfn>initialize</dfn> function. Here is an example of how you might set some preferences:</p> +<p>Preferences are set by passing an array of preference values to the email <dfn>initialize</dfn> function. Here is an example of how you might set some preferences:</p> <code>$config['protocol'] = 'sendmail';<br /> $config['mailpath'] = '/usr/sbin/sendmail';<br /> @@ -117,7 +117,7 @@ $this->email->initialize($config);</code> ><h3>Setting Email Preferences in a Config File</h3> <p>If you prefer not to set preferences using the above method, you can instead put them into a config file. -Simply create a new file called the <var>email.php</var>, add the <var>$config</var> +Simply create a new file called the <var>email.php</var>, add the <var>$config</var> array in that file. Then save the file at <var>config/email.php</var> and it will be used automatically. You will NOT need to use the <dfn>$this->email->initialize()</dfn> function if you save your preferences in a config file.</p> @@ -156,13 +156,13 @@ will NOT need to use the <dfn>$this->email->initialize()</dfn> function if you s </tr><tr> <td class="td"><strong>wrapchars</strong></td><td class="td">76</td><td class="td"> </td><td class="td">Character count to wrap at.</td> </tr><tr> -<td class="td"><strong>mailtype</strong></td><td class="td">text</td><td class="td">text or html</td><td class="td">Type of mail. If you send HTML email you must send it as a complete web page. Make sure you don't have any relative links or relative image paths otherwise they will not work.</td> +<td class="td"><strong>mailtype</strong></td><td class="td">text</td><td class="td">text or html</td><td class="td">Type of mail. If you send HTML email you must send it as a complete web page. Make sure you don't have any relative links or relative image paths otherwise they will not work.</td> </tr><tr> <td class="td"><strong>charset</strong></td><td class="td">utf-8</td><td class="td"></td><td class="td">Character set (utf-8, iso-8859-1, etc.).</td> </tr><tr> -<td class="td"><strong>validate</strong></td><td class="td">FALSE</td><td class="td">TRUE or FALSE (boolean)</td><td class="td">Whether to validate the email address.</td> +<td class="td"><strong>validate</strong></td><td class="td">FALSE</td><td class="td">TRUE or FALSE (boolean)</td><td class="td">Whether to validate the email address.</td> </tr><tr> -<td class="td"><strong>priority</strong></td><td class="td">3</td><td class="td">1, 2, 3, 4, 5</td><td class="td">Email Priority. 1 = highest. 5 = lowest. 3 = normal.</td> +<td class="td"><strong>priority</strong></td><td class="td">3</td><td class="td">1, 2, 3, 4, 5</td><td class="td">Email Priority. 1 = highest. 5 = lowest. 3 = normal.</td> </tr> <tr> <td class="td"><strong>crlf</strong></td> @@ -188,12 +188,12 @@ will NOT need to use the <dfn>$this->email->initialize()</dfn> function if you s <code>$this->email->from('<var>you@example.com</var>', '<var>Your Name</var>');</code> <h3>$this->email->reply_to()</h3> -<p>Sets the reply-to address. If the information is not provided the information in the "from" function is used. Example:</p> +<p>Sets the reply-to address. If the information is not provided the information in the "from" function is used. Example:</p> <code>$this->email->reply_to('<var>you@example.com</var>', '<var>Your Name</var>');</code> <h3>$this->email->to()</h3> -<p>Sets the email address(s) of the recipient(s). Can be a single email, a comma-delimited list or an array:</p> +<p>Sets the email address(s) of the recipient(s). Can be a single email, a comma-delimited list or an array:</p> <code>$this->email->to('<var>someone@example.com</var>');</code> <code>$this->email->to('<var>one@example.com</var>, <var>two@example.com</var>, <var>three@example.com</var>');</code> @@ -221,14 +221,14 @@ $this->email->to(<var>$list</var>);</code> <p>Sets the alternative email message body:</p> <code>$this->email->set_alt_message('<var>This is the alternative message</var>');</code> -<p>This is an optional message string which can be used if you send HTML formatted email. It lets you specify an alternative +<p>This is an optional message string which can be used if you send HTML formatted email. It lets you specify an alternative message with no HTML formatting which is added to the header string for people who do not accept HTML email. If you do not set your own message CodeIgniter will extract the message from your HTML email and strip the tags.</p> <h3>$this->email->clear()</h3> -<p>Initializes all the email variables to an empty state. This function is intended for use if you run the email sending function +<p>Initializes all the email variables to an empty state. This function is intended for use if you run the email sending function in a loop, permitting the data to be reset between cycles.</p> <code>foreach ($list as $name => $address)<br /> {<br /> @@ -268,13 +268,13 @@ $this->email->send();</code> <h3>$this->email->print_debugger()</h3> -<p>Returns a string containing any server messages, the email headers, and the email messsage. Useful for debugging.</p> +<p>Returns a string containing any server messages, the email headers, and the email messsage. Useful for debugging.</p> <h2>Overriding Word Wrapping</h2> <p>If you have word wrapping enabled (recommended to comply with RFC 822) and you have a very long link in your email it can -get wrapped too, causing it to become un-clickable by the person receiving it. CodeIgniter lets you manually override +get wrapped too, causing it to become un-clickable by the person receiving it. CodeIgniter lets you manually override word wrapping within part of your message like this:</p> <code>The text of your email that<br /> diff --git a/user_guide/libraries/encryption.html b/user_guide/libraries/encryption.html index f6fb2b81d..96ad54bc0 100644 --- a/user_guide/libraries/encryption.html +++ b/user_guide/libraries/encryption.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,9 +58,9 @@ Encryption Class <h1>Encryption Class</h1> -<p>The Encryption Class provides two-way data encryption. It uses a scheme that either compiles +<p>The Encryption Class provides two-way data encryption. It uses a scheme that either compiles the message using a randomly hashed bitwise XOR encoding scheme, or is encrypted using -the Mcrypt library. If Mcrypt is not available on your server the encoded message will +the Mcrypt library. If Mcrypt is not available on your server the encoded message will still provide a reasonable degree of security for encrypted sessions or other such "light" purposes. If Mcrypt is available, you'll be provided with a high degree of security appropriate for storage.</p> @@ -72,7 +72,7 @@ In fact, the key you chose will provide the <strong>only</strong> means to decod so not only must you choose the key carefully, you must never change it if you intend use it for persistent data.</p> <p>It goes without saying that you should guard your key carefully. -Should someone gain access to your key, the data will be easily decoded. If your server is not totally under your control +Should someone gain access to your key, the data will be easily decoded. If your server is not totally under your control it's impossible to ensure key security so you may want to think carefully before using it for anything that requires high security, like storing credit card numbers.</p> @@ -91,9 +91,9 @@ storage mechanism and pass the key dynamically when encoding/decoding.</p> <h2>Message Length</h2> <p>It's important for you to know that the encoded messages the encryption function generates will be approximately 2.6 times longer than the original -message. For example, if you encrypt the string "my super secret data", which is 21 characters in length, you'll end up +message. For example, if you encrypt the string "my super secret data", which is 21 characters in length, you'll end up with an encoded string that is roughly 55 characters (we say "roughly" because the encoded string length increments in -64 bit clusters, so it's not exactly linear). Keep this information in mind when selecting your data storage mechanism. Cookies, +64 bit clusters, so it's not exactly linear). Keep this information in mind when selecting your data storage mechanism. Cookies, for example, can only hold 4K of information.</p> @@ -124,7 +124,7 @@ $encrypted_string = $this->encrypt->encode($msg, $key);</code> <h2>$this->encrypt->decode()</h2> -<p>Decrypts an encoded string. Example:</p> +<p>Decrypts an encoded string. Example:</p> <code> $encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84';<br /> @@ -142,9 +142,9 @@ $encrypted_string = $this->encrypt->decode($msg, $key);</code> <h2>$this->encrypt->set_cipher();</h2> -<p>Permits you to set an Mcrypt cipher. By default it uses <samp>MCRYPT_RIJNDAEL_256</samp>. Example:</p> +<p>Permits you to set an Mcrypt cipher. By default it uses <samp>MCRYPT_RIJNDAEL_256</samp>. Example:</p> <code>$this->encrypt->set_cipher(MCRYPT_BLOWFISH);</code> -<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available ciphers</a>.</p> +<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available ciphers</a>.</p> <p>If you'd like to manually test whether your server supports Mcrypt you can use:</p> <code>echo ( ! function_exists('mcrypt_encrypt')) ? 'Nope' : 'Yup';</code> @@ -152,13 +152,13 @@ $encrypted_string = $this->encrypt->decode($msg, $key);</code> <h2>$this->encrypt->set_mode();</h2> -<p>Permits you to set an Mcrypt mode. By default it uses <samp>MCRYPT_MODE_CBC</samp>. Example:</p> +<p>Permits you to set an Mcrypt mode. By default it uses <samp>MCRYPT_MODE_CBC</samp>. Example:</p> <code>$this->encrypt->set_mode(MCRYPT_MODE_CFB);</code> -<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available modes</a>.</p> +<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available modes</a>.</p> <h2>$this->encrypt->sha1();</h2> -<p>SHA1 encoding function. Provide a string and it will return a 160 bit one way hash. Note: SHA1, just like MD5 is non-decodable. Example:</p> +<p>SHA1 encoding function. Provide a string and it will return a 160 bit one way hash. Note: SHA1, just like MD5 is non-decodable. Example:</p> <code>$hash = $this->encrypt->sha1('Some string');</code> <p>Many PHP installations have SHA1 support by default so if all you need is to encode a hash it's simpler to use the native @@ -169,12 +169,12 @@ function:</p> <p>If your server does not support SHA1 you can use the provided function.</p> <h2 id="legacy">$this->encrypt->encode_from_legacy(<kbd>$orig_data</kbd>, <kbd>$legacy_mode</kbd> = MCRYPT_MODE_ECB, <kbd>$key</kbd> = '');</h2> -<p>Enables you to re-encode data that was originally encrypted with CodeIgniter 1.x to be compatible with the Encryption library in CodeIgniter 2.x. It is only - necessary to use this method if you have encrypted data stored permanently such as in a file or database and are on a server that supports Mcrypt. "Light" use encryption - such as encrypted session data or transitory encrypted flashdata require no intervention on your part. However, existing encrypted Sessions will be +<p>Enables you to re-encode data that was originally encrypted with CodeIgniter 1.x to be compatible with the Encryption library in CodeIgniter 2.x. It is only + necessary to use this method if you have encrypted data stored permanently such as in a file or database and are on a server that supports Mcrypt. "Light" use encryption + such as encrypted session data or transitory encrypted flashdata require no intervention on your part. However, existing encrypted Sessions will be destroyed since data encrypted prior to 2.x will not be decoded.</p> -<p class="important"><strong>Why only a method to re-encode the data instead of maintaining legacy methods for both encoding and decoding?</strong> The algorithms in +<p class="important"><strong>Why only a method to re-encode the data instead of maintaining legacy methods for both encoding and decoding?</strong> The algorithms in the Encryption library have improved in CodeIgniter 2.x both for performance and security, and we do not wish to encourage continued use of the older methods. You can of course extend the Encryption library if you wish and replace the new methods with the old and retain seamless compatibility with CodeIgniter 1.x encrypted data, but this a decision that a developer should make cautiously and deliberately, if at all.</p> @@ -195,13 +195,13 @@ function:</p> <tr> <td class="td"><strong>$legacy_mode</strong></td> <td class="td">MCRYPT_MODE_ECB</td> - <td class="td">The Mcrypt mode that was used to generate the original encrypted data. CodeIgniter 1.x's default was MCRYPT_MODE_ECB, and it will + <td class="td">The Mcrypt mode that was used to generate the original encrypted data. CodeIgniter 1.x's default was MCRYPT_MODE_ECB, and it will assume that to be the case unless overridden by this parameter.</td> </tr> <tr> <td class="td"><strong>$key</strong></td> <td class="td">n/a</td> - <td class="td">The encryption key. This it typically specified in your config file as outlined above.</td> + <td class="td">The encryption key. This it typically specified in your config file as outlined above.</td> </tr> </table> diff --git a/user_guide/libraries/file_uploading.html b/user_guide/libraries/file_uploading.html index 5c3162819..a248267ae 100644 --- a/user_guide/libraries/file_uploading.html +++ b/user_guide/libraries/file_uploading.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,7 +58,7 @@ File Uploading Class <h1>File Uploading Class</h1> -<p>CodeIgniter's File Uploading Class permits files to be uploaded. You can set various +<p>CodeIgniter's File Uploading Class permits files to be uploaded. You can set various preferences, restricting the type and size of the files.</p> @@ -80,7 +80,7 @@ preferences, restricting the type and size of the files.</p> -<p>Using a text editor, create a form called <dfn>upload_form.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> +<p>Using a text editor, create a form called <dfn>upload_form.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> folder:</p> @@ -106,8 +106,8 @@ folder:</p> </body> </html></textarea> -<p>You'll notice we are using a form helper to create the opening form tag. File uploads require a multipart form, so the helper -creates the proper syntax for you. You'll also notice we have an $error variable. This is so we can show error messages in the event +<p>You'll notice we are using a form helper to create the opening form tag. File uploads require a multipart form, so the helper +creates the proper syntax for you. You'll also notice we have an $error variable. This is so we can show error messages in the event the user does something wrong.</p> @@ -138,7 +138,7 @@ In it, place this code and save it to your <samp>applications/views/</samp> fold <h2>The Controller</h2> -<p>Using a text editor, create a controller called <dfn>upload.php</dfn>. In it, place this code and save it to your <samp>applications/controllers/</samp> +<p>Using a text editor, create a controller called <dfn>upload.php</dfn>. In it, place this code and save it to your <samp>applications/controllers/</samp> folder:</p> @@ -162,8 +162,8 @@ class Upload extends CI_Controller { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '100'; - $config['max_width'] = '1024'; - $config['max_height'] = '768'; + $config['max_width'] = '1024'; + $config['max_height'] = '768'; $this->load->library('upload', $config); @@ -186,7 +186,7 @@ class Upload extends CI_Controller { <h2>The Upload Folder</h2> -<p>You'll need a destination folder for your uploaded images. Create a folder at the root of your CodeIgniter installation called +<p>You'll need a destination folder for your uploaded images. Create a folder at the root of your CodeIgniter installation called <dfn>uploads</dfn> and set its file permissions to 777.</p> @@ -215,26 +215,26 @@ controller is correct it should work.</p> <h2>Setting Preferences</h2> -<p>Similar to other libraries, you'll control what is allowed to be upload based on your preferences. In the controller you +<p>Similar to other libraries, you'll control what is allowed to be upload based on your preferences. In the controller you built above you set the following preferences:</p> <code>$config['upload_path'] = './uploads/';<br /> $config['allowed_types'] = 'gif|jpg|png';<br /> $config['max_size'] = '100';<br /> -$config['max_width'] = '1024';<br /> -$config['max_height'] = '768';<br /> +$config['max_width'] = '1024';<br /> +$config['max_height'] = '768';<br /> <br /> $this->load->library('upload', $config);<br /><br /> -// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:<br /> +// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:<br /> $this->upload->initialize($config);</code> -<p>The above preferences should be fairly self-explanatory. Below is a table describing all available preferences.</p> +<p>The above preferences should be fairly self-explanatory. Below is a table describing all available preferences.</p> <h2>Preferences</h2> -<p>The following preferences are available. The default value indicates what will be used if you do not specify that preference.</p> +<p>The following preferences are available. The default value indicates what will be used if you do not specify that preference.</p> <table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder"> <tr> @@ -248,14 +248,14 @@ $this->upload->initialize($config);</code> <td class="td"><strong>upload_path</strong></td> <td class="td">None</td> <td class="td">None</td> -<td class="td">The path to the folder where the upload should be placed. The folder must be writable and the path can be absolute or relative.</td> +<td class="td">The path to the folder where the upload should be placed. The folder must be writable and the path can be absolute or relative.</td> </tr> <tr> <td class="td"><strong>allowed_types</strong></td> <td class="td">None</td> <td class="td">None</td> -<td class="td">The mime types corresponding to the types of files you allow to be uploaded. Usually the file extension can be used as the mime type. Separate multiple types with a pipe.</td> +<td class="td">The mime types corresponding to the types of files you allow to be uploaded. Usually the file extension can be used as the mime type. Separate multiple types with a pipe.</td> </tr> @@ -264,7 +264,7 @@ $this->upload->initialize($config);</code> <td class="td">None</td> <td class="td">Desired file name</td> <td class="td"> - <p>If set CodeIgniter will rename the uploaded file to this name. The extension provided in the file name must also be an allowed file type.</p> + <p>If set CodeIgniter will rename the uploaded file to this name. The extension provided in the file name must also be an allowed file type.</p> </td> </tr> @@ -280,28 +280,28 @@ $this->upload->initialize($config);</code> <td class="td"><strong>max_size</strong></td> <td class="td">0</td> <td class="td">None</td> -<td class="td">The maximum size (in kilobytes) that the file can be. Set to zero for no limit. Note: Most PHP installations have their own limit, as specified in the php.ini file. Usually 2 MB (or 2048 KB) by default.</td> +<td class="td">The maximum size (in kilobytes) that the file can be. Set to zero for no limit. Note: Most PHP installations have their own limit, as specified in the php.ini file. Usually 2 MB (or 2048 KB) by default.</td> </tr> <tr> <td class="td"><strong>max_width</strong></td> <td class="td">0</td> <td class="td">None</td> -<td class="td">The maximum width (in pixels) that the file can be. Set to zero for no limit.</td> +<td class="td">The maximum width (in pixels) that the file can be. Set to zero for no limit.</td> </tr> <tr> <td class="td"><strong>max_height</strong></td> <td class="td">0</td> <td class="td">None</td> -<td class="td">The maximum height (in pixels) that the file can be. Set to zero for no limit.</td> +<td class="td">The maximum height (in pixels) that the file can be. Set to zero for no limit.</td> </tr> <tr> <td class="td"><strong>max_filename</strong></td> <td class="td">0</td> <td class="td">None</td> -<td class="td">The maximum length that a file name can be. Set to zero for no limit.</td> +<td class="td">The maximum length that a file name can be. Set to zero for no limit.</td> </tr> <tr> @@ -323,7 +323,7 @@ $this->upload->initialize($config);</code> <h2>Setting preferences in a config file</h2> <p>If you prefer not to set preferences using the above method, you can instead put them into a config file. -Simply create a new file called the <var>upload.php</var>, add the <var>$config</var> +Simply create a new file called the <var>upload.php</var>, add the <var>$config</var> array in that file. Then save the file in: <var>config/upload.php</var> and it will be used automatically. You will NOT need to use the <dfn>$this->upload->initialize</dfn> function if you save your preferences in a config file.</p> @@ -335,7 +335,7 @@ will NOT need to use the <dfn>$this->upload->initialize</dfn> function if you sa <h2>$this->upload->do_upload()</h2> -<p>Performs the upload based on the preferences you've set. Note: By default the upload routine expects the file to come from a form field +<p>Performs the upload based on the preferences you've set. Note: By default the upload routine expects the file to come from a form field called <dfn>userfile</dfn>, and the form must be a "multipart type:</p> <code><form method="post" action="some_action" enctype="multipart/form-data" /></code> @@ -349,11 +349,11 @@ $this->upload->do_upload($field_name)</code> <h2>$this->upload->display_errors()</h2> -<p>Retrieves any error messages if the <dfn>do_upload()</dfn> function returned false. The function does not echo automatically, it +<p>Retrieves any error messages if the <dfn>do_upload()</dfn> function returned false. The function does not echo automatically, it returns the data so you can assign it however you need.</p> <h3>Formatting Errors</h3> -<p>By default the above function wraps any errors within <p> tags. You can set your own delimiters like this:</p> +<p>By default the above function wraps any errors within <p> tags. You can set your own delimiters like this:</p> <code>$this->upload->display_errors('<var><p></var>', '<var></p></var>');</code> @@ -403,7 +403,7 @@ Here is the array prototype:</p> <td class="td">The file name without the extension</td></tr> <tr><td class="td"><strong>orig_name</strong></td> -<td class="td">The original file name. This is only useful if you use the encrypted name option.</td></tr> +<td class="td">The original file name. This is only useful if you use the encrypted name option.</td></tr> <tr><td class="td"><strong>client_name</strong></td> <td class="td">The file name as supplied by the client user agent, prior to any file name preparation or incrementing.</td></tr> @@ -415,7 +415,7 @@ Here is the array prototype:</p> <td class="td">The file size in kilobytes</td></tr> <tr><td class="td"><strong>is_image</strong></td> -<td class="td">Whether the file is an image or not. 1 = image. 0 = not.</td></tr> +<td class="td">Whether the file is an image or not. 1 = image. 0 = not.</td></tr> <tr><td class="td"><strong>image_width</strong></td> <td class="td">Image width.</td></tr> @@ -424,10 +424,10 @@ Here is the array prototype:</p> <td class="td">Image height</td></tr> <tr><td class="td"><strong>image_type</strong></td> -<td class="td">Image type. Typically the file extension without the period.</td></tr> +<td class="td">Image type. Typically the file extension without the period.</td></tr> <tr><td class="td"><strong>image_size_str</strong></td> -<td class="td">A string containing the width and height. Useful to put into an image tag.</td></tr> +<td class="td">A string containing the width and height. Useful to put into an image tag.</td></tr> </table> diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html index d6120054b..54908d41d 100644 --- a/user_guide/libraries/form_validation.html +++ b/user_guide/libraries/form_validation.html @@ -27,7 +27,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -113,10 +113,10 @@ along with an error message describing the problem.</li> <ol> <li>Check for required data.</li> <li>Verify that the data is of the correct type, and meets the correct criteria. For example, if a username is submitted -it must be validated to contain only permitted characters. It must be of a minimum length, +it must be validated to contain only permitted characters. It must be of a minimum length, and not exceed a maximum length. The username can't be someone else's existing username, or perhaps even a reserved word. Etc.</li> <li>Sanitize the data for security.</li> -<li>Pre-format the data if needed (Does the data need to be trimmed? HTML encoded? Etc.)</li> +<li>Pre-format the data if needed (Does the data need to be trimmed? HTML encoded? Etc.)</li> <li>Prep the data for insertion in the database.</li> </ol> @@ -150,7 +150,7 @@ Form validation, while simple to create, is generally very messy and tedious to <h2>The Form</h2> -<p>Using a text editor, create a form called <dfn>myform.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> +<p>Using a text editor, create a form called <dfn>myform.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> folder:</p> @@ -191,7 +191,7 @@ folder:</p> <h2>The Success Page</h2> -<p>Using a text editor, create a form called <dfn>formsuccess.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> +<p>Using a text editor, create a form called <dfn>formsuccess.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp> folder:</p> @@ -215,7 +215,7 @@ folder:</p> <a name="thecontroller"></a> <h2>The Controller</h2> -<p>Using a text editor, create a controller called <dfn>form.php</dfn>. In it, place this code and save it to your <samp>applications/controllers/</samp> +<p>Using a text editor, create a controller called <dfn>form.php</dfn>. In it, place this code and save it to your <samp>applications/controllers/</samp> folder:</p> @@ -248,10 +248,10 @@ class Form extends CI_Controller { <code>example.com/index.php/<var>form</var>/</code> -<p><dfn>If you submit the form you should simply see the form reload. That's because you haven't set up any validation +<p><dfn>If you submit the form you should simply see the form reload. That's because you haven't set up any validation rules yet.</dfn></p> -<p><strong>Since you haven't told the Form Validation class to validate anything yet, it returns <kbd>FALSE</kbd> (boolean false) by default. The <samp>run()</samp> +<p><strong>Since you haven't told the Form Validation class to validate anything yet, it returns <kbd>FALSE</kbd> (boolean false) by default. The <samp>run()</samp> function only returns <kbd>TRUE</kbd> if it has successfully applied your rules without any of them failing.</strong></p> @@ -263,8 +263,8 @@ function only returns <kbd>TRUE</kbd> if it has successfully applied your rules <ol> <li>It uses a <dfn>form helper</dfn> to create the form opening. -Technically, this isn't necessary. You could create the form using standard HTML. However, the benefit of using the helper -is that it generates the action URL for you, based on the URL in your config file. This makes your application more portable in the event your URLs change.</li> +Technically, this isn't necessary. You could create the form using standard HTML. However, the benefit of using the helper +is that it generates the action URL for you, based on the URL in your config file. This makes your application more portable in the event your URLs change.</li> <li>At the top of the form you'll notice the following function call: <code><?php echo validation_errors(); ?></code> @@ -341,7 +341,7 @@ class Form extends CI_Controller { If you submit the form with all the fields populated you'll see your success page.</dfn></p> <p class="important"><strong>Note:</strong> The form fields are not yet being re-populated with the data when -there is an error. We'll get to that shortly.</p> +there is an error. We'll get to that shortly.</p> @@ -387,7 +387,7 @@ $this->form_validation->set_rules($config); <a name="cascadingrules"></a> <h2>Cascading Rules</h2> -<p>CodeIgniter lets you pipe multiple rules together. Let's try it. Change your rules in the third parameter of rule setting function, like this:</p> +<p>CodeIgniter lets you pipe multiple rules together. Let's try it. Change your rules in the third parameter of rule setting function, like this:</p> <code> $this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');<br /> @@ -427,7 +427,7 @@ $this->form_validation->set_rules('email', 'Email', '<kbd>trim</kbd>|required|va the "xss_clean" function, which removes malicious data.</p> <p><strong>Any native PHP function that accepts one parameter can be used as a rule, like <dfn>htmlspecialchars</dfn>, -<dfn>trim</dfn>, <dfn>MD5</dfn>, etc.</strong></p> +<dfn>trim</dfn>, <dfn>MD5</dfn>, etc.</strong></p> <p><strong>Note:</strong> You will generally want to use the prepping functions <strong>after</strong> the validation rules so if there is an error, the original data will be shown in the form.</p> @@ -438,7 +438,7 @@ the validation rules so if there is an error, the original data will be shown in <a name="repopulatingform"></a> <h2>Re-populating the form</h2> -<p>Thus far we have only been dealing with errors. It's time to repopulate the form field with the submitted data. CodeIgniter offers several helper functions +<p>Thus far we have only been dealing with errors. It's time to repopulate the form field with the submitted data. CodeIgniter offers several helper functions that permit you to do this. The one you will use most commonly is:</p> <code>set_value('field name')</code> @@ -481,13 +481,13 @@ that permit you to do this. The one you will use most commonly is:</p> </textarea> -<p><dfn>Now reload your page and submit the form so that it triggers an error. Your form fields should now be re-populated</dfn></p> +<p><dfn>Now reload your page and submit the form so that it triggers an error. Your form fields should now be re-populated</dfn></p> <p class="important"><strong>Note:</strong> The <a href="#functionreference">Function Reference</a> section below contains functions that permit you to re-populate <select> menus, radio buttons, and checkboxes.</p> -<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function. Example:</p> +<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function. Example:</p> <code><input type="text" name="<kbd>colors[]</kbd>" value="<?php echo set_value('<kbd>colors[]</kbd>'); ?>" size="50" /></code> @@ -500,16 +500,16 @@ permit you to re-populate <select> menus, radio buttons, and checkboxes.</p> <a name="callbacks"></a> <h2>Callbacks: Your own Validation Functions</h2> -<p>The validation system supports callbacks to your own validation functions. This permits you to extend the validation class -to meet your needs. For example, if you need to run a database query to see if the user is choosing a unique username, you can -create a callback function that does that. Let's create a example of this.</p> +<p>The validation system supports callbacks to your own validation functions. This permits you to extend the validation class +to meet your needs. For example, if you need to run a database query to see if the user is choosing a unique username, you can +create a callback function that does that. Let's create a example of this.</p> <p>In your controller, change the "username" rule to this:</p> <code>$this->form_validation->set_rules('username', 'Username', '<kbd>callback_username_check</kbd>');</code> -<p>Then add a new function called <dfn>username_check</dfn> to your controller. Here's how your controller should now look:</p> +<p>Then add a new function called <dfn>username_check</dfn> to your controller. Here's how your controller should now look:</p> <textarea class="textarea" style="width:100%" cols="50" rows="44"><?php @@ -553,12 +553,12 @@ class Form extends CI_Controller { } ?></textarea> -<p><dfn>Reload your form and submit it with the word "test" as the username. You can see that the form field data was passed to your +<p><dfn>Reload your form and submit it with the word "test" as the username. You can see that the form field data was passed to your callback function for you to process.</dfn></p> <p><strong>To invoke a callback just put the function name in a rule, with "callback_" as the rule prefix.</strong></p> -<p>You can also process the form data that is passed to your callback and return it. If your callback returns anything other than a boolean TRUE/FALSE +<p>You can also process the form data that is passed to your callback and return it. If your callback returns anything other than a boolean TRUE/FALSE it is assumed that the data is your newly processed form data.</p> @@ -568,7 +568,7 @@ it is assumed that the data is your newly processed form data.</p> <h2>Setting Error Messages</h2> -<p>All of the native error messages are located in the following language file: <dfn>language/english/form_validation_lang.php</dfn></p> +<p>All of the native error messages are located in the following language file: <dfn>language/english/form_validation_lang.php</dfn></p> <p>To set your own custom message you can either edit that file, or use the following function:</p> @@ -582,7 +582,7 @@ it is assumed that the data is your newly processed form data.</p> <code>$this->form_validation->set_message('username_check')</code> -<p>You can also override any error message found in the language file. For example, to change the message for the "required" rule you will do this:</p> +<p>You can also override any error message found in the language file. For example, to change the message for the "required" rule you will do this:</p> <code>$this->form_validation->set_message('required', 'Your custom message here');</code> @@ -669,9 +669,9 @@ individually.</p> <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" /> </textarea> -<p>If there are no errors, nothing will be shown. If there is an error, the message will appear.</p> +<p>If there are no errors, nothing will be shown. If there is an error, the message will appear.</p> -<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function. Example:</p> +<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function. Example:</p> <code><?php echo form_error('<kbd>options[size]</kbd>'); ?><br /> <input type="text" name="<kbd>options[size]</kbd>" value="<?php echo set_value("<kbd>options[size]</kbd>"); ?>" size="50" /> @@ -688,8 +688,8 @@ individually.</p> <a name="savingtoconfig"></a> <h1>Saving Sets of Validation Rules to a Config File</h1> -<p>A nice feature of the Form Validation class is that it permits you to store all your validation rules for your entire application in a config file. You -can organize these rules into "groups". These groups can either be loaded automatically when a matching controller/function is called, or +<p>A nice feature of the Form Validation class is that it permits you to store all your validation rules for your entire application in a config file. You +can organize these rules into "groups". These groups can either be loaded automatically when a matching controller/function is called, or you can manually call each set as needed.</p> <h3>How to save your rules</h3> @@ -728,8 +728,8 @@ $config = array(<br /> <h3>Creating Sets of Rules</h3> -<p>In order to organize your rules into "sets" requires that you place them into "sub arrays". Consider the following example, showing two sets of rules. -We've arbitrarily called these two rules "signup" and "email". You can name your rules anything you want:</p> +<p>In order to organize your rules into "sets" requires that you place them into "sub arrays". Consider the following example, showing two sets of rules. +We've arbitrarily called these two rules "signup" and "email". You can name your rules anything you want:</p> <code>$config = array(<br /> @@ -783,7 +783,7 @@ We've arbitrarily called these two rules "signup" and "email". You can name you <h3>Calling a Specific Rule Group</h3> -<p>In order to call a specific group you will pass its name to the <kbd>run()</kbd> function. For example, to call the <kbd>signup</kbd> rule you will do this:</p> +<p>In order to call a specific group you will pass its name to the <kbd>run()</kbd> function. For example, to call the <kbd>signup</kbd> rule you will do this:</p> <code> if ($this->form_validation->run('<kbd>signup</kbd>') == FALSE)<br /> @@ -800,8 +800,8 @@ else<br /> <h3>Associating a Controller Function with a Rule Group</h3> -<p>An alternate (and more automatic) method of calling a rule group is to name it according to the controller class/function you intend to use it with. For example, let's say you -have a controller named <kbd>Member</kbd> and a function named <kbd>signup</kbd>. Here's what your class might look like:</p> +<p>An alternate (and more automatic) method of calling a rule group is to name it according to the controller class/function you intend to use it with. For example, let's say you +have a controller named <kbd>Member</kbd> and a function named <kbd>signup</kbd>. Here's what your class might look like:</p> <code> <?php<br /><br /> @@ -860,7 +860,7 @@ class <kbd>Member</kbd> extends CI_Controller {<br /> <a name="arraysasfields"></a> <h1>Using Arrays as Field Names</h1> -<p>The Form Validation class supports the use of arrays as field names. Consider this example:</p> +<p>The Form Validation class supports the use of arrays as field names. Consider this example:</p> <code><input type="text" name="<kbd>options[]</kbd>" value="" size="50" /></code> @@ -1147,13 +1147,13 @@ like <kbd>trim</kbd>, <kbd>htmlspecialchars</kbd>, <kbd>urldecode</kbd>, etc.</p <h2>$this->form_validation->run();</h2> -<p>Runs the validation routines. Returns boolean TRUE on success and FALSE on failure. You can optionally pass the name of the validation +<p>Runs the validation routines. Returns boolean TRUE on success and FALSE on failure. You can optionally pass the name of the validation group via the function, as described in: <a href="#savingtoconfig">Saving Groups of Validation Rules to a Config File</a>.</p> <h2>$this->form_validation->set_message();</h2> -<p>Permits you to set custom error messages. See <a href="#settingerrors">Setting Error Messages</a> above.</p> +<p>Permits you to set custom error messages. See <a href="#settingerrors">Setting Error Messages</a> above.</p> <p> </p> @@ -1161,25 +1161,25 @@ group via the function, as described in: <a href="#savingtoconfig">Saving Groups <a name="helperreference"></a> <h1>Helper Reference</h1> -<p>The following helper functions are available for use in the view files containing your forms. Note that these are procedural functions, so they +<p>The following helper functions are available for use in the view files containing your forms. Note that these are procedural functions, so they <strong>do not</strong> require you to prepend them with $this->form_validation.</p> <h2>form_error()</h2> -<p>Shows an individual error message associated with the field name supplied to the function. Example:</p> +<p>Shows an individual error message associated with the field name supplied to the function. Example:</p> <code><?php echo form_error('username'); ?></code> -<p>The error delimiters can be optionally specified. See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p> +<p>The error delimiters can be optionally specified. See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p> <h2>validation_errors()</h2> -<p>Shows all error messages as a string: Example:</p> +<p>Shows all error messages as a string: Example:</p> <code><?php echo validation_errors(); ?></code> -<p>The error delimiters can be optionally specified. See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p> +<p>The error delimiters can be optionally specified. See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p> @@ -1194,7 +1194,7 @@ The second (optional) parameter allows you to set a default value for the form. <h2>set_select()</h2> -<p>If you use a <dfn><select></dfn> menu, this function permits you to display the menu item that was selected. The first parameter +<p>If you use a <dfn><select></dfn> menu, this function permits you to display the menu item that was selected. The first parameter must contain the name of the select menu, the second parameter must contain the value of each item, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE).</p> @@ -1202,16 +1202,16 @@ each item, and the third (optional) parameter lets you set an item as the defaul <code> <select name="myselect"><br /> -<option value="one" <dfn><?php echo set_select('myselect', 'one', TRUE); ?></dfn> >One</option><br /> -<option value="two" <dfn><?php echo set_select('myselect', 'two'); ?></dfn> >Two</option><br /> -<option value="three" <dfn><?php echo set_select('myselect', 'three'); ?></dfn> >Three</option><br /> +<option value="one" <dfn><?php echo set_select('myselect', 'one', TRUE); ?></dfn> >One</option><br /> +<option value="two" <dfn><?php echo set_select('myselect', 'two'); ?></dfn> >Two</option><br /> +<option value="three" <dfn><?php echo set_select('myselect', 'three'); ?></dfn> >Three</option><br /> </select> </code> <h2>set_checkbox()</h2> -<p>Permits you to display a checkbox in the state it was submitted. The first parameter +<p>Permits you to display a checkbox in the state it was submitted. The first parameter must contain the name of the checkbox, the second parameter must contain its value, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE). Example:</p> <code><input type="checkbox" name="mycheck[]" value="1" <dfn><?php echo set_checkbox('mycheck[]', '1'); ?></dfn> /><br /> @@ -1222,8 +1222,8 @@ must contain the name of the checkbox, the second parameter must contain its val <p>Permits you to display radio buttons in the state they were submitted. This function is identical to the <strong>set_checkbox()</strong> function above.</p> -<code><input type="radio" name="myradio" value="1" <dfn><?php echo set_radio('myradio', '1', TRUE); ?></dfn> /><br /> -<input type="radio" name="myradio" value="2" <dfn><?php echo set_radio('myradio', '2'); ?></dfn> /></code> +<code><input type="radio" name="myradio" value="1" <dfn><?php echo set_radio('myradio', '1', TRUE); ?></dfn> /><br /> +<input type="radio" name="myradio" value="2" <dfn><?php echo set_radio('myradio', '2'); ?></dfn> /></code> diff --git a/user_guide/libraries/ftp.html b/user_guide/libraries/ftp.html index e3c06741d..c318bc15a 100644 --- a/user_guide/libraries/ftp.html +++ b/user_guide/libraries/ftp.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -59,7 +59,7 @@ FTP Class <h1>FTP Class</h1> <p>CodeIgniter's FTP Class permits files to be transfered to a remote server. Remote files can also be moved, renamed, -and deleted. The FTP class also includes a "mirroring" function that permits an entire local directory to be recreated remotely via FTP.</p> +and deleted. The FTP class also includes a "mirroring" function that permits an entire local directory to be recreated remotely via FTP.</p> <p class="important"><strong>Note:</strong> SFTP and SSL FTP protocols are not supported, only standard FTP.</p> @@ -74,7 +74,7 @@ and deleted. The FTP class also includes a "mirroring" function that permits an <h2>Usage Examples</h2> <p>In this example a connection is opened to the FTP server, and a local file is read and uploaded in ASCII mode. The -file permissions are set to 755. Note: Setting permissions requires PHP 5.</p> +file permissions are set to 755. Note: Setting permissions requires PHP 5.</p> <code> $this->load->library('ftp');<br /> @@ -157,26 +157,26 @@ $this->ftp->connect($config);<br /> <h3>Setting FTP Preferences in a Config File</h3> <p>If you prefer you can store your FTP preferences in a config file. -Simply create a new file called the <var>ftp.php</var>, add the <var>$config</var> +Simply create a new file called the <var>ftp.php</var>, add the <var>$config</var> array in that file. Then save the file at <var>config/ftp.php</var> and it will be used automatically.</p> <h3>Available connection options:</h3> <ul> -<li><strong>hostname</strong> - the FTP hostname. Usually something like: <dfn>ftp.example.com</dfn></li> +<li><strong>hostname</strong> - the FTP hostname. Usually something like: <dfn>ftp.example.com</dfn></li> <li><strong>username</strong> - the FTP username.</li> <li><strong>password</strong> - the FTP password.</li> <li><strong>port</strong> - The port number. Set to <dfn>21</dfn> by default.</li> <li><strong>debug</strong> - <kbd>TRUE/FALSE</kbd> (boolean). Whether to enable debugging to display error messages.</li> -<li><strong>passive</strong> - <kbd>TRUE/FALSE</kbd> (boolean). Whether to use passive mode. Passive is set automatically by default.</li> +<li><strong>passive</strong> - <kbd>TRUE/FALSE</kbd> (boolean). Whether to use passive mode. Passive is set automatically by default.</li> </ul> <h2>$this->ftp->upload()</h2> -<p>Uploads a file to your server. You must supply the local path and the remote path, and you can optionally set the mode and permissions. +<p>Uploads a file to your server. You must supply the local path and the remote path, and you can optionally set the mode and permissions. Example:</p> @@ -190,7 +190,7 @@ Example:</p> <h2>$this->ftp->download()</h2> -<p>Downloads a file from your server. You must supply the remote path and the local path, and you can optionally set the mode. +<p>Downloads a file from your server. You must supply the remote path and the local path, and you can optionally set the mode. Example:</p> <code>$this->ftp->download('/public_html/myfile.html', '/local/path/to/myfile.html', 'ascii');</code> @@ -202,7 +202,7 @@ Example:</p> <h2>$this->ftp->rename()</h2> -<p>Permits you to rename a file. Supply the source file name/path and the new file name/path.</p> +<p>Permits you to rename a file. Supply the source file name/path and the new file name/path.</p> <code> // Renames green.html to blue.html<br /> @@ -210,7 +210,7 @@ $this->ftp->rename('/public_html/foo/green.html', '/public_html/foo/blue.html'); </code> <h2>$this->ftp->move()</h2> -<p>Lets you move a file. Supply the source and destination paths:</p> +<p>Lets you move a file. Supply the source and destination paths:</p> <code> // Moves blog.html from "joe" to "fred"<br /> @@ -221,7 +221,7 @@ $this->ftp->move('/public_html/joe/blog.html', '/public_html/fred/blog.html'); <h2>$this->ftp->delete_file()</h2> -<p>Lets you delete a file. Supply the source path with the file name.</p> +<p>Lets you delete a file. Supply the source path with the file name.</p> <code> $this->ftp->delete_file('/public_html/joe/blog.html'); @@ -229,10 +229,10 @@ $this->ftp->delete_file('/public_html/joe/blog.html'); <h2>$this->ftp->delete_dir()</h2> -<p>Lets you delete a directory and everything it contains. Supply the source path to the directory with a trailing slash.</p> +<p>Lets you delete a directory and everything it contains. Supply the source path to the directory with a trailing slash.</p> -<p class="important"><strong>Important</strong> Be VERY careful with this function. It will recursively delete -<b>everything</b> within the supplied path, including sub-folders and all files. Make absolutely sure your path is correct. +<p class="important"><strong>Important</strong> Be VERY careful with this function. It will recursively delete +<b>everything</b> within the supplied path, including sub-folders and all files. Make absolutely sure your path is correct. Try using the <kbd>list_files()</kbd> function first to verify that your path is correct.</p> <code> @@ -242,7 +242,7 @@ $this->ftp->delete_dir('/public_html/path/to/folder/'); <h2>$this->ftp->list_files()</h2> -<p>Permits you to retrieve a list of files on your server returned as an <dfn>array</dfn>. You must supply +<p>Permits you to retrieve a list of files on your server returned as an <dfn>array</dfn>. You must supply the path to the desired directory.</p> <code> @@ -255,7 +255,7 @@ print_r($list); <h2>$this->ftp->mirror()</h2> <p>Recursively reads a local folder and everything it contains (including sub-folders) and creates a -mirror via FTP based on it. Whatever the directory structure of the original file path will be recreated on the server. +mirror via FTP based on it. Whatever the directory structure of the original file path will be recreated on the server. You must supply a source path and a destination path:</p> <code> @@ -266,7 +266,7 @@ $this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/'); <h2>$this->ftp->mkdir()</h2> -<p>Lets you create a directory on your server. Supply the path ending in the folder name you wish to create, with a trailing slash. +<p>Lets you create a directory on your server. Supply the path ending in the folder name you wish to create, with a trailing slash. Permissions can be set by passed an <kbd>octal</kbd> value in the second parameter (if you are running PHP 5).</p> <code> @@ -277,7 +277,7 @@ $this->ftp->mkdir('/public_html/foo/bar/', DIR_WRITE_MODE); <h2>$this->ftp->chmod()</h2> -<p>Permits you to set file permissions. Supply the path to the file or folder you wish to alter permissions on:</p> +<p>Permits you to set file permissions. Supply the path to the file or folder you wish to alter permissions on:</p> <code> // Chmod "bar" to 777<br /> @@ -288,7 +288,7 @@ $this->ftp->chmod('/public_html/foo/bar/', DIR_WRITE_MODE); <h2>$this->ftp->close();</h2> -<p>Closes the connection to your server. It's recommended that you use this when you are finished uploading.</p> +<p>Closes the connection to your server. It's recommended that you use this when you are finished uploading.</p> diff --git a/user_guide/libraries/image_lib.html b/user_guide/libraries/image_lib.html index 0f023cff1..e6d38fc96 100644 --- a/user_guide/libraries/image_lib.html +++ b/user_guide/libraries/image_lib.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -68,11 +68,11 @@ Image Manipulation Class <li>Image Watermarking</li> </ul> -<p>All three major image libraries are supported: GD/GD2, NetPBM, and ImageMagick</p> +<p>All three major image libraries are supported: GD/GD2, NetPBM, and ImageMagick</p> <p class="important"><strong>Note:</strong> Watermarking is only available using the GD/GD2 library. In addition, even though other libraries are supported, GD is required in -order for the script to calculate the image properties. The image processing, however, will be performed with the +order for the script to calculate the image properties. The image processing, however, will be performed with the library you specify.</p> @@ -82,14 +82,14 @@ library you specify.</p> using the <dfn>$this->load->library</dfn> function:</p> <code>$this->load->library('image_lib');</code> -<p>Once the library is loaded it will be ready for use. The image library object you will use to call all functions is: <dfn>$this->image_lib</dfn></p> +<p>Once the library is loaded it will be ready for use. The image library object you will use to call all functions is: <dfn>$this->image_lib</dfn></p> <h2>Processing an Image</h2> <p>Regardless of the type of processing you would like to perform (resizing, cropping, rotation, or watermarking), the general process is identical. You will set some preferences corresponding to the action you intend to perform, then -call one of four available processing functions. For example, to create an image thumbnail you'll do this:</p> +call one of four available processing functions. For example, to create an image thumbnail you'll do this:</p> <code>$config['image_library'] = 'gd2';<br /> $config['source_image'] = '/path/to/image/mypic.jpg';<br /> @@ -106,7 +106,7 @@ $this->image_lib->resize();</code> <p>The above code tells the <dfn>image_resize</dfn> function to look for an image called <em>mypic.jpg</em> located in the <dfn>source_image</dfn> folder, then create a thumbnail that is 75 X 50 pixels using the GD2 <dfn>image_library</dfn>. Since the <dfn>maintain_ratio</dfn> option is enabled, the thumb will be as close to the target <dfn>width</dfn> and -<dfn>height</dfn> as possible while preserving the original aspect ratio. The thumbnail will be called <em>mypic_thumb.jpg</em> +<dfn>height</dfn> as possible while preserving the original aspect ratio. The thumbnail will be called <em>mypic_thumb.jpg</em> </p> <p class="important"><strong>Note:</strong> In order for the image class to be allowed to do any processing, the @@ -126,7 +126,7 @@ folder containing the image files must have write permissions.</p> <li>$this->image_lib->clear()</li> </ul> -<p>These functions return boolean TRUE upon success and FALSE for failure. If they fail you can retrieve the +<p>These functions return boolean TRUE upon success and FALSE for failure. If they fail you can retrieve the error message using this function:</p> <code>echo $this->image_lib->display_errors();</code> @@ -138,7 +138,7 @@ error message using this function:</p> echo $this->image_lib->display_errors();<br /> }</code> -<p>Note: You can optionally specify the HTML formatting to be applied to the errors, by submitting the opening/closing +<p>Note: You can optionally specify the HTML formatting to be applied to the errors, by submitting the opening/closing tags in the function, like this:</p> <code>$this->image_lib->display_errors('<var><p></var>', '<var></p></var>');</code> @@ -146,11 +146,11 @@ tags in the function, like this:</p> <h2>Preferences</h2> -<p>The preferences described below allow you to tailor the image processing to suit your needs.</p> +<p>The preferences described below allow you to tailor the image processing to suit your needs.</p> <p>Note that not all preferences are available for every -function. For example, the x/y axis preferences are only available for image cropping. Likewise, the width and height -preferences have no effect on cropping. The "availability" column indicates which functions support a given preference.</p> +function. For example, the x/y axis preferences are only available for image cropping. Likewise, the width and height +preferences have no effect on cropping. The "availability" column indicates which functions support a given preference.</p> <p>Availability Legend:</p> @@ -187,7 +187,7 @@ preferences have no effect on cropping. The "availability" column indicates whi <td class="td"><strong>library_path</strong></td> <td class="td">None</td> <td class="td">None</td> -<td class="td">Sets the server path to your ImageMagick or NetPBM library. If you use either of those libraries you must supply the path.</td> +<td class="td">Sets the server path to your ImageMagick or NetPBM library. If you use either of those libraries you must supply the path.</td> <td class="td">R, C, X</td> </tr> @@ -195,7 +195,7 @@ preferences have no effect on cropping. The "availability" column indicates whi <td class="td"><strong>source_image</strong></td> <td class="td">None</td> <td class="td">None</td> -<td class="td">Sets the source image name/path. The path must be a relative or absolute server path, not a URL.</td> +<td class="td">Sets the source image name/path. The path must be a relative or absolute server path, not a URL.</td> <td class="td">R, C, S, W</td> </tr> @@ -203,7 +203,7 @@ preferences have no effect on cropping. The "availability" column indicates whi <td class="td"><strong>dynamic_output</strong></td> <td class="td">FALSE</td> <td class="td">TRUE/FALSE (boolean)</td> -<td class="td">Determines whether the new image file should be written to disk or generated dynamically. Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td> +<td class="td">Determines whether the new image file should be written to disk or generated dynamically. Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td> <td class="td">R, C, X, W</td> </tr> @@ -221,7 +221,7 @@ preferences have no effect on cropping. The "availability" column indicates whi <td class="td"><strong>new_image</strong></td> <td class="td">None</td> <td class="td">None</td> -<td class="td">Sets the destination image name/path. You'll use this preference when creating an image copy. The path must be a relative or absolute server path, not a URL.</td> +<td class="td">Sets the destination image name/path. You'll use this preference when creating an image copy. The path must be a relative or absolute server path, not a URL.</td> <td class="td">R, C, X, W</td> </tr> @@ -253,7 +253,7 @@ preferences have no effect on cropping. The "availability" column indicates whi <td class="td"><strong>thumb_marker</strong></td> <td class="td">_thumb</td> <td class="td">None</td> -<td class="td">Specifies the thumbnail indicator. It will be inserted just before the file extension, so mypic.jpg would become mypic_thumb.jpg</td> +<td class="td">Specifies the thumbnail indicator. It will be inserted just before the file extension, so mypic.jpg would become mypic_thumb.jpg</td> <td class="td">R</td> </tr> @@ -281,7 +281,7 @@ preferences have no effect on cropping. The "availability" column indicates whi <td class="td"><strong>rotation_angle</strong></td> <td class="td">None</td> <td class="td">90, 180, 270, vrt, hor</td> -<td class="td">Specifies the angle of rotation when rotating images. Note that PHP rotates counter-clockwise, so a 90 degree rotation to the right must be specified as 270.</td> +<td class="td">Specifies the angle of rotation when rotating images. Note that PHP rotates counter-clockwise, so a 90 degree rotation to the right must be specified as 270.</td> <td class="td">X</td> </tr> @@ -306,7 +306,7 @@ preferences have no effect on cropping. The "availability" column indicates whi <h2>Setting preferences in a config file</h2> <p>If you prefer not to set preferences using the above method, you can instead put them into a config file. -Simply create a new file called <var>image_lib.php</var>, add the <var>$config</var> +Simply create a new file called <var>image_lib.php</var>, add the <var>$config</var> array in that file. Then save the file in: <var>config/image_lib.php</var> and it will be used automatically. You will NOT need to use the <dfn>$this->image_lib->initialize</dfn> function if you save your preferences in a config file.</p> @@ -319,7 +319,7 @@ or create a thumbnail image.</p> <p>For practical purposes there is no difference between creating a copy and creating a thumbnail except a thumb will have the thumbnail marker as part of the name (ie, mypic_thumb.jpg).</p> -<p>All preferences listed in the table above are available for this function except these three: rotation_angle, x_axis, and y_axis.</p> +<p>All preferences listed in the table above are available for this function except these three: rotation_angle, x_axis, and y_axis.</p> <h3>Creating a Thumbnail</h3> @@ -358,7 +358,7 @@ preferences for the X and Y axis (in pixels) specifying where to crop, like this <code>$config['x_axis'] = '100';<br /> $config['y_axis'] = '40';</code> -<p>All preferences listed in the table above are available for this function except these: rotation_angle, width, height, create_thumb, new_image.</p> +<p>All preferences listed in the table above are available for this function except these: rotation_angle, width, height, create_thumb, new_image.</p> <p>Here's an example showing how you might crop an image:</p> @@ -378,8 +378,8 @@ if ( ! $this->image_lib->crop())<br /> <p>Note: Without a visual interface it is difficult to crop images, so this function is not very useful -unless you intend to build such an interface. That's exactly what we did using for the photo -gallery module in ExpressionEngine, the CMS we develop. We added a JavaScript UI that lets the cropping +unless you intend to build such an interface. That's exactly what we did using for the photo +gallery module in ExpressionEngine, the CMS we develop. We added a JavaScript UI that lets the cropping area be selected.</p> <h2>$this->image_lib->rotate()</h2> @@ -443,7 +443,7 @@ containing your watermark over the source image.</li> <p>Just as with the other functions (resizing, cropping, and rotating) the general process for watermarking involves setting the preferences corresponding to the action you intend to perform, then -calling the watermark function. Here is an example:</p> +calling the watermark function. Here is an example:</p> <code> $config['source_image'] = '/path/to/image/mypic.jpg';<br /> @@ -452,9 +452,9 @@ $config['wm_type'] = 'text';<br /> $config['wm_font_path'] = './system/fonts/texb.ttf';<br /> $config['wm_font_size'] = '16';<br /> $config['wm_font_color'] = 'ffffff';<br /> -$config['wm_vrt_alignment'] = 'bottom';<br /> -$config['wm_hor_alignment'] = 'center';<br /> -$config['wm_padding'] = '20';<br /> +$config['wm_vrt_alignment'] = 'bottom';<br /> +$config['wm_hor_alignment'] = 'center';<br /> +$config['wm_padding'] = '20';<br /> <br /> $this->image_lib->initialize($config); <br /> @@ -462,7 +462,7 @@ $this->image_lib->initialize($config); $this->image_lib->watermark();</code> -<p>The above example will use a 16 pixel True Type font to create the text "Copyright 2006 - John Doe". The watermark +<p>The above example will use a 16 pixel True Type font to create the text "Copyright 2006 - John Doe". The watermark will be positioned at the bottom/center of the image, 20 pixels from the bottom of the image.</p> <p class="important"><strong>Note:</strong> In order for the image class to be allowed to do any processing, the image file must have "write" file permissions. For example, 777.</p> @@ -491,14 +491,14 @@ will be positioned at the bottom/center of the image, 20 pixels from the bottom <td class="td"><strong>source_image</strong></td> <td class="td">None</td> <td class="td">None</td> -<td class="td">Sets the source image name/path. The path must be a relative or absolute server path, not a URL.</td> +<td class="td">Sets the source image name/path. The path must be a relative or absolute server path, not a URL.</td> </tr> <tr> <td class="td"><strong>dynamic_output</strong></td> <td class="td">FALSE</td> <td class="td">TRUE/FALSE (boolean)</td> -<td class="td">Determines whether the new image file should be written to disk or generated dynamically. Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td> +<td class="td">Determines whether the new image file should be written to disk or generated dynamically. Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td> </tr> <tr> @@ -563,28 +563,28 @@ will be positioned at the bottom/center of the image, 20 pixels from the bottom <td class="td"><strong>wm_text</strong></td> <td class="td">None</td> <td class="td">None</td> -<td class="td">The text you would like shown as the watermark. Typically this will be a copyright notice.</td> +<td class="td">The text you would like shown as the watermark. Typically this will be a copyright notice.</td> </tr> <tr> <td class="td"><strong>wm_font_path</strong></td> <td class="td">None</td> <td class="td">None</td> -<td class="td">The server path to the True Type Font you would like to use. If you do not use this option, the native GD font will be used.</td> +<td class="td">The server path to the True Type Font you would like to use. If you do not use this option, the native GD font will be used.</td> </tr> <tr> <td class="td"><strong>wm_font_size</strong></td> <td class="td">16</td> <td class="td">None</td> -<td class="td">The size of the text. Note: If you are not using the True Type option above, the number is set using a range of 1 - 5. Otherwise, you can use any valid pixel size for the font you're using.</td> +<td class="td">The size of the text. Note: If you are not using the True Type option above, the number is set using a range of 1 - 5. Otherwise, you can use any valid pixel size for the font you're using.</td> </tr> <tr> <td class="td"><strong>wm_font_color</strong></td> <td class="td">ffffff</td> <td class="td">None</td> -<td class="td">The font color, specified in hex. Note, you must use the full 6 character hex value (ie, 993300), rather than the three character abbreviated version (ie fff).</td> +<td class="td">The font color, specified in hex. Note, you must use the full 6 character hex value (ie, 993300), rather than the three character abbreviated version (ie fff).</td> </tr> diff --git a/user_guide/libraries/input.html b/user_guide/libraries/input.html index 2bc9b3b8c..6070b6c48 100644 --- a/user_guide/libraries/input.html +++ b/user_guide/libraries/input.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -70,20 +70,20 @@ Input Class <h2>Security Filtering</h2> -<p>The security filtering function is called automatically when a new <a href="../general/controllers.html">controller</a> is invoked. It does the following:</p> +<p>The security filtering function is called automatically when a new <a href="../general/controllers.html">controller</a> is invoked. It does the following:</p> <ul> -<li>Destroys the global GET array. Since CodeIgniter does not utilize GET strings, there is no reason to allow it.</li> +<li>Destroys the global GET array. Since CodeIgniter does not utilize GET strings, there is no reason to allow it.</li> <li>Destroys all global variables in the event register_globals is turned on.</li> <li>Filters the POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters.</li> -<li>Provides XSS (Cross-site Scripting Hacks) filtering. This can be enabled globally, or upon request.</li> +<li>Provides XSS (Cross-site Scripting Hacks) filtering. This can be enabled globally, or upon request.</li> <li>Standardizes newline characters to \n</li> </ul> <h2>XSS Filtering</h2> -<p>The Input class has the ability to filter input automatically to prevent cross-site scripting attacks. If you want the filter to run automatically every time it encounters POST or COOKIE data you can enable it by opening your +<p>The Input class has the ability to filter input automatically to prevent cross-site scripting attacks. If you want the filter to run automatically every time it encounters POST or COOKIE data you can enable it by opening your <kbd>application/config/config.php</kbd> file and setting this:</p> <code>$config['global_xss_filtering'] = TRUE;</code> @@ -93,9 +93,9 @@ Input Class <h2>Using POST, COOKIE, or SERVER Data</h2> -<p>CodeIgniter comes with three helper functions that let you fetch POST, COOKIE or SERVER items. The main advantage of using the provided +<p>CodeIgniter comes with three helper functions that let you fetch POST, COOKIE or SERVER items. The main advantage of using the provided functions rather than fetching an item directly ($_POST['something']) is that the functions will check to see if the item is set and -return false (boolean) if not. This lets you conveniently use data without having to test whether an item exists first. +return false (boolean) if not. This lets you conveniently use data without having to test whether an item exists first. In other words, normally you might do something like this:</p> <code> @@ -128,7 +128,7 @@ else<br /> <p>The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.</p> -<p>The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;</p> +<p>The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;</p> <code>$this->input->post('some_data', TRUE);</code> @@ -179,7 +179,7 @@ else<br /> <h2>$this->input->set_cookie()</h2> -<p>Sets a cookie containing the values you specify. There are two ways to pass information to this function so that a cookie can be set: +<p>Sets a cookie containing the values you specify. There are two ways to pass information to this function so that a cookie can be set: Array Method, and Discrete Parameters:</p> <h4>Array Method</h4> @@ -203,10 +203,10 @@ $this->input->set_cookie($cookie); <p>Only the name and value are required. To delete a cookie set it with the expiration blank.</p> -<p>The expiration is set in <strong>seconds</strong>, which will be added to the current time. Do not include the time, but rather only the -number of seconds from <em>now</em> that you wish the cookie to be valid. If the expiration is set to +<p>The expiration is set in <strong>seconds</strong>, which will be added to the current time. Do not include the time, but rather only the +number of seconds from <em>now</em> that you wish the cookie to be valid. If the expiration is set to zero the cookie will only last as long as the browser is open.</p> -<p>For site-wide cookies regardless of how your site is requested, add your URL to the <strong>domain</strong> starting with a period, like this: .your-domain.com</p> +<p>For site-wide cookies regardless of how your site is requested, add your URL to the <strong>domain</strong> starting with a period, like this: .your-domain.com</p> <p>The path is usually not needed since the function sets a root path.</p> <p>The prefix is only needed if you need to avoid name collisions with other identically named cookies for your server.</p> <p>The secure boolean is only needed if you want to make it a secure cookie by setting it to TRUE.</p> @@ -217,27 +217,27 @@ zero the cookie will only last as long as the browser is open.</p> <code>$this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure);</code> -<h2>$this->input->get_cookie()</h2> +<h2>$this->input->cookie()</h2> -<p>Lets you fetch a cookie. The first parameter will contain the name of the cookie you are looking for (including any prefixes):</p> +<p>Lets you fetch a cookie. The first parameter will contain the name of the cookie you are looking for (including any prefixes):</p> -<code>get_cookie('some_cookie');</code> +<code>cookie('some_cookie');</code> <p>The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.</p> -<p>The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;</p> +<p>The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;</p> -<p><code>get_cookie('some_cookie', TRUE);</code></p> +<p><code>cookie('some_cookie', TRUE);</code></p> <h2>$this->input->ip_address()</h2> -<p>Returns the IP address for the current user. If the IP address is not valid, the function will return an IP of: 0.0.0.0</p> +<p>Returns the IP address for the current user. If the IP address is not valid, the function will return an IP of: 0.0.0.0</p> <code>echo $this->input->ip_address();</code> <h2>$this->input->valid_ip(<var>$ip</var>)</h2> -<p>Takes an IP address as input and returns TRUE or FALSE (boolean) if it is valid or not. Note: The $this->input->ip_address() function above +<p>Takes an IP address as input and returns TRUE or FALSE (boolean) if it is valid or not. Note: The $this->input->ip_address() function above validates the IP automatically.</p> <code>if ( ! $this->input->valid_ip($ip))<br /> @@ -256,7 +256,7 @@ else<br /> <p>See the <a href="user_agent.html">User Agent Class</a> for methods which extract information from the user agent string.</p> <h2>$this->input->request_headers()</h2> -<p>Useful if running in a non-Apache environment where <a href="http://php.net/apache_request_headers">apache_request_headers()</a> will not be supported. Returns an array of headers.</p> +<p>Useful if running in a non-Apache environment where <a href="http://php.net/apache_request_headers">apache_request_headers()</a> will not be supported. Returns an array of headers.</p> <code>$headers = $this->input->request_headers();</code> @@ -269,7 +269,11 @@ else<br /> <h2>$this->input->is_ajax_request()</h2> <p>Checks to see if the <var>HTTP_X_REQUESTED_WITH</var> server header has been set, and returns a boolean response.</p> -<code>$this->input->is_ajax_request()</code> + +<h2>$this->input->is_cli_request()</h2> +<p>Checks to see if the <var>STDIN</var> constant is set, which is a failsafe way to see if PHP is being run on the command line.</p> + +<code>$this->input->is_cli_request()</code> </div> diff --git a/user_guide/libraries/javascript.html b/user_guide/libraries/javascript.html index 4cd751f09..5929cbec9 100644 --- a/user_guide/libraries/javascript.html +++ b/user_guide/libraries/javascript.html @@ -2,7 +2,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> -<title>CodeIgniter User Guide : JavaScript Class</title> +<title>JavaScript Class : CodeIgniter User Guide</title> <style type='text/css' media='all'>@import url('../userguide.css');</style> <link rel='stylesheet' type='text/css' media='all' href='../userguide.css' /> @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -65,11 +65,11 @@ JavaScript Driver <code>$this->load->library('javascript');</code> -<p>The Javascript class also accepts parameters, <dfn>js_library_driver (string) default 'jquery'</dfn> and <dfn>autoload (bool) default TRUE</dfn>. You may override the defaults if you wish by sending an associative array:</p> +<p>The Javascript class also accepts parameters, <dfn>js_library_driver (string) default 'jquery'</dfn> and <dfn>autoload (bool) default TRUE</dfn>. You may override the defaults if you wish by sending an associative array:</p> <code>$this->load->library('javascript', array('js_library_driver' => 'scripto', 'autoload' => FALSE));</code> -<p>Again, presently only 'jquery' is available. You may wish to set <dfn>autoload</dfn> to FALSE, though, if you do not want the jQuery library to automatically include a script tag for the main jQuery script file. This is useful if you are loading it from a location outside of CodeIgniter, or already have the script tag in your markup.</p> +<p>Again, presently only 'jquery' is available. You may wish to set <dfn>autoload</dfn> to FALSE, though, if you do not want the jQuery library to automatically include a script tag for the main jQuery script file. This is useful if you are loading it from a location outside of CodeIgniter, or already have the script tag in your markup.</p> <p>Once loaded, the jQuery library object will be available using: <dfn>$this->javascript</dfn></p> <h2>Setup and Configuration</h2> @@ -93,7 +93,7 @@ JavaScript Driver <code>$this->load->library('jquery');</code> -<p>You may send an optional parameter to determine whether or not a script tag for the main jQuery file will be automatically included when loading the library. It will be created by default. To prevent this, load the library as follows:</p> +<p>You may send an optional parameter to determine whether or not a script tag for the main jQuery file will be automatically included when loading the library. It will be created by default. To prevent this, load the library as follows:</p> <code>$this->load->library('jquery', FALSE);</code> @@ -115,7 +115,7 @@ JavaScript Driver <h2>Effects</h2> -<p>The query library supports a powerful <a href="http://docs.jquery.com/Effects">Effects</a> repertoire. Before an effect can be used, it must be loaded:</p> +<p>The query library supports a powerful <a href="http://docs.jquery.com/Effects">Effects</a> repertoire. Before an effect can be used, it must be loaded:</p> <p><code>$this->jquery->effect([optional path] plugin name); // for example @@ -125,8 +125,8 @@ $this->jquery->effect('bounce'); <h3>hide() / show()</h3> <p>Each of this functions will affect the visibility of an item on your page. hide() will set an item invisible, show() will reveal it.</p> -<p><code>$this->jquery->hide(target, optional speed, optional extra information);<br /> - $this->jquery->show(target, optional speed, optional extra information);</code></p> +<p><code>$this->jquery->hide(target, optional speed, optional extra information);<br /> + $this->jquery->show(target, optional speed, optional extra information);</code></p> <ul> <li>"target" will be any valid jQuery selector or selectors.</li> @@ -147,7 +147,7 @@ $this->jquery->effect('bounce'); <p><code> $this->jquery->animate(target, parameters, optional speed, optional extra information);</code></p> <ul> <li>"target" will be any valid jQuery selector or selectors.</li> - <li>"paramters" in jQuery would generally include a series of CSS properties that you wish to change.</li> + <li>"parameters" in jQuery would generally include a series of CSS properties that you wish to change.</li> <li>"speed" is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> <li>"extra information" is optional, and could include a callback, or other additional information.</li> </ul> @@ -162,8 +162,8 @@ $this->jquery->click('#trigger', $this->jquery->animate('#note', $pa <h3>fadeIn() / fadeOut()</h3> -<p><code>$this->jquery->fadeIn(target, optional speed, optional extra information);<br /> - $this->jquery->fadeOut(target, optional speed, optional extra information);</code></p> +<p><code>$this->jquery->fadeIn(target, optional speed, optional extra information);<br /> + $this->jquery->fadeOut(target, optional speed, optional extra information);</code></p> <ul> <li>"target" will be any valid jQuery selector or selectors.</li> <li>"speed" is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> @@ -182,8 +182,8 @@ $this->jquery->click('#trigger', $this->jquery->animate('#note', $pa <h3>fadeIn() / fadeOut()</h3> <p>These effects cause an element(s) to disappear or reappear over time.</p> -<p><code>$this->jquery->fadeIn(target, optional speed, optional extra information);<br /> - $this->jquery->fadeOut(target, optional speed, optional extra information);</code></p> +<p><code>$this->jquery->fadeIn(target, optional speed, optional extra information);<br /> + $this->jquery->fadeOut(target, optional speed, optional extra information);</code></p> <ul> <li>"target" will be any valid jQuery selector or selectors.</li> <li>"speed" is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> @@ -193,9 +193,9 @@ $this->jquery->click('#trigger', $this->jquery->animate('#note', $pa <h3>slideUp() / slideDown() / slideToggle()</h3> <p>These effects cause an element(s) to slide.</p> -<p><code>$this->jquery->slideUp(target, optional speed, optional extra information);<br /> - $this->jquery->slideDown(target, optional speed, optional extra information);<br /> -$this->jquery->slideToggle(target, optional speed, optional extra information);</code></p> +<p><code>$this->jquery->slideUp(target, optional speed, optional extra information);<br /> + $this->jquery->slideDown(target, optional speed, optional extra information);<br /> +$this->jquery->slideToggle(target, optional speed, optional extra information);</code></p> <ul> <li>"target" will be any valid jQuery selector or selectors.</li> <li>"speed" is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li> @@ -235,11 +235,11 @@ $this->jquery->slideToggle(target, optional speed, optional extra informa <div id="footer"> <p> -Previous Topic: <a href="input.html">Input Class</a> +Previous Topic: <a href="../database/index.html">Database Class</a> · <a href="#top">Top of Page</a> · <a href="../index.html">User Guide Home</a> · -Next Topic: <a href="language.html">Language Class</a></p> +Next Topic: <a href="../helpers/array_helper.html">Array Helper</a></p> <p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> </div> diff --git a/user_guide/libraries/language.html b/user_guide/libraries/language.html index dfdccad04..1b253fa00 100644 --- a/user_guide/libraries/language.html +++ b/user_guide/libraries/language.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -60,30 +60,30 @@ Language Class <p>The Language Class provides functions to retrieve language files and lines of text for purposes of internationalization.</p> -<p>In your CodeIgniter system folder you'll find one called <dfn>language</dfn> containing sets of language files. You can create +<p>In your CodeIgniter system folder you'll find one called <dfn>language</dfn> containing sets of language files. You can create your own language files as needed in order to display error and other messages in other languages.</p> -<p>Language files are typically stored in your <dfn>system/language</dfn> directory. Alternately you can create a folder called <kbd>language</kbd> inside -your <kbd>application</kbd> folder and store them there. CodeIgniter will look first in your <dfn>application/language</dfn> -directory. If the directory does not exist or the specified language is not located there CI will instead look in your global +<p>Language files are typically stored in your <dfn>system/language</dfn> directory. Alternately you can create a folder called <kbd>language</kbd> inside +your <kbd>application</kbd> folder and store them there. CodeIgniter will look first in your <dfn>application/language</dfn> +directory. If the directory does not exist or the specified language is not located there CI will instead look in your global <dfn>system/language</dfn> folder.</p> -<p class="important"><strong>Note:</strong> Each language should be stored in its own folder. For example, the English files are located at: +<p class="important"><strong>Note:</strong> Each language should be stored in its own folder. For example, the English files are located at: <dfn>system/language/english</dfn></p> <h2>Creating Language Files</h2> -<p>Language files must be named with <kbd>_lang.php</kbd> as the file extension. For example, let's say you want to create a file -containing error messages. You might name it: <kbd>error_lang.php</kbd></p> +<p>Language files must be named with <kbd>_lang.php</kbd> as the file extension. For example, let's say you want to create a file +containing error messages. You might name it: <kbd>error_lang.php</kbd></p> <p>Within the file you will assign each line of text to an array called <var>$lang</var> with this prototype:</p> <code>$lang['language_key'] = "The actual message to be shown";</code> <p><strong>Note:</strong> It's a good practice to use a common prefix for all messages in a given file to avoid collisions with -similarly named items in other files. For example, if you are creating error messages you might prefix them with <var>error_</var></p> +similarly named items in other files. For example, if you are creating error messages you might prefix them with <var>error_</var></p> <code>$lang['<var>error</var>_email_missing'] = "You must submit an email address";<br /> $lang['<var>error</var>_url_missing'] = "You must submit a URL";<br /> @@ -92,12 +92,12 @@ $lang['<var>error</var>_username_missing'] = "You must submit a username";</code <h2>Loading A Language File</h2> -<p>In order to fetch a line from a particular file you must load the file first. Loading a language file is done with the following code:</p> +<p>In order to fetch a line from a particular file you must load the file first. Loading a language file is done with the following code:</p> <code>$this->lang->load('<samp>filename</samp>', '<dfn>language</dfn>');</code> <p>Where <samp>filename</samp> is the name of the file you wish to load (without the file extension), and <dfn>language</dfn> -is the language set containing it (ie, english). If the second parameter is missing, the default language set in your +is the language set containing it (ie, english). If the second parameter is missing, the default language set in your <kbd>application/config/config.php</kbd> file will be used.</p> @@ -109,7 +109,7 @@ is the language set containing it (ie, english). If the second parameter is mis <p>Where <samp>language_key</samp> is the array key corresponding to the line you wish to show.</p> -<p>Note: This function simply returns the line. It does not echo it for you.</p> +<p>Note: This function simply returns the line. It does not echo it for you.</p> <h3>Using language lines as form labels</h3> diff --git a/user_guide/libraries/loader.html b/user_guide/libraries/loader.html index af312f4aa..50ec60c1f 100644 --- a/user_guide/libraries/loader.html +++ b/user_guide/libraries/loader.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,7 +58,7 @@ Loader Class <h1>Loader Class</h1> -<p>Loader, as the name suggests, is used to load elements. These elements can be libraries (classes) <a href="../general/views.html">View files</a>, +<p>Loader, as the name suggests, is used to load elements. These elements can be libraries (classes) <a href="../general/views.html">View files</a>, <a href="../general/helpers.html">Helpers</a>, <a href="../general/models.html">Models</a>, or your own files.</p> <p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> @@ -69,7 +69,7 @@ Loader Class <h2>$this->load->library('<var>class_name</var>', <samp>$config</samp>, <kbd>'object name'</kbd>)</h2> -<p>This function is used to load core classes. Where <var>class_name</var> is the name of the class you want to load. +<p>This function is used to load core classes. Where <var>class_name</var> is the name of the class you want to load. Note: We use the terms "class" and "library" interchangeably.</p> <p>For example, if you would like to send email with CodeIgniter, the first step is to load the email class within your controller:</p> @@ -90,9 +90,13 @@ For example, if you have file located at:</p> <p>You may nest the file in as many subdirectories as you want.</p> +<p>Additionally, multiple libraries can be loaded at the same time by passing an array of libraries to the load function.</p> + +<code>$this->load->library(array('<var>email</var>', '<var>table</var>'));</code> + <h3>Setting options</h3> -<p>The second (optional) parameter allows you to optionally pass configuration setting. You will typically pass these as an array:</p> +<p>The second (optional) parameter allows you to optionally pass configuration setting. You will typically pass these as an array:</p> <code> $config = array (<br /> @@ -105,9 +109,11 @@ $this->load->library('email', $config);</code> <p>Config options can usually also be set via a config file. Each library is explained in detail in its own page, so please read the information regarding each one you would like to use.</p> +<p>Please take note, when multiple libraries are supplied in an array for the first parameter, each will receive the same parameter information.</p> + <h3>Assigning a Library to a different object name</h3> -<p>If the third (optional) parameter is blank, the library will usually be assigned to an object with the same name as the library. For example, if the library is named <dfn>Session</dfn>, it +<p>If the third (optional) parameter is blank, the library will usually be assigned to an object with the same name as the library. For example, if the library is named <dfn>Session</dfn>, it will be assigned to a variable named <dfn>$this->session</dfn>.</p> <p>If you prefer to set your own class names you can pass its value to the third parameter:</p> @@ -120,24 +126,25 @@ $this->my_session </code> +<p>Please take note, when multiple libraries are supplied in an array for the first parameter, this parameter is discarded.</p> <h2>$this->load->view('<var>file_name</var>', <samp>$data</samp>, <kbd>true/false</kbd>)</h2> -<p>This function is used to load your View files. If you haven't read the <a href="../general/views.html">Views</a> section of the +<p>This function is used to load your View files. If you haven't read the <a href="../general/views.html">Views</a> section of the user guide it is recommended that you do since it shows you how this function is typically used.</p> -<p>The first parameter is required. It is the name of the view file you would like to load. Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p> +<p>The first parameter is required. It is the name of the view file you would like to load. Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p> <p>The second <strong>optional</strong> parameter can take an associative array or an object as input, which it runs through the PHP <a href="http://www.php.net/extract">extract</a> function to -convert to variables that can be used in your view files. Again, read the <a href="../general/views.html">Views</a> page to learn +convert to variables that can be used in your view files. Again, read the <a href="../general/views.html">Views</a> page to learn how this might be useful.</p> <p>The third <strong>optional</strong> parameter lets you change the behavior of the function so that it returns data as a string -rather than sending it to your browser. This can be useful if you want to process the data in some way. If you -set the parameter to <kbd>true</kbd> (boolean) it will return data. The default behavior is <kbd>false</kbd>, which sends it -to your browser. Remember to assign it to a variable if you want the data returned:</p> +rather than sending it to your browser. This can be useful if you want to process the data in some way. If you +set the parameter to <kbd>true</kbd> (boolean) it will return data. The default behavior is <kbd>false</kbd>, which sends it +to your browser. Remember to assign it to a variable if you want the data returned:</p> <code>$string = $this->load->view('<var>myfile</var>', '', <kbd>true</kbd>);</code> @@ -152,7 +159,7 @@ to your browser. Remember to assign it to a variable if you want the data retur <br /> $this-><kbd>fubar</kbd>->function();</code> <h2>$this->load->database('<var>options</var>', <kbd>true/false</kbd>)</h2> -<p>This function lets you load the database class. The two parameters are <strong>optional</strong>. Please see the +<p>This function lets you load the database class. The two parameters are <strong>optional</strong>. Please see the <a href="../database/index.html">database</a> section for more info.</p> @@ -161,9 +168,9 @@ $this-><kbd>fubar</kbd>->function();</code> <h2>$this->load->vars(<samp>$array</samp>)</h2> <p>This function takes an associative array as input and generates variables using the PHP <a href="http://www.php.net/extract">extract</a> function. -This function produces the same result as using the second parameter of the <dfn>$this->load->view()</dfn> function above. The reason you might +This function produces the same result as using the second parameter of the <dfn>$this->load->view()</dfn> function above. The reason you might want to use this function independently is if you would like to set some global variables in the constructor of your controller -and have them become available in any view file loaded from any function. You can have multiple calls to this function. The data get cached +and have them become available in any view file loaded from any function. You can have multiple calls to this function. The data get cached and merged into one array for conversion to variables. </p> @@ -173,7 +180,7 @@ and merged into one array for conversion to variables. <h2>$this->load->file('<var>filepath/filename</var>', <kbd>true/false</kbd>)</h2> -<p>This is a generic file loading function. Supply the filepath and name in the first parameter and it will open and read the file. +<p>This is a generic file loading function. Supply the filepath and name in the first parameter and it will open and read the file. By default the data is sent to your browser, just like a View file, but if you set the second parameter to <kbd>true</kbd> (boolean) it will instead return the data as a string.</p> @@ -187,7 +194,7 @@ it will instead return the data as a string.</p> <h2>Application "Packages"</h2> -<p>An application package allows for the easy distribution of complete sets of resources in a single directory, complete with its own libraries, models, helpers, config, and language files. It is recommended that these packages be placed in the <dfn>application/third_party</dfn> folder. Below is a sample map of an package directory</p> +<p>An application package allows for the easy distribution of complete sets of resources in a single directory, complete with its own libraries, models, helpers, config, and language files. It is recommended that these packages be placed in the <dfn>application/third_party</dfn> folder. Below is a sample map of an package directory</p> <h2>Sample Package "Foo Bar" Directory Map</h2> @@ -203,18 +210,18 @@ libraries/<br /> models/<br /> </code> -<p>Whatever the purpose of the "Foo Bar" application package, it has its own config files, helpers, language files, libraries, and models. To use these resources in your controllers, you first need to tell the Loader that you are going to be loading resources from a package, by adding the package path.</p> +<p>Whatever the purpose of the "Foo Bar" application package, it has its own config files, helpers, language files, libraries, and models. To use these resources in your controllers, you first need to tell the Loader that you are going to be loading resources from a package, by adding the package path.</p> <h3>$this->load->add_package_path()</h3> -<p>Adding a package path instructs the Loader class to prepend a given path for subsequent requests for resources. As an example, the "Foo Bar" application package above has a library named <dfn>Foo_bar.php</dfn>. In our controller, we'd do the following:</p> +<p>Adding a package path instructs the Loader class to prepend a given path for subsequent requests for resources. As an example, the "Foo Bar" application package above has a library named <dfn>Foo_bar.php</dfn>. In our controller, we'd do the following:</p> <code>$this->load->add_package_path(<var>APPPATH</var>.'third_party/<var>foo_bar</var>/');<br /> $this->load->library('foo_bar');</code> <h3>$this->load->remove_package_path()</h3> -<p>When your controller is finished using resources from an application package, and particularly if you have other application packages you want to work with, you may wish to remove the package path so the Loader no longer looks in that folder for resources. To remove the last path added, simply call the method with no parameters.</p> +<p>When your controller is finished using resources from an application package, and particularly if you have other application packages you want to work with, you may wish to remove the package path so the Loader no longer looks in that folder for resources. To remove the last path added, simply call the method with no parameters.</p> <h3>$this->load->remove_package_path()</h3> @@ -224,17 +231,22 @@ $this->load->library('foo_bar');</code> <h3>Package view files</h3> -<p>@todo - package view file interface is not complete. It can be experimentally used by first saving the Loader's original view path, setting the view path to the package's view path, and when finished, setting back to the original view path.</p> - -<code>// ... save the original view path, and set to our Foo Bar package view folder<br /> -$orig_view_path = $this->load->_ci_view_path;<br /> -$this->load->_ci_view_path = <var>APPPATH</var>.'third_party/<var>foo_bar</var>/views/';<br /> -<br /> -// ... code using the package's view files<br /> -<br /> -// ... then return the view path to the application's original view path<br /> -$this->load->_ci_view_path = $orig_view_path;</code> +<p>By Default, package view files paths are set when <samp>add_package_path()</samp> is called. View paths are looped through, and once a match is encountered that view is loaded.</p> +<p>In this instance, it is possible for view naming collisions within packages to occur, and possibly the incorrect package being loaded. To ensure against this, set an optional second parameter of <var>FALSE</var> when calling <samp>add_package_path()</samp>.</p> +<code> +$this->load->add_package_path(APPPATH.'my_app', TRUE);<br> +$this->load->view('my_app_index'); // Loads<br> +$this->load->view('welcome_message'); // Will not load the default welcome_message b/c the second param to add_package_path is TRUE<br> +<br> +// Reset things<br> +$this->load->remove_package_path(APPPATH.'my_app');<br> +<br> +// Again without the second parameter:<br> +$this->load->add_package_path(APPPATH.'my_app', TRUE);<br> +$this->load->view('my_app_index'); // Loads<br> +$this->load->view('welcome_message'); // Loads<br> +</code> </div> <!-- END CONTENT --> diff --git a/user_guide/libraries/output.html b/user_guide/libraries/output.html index 25ec521b1..8846e15ff 100644 --- a/user_guide/libraries/output.html +++ b/user_guide/libraries/output.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -58,7 +58,7 @@ Output Class <h1>Output Class</h1> -<p>The Output class is a small class with one main function: To send the finalized web page to the requesting browser. It is +<p>The Output class is a small class with one main function: To send the finalized web page to the requesting browser. It is also responsible for <a href="../general/caching.html">caching</a> your web pages, if you use that feature.</p> <p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p> @@ -70,7 +70,7 @@ It is possible, however, for you to manually intervene with the output if you ne <h2>$this->output->set_output();</h2> -<p>Permits you to manually set the final output string. Usage example:</p> +<p>Permits you to manually set the final output string. Usage example:</p> <code>$this->output->set_output($data);</code> @@ -95,7 +95,7 @@ $this->output<br/> <h2>$this->output->get_output();</h2> -<p>Permits you to manually retrieve any output that has been sent for storage in the output class. Usage example:</p> +<p>Permits you to manually retrieve any output that has been sent for storage in the output class. Usage example:</p> <code>$string = $this->output->get_output();</code> <p>Note that data will only be retrievable from this function if it has been previously sent to the output class by one of the @@ -104,7 +104,7 @@ CodeIgniter functions like <var>$this->load->view()</var>.</p> <h2>$this->output->append_output();</h2> -<p>Appends data onto the output string. Usage example:</p> +<p>Appends data onto the output string. Usage example:</p> <code>$this->output->append_output($data);</code> @@ -112,7 +112,7 @@ CodeIgniter functions like <var>$this->load->view()</var>.</p> <h2>$this->output->set_header();</h2> -<p>Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display. Example:</p> +<p>Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display. Example:</p> <code> $this->output->set_header("HTTP/1.0 200 OK");<br /> @@ -125,10 +125,10 @@ $this->output->set_header("Pragma: no-cache"); </code> <h2>$this->output->set_status_header(<var>code</var>, '<var>text</var>');</h2> -<p>Permits you to manually set a server status header. Example:</p> +<p>Permits you to manually set a server status header. Example:</p> <code>$this->output->set_status_header('401');<br /> -// Sets the header as: Unauthorized</code> +// Sets the header as: Unauthorized</code> <p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">See here</a> for a full list of headers.</p> @@ -147,14 +147,14 @@ at the bottom of your pages for debugging and optimization purposes.</p> <h2>$this->output->set_profiler_sections();</h2> -<p>Permits you to enable/disable specific sections of the Profiler when enabled. Please refer to the <a href="../general/profiling.html">Profiler</a> documentation for further information.</p> +<p>Permits you to enable/disable specific sections of the Profiler when enabled. Please refer to the <a href="../general/profiling.html">Profiler</a> documentation for further information.</p> <h2>$this->output->cache();</h2> -<p>The CodeIgniter output library also controls caching. For more information, please see the <a href="../general/caching.html">caching documentation</a>.</p> +<p>The CodeIgniter output library also controls caching. For more information, please see the <a href="../general/caching.html">caching documentation</a>.</p> <h2>Parsing Execution Variables</h2> - <p>CodeIgniter will parse the pseudo-variables <var>{elapsed_time}</var> and <var>{memory_usage}</var> in your output by default. To disable this, set the <var>$parse_exec_vars</var> class property to <var>FALSE</var> in your controller. + <p>CodeIgniter will parse the pseudo-variables <var>{elapsed_time}</var> and <var>{memory_usage}</var> in your output by default. To disable this, set the <var>$parse_exec_vars</var> class property to <var>FALSE</var> in your controller. <code>$this->output->parse_exec_vars = FALSE;</code> diff --git a/user_guide/libraries/pagination.html b/user_guide/libraries/pagination.html index da07c79be..a6b9287a3 100644 --- a/user_guide/libraries/pagination.html +++ b/user_guide/libraries/pagination.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -71,27 +71,27 @@ Pagination Class <code> $this->load->library('pagination');<br /><br /> $config['base_url'] = 'http://example.com/index.php/test/page/';<br /> -$config['total_rows'] = '200';<br /> -$config['per_page'] = '20'; +$config['total_rows'] = 200;<br /> +$config['per_page'] = 20; <br /><br /> $this->pagination->initialize($config); <br /><br /> -echo $this->pagination->create_links();</code> +echo $this->pagination->create_links();</code> <h3>Notes:</h3> -<p>The <var>$config</var> array contains your configuration variables. It is passed to the <dfn>$this->pagination->initialize</dfn> function as shown above. Although there are some twenty items you can configure, at -minimum you need the three shown. Here is a description of what those items represent:</p> +<p>The <var>$config</var> array contains your configuration variables. It is passed to the <dfn>$this->pagination->initialize</dfn> function as shown above. Although there are some twenty items you can configure, at +minimum you need the three shown. Here is a description of what those items represent:</p> <ul> - <li><strong>base_url</strong> This is the full URL to the controller class/function containing your pagination. In the example - above, it is pointing to a controller called "Test" and a function called "page". Keep in mind that you can + <li><strong>base_url</strong> This is the full URL to the controller class/function containing your pagination. In the example + above, it is pointing to a controller called "Test" and a function called "page". Keep in mind that you can <a href="../general/routing.html">re-route your URI</a> if you need a different structure.</li> <li><strong>total_rows</strong> This number represents the total rows in the result set you are creating pagination for. Typically this number will be the total rows that your database query returned. </li> - <li><strong>per_page</strong> The number of items you intend to show per page. In the above example, you would be showing 20 items per page.</li> + <li><strong>per_page</strong> The number of items you intend to show per page. In the above example, you would be showing 20 items per page.</li> </ul> <p>The <var>create_links()</var> function returns an empty string when there is no pagination to show.</p> @@ -100,7 +100,7 @@ minimum you need the three shown. Here is a description of what those items rep <h3>Setting preferences in a config file</h3> <p>If you prefer not to set preferences using the above method, you can instead put them into a config file. -Simply create a new file called <var>pagination.php</var>, add the <var>$config</var> +Simply create a new file called <var>pagination.php</var>, add the <var>$config</var> array in that file. Then save the file in: <var>config/pagination.php</var> and it will be used automatically. You will NOT need to use the <dfn>$this->pagination->initialize</dfn> function if you save your preferences in a config file.</p> @@ -122,9 +122,9 @@ something different you can specify it.</p> <h4>$config['page_query_string'] = TRUE</h4> <p>By default, the pagination library assume you are using <a href="../general/urls.html">URI Segments</a>, and constructs your links something like</p> <p><code>http://example.com/index.php/test/page/20</code></p> -<p>If you have $config['enable_query_strings'] set to TRUE your links will automatically be re-written using Query Strings. This option can also be explictly set. Using $config['page_query_string'] set to TRUE, the pagination link will become.</p> +<p>If you have $config['enable_query_strings'] set to TRUE your links will automatically be re-written using Query Strings. This option can also be explictly set. Using $config['page_query_string'] set to TRUE, the pagination link will become.</p> <p><code>http://example.com/index.php?c=test&m=page&per_page=20</code></p> -<p>Note that "per_page" is the default query string passed, however can be configured using $config['query_string_segment'] = 'your_string'</p> +<p>Note that "per_page" is the default query string passed, however can be configured using $config['query_string_segment'] = 'your_string'</p> <h2>Adding Enclosing Markup</h2> <p>If you would like to surround the entire pagination with some markup you can do it with these two prefs:</p> diff --git a/user_guide/libraries/parser.html b/user_guide/libraries/parser.html index 5bb403a7f..4f04aaf48 100644 --- a/user_guide/libraries/parser.html +++ b/user_guide/libraries/parser.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -83,10 +83,10 @@ variables or variable tag pairs. If you've never used a template engine, pseudo- PHP from your templates (view files).</p> <p class="important"><strong>Note:</strong> CodeIgniter does <strong>not</strong> require you to use this class -since using pure PHP in your view pages lets them run a little faster. However, some developers prefer to use a template engine if +since using pure PHP in your view pages lets them run a little faster. However, some developers prefer to use a template engine if they work with designers who they feel would find some confusion working with PHP.</p> -<p><strong>Also Note:</strong> The Template Parser Class is <strong>not</strong> a +<p><strong>Also Note:</strong> The Template Parser Class is <strong>not</strong> a full-blown template parsing solution. We've kept it very lean on purpose in order to maintain maximum performance.</p> @@ -102,7 +102,7 @@ full-blown template parsing solution. We've kept it very lean on purpose in orde <h2>$this->parser->parse()</h2> -<p>This method accepts a template name and data array as input, and it generates a parsed version. Example:</p> +<p>This method accepts a template name and data array as input, and it generates a parsed version. Example:</p> <code>$this->load->library('parser');<br /> <br /> @@ -114,11 +114,11 @@ $data = array(<br /> $this->parser->parse('blog_template', $data);</code> <p>The first parameter contains the name of the <a href="../general/views.html">view file</a> (in this example the file would be called blog_template.php), -and the second parameter contains an associative array of data to be replaced in the template. In the above example, the +and the second parameter contains an associative array of data to be replaced in the template. In the above example, the template would contain two variables: {blog_title} and {blog_heading}</p> -<p>There is no need to "echo" or do something with the data returned by <dfn>$this->parser->parse()</dfn>. It is automatically -passed to the output class to be sent to the browser. However, if you do want the data returned instead of sent to the output class you can +<p>There is no need to "echo" or do something with the data returned by <dfn>$this->parser->parse()</dfn>. It is automatically +passed to the output class to be sent to the browser. However, if you do want the data returned instead of sent to the output class you can pass TRUE (boolean) to the third parameter:</p> <code>$string = $this->parser->parse('blog_template', $data, TRUE);</code> @@ -130,8 +130,8 @@ pass TRUE (boolean) to the third parameter:</p> <h2>Variable Pairs</h2> -<p>The above example code allows simple variables to be replaced. What if you would like an entire block of variables to be -repeated, with each iteration containing new values? Consider the template example we showed at the top of the page:</p> +<p>The above example code allows simple variables to be replaced. What if you would like an entire block of variables to be +repeated, with each iteration containing new values? Consider the template example we showed at the top of the page:</p> <code><html><br /> <head><br /> diff --git a/user_guide/libraries/security.html b/user_guide/libraries/security.html index 943f72a0f..0cb1d0cb1 100644 --- a/user_guide/libraries/security.html +++ b/user_guide/libraries/security.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -63,11 +63,11 @@ Security Class <h2>XSS Filtering</h2> <p>CodeIgniter comes with a Cross Site Scripting Hack prevention filter which can either run automatically to filter -all POST and COOKIE data that is encountered, or you can run it on a per item basis. By default it does <strong>not</strong> +all POST and COOKIE data that is encountered, or you can run it on a per item basis. By default it does <strong>not</strong> run globally since it requires a bit of processing overhead, and since you may not need it in all cases.</p> <p>The XSS filter looks for commonly used techniques to trigger Javascript or other types of code that attempt to hijack cookies -or do other malicious things. If anything disallowed is encountered it is rendered safe by converting the data to character entities.</p> +or do other malicious things. If anything disallowed is encountered it is rendered safe by converting the data to character entities.</p> <p> Note: This function should only be used to deal with data upon submission. It's not something that should be used for general runtime processing since it requires a fair amount of processing overhead.</p> @@ -88,7 +88,7 @@ Note: This function should only be used to deal with data upon submission. It's <p>Note: If you use the form validation class, it gives you the option of XSS filtering as well.</p> -<p>An optional second parameter, <dfn>is_image</dfn>, allows this function to be used to test images for potential XSS attacks, useful for file upload security. When this second parameter is set to <dfn>TRUE</dfn>, instead of returning an altered string, the function returns TRUE if the image is safe, and FALSE if it contained potentially malicious information that a browser may attempt to execute.</p> +<p>An optional second parameter, <dfn>is_image</dfn>, allows this function to be used to test images for potential XSS attacks, useful for file upload security. When this second parameter is set to <dfn>TRUE</dfn>, instead of returning an altered string, the function returns TRUE if the image is safe, and FALSE if it contained potentially malicious information that a browser may attempt to execute.</p> <code>if ($this->security->xss_clean($file, TRUE) === FALSE)<br /> {<br /> @@ -98,7 +98,7 @@ Note: This function should only be used to deal with data upon submission. It's <h2>$this->security->sanitize_filename()</h2> -<p>When accepting filenames from user input, it is best to sanitize them to prevent directory traversal and other security related issues. To do so, use the <dfn>sanitize_filename()</dfn> method of the Security class. Here is an example:</p> +<p>When accepting filenames from user input, it is best to sanitize them to prevent directory traversal and other security related issues. To do so, use the <dfn>sanitize_filename()</dfn> method of the Security class. Here is an example:</p> <code>$filename = $this->security->sanitize_filename($this->input->post('filename'));</code> diff --git a/user_guide/libraries/sessions.html b/user_guide/libraries/sessions.html index c8757995c..bb8f1fc9b 100644 --- a/user_guide/libraries/sessions.html +++ b/user_guide/libraries/sessions.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -61,7 +61,7 @@ Session Class <p>The Session class permits you maintain a user's "state" and track their activity while they browse your site. The Session class stores session information for each user as serialized (and optionally encrypted) data in a cookie. It can also store the session data in a database table for added security, as this permits the session ID in the -user's cookie to be matched against the stored session ID. By default only the cookie is saved. If you choose to +user's cookie to be matched against the stored session ID. By default only the cookie is saved. If you choose to use the database option you'll need to create the session table as indicated below. </p> @@ -93,8 +93,8 @@ will cause it to read, create, and update sessions.</p> If sessions data does <strong>not</strong> exist (or if it has expired) a new session will be created and saved in the cookie. If a session does exist, its information will be updated and the cookie will be updated. With each update, the session_id will be regenerated.</p> -<p>It's important for you to understand that once initialized, the Session class runs automatically. There is nothing -you need to do to cause the above behavior to happen. You can, as you'll see below, work with session data or +<p>It's important for you to understand that once initialized, the Session class runs automatically. There is nothing +you need to do to cause the above behavior to happen. You can, as you'll see below, work with session data or even add your own data to a user's session, but the process of reading, writing, and updating a session is automatic.</p> @@ -106,7 +106,7 @@ even add your own data to a user's session, but the process of reading, writing, <li>The user's unique Session ID (this is a statistically random string with very strong entropy, hashed with MD5 for portability, and regenerated (by default) every five minutes)</li> <li>The user's IP Address</li> <li>The user's User Agent data (the first 50 characters of the browser data string)</li> -<li>The "last activity" time stamp.</li> +<li>The "last activity" time stamp.</li> </ul> <p>The above data is stored in a cookie as a serialized array with this prototype:</p> @@ -124,7 +124,7 @@ making the data highly secure and impervious to being read or altered by someone can be <a href="encryption.html">found here</a>, although the Session class will take care of initializing and encrypting the data automatically.</p> -<p>Note: Session cookies are only updated every five minutes by default to reduce processor load. If you repeatedly reload a page +<p>Note: Session cookies are only updated every five minutes by default to reduce processor load. If you repeatedly reload a page you'll notice that the "last activity" time only updates if five minutes or more has passed since the last time the cookie was written. This time is configurable by changing the $config['sess_time_to_update'] line in your system/config/config.php file.</p> @@ -134,7 +134,7 @@ the cookie was written. This time is configurable by changing the $config['sess_ <code>$this->session->userdata('<samp>item</samp>');</code> -<p>Where <samp>item</samp> is the array index corresponding to the item you wish to fetch. For example, to fetch the session ID you +<p>Where <samp>item</samp> is the array index corresponding to the item you wish to fetch. For example, to fetch the session ID you will do this:</p> <code>$session_id = $this->session->userdata('<samp>session_id</samp>');</code> @@ -145,7 +145,7 @@ will do this:</p> <h2>Adding Custom Session Data</h2> <p>A useful aspect of the session array is that you can add your own data to it and it will be stored in the user's cookie. -Why would you want to do this? Here's one example:</p> +Why would you want to do this? Here's one example:</p> <p>Let's say a particular user logs into your site. Once authenticated, you could add their username and email address to the session cookie, making that data globally available to you without @@ -155,7 +155,7 @@ having to run a database query when you need it.</p> <code>$this->session->set_userdata(<samp>$array</samp>);</code> -<p>Where <samp>$array</samp> is an associative array containing your new data. Here's an example:</p> +<p>Where <samp>$array</samp> is an associative array containing your new data. Here's an example:</p> <p><code>$newdata = array(<br /> @@ -167,9 +167,26 @@ having to run a database query when you need it.</p> $this->session->set_userdata(<samp>$newdata</samp>);</code></p> <p>If you want to add userdata one value at a time, set_userdata() also supports this syntax. </p> <p><code>$this->session->set_userdata('some_name', 'some_value');</code></p> -<p class="important"><strong>Note:</strong> Cookies can only hold 4KB of data, so be careful not to exceed the capacity. The +<p class="important"><strong>Note:</strong> Cookies can only hold 4KB of data, so be careful not to exceed the capacity. The encryption process in particular produces a longer data string than the original so keep careful track of how much data you are storing.</p> +<h2>Retrieving All Session Data</h2> +<p>An array of all userdata can be retrieved as follows:</p> +<code>$this->session->all_userdata()</code> + +<p>And returns an associative array like the following:</p> + +<pre> +Array +( + [session_id] => 4a5a5dca22728fb0a84364eeb405b601 + [ip_address] => 127.0.0.1 + [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; + [last_activity] => 1303142623 +) +</pre> + + <h2>Removing Session Data</h2> <p>Just as set_userdata() can be used to add information into a session, unset_userdata() can be used to remove it, by passing the session key. For example, if you wanted to remove 'some_name' from your session information: </p> <p><code>$this->session->unset_userdata('some_name');</code></p> @@ -189,27 +206,29 @@ $this->session->unset_userdata(<samp>$array_items</samp>);</code></p> <p><code>$this->session->keep_flashdata('item');</code></p> <h2>Saving Session Data to a Database</h2> <p>While the session data array stored in the user's cookie contains a Session ID, -unless you store session data in a database there is no way to validate it. For some applications that require little or no -security, session ID validation may not be needed, but if your application requires security, validation is mandatory. Otherwise, an old session +unless you store session data in a database there is no way to validate it. For some applications that require little or no +security, session ID validation may not be needed, but if your application requires security, validation is mandatory. Otherwise, an old session could be restored by a user modifying their cookies.</p> <p>When session data is available in a database, every time a valid session is found in the user's cookie, a database -query is performed to match it. If the session ID does not match, the session is destroyed. Session IDs can never +query is performed to match it. If the session ID does not match, the session is destroyed. Session IDs can never be updated, they can only be generated when a new session is created.</p> -<p>In order to store sessions, you must first create a database table for this purpose. Here is the basic +<p>In order to store sessions, you must first create a database table for this purpose. Here is the basic prototype (for MySQL) required by the session class:</p> -<textarea class="textarea" style="width:100%" cols="50" rows="8"> -CREATE TABLE IF NOT EXISTS `ci_sessions` ( -session_id varchar(40) DEFAULT '0' NOT NULL, -ip_address varchar(16) DEFAULT '0' NOT NULL, -user_agent varchar(50) NOT NULL, -last_activity int(10) unsigned DEFAULT 0 NOT NULL, -user_data text DEFAULT '' NOT NULL, -PRIMARY KEY (session_id) -);</textarea> +<textarea class="textarea" style="width:100%" cols="50" rows="10"> +CREATE TABLE IF NOT EXISTS `ci_sessions` ( + session_id varchar(40) DEFAULT '0' NOT NULL, + ip_address varchar(16) DEFAULT '0' NOT NULL, + user_agent varchar(120) NOT NULL, + last_activity int(10) unsigned DEFAULT 0 NOT NULL, + user_data text NOT NULL, + PRIMARY KEY (session_id), + KEY `last_activity_idx` (`last_activity`) +); +</textarea> <p><strong>Note:</strong> By default the table is called <dfn>ci_sessions</dfn>, but you can name it anything you want as long as you update the <kbd>application/config/config.php</kbd> file so that it contains the name you have chosen. @@ -230,7 +249,7 @@ do not need to write your own routine to do it.</p> <h2>Destroying a Session </h2> <p>To clear the current session: </p> <code>$this->session->sess_destroy();</code> -<p class="important"><strong>Note:</strong> This function should be the last one called, and even flash variables will no longer be available. If you only want some items destroyed and not all, use <dfn>unset_userdata()</dfn>.</p> +<p class="important"><strong>Note:</strong> This function should be the last one called, and even flash variables will no longer be available. If you only want some items destroyed and not all, use <dfn>unset_userdata()</dfn>.</p> @@ -273,7 +292,7 @@ do not need to write your own routine to do it.</p> <td class="td"><strong>sess_use_database</strong></td> <td class="td">FALSE</td> <td class="td">TRUE/FALSE (boolean)</td> - <td class="td">Whether to save the session data to a database. You must create the table before enabling this option.</td> + <td class="td">Whether to save the session data to a database. You must create the table before enabling this option.</td> </tr> <tr> <td class="td"><strong>sess_table_name</strong></td> @@ -291,7 +310,7 @@ do not need to write your own routine to do it.</p> <td class="td"><strong>sess_match_ip</strong></td> <td class="td">FALSE</td> <td class="td">TRUE/FALSE (boolean)</td> - <td class="td">Whether to match the user's IP address when reading the session data. Note that some ISPs dynamically + <td class="td">Whether to match the user's IP address when reading the session data. Note that some ISPs dynamically changes the IP, so if you want a non-expiring session you will likely set this to FALSE.</td> </tr> <tr> diff --git a/user_guide/libraries/table.html b/user_guide/libraries/table.html index 9de70775a..a08f95032 100644 --- a/user_guide/libraries/table.html +++ b/user_guide/libraries/table.html @@ -27,7 +27,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -130,11 +130,11 @@ echo $this->table->generate(); <h2>Changing the Look of Your Table</h2> -<p>The Table Class permits you to set a table template with which you can specify the design of your layout. Here is the template +<p>The Table Class permits you to set a table template with which you can specify the design of your layout. Here is the template prototype:</p> <code> -$tmpl = array (<br /> +$tmpl = array (<br /> 'table_open' => '<table border="0" cellpadding="4" cellspacing="0">',<br /> <br /> 'heading_row_start' => '<tr>',<br /> @@ -159,14 +159,14 @@ $tmpl = array (<br /> $this->table->set_template($tmpl); </code> -<p class="important"><strong>Note:</strong> You'll notice there are two sets of "row" blocks in the template. These permit you to create alternating row colors or design elements that alternate with each +<p class="important"><strong>Note:</strong> You'll notice there are two sets of "row" blocks in the template. These permit you to create alternating row colors or design elements that alternate with each iteration of the row data.</p> -<p>You are NOT required to submit a complete template. If you only need to change parts of the layout you can simply submit those elements. +<p>You are NOT required to submit a complete template. If you only need to change parts of the layout you can simply submit those elements. In this example, only the table opening tag is being changed:</p> <code> -$tmpl = array ( 'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br /> +$tmpl = array ( 'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br /> <br /> $this->table->set_template($tmpl); @@ -176,7 +176,7 @@ $this->table->set_template($tmpl); <h1>Function Reference</h1> <h2>$this->table->generate()</h2> -<p>Returns a string containing the generated table. Accepts an optional parameter which can be an array or a database result object.</p> +<p>Returns a string containing the generated table. Accepts an optional parameter which can be an array or a database result object.</p> <h2>$this->table->set_caption()</h2> @@ -186,19 +186,19 @@ $this->table->set_template($tmpl); <h2>$this->table->set_heading()</h2> -<p>Permits you to set the table heading. You can submit an array or discrete params:</p> +<p>Permits you to set the table heading. You can submit an array or discrete params:</p> <code>$this->table->set_heading('Name', 'Color', 'Size');</code> <code>$this->table->set_heading(array('Name', 'Color', 'Size'));</code> <h2>$this->table->add_row()</h2> -<p>Permits you to add a row to your table. You can submit an array or discrete params:</p> +<p>Permits you to add a row to your table. You can submit an array or discrete params:</p> <code>$this->table->add_row('Blue', 'Red', 'Green');</code> <code>$this->table->add_row(array('Blue', 'Red', 'Green'));</code> -<p>If you would like to set an individual cell's tag attributes, you can use an associative array for that cell. The associative key <dfn>'data'</dfn> defines the cell's data. Any other key => val pairs are added as <dfn>key='val'</dfn> attributes to the tag:</p> +<p>If you would like to set an individual cell's tag attributes, you can use an associative array for that cell. The associative key <dfn>'data'</dfn> defines the cell's data. Any other key => val pairs are added as <dfn>key='val'</dfn> attributes to the tag:</p> <code>$cell = array('data' => 'Blue', 'class' => 'highlight', 'colspan' => 2);<br /> $this->table->add_row($cell, 'Red', 'Green');<br /> @@ -211,8 +211,8 @@ $this->table->add_row($cell, 'Red', 'Green');<br /> <p>This function takes a one-dimensional array as input and creates a multi-dimensional array with a depth equal to the number of -columns desired. This allows a single array with many elements to be -displayed in a table that has a fixed column count. Consider this example:</p> +columns desired. This allows a single array with many elements to be +displayed in a table that has a fixed column count. Consider this example:</p> <code> $list = array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve');<br /> @@ -241,7 +241,7 @@ $this->table->generate($new_list);<br /> <p>Permits you to set your template. You can submit a full or partial template.</p> <code> -$tmpl = array ( 'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br /> +$tmpl = array ( 'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br /> <br /> $this->table->set_template($tmpl); @@ -250,7 +250,7 @@ $this->table->set_template($tmpl); <h2>$this->table->set_empty()</h2> -<p>Let's you set a default value for use in any table cells that are empty. You might, for example, set a non-breaking space:</p> +<p>Let's you set a default value for use in any table cells that are empty. You might, for example, set a non-breaking space:</p> <code> $this->table->set_empty("&nbsp;"); @@ -258,7 +258,7 @@ $this->table->set_empty("&nbsp;"); <h2>$this->table->clear()</h2> -<p>Lets you clear the table heading and row data. If you need to show multiple tables with different data you should +<p>Lets you clear the table heading and row data. If you need to show multiple tables with different data you should to call this function after each table has been generated to empty the previous table information. Example:</p> <code> diff --git a/user_guide/libraries/trackback.html b/user_guide/libraries/trackback.html index 32b1ee258..4f5ca6ce1 100644 --- a/user_guide/libraries/trackback.html +++ b/user_guide/libraries/trackback.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -101,29 +101,29 @@ else<br /> <li><strong>ping_url</strong> - The URL of the site you are sending the Trackback to. You can send Trackbacks to multiple URLs by separating each URL with a comma.</li> <li><strong>url</strong> - The URL to YOUR site where the weblog entry can be seen.</li> <li><strong>title</strong> - The title of your weblog entry.</li> -<li><strong>excerpt</strong> - The content of your weblog entry. Note: the Trackback class will automatically send only the first 500 characters of your entry. It will also strip all HTML.</li> +<li><strong>excerpt</strong> - The content of your weblog entry. Note: the Trackback class will automatically send only the first 500 characters of your entry. It will also strip all HTML.</li> <li><strong>blog_name</strong> - The name of your weblog.</li> -<li><strong>charset</strong> - The character encoding your weblog is written in. If omitted, UTF-8 will be used.</li> +<li><strong>charset</strong> - The character encoding your weblog is written in. If omitted, UTF-8 will be used.</li> </ul> -<p>The Trackback sending function returns TRUE/FALSE (boolean) on success or failure. If it fails, you can retrieve the error message using:</p> +<p>The Trackback sending function returns TRUE/FALSE (boolean) on success or failure. If it fails, you can retrieve the error message using:</p> <code>$this->trackback->display_errors();</code> <h2>Receiving Trackbacks</h2> -<p>Before you can receive Trackbacks you must create a weblog. If you don't have a blog yet there's no point in continuing.</p> +<p>Before you can receive Trackbacks you must create a weblog. If you don't have a blog yet there's no point in continuing.</p> <p>Receiving Trackbacks is a little more complex than sending them, only because you will need a database table in which to store them, -and you will need to validate the incoming trackback data. You are encouraged to implement a thorough validation process to -guard against spam and duplicate data. You may also want to limit the number of Trackbacks you allow from a particular IP within -a given span of time to further curtail spam. The process of receiving a Trackback is quite simple; +and you will need to validate the incoming trackback data. You are encouraged to implement a thorough validation process to +guard against spam and duplicate data. You may also want to limit the number of Trackbacks you allow from a particular IP within +a given span of time to further curtail spam. The process of receiving a Trackback is quite simple; the validation is what takes most of the effort.</p> <h2>Your Ping URL</h2> -<p>In order to accept Trackbacks you must display a Trackback URL next to each one of your weblog entries. This will be the URL +<p>In order to accept Trackbacks you must display a Trackback URL next to each one of your weblog entries. This will be the URL that people will use to send you Trackbacks (we will refer to this as your "Ping URL").</p> <p>Your Ping URL must point to a controller function where your Trackback receiving code is located, and the URL @@ -140,7 +140,7 @@ Ping URLs will look something like this:</p> <h2>Creating a Trackback Table</h2> -<p>Before you can receive Trackbacks you must create a table in which to store them. Here is a basic prototype for such a table:</p> +<p>Before you can receive Trackbacks you must create a table in which to store them. Here is a basic prototype for such a table:</p> <textarea class="textarea" style="width:100%" cols="50" rows="13"> CREATE TABLE trackbacks ( @@ -162,7 +162,7 @@ but to make the data more useful we've added a few more fields in the above tabl <h2>Processing a Trackback</h2> -<p>Here is an example showing how you will receive and process a Trackback. The following +<p>Here is an example showing how you will receive and process a Trackback. The following code is intended for use within the controller function where you expect to receive Trackbacks.</p> <code>$this->load->library('trackback');<br /> @@ -196,7 +196,7 @@ $this->trackback->send_success();</code> <h4>Notes:</h4> -<p>The entry ID number is expected in the third segment of your URL. This is based on the URI example we gave earlier:</p> +<p>The entry ID number is expected in the third segment of your URL. This is based on the URI example we gave earlier:</p> <code>http://example.com/index.php/trackback/receive/<samp>entry_id</samp></code> @@ -204,12 +204,12 @@ $this->trackback->send_success();</code> <code>$this->uri->segment(3);</code> -<p>In our Trackback receiving code above, if the third segment is missing, we will issue an error. Without a valid entry ID, there's no +<p>In our Trackback receiving code above, if the third segment is missing, we will issue an error. Without a valid entry ID, there's no reason to continue.</p> <p>The <dfn>$this->trackback->receive()</dfn> function is simply a validation function that looks at the incoming data and makes sure it contains the four pieces of data that are required (url, title, excerpt, blog_name). -It returns TRUE on success and FALSE on failure. If it fails you will issue an error message.</p> +It returns TRUE on success and FALSE on failure. If it fails you will issue an error message.</p> <p>The incoming Trackback data can be retrieved using this function:</p> diff --git a/user_guide/libraries/typography.html b/user_guide/libraries/typography.html index 9c4272b37..333f77a7d 100644 --- a/user_guide/libraries/typography.html +++ b/user_guide/libraries/typography.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -71,7 +71,7 @@ Typography Class <h2>auto_typography()</h2> -<p>Formats text so that it is semantically and typographically correct HTML. Takes a string as input and returns it with +<p>Formats text so that it is semantically and typographically correct HTML. Takes a string as input and returns it with the following formatting:</p> <ul> @@ -133,7 +133,7 @@ This function is identical to the native PHP <dfn>nl2br()</dfn> function, except <h2>protect_braced_quotes</h2> <p>When using the Typography library in conjunction with the Template Parser library it can often be desirable to protect single - and double quotes within curly braces. To enable this, set the <kbd>protect_braced_quotes</kbd> class property to <samp>TRUE</samp>.</p> + and double quotes within curly braces. To enable this, set the <kbd>protect_braced_quotes</kbd> class property to <samp>TRUE</samp>.</p> <p>Usage example:</p> diff --git a/user_guide/libraries/unit_testing.html b/user_guide/libraries/unit_testing.html index 49c5881e1..a4305129f 100644 --- a/user_guide/libraries/unit_testing.html +++ b/user_guide/libraries/unit_testing.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -92,7 +92,7 @@ $test_name = 'Adds one plus one';<br /> <br /> $this->unit->run($test, $expected_result, $test_name);</code> -<p>The expected result you supply can either be a literal match, or a data type match. Here's an example of a literal:</p> +<p>The expected result you supply can either be a literal match, or a data type match. Here's an example of a literal:</p> <code>$this->unit->run('Foo', 'Foo');</code> @@ -100,8 +100,8 @@ $this->unit->run($test, $expected_result, $test_name);</code> <code>$this->unit->run('Foo', 'is_string');</code> -<p>Notice the use of "is_string" in the second parameter? This tells the function to evaluate whether your test is producing a string -as the result. Here is a list of allowed comparison types:</p> +<p>Notice the use of "is_string" in the second parameter? This tells the function to evaluate whether your test is producing a string +as the result. Here is a list of allowed comparison types:</p> <ul> <li>is_object</li> @@ -129,18 +129,18 @@ To show a report directly simply echo or return the <var>run</var> function:</p> <code>echo $this->unit->report();</code> -<p>The report will be formatted in an HTML table for viewing. If you prefer the raw data you can retrieve an array using:</p> +<p>The report will be formatted in an HTML table for viewing. If you prefer the raw data you can retrieve an array using:</p> <code>echo $this->unit->result();</code> <h2>Strict Mode</h2> -<p>By default the unit test class evaluates literal matches loosely. Consider this example:</p> +<p>By default the unit test class evaluates literal matches loosely. Consider this example:</p> <code>$this->unit->run(1, TRUE);</code> -<p>The test is evaluating an integer, but the expected result is a boolean. PHP, however, due to it's loose data-typing +<p>The test is evaluating an integer, but the expected result is a boolean. PHP, however, due to it's loose data-typing will evaluate the above code as TRUE using a normal equality test:</p> <code>if (1 == TRUE) echo 'This evaluates as true';</code> @@ -184,8 +184,8 @@ You can customize which of these items get displayed by using <kbd>$this->unit-> <h3>Creating a Template</h3> -<p>If you would like your test results formatted differently then the default you can set your own template. Here is an -example of a simple template. Note the required pseudo-variables:</p> +<p>If you would like your test results formatted differently then the default you can set your own template. Here is an +example of a simple template. Note the required pseudo-variables:</p> <code> $str = '<br /> diff --git a/user_guide/libraries/uri.html b/user_guide/libraries/uri.html index 0dbaffa49..884f4b955 100644 --- a/user_guide/libraries/uri.html +++ b/user_guide/libraries/uri.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -106,7 +106,7 @@ re-routed URI in the event you are using CodeIgniter's <a href="../general/routi <h2>$this->uri->slash_segment(<var>n</var>)</h2> <p>This function is almost identical to <dfn>$this->uri->segment()</dfn>, except it adds a trailing and/or leading slash based on the second -parameter. If the parameter is not used, a trailing slash added. Examples:</p> +parameter. If the parameter is not used, a trailing slash added. Examples:</p> <code>$this->uri->slash_segment(<var>3</var>);<br /> $this->uri->slash_segment(<var>3</var>, 'leading');<br /> @@ -130,7 +130,7 @@ re-routed URI in the event you are using CodeIgniter's <a href="../general/routi <h2>$this->uri->uri_to_assoc(<var>n</var>)</h2> -<p>This function lets you turn URI segments into and associative array of key/value pairs. Consider this URI:</p> +<p>This function lets you turn URI segments into and associative array of key/value pairs. Consider this URI:</p> <code>index.php/user/search/name/joe/location/UK/gender/male</code> @@ -143,7 +143,7 @@ re-routed URI in the event you are using CodeIgniter's <a href="../general/routi 'gender' => 'male'<br /> )</code> -<p>The first parameter of the function lets you set an offset. By default it is set to <kbd>3</kbd> since your +<p>The first parameter of the function lets you set an offset. By default it is set to <kbd>3</kbd> since your URI will normally contain a controller/function in the first and second segments. Example:</p> <code> @@ -173,19 +173,19 @@ re-routed URI in the event you are using CodeIgniter's <a href="../general/routi <h2>$this->uri->assoc_to_uri()</h2> -<p>Takes an associative array as input and generates a URI string from it. The array keys will be included in the string. Example:</p> +<p>Takes an associative array as input and generates a URI string from it. The array keys will be included in the string. Example:</p> <code>$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red');<br /> <br /> $str = $this->uri->assoc_to_uri($array);<br /> <br /> -// Produces: product/shoes/size/large/color/red +// Produces: product/shoes/size/large/color/red </code> <h2>$this->uri->uri_string()</h2> -<p>Returns a string with the complete URI. For example, if this is your full URL:</p> +<p>Returns a string with the complete URI. For example, if this is your full URL:</p> <code>http://example.com/index.php/news/local/345</code> @@ -215,7 +215,7 @@ re-routed URI in the event you are using CodeIgniter's <a href="../general/routi <h2>$this->uri->segment_array()</h2> -<p>Returns an array containing the URI segments. For example:</p> +<p>Returns an array containing the URI segments. For example:</p> <code> $segs = $this->uri->segment_array();<br /> diff --git a/user_guide/libraries/user_agent.html b/user_guide/libraries/user_agent.html index 8989fb2e1..6b23102b1 100644 --- a/user_guide/libraries/user_agent.html +++ b/user_guide/libraries/user_agent.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -70,13 +70,13 @@ In addition you can get referrer information as well as language and supported c <h2>User Agent Definitions</h2> -<p>The user agent name definitions are located in a config file located at: <dfn>application/config/user_agents.php</dfn>. You may add items to the +<p>The user agent name definitions are located in a config file located at: <dfn>application/config/user_agents.php</dfn>. You may add items to the various user agent arrays if needed.</p> <h2>Example</h2> <p>When the User Agent class is initialized it will attempt to determine whether the user agent browsing your site is -a web browser, a mobile device, or a robot. It will also gather the platform information if it is available.</p> +a web browser, a mobile device, or a robot. It will also gather the platform information if it is available.</p> <code> @@ -84,7 +84,7 @@ $this->load->library('user_agent');<br /> <br /> if ($this->agent->is_browser())<br /> {<br /> - $agent = $this->agent->browser().' '.$this->agent->version();<br /> + $agent = $this->agent->browser().' '.$this->agent->version();<br /> }<br /> elseif ($this->agent->is_robot())<br /> {<br /> @@ -143,7 +143,7 @@ else<br /> <p>Returns TRUE/FALSE (boolean) if the user agent is a known robot.</p> <p class="important"><strong>Note:</strong> The user agent library only contains the most common robot -definitions. It is not a complete list of bots. There are hundreds of them so searching for each one would not be +definitions. It is not a complete list of bots. There are hundreds of them so searching for each one would not be very efficient. If you find that some bots that commonly visit your site are missing from the list you can add them to your <dfn>application/config/user_agents.php</dfn> file.</p> @@ -176,7 +176,7 @@ very efficient. If you find that some bots that commonly visit your site are mis <h2>$this->agent->agent_string()</h2> -<p>Returns a string containing the full user agent string. Typically it will be something like this:</p> +<p>Returns a string containing the full user agent string. Typically it will be something like this:</p> <code>Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2</code> diff --git a/user_guide/libraries/xmlrpc.html b/user_guide/libraries/xmlrpc.html index 7a8934d39..f7aa6fe42 100644 --- a/user_guide/libraries/xmlrpc.html +++ b/user_guide/libraries/xmlrpc.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -67,11 +67,11 @@ your own XML-RPC server to receive requests.</p> <p>Quite simply it is a way for two computers to communicate over the internet using XML. One computer, which we will call the <dfn>client</dfn>, sends an XML-RPC <strong>request</strong> to -another computer, which we will call the <dfn>server</dfn>. Once the server receives and processes the request it +another computer, which we will call the <dfn>server</dfn>. Once the server receives and processes the request it will send back a <strong>response</strong> to the client.</p> <p>For example, using the MetaWeblog API, an XML-RPC Client (usually a desktop publishing tool) will -send a request to an XML-RPC Server running on your site. This request might be a new weblog entry +send a request to an XML-RPC Server running on your site. This request might be a new weblog entry being sent for publication, or it could be a request for an existing entry for editing. When the XML-RPC Server receives this request it will examine it to determine which class/method should be called to process the request. @@ -127,16 +127,16 @@ if ( ! $this->xmlrpc->send_request())<br /> <h3>Explanation</h3> -<p>The above code initializes the XML-RPC class, sets the server URL and method to be called (weblogUpdates.ping). The +<p>The above code initializes the XML-RPC class, sets the server URL and method to be called (weblogUpdates.ping). The request (in this case, the title and URL of your site) is placed into an array for transportation, and compiled using the request() function. -Lastly, the full request is sent. If the <dfn>send_request()</dfn> method returns false we will display the error message +Lastly, the full request is sent. If the <dfn>send_request()</dfn> method returns false we will display the error message sent back from the XML-RPC Server.</p> <h2>Anatomy of a Request</h2> -<p>An XML-RPC <dfn>request</dfn> is simply the data you are sending to the XML-RPC server. Each piece of data in a request -is referred to as a <dfn>request parameter</dfn>. The above example has two parameters: +<p>An XML-RPC <dfn>request</dfn> is simply the data you are sending to the XML-RPC server. Each piece of data in a request +is referred to as a <dfn>request parameter</dfn>. The above example has two parameters: The URL and title of your site. When the XML-RPC server receives your request, it will look for parameters it requires.</p> <p>Request parameters must be placed into an array for transportation, and each parameter can be one @@ -161,7 +161,7 @@ $request = array (<br /> <br /> $this->xmlrpc->request($request);</code> -The <a href="#datatypes">Data Types</a> section below has a full list of data types. +The <a href="#datatypes">Data Types</a> section below has a full list of data types. @@ -198,7 +198,7 @@ server will load the <dfn>My_blog</dfn> class and call the <dfn>new_entry</dfn> If the request is for the <var>update_post</var> method, your server will load the <dfn>My_blog</dfn> class and call the <dfn>update_entry</dfn> function.</p> -<p>The function names in the above example are arbitrary. You'll decide what they should be called on your server, +<p>The function names in the above example are arbitrary. You'll decide what they should be called on your server, or if you are using standardized APIs, like the Blogger or MetaWeblog API, you'll use their function names.</p> <p>There are two additional configuration keys you may make use of when initializing the server class: <var>debug</var> can be set to TRUE in order to enable debugging, and <var>xss_clean</var> may be set to FALSE to prevent sending data through the Security library's xss_clean function. @@ -221,12 +221,12 @@ to exist with this prototype:</p> </code> <p>The <var>$request</var> variable is an object compiled by the Server, which contains the data sent by the XML-RPC Client. -Using this object you will have access to the <em>request parameters</em> enabling you to process the request. When +Using this object you will have access to the <em>request parameters</em> enabling you to process the request. When you are done you will send a <dfn>Response</dfn> back to the Client.</p> -<p>Below is a real-world example, using the Blogger API. One of the methods in the Blogger API is <dfn>getUserInfo()</dfn>. +<p>Below is a real-world example, using the Blogger API. One of the methods in the Blogger API is <dfn>getUserInfo()</dfn>. Using this method, an XML-RPC Client can send the Server a username and password, in return the Server sends -back information about that particular user (nickname, user ID, email address, etc.). Here is how the processing +back information about that particular user (nickname, user ID, email address, etc.). Here is how the processing function might look:</p> @@ -272,14 +272,14 @@ In the above example, the output parameters will be the username and password.</ <h2>Formatting a Response</h2> -<p>Similar to <em>Requests</em>, <em>Responses</em> must be formatted as an array. However, unlike requests, a response is an array -<strong>that contains a single item</strong>. This item can be an array with several additional arrays, but there -can be only one primary array index. In other words, the basic prototype is this:</p> +<p>Similar to <em>Requests</em>, <em>Responses</em> must be formatted as an array. However, unlike requests, a response is an array +<strong>that contains a single item</strong>. This item can be an array with several additional arrays, but there +can be only one primary array index. In other words, the basic prototype is this:</p> -<code>$response = array('Response data', 'array');</code> +<code>$response = array('Response data', 'array');</code> <p>Responses, however, usually contain multiple pieces of information. In order to accomplish this we must put the response into its own -array so that the primary array continues to contain a single piece of data. Here's an example showing how this might be accomplished:</p> +array so that the primary array continues to contain a single piece of data. Here's an example showing how this might be accomplished:</p> <code> $response = array (<br /> @@ -293,9 +293,9 @@ $response = array (<br /> ); </code> -<p class="important">Notice that the above array is formatted as a <dfn>struct</dfn>. This is the most common data type for responses.</p> +<p class="important">Notice that the above array is formatted as a <dfn>struct</dfn>. This is the most common data type for responses.</p> -<p>As with Requests, a response can be one of the seven data types listed in the <a href="#datatypes">Data Types</a> section.</p> +<p>As with Requests, a response can be one of the seven data types listed in the <a href="#datatypes">Data Types</a> section.</p> <h2>Sending an Error Response</h2> @@ -314,7 +314,7 @@ $response = array (<br /> <h2>Creating Your Own Client and Server</h2> <p>To help you understand everything we've covered thus far, let's create a couple controllers that act as -XML-RPC Client and Server. You'll use the Client to send a request to the Server and receive a response.</p> +XML-RPC Client and Server. You'll use the Client to send a request to the Server and receive a response.</p> <h3>The Client</h3> @@ -352,7 +352,7 @@ class Xmlrpc_client extends CI_Controller { } ?></textarea> -<p>Note: In the above code we are using a "url helper". You can find more information in the <a href="../general/helpers.html">Helpers Functions</a> page.</p> +<p>Note: In the above code we are using a "url helper". You can find more information in the <a href="../general/helpers.html">Helpers Functions</a> page.</p> <h3>The Server</h3> @@ -381,7 +381,7 @@ class Xmlrpc_server extends CI_Controller { $response = array( array( - 'you_said' => $parameters['0'], + 'you_said' => $parameters['0'], 'i_respond' => 'Not bad at all.'), 'struct'); @@ -452,7 +452,7 @@ The Server receives the request and maps it to the "process" function, where a r $this->xmlrpc->request($request);</code> <h2>$this->xmlrpc->send_request()</h2> -<p>The request sending function. Returns boolean TRUE or FALSE based on success for failure, enabling it to be used conditionally.</p> +<p>The request sending function. Returns boolean TRUE or FALSE based on success for failure, enabling it to be used conditionally.</p> <h2>$this->xmlrpc->set_debug(TRUE);</h2> <p>Enables debugging, which will display a variety of information and error data helpful during development.</p> @@ -463,7 +463,7 @@ $this->xmlrpc->request($request);</code> <code>echo $this->xmlrpc->display_error();</code> <h2>$this->xmlrpc->display_response()</h2> -<p>Returns the response from the remote server once request is received. The response will typically be an associative array.</p> +<p>Returns the response from the remote server once request is received. The response will typically be an associative array.</p> <code>$this->xmlrpc->display_response();</code> <h2>$this->xmlrpc->send_error_message()</h2> diff --git a/user_guide/libraries/zip.html b/user_guide/libraries/zip.html index 48e2562be..e6405cc8f 100644 --- a/user_guide/libraries/zip.html +++ b/user_guide/libraries/zip.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -81,7 +81,7 @@ $this->zip->add_data($name, $data);<br /> // Write the zip file to a folder on your server. Name it "my_backup.zip"<br /> $this->zip->archive('/path/to/directory/my_backup.zip'); <br /><br /> - // Download the file to your desktop. Name it "my_backup.zip"<br /> + // Download the file to your desktop. Name it "my_backup.zip"<br /> $this->zip->download('my_backup.zip'); </code> @@ -100,7 +100,7 @@ $this->zip->add_data($name, $data); </code> <p>You are allowed multiple calls to this function in order to -add several files to your archive. Example:</p> +add several files to your archive. Example:</p> <code> $name = 'mydata1.txt';<br /> @@ -139,8 +139,8 @@ $this->zip->add_data($name, $data); <h2>$this->zip->add_dir()</h2> -<p>Permits you to add a directory. Usually this function is unnecessary since you can place your data into folders when -using <dfn>$this->zip->add_data()</dfn>, but if you would like to create an empty folder you can do so. Example:</p> +<p>Permits you to add a directory. Usually this function is unnecessary since you can place your data into folders when +using <dfn>$this->zip->add_data()</dfn>, but if you would like to create an empty folder you can do so. Example:</p> <code>$this->zip->add_dir('myfolder'); // Creates a folder called "myfolder"</code> @@ -148,49 +148,49 @@ using <dfn>$this->zip->add_data()</dfn>, but if you would like to create an empt <h2>$this->zip->read_file()</h2> -<p>Permits you to compress a file that already exists somewhere on your server. Supply a file path and the zip class will +<p>Permits you to compress a file that already exists somewhere on your server. Supply a file path and the zip class will read it and add it to the archive:</p> <code> $path = '/path/to/photo.jpg';<br /><br /> $this->zip->read_file($path); <br /><br /> - // Download the file to your desktop. Name it "my_backup.zip"<br /> + // Download the file to your desktop. Name it "my_backup.zip"<br /> $this->zip->download('my_backup.zip'); </code> <p>If you would like the Zip archive to maintain the directory structure of the file in it, pass <kbd>TRUE</kbd> (boolean) in the -second parameter. Example:</p> +second parameter. Example:</p> <code> $path = '/path/to/photo.jpg';<br /><br /> $this->zip->read_file($path, <kbd>TRUE</kbd>); <br /><br /> - // Download the file to your desktop. Name it "my_backup.zip"<br /> + // Download the file to your desktop. Name it "my_backup.zip"<br /> $this->zip->download('my_backup.zip'); </code> -<p>In the above example, <dfn>photo.jpg</dfn> will be placed inside two folders: <kbd>path/to/</kbd></p> +<p>In the above example, <dfn>photo.jpg</dfn> will be placed inside two folders: <kbd>path/to/</kbd></p> <h2>$this->zip->read_dir()</h2> -<p>Permits you to compress a folder (and its contents) that already exists somewhere on your server. Supply a file path to the -directory and the zip class will recursively read it and recreate it as a Zip archive. All files contained within the -supplied path will be encoded, as will any sub-folders contained within it. Example:</p> +<p>Permits you to compress a folder (and its contents) that already exists somewhere on your server. Supply a file path to the +directory and the zip class will recursively read it and recreate it as a Zip archive. All files contained within the +supplied path will be encoded, as will any sub-folders contained within it. Example:</p> <code> $path = '/path/to/your/directory/';<br /><br /> $this->zip->read_dir($path); <br /><br /> - // Download the file to your desktop. Name it "my_backup.zip"<br /> + // Download the file to your desktop. Name it "my_backup.zip"<br /> $this->zip->download('my_backup.zip'); </code> <p>By default the Zip archive will place all directories listed in the first parameter inside the zip. If you want the tree preceding the target folder to be ignored -you can pass <kbd>FALSE</kbd> (boolean) in the second parameter. Example:</p> +you can pass <kbd>FALSE</kbd> (boolean) in the second parameter. Example:</p> <code> $path = '/path/to/your/directory/';<br /><br /> @@ -204,7 +204,7 @@ $this->zip->read_dir($path, FALSE); <h2>$this->zip->archive()</h2> -<p>Writes the Zip-encoded file to a directory on your server. Submit a valid server path ending in the file name. Make sure the +<p>Writes the Zip-encoded file to a directory on your server. Submit a valid server path ending in the file name. Make sure the directory is writable (666 or 777 is usually OK). Example:</p> <code>$this->zip->archive('/path/to/folder/myarchive.zip'); // Creates a file named myarchive.zip</code> @@ -223,7 +223,7 @@ that cause the download to happen and the file to be treated as binary.</p> <h2>$this->zip->get_zip()</h2> -<p>Returns the Zip-compressed file data. Generally you will not need this function unless you want to do something unique with the data. +<p>Returns the Zip-compressed file data. Generally you will not need this function unless you want to do something unique with the data. Example:</p> <code> @@ -279,7 +279,7 @@ Previous Topic: <a href="xmlrpc.html"> XML-RPC Class</a> · <a href="#top">Top of Page</a> · <a href="../index.html">User Guide Home</a> · -Next Topic: <a href="../helpers/array_helper.html">Array Helper</a> +Next Topic: <a href="caching.html">Caching Class</a> </p> <p><a href="http://codeigniter.com">CodeIgniter</a> · Copyright © 2006 - 2011 · <a href="http://ellislab.com/">EllisLab, Inc.</a></p> </div> diff --git a/user_guide/license.html b/user_guide/license.html index bb01a7e8d..ecc5b500d 100644 --- a/user_guide/license.html +++ b/user_guide/license.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="toc.html">Table of Contents Page</a></td> </tr> </table> @@ -63,7 +63,7 @@ License Agreement <p>Copyright (c) 2008 - 2011, EllisLab, Inc.<br /> All rights reserved.</p> -<p>This license is a legal agreement between you and EllisLab Inc. for the use of CodeIgniter Software (the "Software"). By obtaining the Software you agree to comply with the terms and conditions of this license.</p> +<p>This license is a legal agreement between you and EllisLab Inc. for the use of CodeIgniter Software (the "Software"). By obtaining the Software you agree to comply with the terms and conditions of this license.</p> <h2>Permitted Use</h2> <p>You are permitted to use, copy, modify, and distribute the Software and its documentation, with or without modification, for any purpose, provided that the following conditions are met:</p> diff --git a/user_guide/nav/hacks.txt b/user_guide/nav/hacks.txt index 8c17f008a..183481b78 100644 --- a/user_guide/nav/hacks.txt +++ b/user_guide/nav/hacks.txt @@ -1,6 +1,6 @@ I did the following hack in moo.fx.js: -At line 79 in the toggle: function() function, I added: +At line 79 in the toggle: function() function, I added: document.getElementById('nav').style.display = 'block'; diff --git a/user_guide/nav/moo.fx.js b/user_guide/nav/moo.fx.js index 256371d19..b21ee20e0 100755 --- a/user_guide/nav/moo.fx.js +++ b/user_guide/nav/moo.fx.js @@ -25,8 +25,8 @@ fx.Base.prototype = { }, step: function() { - var time = (new Date).getTime(); - var Tpos = (time - this.startTime) / (this.duration); + var time = (new Date).getTime(); + var Tpos = (time - this.startTime) / (this.duration); if (time >= this.duration+this.startTime) { this.now = this.to; clearInterval (this.timer); diff --git a/user_guide/nav/nav.js b/user_guide/nav/nav.js index eaa5f6237..b44994d4d 100644 --- a/user_guide/nav/nav.js +++ b/user_guide/nav/nav.js @@ -50,6 +50,8 @@ function create_menu(basepath) '<li><a href="'+base+'general/helpers.html">Helpers</a></li>' + '<li><a href="'+base+'general/libraries.html">Using CodeIgniter Libraries</a></li>' + '<li><a href="'+base+'general/creating_libraries.html">Creating Your Own Libraries</a></li>' + + '<li><a href="'+base+'general/drivers.html">Using CodeIgniter Drivers</a></li>' + + '<li><a href="'+base+'general/creating_drivers.html">Creating Your Own Drivers</a></li>' + '<li><a href="'+base+'general/core_classes.html">Creating Core Classes</a></li>' + '<li><a href="'+base+'general/hooks.html">Hooks - Extending the Core</a></li>' + '<li><a href="'+base+'general/autoloader.html">Auto-loading Resources</a></li>' + @@ -58,6 +60,7 @@ function create_menu(basepath) '<li><a href="'+base+'general/errors.html">Error Handling</a></li>' + '<li><a href="'+base+'general/caching.html">Caching</a></li>' + '<li><a href="'+base+'general/profiling.html">Profiling Your Application</a></li>' + + '<li><a href="'+base+'general/cli.html">Running via the CLI</a></li>' + '<li><a href="'+base+'general/managing_apps.html">Managing Applications</a></li>' + '<li><a href="'+base+'general/environments.html">Handling Multiple Environments</a></li>' + '<li><a href="'+base+'general/alternative_php.html">Alternative PHP Syntax</a></li>' + diff --git a/user_guide/nav/prototype.lite.js b/user_guide/nav/prototype.lite.js index e6c362279..857faae4d 100755 --- a/user_guide/nav/prototype.lite.js +++ b/user_guide/nav/prototype.lite.js @@ -1,9 +1,9 @@ -/* Prototype JavaScript framework - * (c) 2005 Sam Stephenson <sam@conio.net> +/* Prototype JavaScript framework + * (c) 2005 Sam Stephenson <sam@conio.net> * - * Prototype is freely distributable under the terms of an MIT-style license. + * Prototype is freely distributable under the terms of an MIT-style license. * - * For details, see the Prototype web site: http://prototype.conio.net/ + * For details, see the Prototype web site: http://prototype.conio.net/ * /*--------------------------------------------------------------------------*/ @@ -11,117 +11,117 @@ //note: this is a stripped down version of prototype, to be used with moo.fx by mad4milk (http://moofx.mad4milk.net). var Class = { - create: function() { + create: function() { return function() { - this.initialize.apply(this, arguments); + this.initialize.apply(this, arguments); } - } + } } Object.extend = function(destination, source) { - for (property in source) { + for (property in source) { destination[property] = source[property]; - } - return destination; + } + return destination; } Function.prototype.bind = function(object) { - var __method = this; - return function() { + var __method = this; + return function() { return __method.apply(object, arguments); - } + } } function $() { - var elements = new Array(); + var elements = new Array(); - for (var i = 0; i < arguments.length; i++) { + for (var i = 0; i < arguments.length; i++) { var element = arguments[i]; if (typeof element == 'string') - element = document.getElementById(element); + element = document.getElementById(element); if (arguments.length == 1) - return element; + return element; elements.push(element); - } + } - return elements; + return elements; } //------------------------- document.getElementsByClassName = function(className) { - var children = document.getElementsByTagName('*') || document.all; - var elements = new Array(); + var children = document.getElementsByTagName('*') || document.all; + var elements = new Array(); - for (var i = 0; i < children.length; i++) { + for (var i = 0; i < children.length; i++) { var child = children[i]; var classNames = child.className.split(' '); for (var j = 0; j < classNames.length; j++) { - if (classNames[j] == className) { + if (classNames[j] == className) { elements.push(child); break; - } + } } - } + } - return elements; + return elements; } //------------------------- if (!window.Element) { - var Element = new Object(); + var Element = new Object(); } Object.extend(Element, { - remove: function(element) { + remove: function(element) { element = $(element); element.parentNode.removeChild(element); - }, + }, - hasClassName: function(element, className) { + hasClassName: function(element, className) { element = $(element); if (!element) - return; + return; var a = element.className.split(' '); for (var i = 0; i < a.length; i++) { - if (a[i] == className) + if (a[i] == className) return true; } return false; - }, + }, - addClassName: function(element, className) { + addClassName: function(element, className) { element = $(element); Element.removeClassName(element, className); element.className += ' ' + className; - }, + }, - removeClassName: function(element, className) { + removeClassName: function(element, className) { element = $(element); if (!element) - return; + return; var newClassName = ''; var a = element.className.split(' '); for (var i = 0; i < a.length; i++) { - if (a[i] != className) { + if (a[i] != className) { if (i > 0) - newClassName += ' '; + newClassName += ' '; newClassName += a[i]; - } + } } element.className = newClassName; - }, + }, - // removes whitespace-only text node children - cleanWhitespace: function(element) { + // removes whitespace-only text node children + cleanWhitespace: function(element) { element = $(element); for (var i = 0; i < element.childNodes.length; i++) { - var node = element.childNodes[i]; - if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + var node = element.childNodes[i]; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) Element.remove(node); } - } + } });
\ No newline at end of file diff --git a/user_guide/overview/appflow.html b/user_guide/overview/appflow.html index c5af8bc15..3b1c42e4c 100644 --- a/user_guide/overview/appflow.html +++ b/user_guide/overview/appflow.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -67,7 +67,7 @@ Appflow <li>The index.php serves as the front controller, initializing the base resources needed to run CodeIgniter.</li> <li>The Router examines the HTTP request to determine what should be done with it.</li> <li>If a cache file exists, it is sent directly to the browser, bypassing the normal system execution.</li> -<li>Security. Before the application controller is loaded, the HTTP request and any user submitted data is filtered for security.</li> +<li>Security. Before the application controller is loaded, the HTTP request and any user submitted data is filtered for security.</li> <li>The Controller loads the model, core libraries, helpers, and any other resources needed to process the specific request.</li> <li>The finalized View is rendered then sent to the web browser to be seen. If caching is enabled, the view is cached first so that on subsequent requests it can be served.</li> diff --git a/user_guide/overview/at_a_glance.html b/user_guide/overview/at_a_glance.html index 9cbc8afb7..1175e7f42 100644 --- a/user_guide/overview/at_a_glance.html +++ b/user_guide/overview/at_a_glance.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -60,7 +60,7 @@ What is CodeIgniter? <h2>CodeIgniter is an Application Framework</h2> -<p>CodeIgniter is a toolkit for people who build web applications using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code +<p>CodeIgniter is a toolkit for people who build web applications using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by minimizing the amount of code needed for a given task.</p> @@ -70,7 +70,7 @@ minimizing the amount of code needed for a given task.</p> For more information please read the <a href="../license.html">license agreement</a>.</p> <h2>CodeIgniter is Light Weight</h2> -<p>Truly light weight. The core system requires only a few very small libraries. This is in stark contrast to many frameworks that require significantly more resources. +<p>Truly light weight. The core system requires only a few very small libraries. This is in stark contrast to many frameworks that require significantly more resources. Additional libraries are loaded dynamically upon request, based on your needs for a given process, so the base system is very lean and quite fast. </p> @@ -84,7 +84,7 @@ is very lean and quite fast. This is particularly good for projects in which designers are working with your template files, as the code these file contain will be minimized. We describe MVC in more detail on its own page.</p> <h2>CodeIgniter Generates Clean URLs</h2> -<p>The URLs generated by CodeIgniter are clean and search-engine friendly. Rather than using the standard "query string" +<p>The URLs generated by CodeIgniter are clean and search-engine friendly. Rather than using the standard "query string" approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a segment-based approach:</p> <code>example.com/<var>news</var>/<dfn>article</dfn>/<samp>345</samp></code> @@ -92,7 +92,7 @@ approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a seg <p>Note: By default the index.php file is included in the URL but it can be removed using a simple .htaccess file.</p> <h2>CodeIgniter Packs a Punch</h2> -<p>CodeIgniter comes with full-range of libraries that enable the most commonly needed web development tasks, +<p>CodeIgniter comes with full-range of libraries that enable the most commonly needed web development tasks, like accessing a database, sending email, validating form data, maintaining sessions, manipulating images, working with XML-RPC data and much more.</p> @@ -104,7 +104,7 @@ much more.</p> <p>Although CodeIgniter <em>does</em> come with a simple template parser that can be optionally used, it does not force you to use one. Template engines simply can not match the performance of native PHP, and the syntax that must be learned to use a template -engine is usually only marginally easier than learning the basics of PHP. Consider this block of PHP code:</p> +engine is usually only marginally easier than learning the basics of PHP. Consider this block of PHP code:</p> <code><ul><br /> <br /> @@ -133,7 +133,7 @@ back into PHP to run. Since one of our goals is <em>maximum performance</em>, we <h2>CodeIgniter is Thoroughly Documented</h2> -<p>Programmers love to code and hate to write documentation. We're no different, of course, but +<p>Programmers love to code and hate to write documentation. We're no different, of course, but since documentation is <strong>as important</strong> as the code itself, we are committed to doing it. Our source code is extremely clean and well commented as well.</p> diff --git a/user_guide/overview/cheatsheets.html b/user_guide/overview/cheatsheets.html index 764d6d9e1..1c58c584f 100644 --- a/user_guide/overview/cheatsheets.html +++ b/user_guide/overview/cheatsheets.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/overview/features.html b/user_guide/overview/features.html index 6dfd15d90..4209463b1 100644 --- a/user_guide/overview/features.html +++ b/user_guide/overview/features.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -59,10 +59,10 @@ Features <h1>CodeIgniter Features</h1> <p>Features in and of themselves are a very poor way to judge an application since they tell you nothing -about the user experience, or how intuitively or intelligently it is designed. Features +about the user experience, or how intuitively or intelligently it is designed. Features don't reveal anything about the quality of the code, or the performance, or the attention to detail, or security practices. The only way to really judge an app is to try it and get to know the code. <a href="../installation/">Installing</a> -CodeIgniter is child's play so we encourage you to do just that. In the mean time here's a list of CodeIgniter's main features.</p> +CodeIgniter is child's play so we encourage you to do just that. In the mean time here's a list of CodeIgniter's main features.</p> <ul> <li>Model-View-Controller Based System</li> @@ -73,7 +73,7 @@ CodeIgniter is child's play so we encourage you to do just that. In the mean ti <li>Security and XSS Filtering</li> <li>Session Management</li> <li>Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, and Mail) and more.</li> -<li>Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM</li> +<li>Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM</li> <li>File Uploading Class</li> <li>FTP Class</li> <li>Localization</li> diff --git a/user_guide/overview/getting_started.html b/user_guide/overview/getting_started.html index 5c00aba3d..168332644 100644 --- a/user_guide/overview/getting_started.html +++ b/user_guide/overview/getting_started.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -57,7 +57,7 @@ Getting Started <h1>Getting Started With CodeIgniter</h1> -<p>Any software application requires some effort to learn. We've done our best to minimize the learning +<p>Any software application requires some effort to learn. We've done our best to minimize the learning curve while making the process as enjoyable as possible. </p> diff --git a/user_guide/overview/goals.html b/user_guide/overview/goals.html index bf7bc8fa2..7f1f7678e 100644 --- a/user_guide/overview/goals.html +++ b/user_guide/overview/goals.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -67,9 +67,9 @@ rejecting anything that doesn't further the stated objective.</p> <p>From a technical and architectural standpoint, CodeIgniter was created with the following objectives:</p> <ul> -<li><strong>Dynamic Instantiation.</strong> In CodeIgniter, components are loaded and routines executed only when requested, rather than globally. No assumptions are made by the system regarding what may be needed beyond the minimal core resources, so the system is very light-weight by default. The events, as triggered by the HTTP request, and the controllers and views you design will determine what is invoked.</li> -<li><strong>Loose Coupling.</strong> Coupling is the degree to which components of a system rely on each other. The less components depend on each other the more reusable and flexible the system becomes. Our goal was a very loosely coupled system.</li> -<li><strong>Component Singularity.</strong> Singularity is the degree to which components have a narrowly focused purpose. In CodeIgniter, each class and its functions are highly autonomous in order to allow maximum usefulness.</li> +<li><strong>Dynamic Instantiation.</strong> In CodeIgniter, components are loaded and routines executed only when requested, rather than globally. No assumptions are made by the system regarding what may be needed beyond the minimal core resources, so the system is very light-weight by default. The events, as triggered by the HTTP request, and the controllers and views you design will determine what is invoked.</li> +<li><strong>Loose Coupling.</strong> Coupling is the degree to which components of a system rely on each other. The less components depend on each other the more reusable and flexible the system becomes. Our goal was a very loosely coupled system.</li> +<li><strong>Component Singularity.</strong> Singularity is the degree to which components have a narrowly focused purpose. In CodeIgniter, each class and its functions are highly autonomous in order to allow maximum usefulness.</li> </ul> <p>CodeIgniter is a dynamically instantiated, loosely coupled system with high component singularity. It strives for simplicity, flexibility, and high performance in a small footprint package.</p> diff --git a/user_guide/overview/index.html b/user_guide/overview/index.html index 63eb5e930..bbe3e36f3 100644 --- a/user_guide/overview/index.html +++ b/user_guide/overview/index.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> diff --git a/user_guide/overview/mvc.html b/user_guide/overview/mvc.html index 0b0fb25ee..9eb327a95 100644 --- a/user_guide/overview/mvc.html +++ b/user_guide/overview/mvc.html @@ -28,7 +28,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> <td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td> </tr> </table> @@ -60,12 +60,12 @@ MVC <p>CodeIgniter is based on the Model-View-Controller development pattern. -MVC is a software approach that separates application logic from presentation. In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.</p> +MVC is a software approach that separates application logic from presentation. In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.</p> <ul> <li>The <strong>Model</strong> represents your data structures. Typically your model classes will contain functions that help you -retrieve, insert, and update information in your database.</li> -<li>The <strong>View</strong> is the information that is being presented to a user. A View will normally be a web page, but +retrieve, insert, and update information in your database.</li> +<li>The <strong>View</strong> is the information that is being presented to a user. A View will normally be a web page, but in CodeIgniter, a view can also be a page fragment like a header or footer. It can also be an RSS page, or any other type of "page".</li> <li>The <strong>Controller</strong> serves as an <em>intermediary</em> between the Model, the View, and any other resources needed to process the HTTP request and generate a web page.</li> diff --git a/user_guide/toc.html b/user_guide/toc.html index 9f51b1e91..f6a5fe0ec 100644 --- a/user_guide/toc.html +++ b/user_guide/toc.html @@ -29,7 +29,7 @@ <div id="masthead"> <table cellpadding="0" cellspacing="0" border="0" style="width:100%"> <tr> -<td><h1>CodeIgniter User Guide Version 2.0.0</h1></td> +<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td> </tr> </table> </div> @@ -103,6 +103,8 @@ Table of Contents <li><a href="./general/helpers.html">Helpers</a></li> <li><a href="./general/libraries.html">Using CodeIgniter Libraries</a></li> <li><a href="./general/creating_libraries.html">Creating Your Own Libraries</a></li> + <li><a href="./general/drivers.html">Using CodeIgniter Drivers</a></li> + <li><a href="./general/creating_drivers.html">Creating Your Own Drivers</a></li> <li><a href="./general/core_classes.html">Creating Core Classes</a></li> <li><a href="./general/hooks.html">Hooks - Extending the Core</a></li> <li><a href="./general/autoloader.html">Auto-loading Resources</a></li> @@ -111,7 +113,9 @@ Table of Contents <li><a href="./general/errors.html">Error Handling</a></li> <li><a href="./general/caching.html">Caching</a></li> <li><a href="./general/profiling.html">Profiling Your Application</a></li> + <li><a href="./general/cli.html">Running via the CLI</a></li> <li><a href="./general/managing_apps.html">Managing Applications</a></li> + <li><a href="./general/environments.html">Handling Multiple Environments</a></li> <li><a href="./general/alternative_php.html">Alternative PHP Syntax</a></li> <li><a href="./general/security.html">Security</a></li> <li><a href="./general/styleguide.html">PHP Style Guide</a></li> diff --git a/user_guide/userguide.css b/user_guide/userguide.css index f93ff0d75..b08f4fb00 100644 --- a/user_guide/userguide.css +++ b/user_guide/userguide.css @@ -391,7 +391,7 @@ form { .select { background-color: #fff; - font-size: 11px; + font-size: 11px; font-weight: normal; color: #333; padding: 0; |