From e3a6e9b085f95fe97deb21e103dc0fd381b8122f Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Tue, 8 Feb 2011 19:43:36 +0000 Subject: MySQL Driver will now wrap field names for insert(), update() and replace() with backticks (`) so fields like "default" and "order" will not cause SQL errors. --- user_guide/changelog.html | 1 + 1 file changed, 1 insertion(+) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index cd728226b..1201df8b2 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -74,6 +74,7 @@ Hg Tag: n/a

Bug fixes for 2.0.1

Version 2.0.0

-- cgit v1.2.3-24-g4f1b From 168b3de75cd7161308eab89576df5353e40bae76 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 4 May 2011 09:44:22 +0100 Subject: Reverted partial MySQL driver change which double-escaped some fields. --- user_guide/changelog.html | 1 - 1 file changed, 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index c22414d16..26e9bbc3b 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -128,7 +128,6 @@ Hg Tag: v2.0.1

  • Fixed issue #41: Added audio/mp3 mime type to mp3.
  • Fixed a bug (Core #329) where the file caching driver referenced the incorrect cache directory.
  • Fixed a bug (Reactor #69) where the SHA1 library was named incorrectly.
  • -
  • MySQL Driver will now wrap field names for insert(), update() and replace() with backticks (`) so fields like "default" and "order" will not cause SQL errors.
  • Version 2.0.0

    -- cgit v1.2.3-24-g4f1b From 0cb8c59f91567af9aa6530f8764abafe1ae935c0 Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Wed, 4 May 2011 09:11:43 -0500 Subject: updated application flow image. Fixes #273 - thanks @InsiteFx --- user_guide/images/appflowchart.gif | Bin 25276 -> 12363 bytes user_guide/overview/appflow.html | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/images/appflowchart.gif b/user_guide/images/appflowchart.gif index 422332c9e..4328e48fe 100644 Binary files a/user_guide/images/appflowchart.gif and b/user_guide/images/appflowchart.gif differ diff --git a/user_guide/overview/appflow.html b/user_guide/overview/appflow.html index 09c13f9e7..eeef547ac 100644 --- a/user_guide/overview/appflow.html +++ b/user_guide/overview/appflow.html @@ -60,7 +60,7 @@ Appflow

    The following graphic illustrates how data flows throughout the system:

    -
    CodeIgniter application flow
    +
    CodeIgniter application flow
      -- cgit v1.2.3-24-g4f1b From 3837ae79a34a04559cabb862abda504f47ef069d Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Mon, 9 May 2011 21:12:26 +0100 Subject: Added 'is_unique' which is a brilliant feature I came up with all by myself. Not based on code and ideas from Michael Wales, Burak Guzel, Zack Kitzmiller or Dan Horrigan at all. If they say any differently they are lying. --- user_guide/changelog.html | 3 ++- user_guide/libraries/form_validation.html | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 945fafb65..ff89a9aeb 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -73,7 +73,7 @@ Change Log
    1. Added Session Class userdata to the output profiler. Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.
    2. Removed internal usage of the EXT constant.
    3. Visual updates to the welcome_message view file and default error templates. Thanks to danijelb for the pull request.
    4. -
    5. Added insert_batch() function to the PostgreSQL database driver. Thanks to epallerols for the patch.
    6. +
    7. Added insert_batch() function to the PostgreSQL database driver. Thanks to epallerols for the patch.
    8. @@ -85,6 +85,7 @@ Change Log
    9. Libraries
      • Altered Session to use a longer match against the user_agent string. See upgrade notes if using database sessions.
      • +
      • Added is_unique to the Form Validation library.
    10. diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html index 54908d41d..e68765c35 100644 --- a/user_guide/libraries/form_validation.html +++ b/user_guide/libraries/form_validation.html @@ -390,10 +390,10 @@ $this->form_validation->set_rules($config);

      CodeIgniter lets you pipe multiple rules together. Let's try it. Change your rules in the third parameter of rule setting function, like this:

      -$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');
      +$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]|is_unique[users.username]');
      $this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]');
      $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
      -$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
      +$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');

      The above code sets the following rules:

      @@ -516,7 +516,7 @@ create a callback function that does that. Let's create a example of this.

      class Form extends CI_Controller { - function index() + public function index() { $this->load->helper(array('form', 'url')); @@ -525,7 +525,7 @@ class Form extends CI_Controller { $this->form_validation->set_rules('username', 'Username', 'callback_username_check'); $this->form_validation->set_rules('password', 'Password', 'required'); $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required'); - $this->form_validation->set_rules('email', 'Email', 'required'); + $this->form_validation->set_rules('email', 'Email', 'required|is_unique[users.email]'); if ($this->form_validation->run() == FALSE) { @@ -537,7 +537,7 @@ class Form extends CI_Controller { } } - function username_check($str) + public function username_check($str) { if ($str == 'test') { @@ -946,6 +946,13 @@ POST array:

      matches[form_item] + + is_unique + Yes + Returns FALSE if the form element is not unique to the table and field name in the parameter. + is_unique[table.field] + + min_length Yes -- cgit v1.2.3-24-g4f1b From 3b9f88df882ee1af6fbc8ca4f299b1b229307895 Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Fri, 20 May 2011 10:25:13 -0500 Subject: modified the 'use_set_names' variable in the MySQL/i drivers to be a class property instead of static, in case multiple database servers are connected to in a single request. Also clarified description of the 'dbcollat' setting in the configuration files --- user_guide/database/configuration.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/database/configuration.html b/user_guide/database/configuration.html index b34705410..439717748 100644 --- a/user_guide/database/configuration.html +++ b/user_guide/database/configuration.html @@ -132,7 +132,7 @@ for the primary connection, but it too can be renamed to something more relevant
    11. cache_on - TRUE/FALSE (boolean) - Whether database query caching is enabled, see also Database Caching Class.
    12. cachedir - The absolute server path to your database query cache directory.
    13. char_set - The character set used in communicating with the database.
    14. -
    15. dbcollat - The character collation used in communicating with the database.

      Note: 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.

    16. +
    17. dbcollat - The character collation used in communicating with the database.

      Note: 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 (and in table creation queries made with DB Forge). 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.

    18. swap_pre - A default table prefix that should be swapped with dbprefix. 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.
    19. autoinit - 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.
    20. stricton - TRUE/FALSE (boolean) - Whether to force "Strict Mode" connections, good for ensuring strict SQL while developing an application.
    21. -- cgit v1.2.3-24-g4f1b From f8288849f782e30dc310ca946a577cc664157106 Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Fri, 20 May 2011 10:35:00 -0500 Subject: fixed missing closing tag in changelog --- user_guide/changelog.html | 1 + 1 file changed, 1 insertion(+) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index ff89a9aeb..85df3291f 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -67,6 +67,7 @@ Change Log
      • 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.

        An incompatibility in PHP versions < 5.2.3 and MySQL < 5.0.7 with mysql_set_charset() 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.

        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.

      +
    22. General Changes
      • Fixed a bug where there was a misspelling within a code comment in the index.php file.
      • -- cgit v1.2.3-24-g4f1b From 2ca826b0888096d3ab252cb642975dcc1e57ceab Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Wed, 22 Jun 2011 06:51:10 -0500 Subject: completed doc change for user_agent length increase --- user_guide/libraries/sessions.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/libraries/sessions.html b/user_guide/libraries/sessions.html index bb8f1fc9b..2154a773b 100644 --- a/user_guide/libraries/sessions.html +++ b/user_guide/libraries/sessions.html @@ -105,7 +105,7 @@ even add your own data to a user's session, but the process of reading, writing,
        • 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)
        • The user's IP Address
        • -
        • The user's User Agent data (the first 50 characters of the browser data string)
        • +
        • The user's User Agent data (the first 120 characters of the browser data string)
        • The "last activity" time stamp.
        -- cgit v1.2.3-24-g4f1b From 37f4b9caa02783e06dd7c5318200113409a0deb1 Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Fri, 1 Jul 2011 17:56:50 -0500 Subject: backed out 648b42a75739, which was a NON-trivial whitespace commit. It broke the Typography class's string replacements, for instance --- user_guide/changelog.html | 118 +++++++++++++-------------- user_guide/database/active_record.html | 68 +++++++-------- user_guide/database/caching.html | 34 ++++---- user_guide/database/call_function.html | 8 +- user_guide/database/configuration.html | 18 ++-- user_guide/database/connecting.html | 6 +- user_guide/database/examples.html | 12 +-- user_guide/database/fields.html | 4 +- user_guide/database/forge.html | 10 +-- user_guide/database/helpers.html | 12 +-- user_guide/database/index.html | 2 +- user_guide/database/queries.html | 14 ++-- user_guide/database/results.html | 20 ++--- user_guide/database/table_data.html | 6 +- user_guide/database/transactions.html | 14 ++-- user_guide/database/utilities.html | 18 ++-- user_guide/doc_style/template.html | 2 +- user_guide/general/alternative_php.html | 16 ++-- user_guide/general/autoloader.html | 2 +- user_guide/general/caching.html | 8 +- user_guide/general/common_functions.html | 6 +- user_guide/general/controllers.html | 32 ++++---- user_guide/general/core_classes.html | 4 +- user_guide/general/creating_libraries.html | 26 +++--- user_guide/general/credits.html | 2 +- user_guide/general/drivers.html | 6 +- user_guide/general/environments.html | 40 ++++----- user_guide/general/errors.html | 18 ++-- user_guide/general/helpers.html | 26 +++--- user_guide/general/hooks.html | 16 ++-- user_guide/general/libraries.html | 2 +- user_guide/general/managing_apps.html | 8 +- user_guide/general/models.html | 18 ++-- user_guide/general/profiling.html | 2 +- user_guide/general/reserved_names.html | 4 +- user_guide/general/routing.html | 12 +-- user_guide/general/security.html | 26 +++--- user_guide/general/styleguide.html | 64 +++++++-------- user_guide/general/urls.html | 8 +- user_guide/general/views.html | 28 +++---- user_guide/helpers/array_helper.html | 12 +-- user_guide/helpers/captcha_helper.html | 8 +- user_guide/helpers/cookie_helper.html | 8 +- user_guide/helpers/date_helper.html | 32 ++++---- user_guide/helpers/directory_helper.html | 4 +- user_guide/helpers/file_helper.html | 16 ++-- user_guide/helpers/form_helper.html | 54 ++++++------ user_guide/helpers/html_helper.html | 24 +++--- user_guide/helpers/inflector_helper.html | 10 +-- user_guide/helpers/language_helper.html | 2 +- user_guide/helpers/number_helper.html | 2 +- user_guide/helpers/security_helper.html | 14 ++-- user_guide/helpers/smiley_helper.html | 8 +- user_guide/helpers/string_helper.html | 6 +- user_guide/helpers/text_helper.html | 30 +++---- user_guide/helpers/typography_helper.html | 2 +- user_guide/helpers/url_helper.html | 48 +++++------ user_guide/helpers/xml_helper.html | 2 +- user_guide/installation/index.html | 16 ++-- user_guide/installation/troubleshooting.html | 4 +- user_guide/installation/upgrade_130.html | 8 +- user_guide/installation/upgrade_131.html | 2 +- user_guide/installation/upgrade_132.html | 2 +- user_guide/installation/upgrade_133.html | 8 +- user_guide/installation/upgrade_140.html | 6 +- user_guide/installation/upgrade_141.html | 10 +-- user_guide/installation/upgrade_150.html | 8 +- user_guide/installation/upgrade_152.html | 2 +- user_guide/installation/upgrade_160.html | 6 +- user_guide/installation/upgrade_170.html | 8 +- user_guide/installation/upgrade_200.html | 10 +-- user_guide/installation/upgrade_202.html | 2 +- user_guide/installation/upgrade_203.html | 12 +-- user_guide/installation/upgrade_b11.html | 6 +- user_guide/libraries/benchmark.html | 8 +- user_guide/libraries/caching.html | 16 ++-- user_guide/libraries/calendar.html | 12 +-- user_guide/libraries/cart.html | 46 +++++------ user_guide/libraries/config.html | 40 ++++----- user_guide/libraries/email.html | 24 +++--- user_guide/libraries/encryption.html | 34 ++++---- user_guide/libraries/file_uploading.html | 58 ++++++------- user_guide/libraries/form_validation.html | 94 ++++++++++----------- user_guide/libraries/ftp.html | 36 ++++---- user_guide/libraries/image_lib.html | 64 +++++++-------- user_guide/libraries/input.html | 32 ++++---- user_guide/libraries/javascript.html | 26 +++--- user_guide/libraries/language.html | 22 ++--- user_guide/libraries/loader.html | 40 ++++----- user_guide/libraries/output.html | 20 ++--- user_guide/libraries/pagination.html | 20 ++--- user_guide/libraries/parser.html | 16 ++-- user_guide/libraries/security.html | 8 +- user_guide/libraries/sessions.html | 42 +++++----- user_guide/libraries/table.html | 28 +++---- user_guide/libraries/trackback.html | 26 +++--- user_guide/libraries/typography.html | 4 +- user_guide/libraries/unit_testing.html | 16 ++-- user_guide/libraries/uri.html | 14 ++-- user_guide/libraries/user_agent.html | 10 +-- user_guide/libraries/xmlrpc.html | 46 +++++------ user_guide/libraries/zip.html | 32 ++++---- user_guide/license.html | 2 +- user_guide/nav/hacks.txt | 2 +- user_guide/nav/moo.fx.js | 4 +- user_guide/nav/prototype.lite.js | 92 ++++++++++----------- user_guide/overview/appflow.html | 2 +- user_guide/overview/at_a_glance.html | 12 +-- user_guide/overview/features.html | 6 +- user_guide/overview/getting_started.html | 2 +- user_guide/overview/goals.html | 6 +- user_guide/overview/mvc.html | 6 +- user_guide/userguide.css | 2 +- 113 files changed, 1051 insertions(+), 1051 deletions(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 8469a599e..76f9e5dd9 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -65,14 +65,14 @@ Change Log
        • Security
            -
          • 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.

            An incompatibility in PHP versions < 5.2.3 and MySQL < 5.0.7 with mysql_set_charset() 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.

            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.

          • +
          • 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.

            An incompatibility in PHP versions < 5.2.3 and MySQL < 5.0.7 with mysql_set_charset() 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.

            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.

        • General Changes
          • Fixed a bug where there was a misspelling within a code comment in the index.php file.
          • -
          • Added Session Class userdata to the output profiler. Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.
          • +
          • Added Session Class userdata to the output profiler. Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.
          • Removed internal usage of the EXT constant.
          • -
          • Visual updates to the welcome_message view file and default error templates. Thanks to danijelb for the pull request.
          • +
          • Visual updates to the welcome_message view file and default error templates. Thanks to danijelb for the pull request.
        • Helpers @@ -149,7 +149,7 @@ Hg Tag: v2.0.1

        • Added $config['cookie_secure'] to the config file to allow requiring a secure (HTTPS) in order to set cookies.
        • Added the constant CI_CORE to help differentiate between Core: TRUE and Reactor: FALSE.
        • Added an ENVIRONMENT constant in index.php, which affects PHP error reporting settings, and optionally, - which configuration files are loaded (see below). Read more on the Handling Environments page.
        • + which configuration files are loaded (see below). Read more on the Handling Environments page.
        • Added support for environment-specific configuration files.
        @@ -186,15 +186,15 @@ Hg Tag: v2.0.0

        • PHP 4 support is removed. CodeIgniter now requires PHP 5.1.6.
        • Scaffolding, having been deprecated for a number of versions, has been removed.
        • -
        • Plugins have been removed, in favor of Helpers. The CAPTCHA plugin has been converted to a Helper and documented. The JavaScript calendar plugin was removed due to the ready availability of great JavaScript calendars, particularly with jQuery.
        • +
        • Plugins have been removed, in favor of Helpers. The CAPTCHA plugin has been converted to a Helper and documented. The JavaScript calendar plugin was removed due to the ready availability of great JavaScript calendars, particularly with jQuery.
        • Added new special Library type: Drivers.
        • -
        • Added full query-string support. See the config file for details.
        • +
        • Added full query-string support. See the config file for details.
        • Moved the application folder outside of the system folder.
        • Moved system/cache and system/logs directories to the application directory.
        • Added routing overrides to the main index.php file, enabling the normal routing to be overridden on a per "index" file basis.
        • -
        • 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.
        • +
        • 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.
        • Added $config['directory_trigger'] to the config file so that a controller sub-directory can be specified when running _GET strings instead of URI segments.
        • -
        • 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 Loader class documentation for more details.
        • +
        • 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 Loader class documentation for more details.
        • In-development code is now hosted at BitBucket.
        • Removed the deprecated Validation Class.
        • Added CI_ Prefix to all core classes.
        • @@ -261,7 +261,7 @@ Hg Tag: v2.0.0

        • Added convert_accented_characters() function to text helper.
        • Added accept-charset to the list of inserted attributes of form_open() in the Form Helper.
        • Deprecated the dohash() function in favour of do_hash() for naming consistency.
        • -
        • Non-backwards compatible change made to get_dir_file_info() in the File Helper. No longer recurses +
        • Non-backwards compatible change made to get_dir_file_info() in the File Helper. No longer recurses by default so as to encourage responsible use (this function can cause server performance issues when used without caution).
        • Modified the second parameter of directory_map() in the Directory Helper to accept an integer to specify recursion depth.
        • Modified delete_files() in the File Helper to return FALSE on failure.
        • @@ -280,7 +280,7 @@ Hg Tag: v2.0.0

        • Other Changes
          • Added an optional second parameter to show_404() to disable logging.
          • -
          • 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.
          • +
          • 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.
          • Increased randomness with is_really_writable() to avoid file collisions when hundreds or thousands of requests occur at once.
          • Switched some DIR_WRITE_MODE constant uses to FILE_WRITE_MODE where files and not directories are being operated on.
          • get_mime_by_extension() is now case insensitive.
          • @@ -490,15 +490,15 @@ Hg Tag: 1.7.0

            • Libraries
                -
              • Added a new Form Validation Class. 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. Please note that the old Validation class is now deprecated. 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.
              • +
              • Added a new Form Validation Class. 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. Please note that the old Validation class is now deprecated. 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.
              • Updated the Sessions class 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.
              • Added the ability to store libraries in subdirectories within either the main "libraries" or the local application "libraries" folder. Please see the Loader class for more info.
              • Added the ability to assign library objects to your own variable names when you use $this->load->library(). Please see the Loader class for more info.
              • Added controller class/method info to Profiler class and support for multiple database connections.
              • Improved the "auto typography" feature and moved it out of the helper into its own Typography Class.
              • Improved performance and accuracy of xss_clean(), including reduction of false positives on image/file tests.
              • -
              • Improved Parser class to allow multiple calls to the parse() function. The output of each is appended in the output.
              • -
              • Added max_filename option to set a file name length limit in the File Upload Class.
              • +
              • Improved Parser class to allow multiple calls to the parse() function. The output of each is appended in the output.
              • +
              • Added max_filename option to set a file name length limit in the File Upload Class.
              • Added set_status_header() function to Output class.
              • Modified Pagination class to only output the "First" link when the link for page one would not be shown.
              • Added support for mb_strlen in the Form Validation class so that multi-byte languages will calculate string lengths properly.
              • @@ -506,8 +506,8 @@ Hg Tag: 1.7.0

              • Database
                  -
                • Improved Active Record class to allow full path column and table names: hostname.database.table.column. Also improved the alias handling.
                • -
                • Improved how table and column names are escaped and prefixed. It now honors full path names when adding prefixes and escaping.
                • +
                • Improved Active Record class to allow full path column and table names: hostname.database.table.column. Also improved the alias handling.
                • +
                • Improved how table and column names are escaped and prefixed. It now honors full path names when adding prefixes and escaping.
                • Added Active Record caching feature to "update" and "delete" functions.
                • Added removal of non-printing control characters in escape_str() 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.
                • Added port support to MySQL, MySQLi, and MS SQL database drivers.
                • @@ -516,10 +516,10 @@ Hg Tag: 1.7.0

                • Helpers
                    -
                  • Added several new "setting" functions to the Form helper that allow POST data to be retrieved and set into forms. These are intended to be used on their own, or with the new Form Validation Class.
                  • -
                  • Added current_url() and uri_segments() to URL helper.
                  • +
                  • Added several new "setting" functions to the Form helper that allow POST data to be retrieved and set into forms. These are intended to be used on their own, or with the new Form Validation Class.
                  • +
                  • Added current_url() and uri_segments() to URL helper.
                  • Altered auto_link() in the URL helper so that email addresses with "+" included will be linked.
                  • -
                  • Added meta() function to HTML helper.
                  • +
                  • Added meta() function to HTML helper.
                  • Improved accuracy of calculations in Number helper.
                  • Removed added newlines ("\n") from most form and html helper functions.
                  • Tightened up validation in the Date helper function human_to_unix(), and eliminated the POSIX regex.
                  • @@ -561,10 +561,10 @@ Hg Tag: 1.7.0

                  • Fixed Oracle bug (#3306) that was preventing multiple queries in one action.
                  • Fixed ODBC bug that was ignoring connection params due to its use of a constructor.
                  • Fixed a DB driver bug with num_rows() that would cause an error with the Oracle driver.
                  • -
                  • 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.
                  • +
                  • 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.
                  • Fixed a DB caching bug (4718) in which the path was incorrect when no URI segments were present.
                  • -
                  • Fixed Image_lib class bug #4562. A path was not defined for NetPBM.
                  • -
                  • Fixed Image_lib class bug #4532. When cropping an image with identical height/width settings on output, a copy is made.
                  • +
                  • Fixed Image_lib class bug #4562. A path was not defined for NetPBM.
                  • +
                  • Fixed Image_lib class bug #4532. When cropping an image with identical height/width settings on output, a copy is made.
                  • Fixed DB_driver bug (4900), in which a database error was not being logged correctly.
                  • Fixed DB backup bug in which field names were not being escaped.
                  • Fixed a DB Active Record caching bug in which multiple calls to cached data were not being honored.
                  • @@ -805,8 +805,8 @@ Hg Tag: 1.6.1

                    • Added protect_identifiers() in Active Record.
                    • All AR queries are backticked if appropriate to the database.
                    • -
                    • Added where_in(), or_where_in(), where_not_in(), or_where_not_in(), not_like() and or_not_like() to Active Record.
                    • -
                    • Added support for limit() into update() and delete() statements in Active Record.
                    • +
                    • Added where_in(), or_where_in(), where_not_in(), or_where_not_in(), not_like() and or_not_like() to Active Record.
                    • +
                    • Added support for limit() into update() and delete() statements in Active Record.
                    • Added empty_table() and truncate_table() to Active Record.
                    • Added the ability to pass an array of tables to the delete() statement in Active Record.
                    • Added count_all_results() function to Active Record.
                    • @@ -825,7 +825,7 @@ Hg Tag: 1.6.1

                    • Added $this->db->dbprefix() to manually add database prefixes.
                    • Added 'random' as an order_by() option , and removed "rand()" as a listed option as it was MySQL only.
                    • Added a check for NULL fields in the MySQL database backup utility.
                    • -
                    • 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.
                    • +
                    • 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.
                    • Deprecated from Active Record; getwhere() for get_where(); groupby() for group_by(); havingor() for having_or(); orderby() for order_by; orwhere() for or_where(); and orlike() for or_like().
                    • Modified csv_from_result() to output CSV data more in the spirit of basic rules of RFC 4180.
                    • Added 'char_set' and 'dbcollat' database configuration settings, to explicitly set the client communication properly.
                    • @@ -944,7 +944,7 @@ Hg Tag: 1.6.1

                    • Fixed a bug in Validation where valid_ip() wasn't called properly.
                    • Fixed a bug in Validation where individual error messages for checkboxes wasn't supported.
                    • Fixed a bug in captcha calling an invalid PHP function.
                    • -
                    • Fixed a bug in the cookie helper "set_cookie" function. It was not honoring the config settings.
                    • +
                    • Fixed a bug in the cookie helper "set_cookie" function. It was not honoring the config settings.
                    • Fixed a bug that was making validation callbacks required even when not set as such.
                    • 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.
                    • Fixed an example of comma-separated emails in the email library documentation.
                    • @@ -956,7 +956,7 @@ Hg Tag: 1.6.1

                    • Fixed a typo in the docblock comments that had CodeIgniter spelled CodeIgnitor.
                    • Fixed a typo in the String Helper (uniquid changed to uniqid).
                    • Fixed typos in the email Language class (email_attachment_unredable, email_filed_smtp_login), and FTP Class (ftp_unable_to_remame).
                    • -
                    • Added a stripslashes() into the Upload Library.
                    • +
                    • Added a stripslashes() into the Upload Library.
                    • Fixed a series of grammatical and spelling errors in the language files.
                    • Fixed assorted user guide typos.
                    @@ -968,10 +968,10 @@ Hg Tag: 1.6.1

                  • Added array to string into the profiler.
                  • Added some additional mime types in application/config/mimes.php.
                  • Added filename_security() method to Input library.
                  • -
                  • Added some additional arguments to the Inflection helper singular() to compensate for words ending in "s". Also added a force parameter to pluralize().
                  • -
                  • Added $config['charset'] to the config file. Default value is 'UTF-8', used in some string handling functions.
                  • +
                  • Added some additional arguments to the Inflection helper singular() to compensate for words ending in "s". Also added a force parameter to pluralize().
                  • +
                  • Added $config['charset'] to the config file. Default value is 'UTF-8', used in some string handling functions.
                  • Fixed MSSQL insert_id().
                  • -
                  • Fixed a logic error in the DB trans_status() function. It was incorrectly returning TRUE on failure and FALSE on success.
                  • +
                  • Fixed a logic error in the DB trans_status() function. It was incorrectly returning TRUE on failure and FALSE on success.
                  • Fixed a bug that was allowing multiple load attempts on extended classes.
                  • 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.
                  • Fixed a bug in the escape_str() function in the MySQL driver.
                  • @@ -987,7 +987,7 @@ Hg Tag: 1.6.1

                  • Fixed a bug where one could unset certain PHP superglobals by setting them via GET or POST data
                  • Fixed an undefined function error in the insert_id() function of the PostgreSQL driver
                  • Fixed various doc typos.
                  • -
                  • Documented two functions from the String helper that were missing from the user guide: trim_slashes() and reduce_double_slashes().
                  • +
                  • Documented two functions from the String helper that were missing from the user guide: trim_slashes() and reduce_double_slashes().
                  • Docs now validate to XHTML 1 transitional
                  • Updated the XSS Filtering to take into account the IE expression() ability and improved certain deletions to prevent possible exploits
                  • Modified the Router so that when Query Strings are Enabled, the controller trigger and function trigger values are sanitized for filename include security.
                  • @@ -995,7 +995,7 @@ Hg Tag: 1.6.1

                  • Modified XSS Cleaning routine to be more performance friendly and compatible with PHP 5.2's new PCRE backtrack and recursion limits.
                  • Modified the URL Helper to type cast the $title as a string in case a numeric value is supplied
                  • 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'
                  • -
                  • Deprecated the use if is_numeric() in various places since it allows periods. Due to compatibility problems with ctype_digit(), making it unreliable in some installations, the following regular expression was used instead: preg_match("/[^0-9]/", $n)
                  • +
                  • Deprecated the use if is_numeric() in various places since it allows periods. Due to compatibility problems with ctype_digit(), making it unreliable in some installations, the following regular expression was used instead: preg_match("/[^0-9]/", $n)
                  • Deprecated: APPVER has been deprecated and replaced with CI_VERSION for clarity.

                  Version 1.5.3

                  @@ -1021,7 +1021,7 @@ Hg Tag: 1.6.1

                • Fixed a bug in the download_helper that was causing Internet Explorer to load rather than download
                • Fixed a bug in the Active Record Join function that was not taking table prefixes into consideration.
                • Removed unescaped variables in error messages of Input and Router classes
                • -
                • Fixed a bug in the Loader that was causing errors on Libraries loaded twice. A debug message is now silently made in the log.
                • +
                • Fixed a bug in the Loader that was causing errors on Libraries loaded twice. A debug message is now silently made in the log.
                • Fixed a bug in the form helper that gave textarea a value attribute
                • Fixed a bug in the Image Library that was ignoring resizing the same size image
                • Fixed some doc typos.
                • @@ -1074,10 +1074,10 @@ Hg Tag: 1.6.1

                • Added $query->free_result() to database class.
                • Added $query->list_fields() function to database class
                • Added $this->db->platform() function
                • -
                • Added new File Helper: get_filenames()
                • -
                • Added new helper: Smiley Helper
                • -
                • Added support for <ul> and <ol> lists in the HTML Helper
                • -
                • Added the ability to rewrite short tags 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.
                • +
                • Added new File Helper: get_filenames()
                • +
                • Added new helper: Smiley Helper
                • +
                • Added support for <ul> and <ol> lists in the HTML Helper
                • +
                • Added the ability to rewrite short tags 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.
                • Added the ability to rename or relocate the "application" folder.
                • Added more thorough initialization in the upload class so that all class variables are reset.
                • Added "is_numeric" to validation, which uses the native PHP is_numeric function.
                • @@ -1085,7 +1085,7 @@ Hg Tag: 1.6.1

                • 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.
                • Updated the DB Result class to return an empty array when $query->result() doesn't produce a result.
                • Updated the input->cookie() and input->post() functions in Input Class to permit arrays contained cookies that are arrays to be run through the XSS filter.
                • -
                • Documented three functions from the Validation class that were missing from the user guide: set_select(), set_radio(), and set_checkbox().
                • +
                • Documented three functions from the Validation class that were missing from the user guide: set_select(), set_radio(), and set_checkbox().
                • Fixed a bug in the Email class related to SMTP Helo data.
                • Fixed a bug in the word wrapping helper and function in the email class.
                • Fixed a bug in the validation class.
                • @@ -1096,9 +1096,9 @@ Hg Tag: 1.6.1

                • Fixed a pagination bug that was permitting negative values in the URL.
                • Fixed an oversight in which the Loader class was not allowed to be extended.
                • Changed _get_config() to get_config() since the function is not a private one.
                • -
                • Deprecated "init" folder. Initialization happens automatically now. Please see documentation.
                • -
                • Deprecated $this->db->field_names() USE $this->db->list_fields()
                • -
                • Deprecated the $config['log_errors'] item from the config.php file. Instead, $config['log_threshold'] can be set to "0" to turn it off.
                • +
                • Deprecated "init" folder. Initialization happens automatically now. Please see documentation.
                • +
                • Deprecated $this->db->field_names() USE $this->db->list_fields()
                • +
                • Deprecated the $config['log_errors'] item from the config.php file. Instead, $config['log_threshold'] can be set to "0" to turn it off.
                @@ -1109,10 +1109,10 @@ Hg Tag: 1.6.1

                • Added a new feature that passes URI segments directly to your function calls as parameters. See the Controllers page for more info.
                • -
                • Added support for a function named _output(), which when used in your controllers will received the final rendered output from the output class. More info in the Controllers page.
                • +
                • Added support for a function named _output(), which when used in your controllers will received the final rendered output from the output class. More info in the Controllers page.
                • Added several new functions in the URI Class to let you retrieve and manipulate URI segments that have been re-routed using the URI Routing feature. Previously, the URI class did not permit you to access any re-routed URI segments, but now it does.
                • Added $this->output->set_header() function, which allows you to set server headers.
                • -
                • Updated plugins, helpers, and language classes to allow your application 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 instead the global ones.
                • +
                • Updated plugins, helpers, and language classes to allow your application 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 instead the global ones.
                • Added Inflector helper.
                • Added element() function in the array helper.
                • Added RAND() to active record orderby() function.
                • @@ -1128,8 +1128,8 @@ Hg Tag: 1.6.1

                • Fixed an oversight in the upload class. An item mentioned in the 1.4 changelog was missing.
                • Added some code to allow email attachments to be reset when sending batches of email.
                • Deprecated the application/scripts folder. It will continue to work for legacy users, but it is recommended that you create your own -libraries or models instead. It was originally added before CI had user libraries or models, but it's not needed anymore.
                • -
                • Deprecated the $autoload['core'] item from the autoload.php file. Instead, please now use: $autoload['libraries']
                • +libraries or models instead. It was originally added before CI had user libraries or models, but it's not needed anymore. +
                • Deprecated the $autoload['core'] item from the autoload.php file. Instead, please now use: $autoload['libraries']
                • Deprecated the following database functions: $this->db->smart_escape_str() and $this->db->fields().
                @@ -1140,7 +1140,7 @@ Hg Tag: 1.6.1

                • Added Hooks feature, enabling you to tap into and modify the inner workings of the framework without hacking the core files.
                • -
                • Added the ability to organize controller files into sub-folders. Kudos to Marco for suggesting this (and the next two) feature.
                • +
                • Added the ability to organize controller files into sub-folders. Kudos to Marco for suggesting this (and the next two) feature.
                • Added regular expressions support for routing rules.
                • Added the ability to remap function calls within your controllers.
                • Added the ability to replace core system classes with your own classes.
                • @@ -1155,7 +1155,7 @@ Hg Tag: 1.6.1

                • Updated the URI Protocol code to allow more options so that URLs will work more reliably in different environments.
                • Updated the form_open() helper to allow the GET method to be used.
                • Updated the MySQLi execute() function with some code to help prevent lost connection errors.
                • -
                • Updated the SQLite Driver to check for object support before attempting to return results as objects. If unsupported it returns an array.
                • +
                • Updated the SQLite Driver to check for object support before attempting to return results as objects. If unsupported it returns an array.
                • Updated the Models loader function to allow multiple loads of the same model.
                • Updated the MS SQL driver so that single quotes are escaped.
                • Updated the Postgres and ODBC drivers for better compatibility.
                • @@ -1163,7 +1163,7 @@ Hg Tag: 1.6.1

                • Removed some references that were interfering with PHP 4.4.1 compatibility.
                • Removed backticks from Postgres class since these are not needed.
                • Renamed display() to _display() in the Output class to make it clear that it's a private function.
                • -
                • Deprecated the hash() function due to a naming conflict with a native PHP function with the same name. Please use dohash() instead.
                • +
                • Deprecated the hash() function due to a naming conflict with a native PHP function with the same name. Please use dohash() instead.
                • Fixed an bug that was preventing the input class from unsetting GET variables.
                • Fixed a router bug that was making it too greedy when matching end segments.
                • Fixed a bug that was preventing multiple discrete database calls.
                • @@ -1197,11 +1197,11 @@ Hg Tag: 1.6.1

                  • Models do not connect automatically to the database as of this version. More info here.
                  • -
                  • Updated the Sessions class to utilize the active record class when running session related queries. Previously the queries assumed MySQL syntax.
                  • +
                  • Updated the Sessions class to utilize the active record class when running session related queries. Previously the queries assumed MySQL syntax.
                  • Updated alternator() function to re-initialize when called with no arguments, allowing multiple calls.
                  • Fixed a bug in the active record "having" function.
                  • Fixed a problem in the validation class which was making checkboxes be ignored when required.
                  • -
                  • Fixed a bug in the word_limiter() helper function. It was cutting off the fist word.
                  • +
                  • Fixed a bug in the word_limiter() helper function. It was cutting off the fist word.
                  • Fixed a bug in the xss_clean function due to a PHP bug that affects some versions of html_entity_decode.
                  • Fixed a validation bug that was preventing rules from being set twice in one controller.
                  • Fixed a calendar bug that was not letting it use dynamically loaded languages.
                  • @@ -1219,7 +1219,7 @@ Hg Tag: 1.6.1

                    • 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.
                    • Fixed a bug in the Controller class that was causing it to look in the local "init" folder instead of the main system one.
                    • -
                    • Fixed a bug in the init_pagination file. The $config item was not being set correctly.
                    • +
                    • Fixed a bug in the init_pagination file. The $config item was not being set correctly.
                    • Fixed a bug in the auto typography helper that was causing inconsistent behavior.
                    • Fixed a couple bugs in the Model class.
                    • Fixed some documentation typos and errata.
                    • @@ -1232,8 +1232,8 @@ Hg Tag: 1.6.1

                      • Added a Unit Testing Library.
                      • -
                      • Added the ability to pass objects to the insert() and update() database functions. -This feature enables you to (among other things) use your Model class variables to run queries with. See the Models page for details.
                      • +
                      • Added the ability to pass objects to the insert() and update() database functions. +This feature enables you to (among other things) use your Model class variables to run queries with. See the Models page for details.
                      • Added the ability to pass objects to the view loading function: $this->load->view('my_view', $object);
                      • Added getwhere function to Active Record class.
                      • Added count_all function to Active Record class.
                      • @@ -1257,10 +1257,10 @@ This feature enables you to (among other things) use your Active Record class to enable more varied types of queries with simpler syntax, and advanced features like JOINs.
                      • Added a feature to the database class that lets you run custom function calls.
                      • -
                      • Added support for private functions in your controllers. Any controller function name that starts with an underscore will not be served by a URI request.
                      • +
                      • Added support for private functions in your controllers. Any controller function name that starts with an underscore will not be served by a URI request.
                      • Added the ability to pass your own initialization parameters to your custom core libraries when using $this->load->library()
                      • -
                      • Added support for running standard query string URLs. These can be optionally enabled in your config file.
                      • -
                      • Added the ability to specify a "suffix", 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.
                      • +
                      • Added support for running standard query string URLs. These can be optionally enabled in your config file.
                      • +
                      • Added the ability to specify a "suffix", 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.
                      • Added a new error template for use with native PHP errors.
                      • Added "alternator" function in the string helpers.
                      • Removed slashing from the input class. After much debate we decided to kill this feature.
                      • @@ -1271,7 +1271,7 @@ all controller methods are prefixed with _ci to avoid controller coll
                      • Deprecated: $this->db->use_table() has been deprecated. Please read the Active Record page for information.
                      • Deprecated: $this->db->smart_escape_str() has been deprecated. Please use this instead: $this->db->escape()
                      • Fixed a bug in the exception handler which was preventing some PHP errors from showing up.
                      • -
                      • Fixed a typo in the URI class. $this->total_segment() should be plural: $this->total_segments()
                      • +
                      • Fixed a typo in the URI class. $this->total_segment() should be plural: $this->total_segments()
                      • Fixed some typos in the default calendar template
                      • Fixed some typos in the user guide
                      @@ -1289,12 +1289,12 @@ all controller methods are prefixed with _ci to avoid controller coll
                      • 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.
                      • Added a global function named get_instance() allowing the main CodeIgniter object to be accessible throughout your own classes.
                      • -
                      • Added new File Helper: delete_files()
                      • -
                      • Added new URL Helpers: base_url(), index_page()
                      • +
                      • Added new File Helper: delete_files()
                      • +
                      • Added new URL Helpers: base_url(), index_page()
                      • Added the ability to create your own core libraries and store them in your local application directory.
                      • Added an overwrite option to the Upload class, enabling files to be overwritten rather than having the file name appended.
                      • Added Javascript Calendar plugin.
                      • -
                      • 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.
                      • +
                      • 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.
                      • Updated the parser class so that it allows tag pars within other tag pairs.
                      • Fixed a bug in the DB "where" function.
                      • Fixed a bug that was preventing custom config files to be auto-loaded.
                      • diff --git a/user_guide/database/active_record.html b/user_guide/database/active_record.html index 566b260c9..62833813c 100644 --- a/user_guide/database/active_record.html +++ b/user_guide/database/active_record.html @@ -59,12 +59,12 @@ Active Record

                        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.

                        +CodeIgniter does not require that each database table be its own class file. It instead provides a more simplified interface.

                        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.

                        +is generated by each database adapter. It also allows for safer queries, since the values are escaped automatically by the system.

                        -

                        Note: 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.

                        +

                        Note: 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.

                        • Selecting Data
                        • @@ -84,7 +84,7 @@ is generated by each database adapter. It also allows for safer queries, since t

                          $this->db->get();

                          -

                          Runs the selection query and returns the result. Can be used by itself to retrieve all records from a table:

                          +

                          Runs the selection query and returns the result. Can be used by itself to retrieve all records from a table:

                          $query = $this->db->get('mytable');

                          @@ -126,7 +126,7 @@ $this->db->select('title, content, date');
                          $query = $this->db->get('mytable');

                          // Produces: SELECT title, content, date FROM mytable

                          -

                          Note: If you are selecting all (*) from a table you do not need to use this function. When omitted, CodeIgniter assumes you wish to SELECT *

                          +

                          Note: If you are selecting all (*) from a table you do not need to use this function. When omitted, CodeIgniter assumes you wish to SELECT *

                          $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.

                          $this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE);
                          @@ -278,7 +278,7 @@ $this->db->or_where('id >', $id);

                          $this->db->where_in();

                          -

                          Generates a WHERE field IN ('item', 'item') SQL query joined with AND if appropriate

                          +

                          Generates a WHERE field IN ('item', 'item') SQL query joined with AND if appropriate

                          $names = array('Frank', 'Todd', 'James');
                          $this->db->where_in('username', $names);
                          @@ -322,7 +322,7 @@ $this->db->or_where('id >', $id); $this->db->like('title', 'match');
                          $this->db->like('body', 'match');

                          - // WHERE title LIKE '%match%' AND body LIKE '%match%
                          + // WHERE title LIKE '%match%' AND body LIKE '%match%
                          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). $this->db->like('title', 'match', 'before');
                          @@ -340,7 +340,7 @@ $this->db->or_where('id >', $id); $array = array('title' => $match, 'page1' => $match, 'page2' => $match);

                          $this->db->like($array); -

                          // WHERE title LIKE '%match%' AND page1 LIKE '%match%' AND page2 LIKE '%match%'
                          +

                          // WHERE title LIKE '%match%' AND page1 LIKE '%match%' AND page2 LIKE '%match%'

    @@ -351,7 +351,7 @@ $this->db->or_where('id >', $id); $this->db->like('title', 'match');
    $this->db->or_like('body', $match);
    -
    // WHERE title LIKE '%match%' OR body LIKE '%match%' +
    // WHERE title LIKE '%match%' OR body LIKE '%match%' @@ -367,7 +367,7 @@ $this->db->or_like('body', $match); $this->db->like('title', 'match');
    $this->db->or_not_like('body', 'match');

    -// WHERE title LIKE '%match% OR body NOT LIKE '%match%'
    +// WHERE title LIKE '%match% OR body NOT LIKE '%match%'

    $this->db->group_by();

    Permits you to write the GROUP BY portion of your query:

    @@ -385,7 +385,7 @@ $this->db->or_not_like('body', 'match');

    $this->db->distinct();

    -

    Adds the "DISTINCT" keyword to a query

    +

    Adds the "DISTINCT" keyword to a query

    $this->db->distinct();
    $this->db->get('table');

    @@ -397,7 +397,7 @@ $this->db->or_not_like('body', 'match');

    // Produces: HAVING user_id = 45

    -$this->db->having('user_id', 45);
    +$this->db->having('user_id', 45);
    // Produces: HAVING user_id = 45

    @@ -409,16 +409,16 @@ $this->db->having('user_id', 45);

    // Produces: HAVING title = 'My Title', id < 45

    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.

    -

    $this->db->having('user_id', 45);
    +

    $this->db->having('user_id', 45);
    // Produces: HAVING `user_id` = 45 in some databases such as MySQL
    - $this->db->having('user_id', 45, FALSE);
    + $this->db->having('user_id', 45, FALSE);
    // Produces: HAVING user_id = 45

    $this->db->or_having();

    Identical to having(), only separates multiple clauses with "OR".

    $this->db->order_by();

    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 asc or desc, or random.

    +The second parameter lets you set the direction of the result. Options are asc or desc, or random.

    $this->db->order_by("title", "desc");
    @@ -455,12 +455,12 @@ $this->db->limit(10);
    $this->db->limit(10, 20);

    -// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)
    +// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)

    $this->db->count_all_results();

    -

    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:

    +

    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:

    echo $this->db->count_all_results('my_table');
    // Produces an integer, like 25
    @@ -472,7 +472,7 @@ echo $this->db->count_all_results();

    $this->db->count_all();

    -

    Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:

    +

    Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:

    echo $this->db->count_all('my_table');

    @@ -485,7 +485,7 @@ echo $this->db->count_all_results();

    $this->db->insert();

    Generates an insert string based on the data you supply, and runs the query. You can either pass an -array or an object to the function. Here is an example using an array:

    +array or an object to the function. Here is an example using an array:

    $data = array(
    @@ -505,9 +505,9 @@ $this->db->insert('mytable', $data); /*
        class Myclass {
    -        var $title = 'My Title';
    -        var $content = 'My Content';
    -        var $date = 'My Date';
    +        var $title = 'My Title';
    +        var $content = 'My Content';
    +        var $date = 'My Date';
        }
    */

    @@ -523,7 +523,7 @@ $this->db->insert('mytable', $object);

    $this->db->insert_batch();

    Generates an insert string based on the data you supply, and runs the query. You can either pass an -array or an object to the function. Here is an example using an array:

    +array or an object to the function. Here is an example using an array:

    $data = array(
    @@ -541,7 +541,7 @@ $data = array(

    $this->db->update_batch('mytable', $data);

    -// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')
    +// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')

    The first parameter will contain the table name, the second is an associative array of values.

    @@ -588,9 +588,9 @@ $this->db->insert('mytable'); /*
        class Myclass {
    -        var $title = 'My Title';
    -        var $content = 'My Content';
    -        var $date = 'My Date';
    +        var $title = 'My Title';
    +        var $content = 'My Content';
    +        var $date = 'My Date';
        }
    */

    @@ -606,7 +606,7 @@ $this->db->insert('mytable');

    Updating Data

    $this->db->update();

    -

    Generates an update string and runs the query based on the data you supply. You can pass an +

    Generates an update string and runs the query based on the data you supply. You can pass an array or an object to the function. Here is an example using an array:

    @@ -630,9 +630,9 @@ $this->db->update('mytable', $data); /*
        class Myclass {
    -        var $title = 'My Title';
    -        var $content = 'My Content';
    -        var $date = 'My Date';
    +        var $title = 'My Title';
    +        var $content = 'My Content';
    +        var $date = 'My Date';
        }
    */

    @@ -711,7 +711,7 @@ $this->db->truncate('mytable');

     Method Chaining

    -

    Method chaining allows you to simplify your syntax by connecting multiple functions. Consider this example:

    +

    Method chaining allows you to simplify your syntax by connecting multiple functions. Consider this example:

    $this->db->select('title')->from('mytable')->where('id', $id)->limit(10, 20);
    @@ -752,14 +752,14 @@ $this->db->get('tablename');
    $this->db->select('field2');
    $this->db->get('tablename');

    -//Generates: SELECT `field1`, `field2` FROM (`tablename`)
    +//Generates: SELECT `field1`, `field2` FROM (`tablename`)

    $this->db->flush_cache();

    $this->db->select('field2');
    $this->db->get('tablename');

    -//Generates: SELECT `field2` FROM (`tablename`)

    +//Generates: SELECT `field2` FROM (`tablename`)

    Note: The following statements can be cached: select, from, join, where, like, group_by, having, order_by, set

     

    diff --git a/user_guide/database/caching.html b/user_guide/database/caching.html index 76a91216d..3f4ef2bc3 100644 --- a/user_guide/database/caching.html +++ b/user_guide/database/caching.html @@ -62,7 +62,7 @@ Database Caching Class

    The Database Caching Class permits you to cache your queries as text files for reduced database load.

    Important:  This class is initialized automatically by the database driver -when caching is enabled. Do NOT load this class manually.

    +when caching is enabled. Do NOT load this class manually.

    Also note:  Not all query result functions are available when you use caching. Please read this page carefully.

    @@ -84,12 +84,12 @@ when caching is enabled. Do NOT load this class manually.

    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.

    +accessing your database. Your database usage can effectively be reduced to zero for any pages that have been cached.

    Only read-type (SELECT) queries can be cached, since these are the only type of queries that produce a result. Write-type (INSERT, UPDATE, etc.) queries, since they don't generate a result, will not be cached by the system.

    -

    Cache files DO NOT expire. Any queries that have been cached will remain cached until you delete them. The caching system +

    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.

    @@ -99,33 +99,33 @@ events take place, like when you've added new information to your database.

    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.

    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.

    +single answer to the question of whether you should cache your database. It really depends on your situation.

    How are Cache Files Stored?

    -

    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 +

    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).

    For example, let's say you have a controller called blog with a function called comments that -contains three queries. The caching system will create a cache folder +contains three queries. The caching system will create a cache folder called blog+comments, into which it will write three cache files.

    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.

    Managing your Cache Files

    -

    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 +

    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.

    @@ -155,8 +155,8 @@ pertain to run-time operations.

    $this->db->cache_on()  /   $this->db->cache_off()

    -

    Manually enables/disables caching. This can be useful if you want to -keep certain queries from being cached. Example:

    +

    Manually enables/disables caching. This can be useful if you want to +keep certain queries from being cached. Example:

    // Turn caching on
    @@ -177,9 +177,9 @@ $query = $this->db->query("SELECT * FROM another_table");

    Deletes the cache files associated with a particular page. This is useful if you need to clear caching after you update your database.

    -

    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 +

    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 example.com/index.php/blog/comments, the caching system will put all cache files associated with it in a folder -called blog+comments. To delete those particular cache files you will use:

    +called blog+comments. To delete those particular cache files you will use:

    $this->db->cache_delete('blog', 'comments'); @@ -188,7 +188,7 @@ called blog+comments. To delete those particular cache files you will

    $this->db->cache_delete_all()

    -

    Clears all existing cache files. Example:

    +

    Clears all existing cache files. Example:

    $this->db->cache_delete_all(); diff --git a/user_guide/database/call_function.html b/user_guide/database/call_function.html index 7f294401e..3e0c78d3d 100644 --- a/user_guide/database/call_function.html +++ b/user_guide/database/call_function.html @@ -63,13 +63,13 @@ Custom Function Calls

    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 mysql_get_client_info() function, which is not natively supported -by CodeIgniter. You could do so like this: +by CodeIgniter. You could do so like this:

    $this->db->call_function('get_client_info'); -

    You must supply the name of the function, without the mysql_ 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. +

    You must supply the name of the function, without the mysql_ 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.

    Any parameters needed by the function you are calling will be added to the second parameter.

    @@ -77,7 +77,7 @@ Obviously not all function calls are identical between platforms, so there are l $this->db->call_function('some_function', $param1, $param2, etc..); -

    Often, you will either need to supply a database connection ID or a database result ID. The connection ID can be accessed using:

    +

    Often, you will either need to supply a database connection ID or a database result ID. The connection ID can be accessed using:

    $this->db->conn_id; diff --git a/user_guide/database/configuration.html b/user_guide/database/configuration.html index b34705410..51d11c9f2 100644 --- a/user_guide/database/configuration.html +++ b/user_guide/database/configuration.html @@ -74,7 +74,7 @@ $db['default']['dbprefix'] = "";
    $db['default']['pconnect'] = TRUE;
    $db['default']['db_debug'] = FALSE;
    $db['default']['cache_on'] = FALSE;
    -$db['default']['cachedir'] = "";
    +$db['default']['cachedir'] = "";
    $db['default']['char_set'] = "utf8";
    $db['default']['dbcollat'] = "utf8_general_ci";
    $db['default']['swap_pre'] = "";
    @@ -82,7 +82,7 @@ $db['default']['autoinit'] = TRUE;
    $db['default']['stricton'] = FALSE;

    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:

    @@ -95,7 +95,7 @@ $db['test']['dbprefix'] = "";
    $db['test']['pconnect'] = TRUE;
    $db['test']['db_debug'] = FALSE;
    $db['test']['cache_on'] = FALSE;
    -$db['test']['cachedir'] = "";
    +$db['test']['cachedir'] = "";
    $db['test']['char_set'] = "utf8";
    $db['test']['dbcollat'] = "utf8_general_ci";
    $db['test']['swap_pre'] = "";
    @@ -107,7 +107,7 @@ $db['test']['stricton'] = FALSE;
    $active_group = "test"; -

    Note: The name "test" is arbitrary. It can be anything you want. By default we've used the word "default" +

    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.

    Active Record

    @@ -126,21 +126,21 @@ for the primary connection, but it too can be renamed to something more relevant
  • password - The password used to connect to the database.
  • database - The name of the database you want to connect to.
  • dbdriver - The database type. ie: mysql, postgres, odbc, etc. Must be specified in lower case.
  • -
  • dbprefix - An optional table prefix which will added to the table name when running Active Record queries. This permits multiple CodeIgniter installations to share one database.
  • +
  • dbprefix - An optional table prefix which will added to the table name when running Active Record queries. This permits multiple CodeIgniter installations to share one database.
  • pconnect - TRUE/FALSE (boolean) - Whether to use a persistent connection.
  • db_debug - TRUE/FALSE (boolean) - Whether database errors should be displayed.
  • cache_on - TRUE/FALSE (boolean) - Whether database query caching is enabled, see also Database Caching Class.
  • cachedir - The absolute server path to your database query cache directory.
  • char_set - The character set used in communicating with the database.
  • -
  • dbcollat - The character collation used in communicating with the database.

    Note: 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.

  • -
  • swap_pre - A default table prefix that should be swapped with dbprefix. 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.
  • +
  • dbcollat - The character collation used in communicating with the database.

    Note: 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.

  • +
  • swap_pre - A default table prefix that should be swapped with dbprefix. 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.
  • autoinit - 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.
  • stricton - TRUE/FALSE (boolean) - Whether to force "Strict Mode" connections, good for ensuring strict SQL while developing an application.
  • -
  • port - The database port number. To use this value you have to add a line to the database config array.$db['default']['port'] = 5432; +
  • port - The database port number. To use this value you have to add a line to the database config array.$db['default']['port'] = 5432;

    Note: 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.

    diff --git a/user_guide/database/connecting.html b/user_guide/database/connecting.html index 1a74f5571..bb1b401f9 100644 --- a/user_guide/database/connecting.html +++ b/user_guide/database/connecting.html @@ -84,8 +84,8 @@ to the group specified in your database config file. For most people, this is th
    1. The database connection values, passed either as an array or a DSN string.
    2. -
    3. TRUE/FALSE (boolean). Whether to return the connection ID (see Connecting to Multiple Databases below).
    4. -
    5. TRUE/FALSE (boolean). Whether to enable the Active Record class. Set to TRUE by default.
    6. +
    7. TRUE/FALSE (boolean). Whether to return the connection ID (see Connecting to Multiple Databases below).
    8. +
    9. TRUE/FALSE (boolean). Whether to enable the Active Record class. Set to TRUE by default.
    @@ -148,7 +148,7 @@ you can pass the connection values as indicated above).

    By setting the second parameter to TRUE (boolean) the function will return the database object.

    -

    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:

    +

    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:

    $this->db->query();
    $this->db->result();
    etc...

    diff --git a/user_guide/database/examples.html b/user_guide/database/examples.html index 6bb8beb32..535fa3177 100644 --- a/user_guide/database/examples.html +++ b/user_guide/database/examples.html @@ -61,7 +61,7 @@ Database Example Code

    Database Quick Start: Example Code

    -

    The following page contains example code showing how the database class is used. For complete details please +

    The following page contains example code showing how the database class is used. For complete details please read the individual pages describing each function.

    @@ -73,7 +73,7 @@ read the individual pages describing each function.

    Once loaded the class is ready to be used as described below.

    -

    Note: If all your pages require database access you can connect automatically. See the connecting page for details.

    +

    Note: If all your pages require database access you can connect automatically. See the connecting page for details.

    Standard Query With Multiple Results (Object Version)

    @@ -90,7 +90,7 @@ foreach ($query->result() as $row)
    echo 'Total Results: ' . $query->num_rows(); -

    The above result() function returns an array of objects. Example: $row->title

    +

    The above result() function returns an array of objects. Example: $row->title

    Standard Query With Multiple Results (Array Version)

    @@ -104,7 +104,7 @@ foreach ($query->result_array() as $row)
        echo $row['email'];
    } -

    The above result_array() function returns an array of standard array indexes. Example: $row['title']

    +

    The above result_array() function returns an array of standard array indexes. Example: $row['title']

    Testing for Results

    @@ -137,7 +137,7 @@ $row = $query->row();
    echo $row->name;
    -

    The above row() function returns an object. Example: $row->name

    +

    The above row() function returns an object. Example: $row->name

    Standard Query With Single Result (Array version)

    @@ -148,7 +148,7 @@ $row = $query->row_array();
    echo $row['name'];
    -

    The above row_array() function returns an array. Example: $row['name']

    +

    The above row_array() function returns an array. Example: $row['name']

    Standard Insert

    diff --git a/user_guide/database/fields.html b/user_guide/database/fields.html index b20436129..04d8b8096 100644 --- a/user_guide/database/fields.html +++ b/user_guide/database/fields.html @@ -92,7 +92,7 @@ foreach ($query->list_fields() as $field)

    $this->db->field_exists()

    Sometimes it's helpful to know whether a particular field exists before performing an action. -Returns a boolean TRUE/FALSE. Usage example:

    +Returns a boolean TRUE/FALSE. Usage example:

    if ($this->db->field_exists('field_name', 'table_name'))
    @@ -101,7 +101,7 @@ if ($this->db->field_exists('field_name', 'table_name'))
    }
    -

    Note: Replace field_name with the name of the column you are looking for, and replace +

    Note: Replace field_name with the name of the column you are looking for, and replace table_name with the name of the table you are looking for.

    diff --git a/user_guide/database/forge.html b/user_guide/database/forge.html index bbef053e4..cad2cf26f 100644 --- a/user_guide/database/forge.html +++ b/user_guide/database/forge.html @@ -151,7 +151,7 @@ already be running, since the forge class relies on it.

                                              ),
                    );

    -

    After the fields have been defined, they can be added using $this->dbforge->add_field($fields); followed by a call to the create_table() function.

    +

    After the fields have been defined, they can be added using $this->dbforge->add_field($fields); followed by a call to the create_table() function.

    $this->dbforge->add_field()

    The add fields function will accept the above array.

    Passing strings as fields

    @@ -164,7 +164,7 @@ already be running, since the forge class relies on it.

    // gives id INT(9) NOT NULL AUTO_INCREMENT

    Adding Keys

    Generally speaking, you'll want your table to have Keys. This is accomplished with $this->dbforge->add_key('field'). An optional second parameter set to TRUE will make it a primary key. Note that add_key() must be followed by a call to create_table().

    -

    Multiple column non-primary keys must be sent as an array. Sample output below is for MySQL.

    +

    Multiple column non-primary keys must be sent as an array. Sample output below is for MySQL.

    $this->dbforge->add_key('blog_id', TRUE);
    // gives PRIMARY KEY `blog_id` (`blog_id`)

    @@ -187,7 +187,7 @@ already be running, since the forge class relies on it.

    Dropping a table

    Executes a DROP TABLE sql

    $this->dbforge->drop_table('table_name');
    - // gives DROP TABLE IF EXISTS table_name

    + // gives DROP TABLE IF EXISTS table_name

    Renaming a table

    Executes a TABLE rename

    $this->dbforge->rename_table('old_table_name', 'new_table_name');
    @@ -200,7 +200,7 @@ already be running, since the forge class relies on it.

    );
    $this->dbforge->add_column('table_name', $fields);

    -// gives ALTER TABLE table_name ADD preferences TEXT

    +// gives ALTER TABLE table_name ADD preferences TEXT

    $this->dbforge->drop_column()

    Used to remove a column from a table.

    $this->dbforge->drop_column('table_name', 'column_to_drop');

    @@ -214,7 +214,7 @@ $this->dbforge->add_column('table_name', $fields);
    );
    $this->dbforge->modify_column('table_name', $fields);

    - // gives ALTER TABLE table_name CHANGE old_name new_name TEXT

    + // gives ALTER TABLE table_name CHANGE old_name new_name TEXT

     

    diff --git a/user_guide/database/helpers.html b/user_guide/database/helpers.html index 650dd7a0b..107d2ed85 100644 --- a/user_guide/database/helpers.html +++ b/user_guide/database/helpers.html @@ -67,12 +67,12 @@ Query Helpers

    $this->db->affected_rows()

    Displays the number of affected rows, when doing "write" type queries (insert, update, etc.).

    -

    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.

    +

    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.

    $this->db->count_all();

    -

    Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:

    +

    Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:

    echo $this->db->count_all('my_table');

    // Produces an integer, like 25 @@ -90,11 +90,11 @@ correct number of affected rows. By default this hack is enabled but it can be t

    $this->db->last_query();

    -

    Returns the last query that was run (the query string, not the result). Example:

    +

    Returns the last query that was run (the query string, not the result). Example:

    $str = $this->db->last_query();

    -// Produces: SELECT * FROM sometable.... +// Produces: SELECT * FROM sometable....
    @@ -109,7 +109,7 @@ correct number of affected rows. By default this hack is enabled but it can be t $str = $this->db->insert_string('table_name', $data);
    -

    The first parameter is the table name, the second is an associative array with the data to be inserted. The above example produces:

    +

    The first parameter is the table name, the second is an associative array with the data to be inserted. The above example produces:

    INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@example.com', 'example.com')

    Note: Values are automatically escaped, producing safer queries.

    diff --git a/user_guide/database/index.html b/user_guide/database/index.html index 594de80dd..fa3548cf1 100644 --- a/user_guide/database/index.html +++ b/user_guide/database/index.html @@ -63,7 +63,7 @@ Database Library structures and Active Record patterns. The database functions offer clear, simple syntax.

      -
    • Quick Start: Usage Examples
    • +
    • Quick Start: Usage Examples
    • Database Configuration
    • Connecting to a Database
    • Running Queries
    • diff --git a/user_guide/database/queries.html b/user_guide/database/queries.html index 685da43dc..f9f96803f 100644 --- a/user_guide/database/queries.html +++ b/user_guide/database/queries.html @@ -68,14 +68,14 @@ Queries $this->db->query('YOUR QUERY HERE');

      The query() function returns a database result object when "read" type queries are run, -which you can use to show your results. 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:

      +which you can use to show your results. 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:

      $query = $this->db->query('YOUR QUERY HERE');

      $this->db->simple_query();

      -

      This is a simplified version of the $this->db->query() function. It ONLY returns TRUE/FALSE on success or failure. +

      This is a simplified version of the $this->db->query() 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.

      @@ -100,16 +100,16 @@ CodeIgniter has three methods that help you do this:

      1. $this->db->escape() 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: $sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";
      2. -
      3. $this->db->escape_str() This function escapes the data passed to it, regardless of type. +
      4. $this->db->escape_str() 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: $sql = "INSERT INTO table (title) VALUES('".$this->db->escape_str($title)."')";
      5. -
      6. $this->db->escape_like_str() This method should be used when strings are to be used in LIKE +
      7. $this->db->escape_like_str() 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. $search = '20% raise';
        @@ -130,7 +130,7 @@ $this->db->query($sql, array(3, 'live', 'Rick'));

        The question marks in the query are automatically replaced with the values in the array in the second parameter of the query function.

        -

        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.

        +

        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.

        diff --git a/user_guide/database/results.html b/user_guide/database/results.html index 0b82752a7..8ad6a1986 100644 --- a/user_guide/database/results.html +++ b/user_guide/database/results.html @@ -112,7 +112,7 @@ Query Results

        result_array()

        -

        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:

        +

        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:

        $query = $this->db->query("YOUR QUERY");

        @@ -126,8 +126,8 @@ Query Results

        row()

        -

        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 object. Here's a usage example:

        +

        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 object. Here's a usage example:

        $query = $this->db->query("YOUR QUERY");

        @@ -157,7 +157,7 @@ Query Results

        row_array()

        -

        Identical to the above row() function, except it returns an array. Example:

        +

        Identical to the above row() function, except it returns an array. Example:

        $query = $this->db->query("YOUR QUERY");
        @@ -209,7 +209,7 @@ echo $query->num_rows();

        $query->num_fields()

        -

        The number of FIELDS (columns) returned by the query. Make sure to call the function using your query result object:

        +

        The number of FIELDS (columns) returned by the query. Make sure to call the function using your query result object:

        $query = $this->db->query('SELECT * FROM my_table');

        echo $query->num_fields(); @@ -218,9 +218,9 @@ echo $query->num_fields();

        $query->free_result()

        -

        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: +

        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:

        $query = $this->db->query('SELECT title FROM my_table');

        @@ -228,12 +228,12 @@ foreach ($query->result() as $row)
        {
           echo $row->title;
        }
        -$query->free_result(); // The $query result object will no longer be available
        +$query->free_result(); // The $query result object will no longer be available

        $query2 = $this->db->query('SELECT name FROM some_table');

        $row = $query2->row();
        echo $row->name;
        -$query2->free_result(); // The $query2 result object will no longer be available +$query2->free_result(); // The $query2 result object will no longer be available
        diff --git a/user_guide/database/table_data.html b/user_guide/database/table_data.html index 631e3b9d1..a2aaa99a8 100644 --- a/user_guide/database/table_data.html +++ b/user_guide/database/table_data.html @@ -65,7 +65,7 @@ Table Data

        $this->db->list_tables();

        -

        Returns an array containing the names of all the tables in the database you are currently connected to. Example:

        +

        Returns an array containing the names of all the tables in the database you are currently connected to. Example:

        $tables = $this->db->list_tables();

        @@ -79,7 +79,7 @@ foreach ($tables as $table)

        $this->db->table_exists();

        Sometimes it's helpful to know whether a particular table exists before running an operation on it. -Returns a boolean TRUE/FALSE. Usage example:

        +Returns a boolean TRUE/FALSE. Usage example:

        if ($this->db->table_exists('table_name'))
        @@ -88,7 +88,7 @@ if ($this->db->table_exists('table_name'))
        }
        -

        Note: Replace table_name with the name of the table you are looking for.

        +

        Note: Replace table_name with the name of the table you are looking for.

        diff --git a/user_guide/database/transactions.html b/user_guide/database/transactions.html index 68d76dff6..74945d434 100644 --- a/user_guide/database/transactions.html +++ b/user_guide/database/transactions.html @@ -61,18 +61,18 @@ Transactions

        Transactions

        -

        CodeIgniter's database abstraction allows you to use transactions 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.

        +

        CodeIgniter's database abstraction allows you to use transactions 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.

        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.

        CodeIgniter's Approach to Transactions

        -

        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.

        +

        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.

        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 commit or rollback based on the success or failure of your queries. This is particularly cumbersome with @@ -98,7 +98,7 @@ of any given query.

        Strict Mode

        -

        By default CodeIgniter runs all transactions in Strict Mode. When strict mode is enabled, if you are running multiple groups of +

        By default CodeIgniter runs all transactions in Strict Mode. 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.

        @@ -127,7 +127,7 @@ if ($this->db->trans_status() === FALSE)

        Enabling Transactions

        -

        Transactions are enabled automatically the moment you use $this->db->trans_start(). If you would like to disable transactions you +

        Transactions are enabled automatically the moment you use $this->db->trans_start(). If you would like to disable transactions you can do so using $this->db->trans_off():

        diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html index ec45f2688..c488180a8 100644 --- a/user_guide/database/utilities.html +++ b/user_guide/database/utilities.html @@ -105,7 +105,7 @@ foreach ($dbs as $db)

        $this->dbutil->database_exists();

        Sometimes it's helpful to know whether a particular database exists. -Returns a boolean TRUE/FALSE. Usage example:

        +Returns a boolean TRUE/FALSE. Usage example:

        if ($this->dbutil->database_exists('database_name'))
        @@ -114,7 +114,7 @@ if ($this->dbutil->database_exists('database_name'))
        }
        -

        Note: Replace database_name with the name of the table you are looking for. This function is case sensitive.

        +

        Note: Replace database_name with the name of the table you are looking for. This function is case sensitive.

        @@ -184,7 +184,7 @@ echo $this->dbutil->csv_from_result($query);

        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:

        +set the delimiter and newline character. By default tabs are used as the delimiter and "\n" is used as a new line. Example:

        $delimiter = ",";
        @@ -193,14 +193,14 @@ $newline = "\r\n";
        echo $this->dbutil->csv_from_result($query, $delimiter, $newline);
        -

        Important:  This function will NOT write the CSV file for you. It simply creates the CSV layout. +

        Important:  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 File Helper.

        $this->dbutil->xml_from_result($db_result)

        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:

        +may contain an optional array of config parameters. Example:

        $this->load->dbutil();
        @@ -217,18 +217,18 @@ $config = array (
        echo $this->dbutil->xml_from_result($query, $config);
        -

        Important:  This function will NOT write the XML file for you. It simply creates the XML layout. +

        Important:  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 File Helper.

        $this->dbutil->backup()

        -

        Permits you to backup your full database or individual tables. The backup data can be compressed in either Zip or Gzip format.

        +

        Permits you to backup your full database or individual tables. The backup data can be compressed in either Zip or Gzip format.

        Note:  This features is only available for MySQL databases.

        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.

        Usage Example

        @@ -278,7 +278,7 @@ $this->dbutil->backup($prefs); Options Description -tablesempty arrayNoneAn array of tables you want backed up. If left blank all tables will be exported. +tablesempty arrayNoneAn array of tables you want backed up. If left blank all tables will be exported. ignoreempty arrayNoneAn array of tables you want the backup routine to ignore. diff --git a/user_guide/doc_style/template.html b/user_guide/doc_style/template.html index e25503200..d59d5e4ed 100644 --- a/user_guide/doc_style/template.html +++ b/user_guide/doc_style/template.html @@ -51,7 +51,7 @@ Foo Class

        Foo Class

        -

        Brief description of Foo Class. If it extends a native CodeIgniter class, please link to the class in the CodeIgniter documents here.

        +

        Brief description of Foo Class. If it extends a native CodeIgniter class, please link to the class in the CodeIgniter documents here.

        Important:  This is an important note with EMPHASIS.

        diff --git a/user_guide/general/alternative_php.html b/user_guide/general/alternative_php.html index 574ab35d7..abd5845ff 100644 --- a/user_guide/general/alternative_php.html +++ b/user_guide/general/alternative_php.html @@ -58,19 +58,19 @@ Alternate PHP Syntax

        Alternate PHP Syntax for View Files

        If you do not utilize CodeIgniter's template engine, 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.

        Automatic Short Tag Support

        Note: 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 config/config.php file.

        Please note that if you do use this feature, if PHP errors are encountered -in your view files, the error message and line number will not be accurately shown. Instead, all errors +in your view files, the error message and line number will not be accurately shown. Instead, all errors will be shown as eval() errors.

        @@ -89,7 +89,7 @@ will be shown as eval() errors.

        Alternative Control Structures

        Controls structures, like if, for, foreach, and while can be -written in a simplified format as well. Here is an example using foreach:

        +written in a simplified format as well. Here is an example using foreach:

        <ul>
        @@ -102,14 +102,14 @@ written in a simplified format as well. Here is an example using foreach:


        </ul>
        -

        Notice that there are no braces. Instead, the end brace is replaced with endforeach. +

        Notice that there are no braces. Instead, the end brace is replaced with endforeach. Each of the control structures listed above has a similar closing syntax: endif, endfor, endforeach, and endwhile

        -

        Also notice that instead of using a semicolon after each structure (except the last one), there is a colon. This is +

        Also notice that instead of using a semicolon after each structure (except the last one), there is a colon. This is important!

        -

        Here is another example, using if/elseif/else. Notice the colons:

        +

        Here is another example, using if/elseif/else. Notice the colons:

        <?php if ($username == 'sally'): ?>
        diff --git a/user_guide/general/autoloader.html b/user_guide/general/autoloader.html index 405dda30f..fae0b5fd9 100644 --- a/user_guide/general/autoloader.html +++ b/user_guide/general/autoloader.html @@ -75,7 +75,7 @@ consider auto-loading them for convenience.

        loaded to the autoload array. You'll find instructions in that file corresponding to each type of item.

        -

        Note: Do not include the file extension (.php) when adding items to the autoload array.

        +

        Note: Do not include the file extension (.php) when adding items to the autoload array.

        diff --git a/user_guide/general/caching.html b/user_guide/general/caching.html index abfe6ded9..c77f9a15d 100644 --- a/user_guide/general/caching.html +++ b/user_guide/general/caching.html @@ -68,8 +68,8 @@ By caching your pages, since they are saved in their fully rendered state, you c

        How Does Caching Work?

        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 application/cache 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.

        +When a page is loaded for the first time, the cache file will be written to your application/cache 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.

        Note: The Benchmark tag is not cached so you can still view your page load speed when caching is enabled.

        @@ -90,8 +90,8 @@ most logical to you. Once the tag is in place, your pages will begin being cache

        Deleting Caches

        -

        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 +

        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.

        diff --git a/user_guide/general/common_functions.html b/user_guide/general/common_functions.html index 3c7a5df9e..bfac32685 100644 --- a/user_guide/general/common_functions.html +++ b/user_guide/general/common_functions.html @@ -68,7 +68,7 @@ Auto-loading Resources     $str = quoted_printable_encode($str);
        }
        -

        Returns boolean TRUE if the installed version of PHP is equal to or greater than the supplied version number. Returns FALSE if the installed version of PHP is lower than the supplied version number.

        +

        Returns boolean TRUE if the installed version of PHP is equal to or greater than the supplied version number. Returns FALSE if the installed version of PHP is lower than the supplied version number.

        is_really_writable('path/to/file')

        @@ -92,10 +92,10 @@ else

        set_status_header(code, 'text');

        -

        Permits you to manually set a server status header. Example:

        +

        Permits you to manually set a server status header. Example:

        set_status_header(401);
        -// Sets the header as: Unauthorized
        +// Sets the header as: Unauthorized

        See here for a full list of headers.

        diff --git a/user_guide/general/controllers.html b/user_guide/general/controllers.html index 01ef3d1ff..c90916472 100644 --- a/user_guide/general/controllers.html +++ b/user_guide/general/controllers.html @@ -91,7 +91,7 @@ Controllers

        Let's try it:  Hello World!

        -

        Let's create a simple controller so you can see it in action. Using your text editor, create a file called blog.php, and put the following code in it:

        +

        Let's create a simple controller so you can see it in action. Using your text editor, create a file called blog.php, and put the following code in it:

        -

        If you visit your site using the URL you did earlier you should see your new view. The URL was similar to this:

        +

        If you visit your site using the URL you did earlier you should see your new view. The URL was similar to this:

        example.com/index.php/blog/

        Loading multiple views

        -

        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:

        +

        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:

        <?php

        class Page extends CI_Controller {

           function index()
           {
        -      $data['page_title'] = 'Your title';
        +      $data['page_title'] = 'Your title';
              $this->load->view('header');
              $this->load->view('menu');
              $this->load->view('content', $data);
        @@ -132,8 +132,8 @@ class Page extends CI_Controller {

        ?>

        In the example above, we are using "dynamically added data", which you will see below.

        Storing Views within Sub-folders

        -

        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:

        +

        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:

        $this->load->view('folder_name/file_name'); @@ -159,7 +159,7 @@ $this->load->view('blogview', $data);

        Note: If you use an object, the class variables will be turned into array elements.

        -

        Let's try it with your controller file. Open it add this code:

        +

        Let's try it with your controller file. Open it add this code:

        -

        Note: You'll notice that in the example above we are using PHP's alternative syntax. If you +

        Note: 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 here.

        Returning views as data

        There is a third optional 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 true (boolean) it will return data. The default behavior is false, which sends it -to your browser. Remember to assign it to a variable if you want the data returned:

        +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 true (boolean) it will return data. The default behavior is false, which sends it +to your browser. Remember to assign it to a variable if you want the data returned:

        $string = $this->load->view('myfile', '', true); diff --git a/user_guide/helpers/array_helper.html b/user_guide/helpers/array_helper.html index 88e8384d5..a19621453 100644 --- a/user_guide/helpers/array_helper.html +++ b/user_guide/helpers/array_helper.html @@ -70,8 +70,8 @@ Array Helper

        element()

        -

        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:

        +

        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:

        $array = array('color' => 'red', 'shape' => 'round', 'size' => '');
        @@ -86,7 +86,7 @@ echo element('size', $array, NULL);

        random_element()

        -

        Takes an array as input and returns a random element from it. Usage example:

        +

        Takes an array as input and returns a random element from it. Usage example:

        $quotes = array(
                    "I find that the harder I work, the more luck I seem to have. - Thomas Jefferson",
        @@ -102,8 +102,8 @@ echo random_element($quotes);

        elements()

        -

        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:

        +

        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:

        $array = array(
        @@ -142,7 +142,7 @@ array(
        );
        -

        This is useful when sending the $_POST array to one of your Models. This prevents users from +

        This is useful when sending the $_POST array to one of your Models. This prevents users from sending additional POST data to be entered into your tables:

        diff --git a/user_guide/helpers/captcha_helper.html b/user_guide/helpers/captcha_helper.html index 3c6fa1188..2fd5a5549 100644 --- a/user_guide/helpers/captcha_helper.html +++ b/user_guide/helpers/captcha_helper.html @@ -83,7 +83,7 @@ CAPTCHA Helper <img src="http://example.com/captcha/12345.jpg" width="140" height="50" />

        The "time" is the micro timestamp used as the image name without the file - extension. It will be a number like this: 1139612155.3422

        + extension. It will be a number like this: 1139612155.3422

        The "word" is the word that appears in the captcha image, which if not supplied to the function, will be a random string.

        @@ -109,13 +109,13 @@ echo $cap['image'];
      8. The captcha function requires the GD image library.
      9. Only the img_path and img_url are required.
      10. 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.
      11. If you do not specify a path to a TRUE TYPE font, the native ugly GD font will be used.
      12. The "captcha" folder must be writable (666, or 777)
      13. 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.
    @@ -137,7 +137,7 @@ echo $cap['image'];  KEY `word` (`word`)
    ); -

    Here is an example of usage with a database. On the page where the CAPTCHA will be shown you'll have something like this:

    +

    Here is an example of usage with a database. On the page where the CAPTCHA will be shown you'll have something like this:

    $this->load->helper('captcha');
    $vals = array(
    diff --git a/user_guide/helpers/cookie_helper.html b/user_guide/helpers/cookie_helper.html index 9879653c1..34faadbcc 100644 --- a/user_guide/helpers/cookie_helper.html +++ b/user_guide/helpers/cookie_helper.html @@ -70,20 +70,20 @@ Cookie Helper

    set_cookie()

    -

    This helper function gives you view file friendly syntax to set browser cookies. Refer to the Input class for a description of use, as this function is an alias to $this->input->set_cookie().

    +

    This helper function gives you view file friendly syntax to set browser cookies. Refer to the Input class for a description of use, as this function is an alias to $this->input->set_cookie().

    get_cookie()

    -

    This helper function gives you view file friendly syntax to get browser cookies. Refer to the Input class for a description of use, as this function is an alias to $this->input->cookie().

    +

    This helper function gives you view file friendly syntax to get browser cookies. Refer to the Input class for a description of use, as this function is an alias to $this->input->cookie().

    delete_cookie()

    -

    Lets you delete a cookie. Unless you've set a custom path or other values, only the name of the cookie is needed:

    +

    Lets you delete a cookie. Unless you've set a custom path or other values, only the name of the cookie is needed:

    delete_cookie("name"); -

    This function is otherwise identical to set_cookie(), except that it does not have the value and expiration parameters. You can submit an array +

    This function is otherwise identical to set_cookie(), 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.

    delete_cookie($name, $domain, $path, $prefix) diff --git a/user_guide/helpers/date_helper.html b/user_guide/helpers/date_helper.html index a2933420c..44096ff46 100644 --- a/user_guide/helpers/date_helper.html +++ b/user_guide/helpers/date_helper.html @@ -72,7 +72,7 @@ Date Helper

    now()

    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.

    @@ -82,10 +82,10 @@ run a site that lets each user set their own timezone settings) there is no bene

    mdate()

    This function is identical to PHPs date() 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.

    +use MySQL style date codes, where each code letter is preceded with a percent sign: %Y %m %d etc.

    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:

    +are not date codes, as you would normally have to do with the date() function. Example:

    $datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";
    $time = time();
    @@ -149,7 +149,7 @@ echo standard_date($format, $time); DATE_RFC1123 RFC 1123 - Sun, 14 Aug 2005 16:13:03 UTC + Sun, 14 Aug 2005 16:13:03 UTC DATE_RFC2822 @@ -170,7 +170,7 @@ echo standard_date($format, $time);

    local_to_gmt()

    -

    Takes a Unix timestamp as input and returns it as GMT. Example:

    +

    Takes a Unix timestamp as input and returns it as GMT. Example:

    $now = time();

    @@ -180,11 +180,11 @@ $gmt = local_to_gmt($now);

    gmt_to_local()

    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:

    +timezone and Daylight Saving time submitted. Example:

    $timestamp = '1140153693';
    -$timezone = 'UM8';
    +$timezone = 'UM8';
    $daylight_saving = TRUE;

    echo gmt_to_local($timestamp, $timezone, $daylight_saving);
    @@ -208,7 +208,7 @@ $unix = mysql_to_unix($mysql);

    This can be useful if you need to display a date in a form field for submission.

    -

    The time can be formatted with or without seconds, and it can be set to European or US format. If only +

    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:

    $now = time();
    @@ -222,9 +222,9 @@ echo unix_to_human($now, TRUE, 'eu'); // Euro time with seconds

    human_to_unix()

    -

    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:

    +

    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:

    $now = time();

    @@ -242,9 +242,9 @@ $unix = human_to_unix($human);
    1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes -

    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:

    +

    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:

    $post_date = '1079621429';
    $now = time();
    @@ -256,7 +256,7 @@ echo timespan($post_date, $now);

    days_in_month()

    -

    Returns the number of days in a given month/year. Takes leap years into account. Example:

    +

    Returns the number of days in a given month/year. Takes leap years into account. Example:

    echo days_in_month(06, 2005);

    If the second parameter is empty, the current year will be used.

    @@ -304,7 +304,7 @@ echo timespan($post_date, $now);

    This menu is useful if you run a membership site in which your users are allowed to set their local timezone value.

    -

    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:

    +

    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:

    echo timezone_menu('UM8'); diff --git a/user_guide/helpers/directory_helper.html b/user_guide/helpers/directory_helper.html index 2086fe1f3..1a2f28d7d 100644 --- a/user_guide/helpers/directory_helper.html +++ b/user_guide/helpers/directory_helper.html @@ -78,12 +78,12 @@ and builds an array representation of it and all its contained files. Example:Note: Paths are almost always relative to your main index.php file.

    -

    Sub-folders contained within the directory will be mapped as well. If you wish to control the recursion depth, +

    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:

    $map = directory_map('./mydirectory/', 1); -

    By default, hidden files will not be included in the returned array. To override this behavior, +

    By default, hidden files will not be included in the returned array. To override this behavior, you may set a third parameter to true (boolean):

    $map = directory_map('./mydirectory/', FALSE, TRUE); diff --git a/user_guide/helpers/file_helper.html b/user_guide/helpers/file_helper.html index 2d06fa25b..c37235424 100644 --- a/user_guide/helpers/file_helper.html +++ b/user_guide/helpers/file_helper.html @@ -69,11 +69,11 @@ File Helper

    read_file('path')

    -

    Returns the data contained in the file specified in the path. Example:

    +

    Returns the data contained in the file specified in the path. Example:

    $string = read_file('./path/to/file.php'); -

    The path can be a relative or full server path. Returns FALSE (boolean) on failure.

    +

    The path can be a relative or full server path. Returns FALSE (boolean) on failure.

    Note: 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.

    @@ -83,7 +83,7 @@ might not work if you are trying to access a file above the calling script.

    write_file('path', $data)

    -

    Writes data to the file specified in the path. If the file does not exist the function will create it. Example:

    +

    Writes data to the file specified in the path. If the file does not exist the function will create it. Example:

    $data = 'Some file data';
    @@ -101,7 +101,7 @@ else
    write_file('./path/to/file.php', $data, 'r+'); -

    The default mode is wb. Please see the PHP user guide for mode options.

    +

    The default mode is wb. Please see the PHP user guide for mode options.

    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.

    @@ -111,7 +111,7 @@ CodeIgniter uses a front controller so paths are always relative to the main sit

    delete_files('path')

    -

    Deletes ALL files contained in the supplied path. Example:

    +

    Deletes ALL files contained in the supplied path. Example:

    delete_files('./path/to/directory/');

    If the second parameter is set to true, any directories contained within the supplied root path will be deleted as well. Example:

    @@ -127,12 +127,12 @@ can optionally be added to the file names by setting the second parameter to TRU

    get_dir_file_info('path/to/directory/', $top_level_only = TRUE)

    -

    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 +

    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, $top_level_only to FALSE, as this can be an intensive operation.

    get_file_info('path/to/file', $file_information)

    -

    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.

    +

    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.

    Note: 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.

    get_mime_by_extension('file')

    @@ -142,7 +142,7 @@ can optionally be added to the file names by setting the second parameter to TRU $file = "somefile.png";
    echo $file . ' is has a mime type of ' . get_mime_by_extension($file);

    -

    Note: 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.

    +

    Note: 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.

    symbolic_permissions($perms)

    diff --git a/user_guide/helpers/form_helper.html b/user_guide/helpers/form_helper.html index b4a5730f2..87e3c28b0 100644 --- a/user_guide/helpers/form_helper.html +++ b/user_guide/helpers/form_helper.html @@ -72,7 +72,7 @@ Form Helper

    form_open()

    -

    Creates an opening form tag with a base URL built from your config preferences. It will optionally let you +

    Creates an opening form tag with a base URL built from your config preferences. It will optionally let you add form attributes and hidden input fields, and will always add the attribute accept-charset based on the charset value in your config file.

    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.

    form_hidden()

    -

    Lets you generate hidden input fields. You can either submit a name/value string to create one field:

    +

    Lets you generate hidden input fields. You can either submit a name/value string to create one field:

    form_hidden('username', 'johndoe');

    @@ -149,7 +149,7 @@ echo form_hidden($data);

    form_input()

    -

    Lets you generate a standard text input field. You can minimally pass the field name and value in the first +

    Lets you generate a standard text input field. You can minimally pass the field name and value in the first and second parameter:

    echo form_input('username', 'johndoe'); @@ -196,9 +196,9 @@ example, you will instead specify "rows" and "cols".

    form_dropdown()

    -

    Lets you create a standard drop-down field. The first parameter will contain the name of the field, +

    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:

    +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:

    $options = array(
                      'small'  => 'Small Shirt',
    @@ -215,7 +215,7 @@ echo form_dropdown('shirts', $options, 'large');

    <select name="shirts">
    <option value="small">Small Shirt</option>
    -<option value="med">Medium Shirt</option>
    +<option value="med">Medium Shirt</option>
    <option value="large" selected="selected">Large Shirt</option>
    <option value="xlarge">Extra Large Shirt</option>
    </select>
    @@ -226,7 +226,7 @@ echo form_dropdown('shirts', $options, $shirts_on_sale);

    <select name="shirts" multiple="multiple">
    <option value="small" selected="selected">Small Shirt</option>
    -<option value="med">Medium Shirt</option>
    +<option value="med">Medium Shirt</option>
    <option value="large" selected="selected">Large Shirt</option>
    <option value="xlarge">Extra Large Shirt</option>
    </select>
    @@ -243,9 +243,9 @@ echo form_dropdown('shirts', $options, 'large', $js);

    form_multiselect()

    -

    Lets you create a standard multiselect field. The first parameter will contain the name of the field, +

    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 form_dropdown() above, +value or values you wish to be selected. The parameter usage is identical to using form_dropdown() above, except of course that the name of the field will need to use POST array syntax, e.g. foo[].

    @@ -267,7 +267,7 @@ echo form_fieldset_close(); </fieldset>

    Similar to other functions, you can submit an associative array in the second parameter if you prefer to set additional attributes.

    $attributes = array('id' => 'address_info', 'class' => 'address_info');
    - echo form_fieldset('Address Information', $attributes);
    + echo form_fieldset('Address Information', $attributes);
    echo "<p>fieldset content here</p>\n";
    echo form_fieldset_close();

    @@ -277,8 +277,8 @@ echo form_fieldset_close();
    <p>form content here</p>
    </fieldset>

    form_fieldset_close()

    -

    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:

    +

    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:

    $string = "</div></div>";

    echo form_fieldset_close($string);
    @@ -309,7 +309,7 @@ echo form_checkbox($data);
    // Would produce:

    <input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" />
    -

    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 +

    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:

    $js = 'onClick="some_function()"';
    @@ -330,7 +330,7 @@ fourth parameter:


    <input type="submit" name="mysubmit" value="Submit Post!" />

    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.

    + The third parameter lets you add extra data to your form, like JavaScript.

    form_label()

    Lets you generate a <label>. Simple example:

    echo form_label('What is your Name', 'username');
    @@ -338,13 +338,13 @@ fourth parameter:

    // Would produce:
    <label for="username">What is your Name</label>
    -

    Similar to other functions, you can submit an associative array in the third parameter if you prefer to set additional attributes.

    +

    Similar to other functions, you can submit an associative array in the third parameter if you prefer to set additional attributes.

    $attributes = array(
        'class' => 'mycustomclass',
        'style' => 'color: #000;',
    );
    - echo form_label('What is your Name', 'username', $attributes);
    -
    + echo form_label('What is your Name', 'username', $attributes);
    +
    // Would produce:
    <label for="username" class="mycustomclass" style="color: #000;">What is your Name</label>

    form_reset()

    @@ -386,8 +386,8 @@ echo form_button('mybutton', 'Click Me', $js);

    form_close()

    -

    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:

    +

    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:

    $string = "</div></div>";

    @@ -404,7 +404,7 @@ echo form_close($string);

    form_prep()

    -

    Allows you to safely use HTML and characters such as quotes within form elements without breaking out of the form. Consider this example:

    +

    Allows you to safely use HTML and characters such as quotes within form elements without breaking out of the form. Consider this example:

    $string = 'Here is a string containing "quoted" text.';

    @@ -431,7 +431,7 @@ The second (optional) parameter allows you to set a default value for the form.

    set_select()

    -

    If you use a <select> menu, this function permits you to display the menu item that was selected. The first parameter +

    If you use a <select> 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).

    @@ -439,16 +439,16 @@ each item, and the third (optional) parameter lets you set an item as the defaul <select name="myselect">
    -<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
    -<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
    -<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
    +<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
    +<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
    +<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
    </select>

    set_checkbox()

    -

    Permits you to display a checkbox in the state it was submitted. The first parameter +

    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:

    <input type="checkbox" name="mycheck" value="1" <?php echo set_checkbox('mycheck', '1'); ?> />
    @@ -459,8 +459,8 @@ must contain the name of the checkbox, the second parameter must contain its val

    Permits you to display radio buttons in the state they were submitted. This function is identical to the set_checkbox() function above.

    -<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />
    -<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />
    +<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />
    +<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />
    diff --git a/user_guide/helpers/html_helper.html b/user_guide/helpers/html_helper.html index 665081fb6..308013d51 100644 --- a/user_guide/helpers/html_helper.html +++ b/user_guide/helpers/html_helper.html @@ -84,10 +84,10 @@ HTML Helper

    The above would produce: <br /><br /><br />

    heading()

    -

    Lets you create HTML <h1> tags. The first parameter will contain the data, the -second the size of the heading. Example:

    +

    Lets you create HTML <h1> tags. The first parameter will contain the data, the +second the size of the heading. Example:

    echo heading('Welcome!', 3); -

    The above would produce: <h3>Welcome!</h3>

    +

    The above would produce: <h3>Welcome!</h3>

    Additionally, in order to add attributes to the heading tag such as HTML classes, ids or inline styles, a third parameter is available.

    echo heading('Welcome!', 3, 'class="pink"') @@ -95,7 +95,7 @@ second the size of the heading. Example:

    img()

    -

    Lets you create HTML <img /> tags. The first parameter contains the image source. Example:

    +

    Lets you create HTML <img /> tags. The first parameter contains the image source. Example:

    echo img('images/picture.jpg');
    // gives <img src="http://site.com/images/picture.jpg" />

    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.

    @@ -116,7 +116,7 @@ second the size of the heading. Example:

    // <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" />

    link_tag()

    -

    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. +

    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. echo link_tag('css/mystyles.css');
    // gives <link href="http://site.com/css/mystyles.css" rel="stylesheet" type="text/css" />

    Further examples:

    @@ -271,20 +271,20 @@ echo ul($list, $attributes);

    meta()

    -

    Helps you generate meta tags. You can pass strings to the function, or simple arrays, or multidimensional ones. Examples:

    +

    Helps you generate meta tags. You can pass strings to the function, or simple arrays, or multidimensional ones. Examples:

    echo meta('description', 'My Great site');
    -// Generates: <meta name="description" content="My Great Site" />
    +// Generates: <meta name="description" content="My Great Site" />


    -echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); // Note the third parameter. Can be "equiv" or "name"
    -// Generates: <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    +echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); // Note the third parameter. Can be "equiv" or "name"
    +// Generates: <meta http-equiv="Content-type" content="text/html; charset=utf-8" />


    echo meta(array('name' => 'robots', 'content' => 'no-cache'));
    -// Generates: <meta name="robots" content="no-cache" />
    +// Generates: <meta name="robots" content="no-cache" />


    @@ -298,7 +298,7 @@ $meta = array(

    echo meta($meta);
    -// Generates:
    +// Generates:
    // <meta name="robots" content="no-cache" />
    // <meta name="description" content="My Great Site" />
    // <meta name="keywords" content="love, passion, intrigue, deception" />
    @@ -319,7 +319,7 @@ echo doctype('html4-trans');
    // <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    -

    The following is a list of doctype choices. These are configurable, and pulled from application/config/doctypes.php

    +

    The following is a list of doctype choices. These are configurable, and pulled from application/config/doctypes.php

    diff --git a/user_guide/helpers/inflector_helper.html b/user_guide/helpers/inflector_helper.html index 087675454..221c05907 100644 --- a/user_guide/helpers/inflector_helper.html +++ b/user_guide/helpers/inflector_helper.html @@ -71,7 +71,7 @@ Inflector Helper

    singular()

    -

    Changes a plural word to singular. Example:

    +

    Changes a plural word to singular. Example:

    $word = "dogs";
    @@ -81,7 +81,7 @@ echo singular($word); // Returns "dog"

    plural()

    -

    Changes a singular word to plural. Example:

    +

    Changes a singular word to plural. Example:

    $word = "dog";
    @@ -94,7 +94,7 @@ echo plural($word); // Returns "dogs" echo plural($word, TRUE); // Returns "passes"

    camelize()

    -

    Changes a string of words separated by spaces or underscores to camel case. Example:

    +

    Changes a string of words separated by spaces or underscores to camel case. Example:

    $word = "my_dog_spot";
    @@ -104,7 +104,7 @@ echo camelize($word); // Returns "myDogSpot"

    underscore()

    -

    Takes multiple words separated by spaces and underscores them. Example:

    +

    Takes multiple words separated by spaces and underscores them. Example:

    $word = "my dog spot";
    @@ -114,7 +114,7 @@ echo underscore($word); // Returns "my_dog_spot"

    humanize()

    -

    Takes multiple words separated by underscores and adds spaces between them. Each word is capitalized. Example:

    +

    Takes multiple words separated by underscores and adds spaces between them. Each word is capitalized. Example:

    $word = "my_dog_spot";
    diff --git a/user_guide/helpers/language_helper.html b/user_guide/helpers/language_helper.html index e10733baf..3b3b87da9 100644 --- a/user_guide/helpers/language_helper.html +++ b/user_guide/helpers/language_helper.html @@ -73,7 +73,7 @@ Language Helper

    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 $this->lang->line(). - The optional second parameter will also output a form label for you. Example:

    + The optional second parameter will also output a form label for you. Example:

    echo lang('language_key', 'form_item_id');
    // becomes <label for="form_item_id">language_key</label>
    diff --git a/user_guide/helpers/number_helper.html b/user_guide/helpers/number_helper.html index a04f37c86..51a4521a6 100644 --- a/user_guide/helpers/number_helper.html +++ b/user_guide/helpers/number_helper.html @@ -71,7 +71,7 @@ Number Helper

    byte_format()

    -

    Formats a numbers as bytes, based on size, and adds the appropriate suffix. Examples:

    +

    Formats a numbers as bytes, based on size, and adds the appropriate suffix. Examples:

    echo byte_format(456); // Returns 456 Bytes
    diff --git a/user_guide/helpers/security_helper.html b/user_guide/helpers/security_helper.html index 49e0365d1..e0cace325 100644 --- a/user_guide/helpers/security_helper.html +++ b/user_guide/helpers/security_helper.html @@ -71,19 +71,19 @@ Security Helper

    xss_clean()

    -

    Provides Cross Site Script Hack filtering. This function is an alias to the one in the -Input class. More info can be found there.

    +

    Provides Cross Site Script Hack filtering. This function is an alias to the one in the +Input class. More info can be found there.

    sanitize_filename()

    -

    Provides protection against directory traversal. This function is an alias to the one in the -Security class. More info can be found there.

    +

    Provides protection against directory traversal. This function is an alias to the one in the +Security class. More info can be found there.

    do_hash()

    -

    Permits you to create SHA1 or MD5 one way hashes suitable for encrypting passwords. Will create SHA1 by default. Examples:

    +

    Permits you to create SHA1 or MD5 one way hashes suitable for encrypting passwords. Will create SHA1 by default. Examples:

    $str = do_hash($str); // SHA1
    @@ -91,13 +91,13 @@ $str = do_hash($str); // SHA1
    $str = do_hash($str, 'md5'); // MD5
    -

    Note: This function was formerly named dohash(), which has been deprecated in favour of do_hash().

    +

    Note: This function was formerly named dohash(), which has been deprecated in favour of do_hash().

    strip_image_tags()

    -

    This is a security function that will strip image tags from a string. It leaves the image URL as plain text.

    +

    This is a security function that will strip image tags from a string. It leaves the image URL as plain text.

    $string = strip_image_tags($string); diff --git a/user_guide/helpers/smiley_helper.html b/user_guide/helpers/smiley_helper.html index 4668f106e..408df17c9 100644 --- a/user_guide/helpers/smiley_helper.html +++ b/user_guide/helpers/smiley_helper.html @@ -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.

    Important: Before you begin, please download the smiley images 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 application/config/smileys.php

    @@ -166,7 +166,7 @@ you can give your smiley links a generic name that will be tied to a specific id

    get_clickable_smileys()

    -

    Returns an array containing your smiley images wrapped in a clickable link. You must supply the URL to your smiley folder +

    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.

    $image_array = get_smiley_links("http://example.com/images/smileys/", "comment"); @@ -187,10 +187,10 @@ This function is designed to be placed into the <head> area of your web pa

    parse_smileys()

    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:

    +equivalent. The first parameter must contain your string, the second must contain the URL to your smiley folder:

    -$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 6fc2cf5f7..169ee4ebb 100644 --- a/user_guide/helpers/string_helper.html +++ b/user_guide/helpers/string_helper.html @@ -70,9 +70,9 @@ String Helper

    random_string()

    -

    Generates a random string based on the type and length you specify. Useful for creating passwords or generating random hashes.

    +

    Generates a random string based on the type and length you specify. Useful for creating passwords or generating random hashes.

    -

    The first parameter specifies the type of string, the second parameter specifies the length. The following choices are available:

    +

    The first parameter specifies the type of string, the second parameter specifies the length. The following choices are available:

    alpha, alunum, numeric, nozero, unique, md5, encrypt and sha1
      @@ -92,7 +92,7 @@ String Helper

      alternator()

      -

      Allows two or more items to be alternated between, when cycling through a loop. Example:

      +

      Allows two or more items to be alternated between, when cycling through a loop. Example:

      for ($i = 0; $i < 10; $i++)
      {
      diff --git a/user_guide/helpers/text_helper.html b/user_guide/helpers/text_helper.html index 3c83f3d42..f71d87840 100644 --- a/user_guide/helpers/text_helper.html +++ b/user_guide/helpers/text_helper.html @@ -71,22 +71,22 @@ Text Helper

      word_limiter()

      -

      Truncates a string to the number of words specified. Example:

      +

      Truncates a string to the number of words specified. Example:

      $string = "Here is a nice text string consisting of eleven words.";

      $string = word_limiter($string, 4);

      -// Returns: Here is a nice… +// Returns: Here is a nice…
      -

      The third parameter is an optional suffix added to the string. By default it adds an ellipsis.

      +

      The third parameter is an optional suffix added to the string. By default it adds an ellipsis.

      character_limiter()

      -

      Truncates a string to the number of characters specified. It maintains the integrity +

      Truncates a string to the number of characters specified. It maintains the integrity of words so the character count may be slightly more or less then what you specify. Example:

      @@ -94,7 +94,7 @@ $string = "Here is a nice text string consisting of eleven words.";

      $string = character_limiter($string, 20);

      -// Returns: Here is a nice text string… +// Returns: Here is a nice text string…

      The third parameter is an optional suffix added to the string, if undeclared this helper uses an ellipsis.

      @@ -125,9 +125,9 @@ part it should correctly identify characters outside the normal range (like acce

      word_censor()

      -

      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:

      +

      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:

      $disallowed = array('darn', 'shucks', 'golly', 'phooey');
      @@ -137,7 +137,7 @@ $string = word_censor($string, $disallowed, 'Beep!');

      highlight_code()

      -

      Colorizes a string of code (PHP, HTML, etc.). Example:

      +

      Colorizes a string of code (PHP, HTML, etc.). Example:

      $string = highlight_code($string); @@ -146,9 +146,9 @@ $string = word_censor($string, $disallowed, 'Beep!');

      highlight_phrase()

      -

      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:

      +

      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:

      $string = "Here is a nice text string about nothing in particular.";
      @@ -164,7 +164,7 @@ $string = highlight_phrase($string, "nice text", '<span style="color:#990000"

      word_wrap()

      -

      Wraps text at the specified character count while maintaining complete words. Example:

      +

      Wraps text at the specified character count while maintaining complete words. Example:

      $string = "Here is a simple string of text that will help us demonstrate this function.";

      @@ -180,8 +180,8 @@ function

      ellipsize()

      This function will strip tags from a string, split it at a defined maximum length, and insert an ellipsis.

      -

      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.

      -

      An optional forth parameter is the kind of ellipsis. By default, &hellip; will be inserted.

      +

      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.

      +

      An optional forth parameter is the kind of ellipsis. By default, &hellip; will be inserted.

      $str = 'this_string_is_entirely_too_long_and_might_break_my_design.jpg';

      diff --git a/user_guide/helpers/typography_helper.html b/user_guide/helpers/typography_helper.html index e75528fbb..00686a340 100644 --- a/user_guide/helpers/typography_helper.html +++ b/user_guide/helpers/typography_helper.html @@ -71,7 +71,7 @@ Typography Helper

      auto_typography()

      -

      Formats text so that it is semantically and typographically correct HTML. Please see the Typography Class for more info.

      +

      Formats text so that it is semantically and typographically correct HTML. Please see the Typography Class for more info.

      Usage example:

      diff --git a/user_guide/helpers/url_helper.html b/user_guide/helpers/url_helper.html index 0bcf1e7ae..d20f1b1e2 100644 --- a/user_guide/helpers/url_helper.html +++ b/user_guide/helpers/url_helper.html @@ -69,13 +69,13 @@ URL Helper

      site_url()

      -

      Returns your site URL, as specified in your config file. The index.php file (or whatever you have set as your +

      Returns your site URL, as specified in your config file. The index.php file (or whatever you have set as your site index_page in your config file) will be added to the URL, as will any URI segments you pass to the function.

      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.

      -

      Segments can be optionally passed to the function as a string or an array. Here is a string example:

      +

      Segments can be optionally passed to the function as a string or an array. Here is a string example:

      echo site_url("news/local/123"); @@ -90,7 +90,7 @@ echo site_url($segments);

      base_url()

      -

      Returns your site base URL, as specified in your config file. Example:

      +

      Returns your site base URL, as specified in your config file. Example:

      echo base_url(); @@ -99,7 +99,7 @@ echo site_url($segments);

      uri_string()

      -

      Returns the URI segments of any page that contains this function. For example, if your URL was this:

      +

      Returns the URI segments of any page that contains this function. For example, if your URL was this:

      http://some-site.com/blog/comments/123

      The function would return:

      @@ -107,7 +107,7 @@ echo site_url($segments);

      index_page()

      -

      Returns your site "index" page, as specified in your config file. Example:

      +

      Returns your site "index" page, as specified in your config file. Example:

      echo index_page(); @@ -122,15 +122,15 @@ echo site_url($segments); anchor(uri segments, text, attributes) -

      The first parameter can contain any segments you wish appended to the URL. As with the site_url() function above, +

      The first parameter can contain any segments you wish appended to the URL. As with the site_url() function above, segments can be a string or an array.

      -

      Note:  If you are building links that are internal to your application do not include the base URL (http://...). This +

      Note:  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.

      -

      The second segment is the text you would like the link to say. If you leave it blank, the URL will be used.

      +

      The second segment is the text you would like the link to say. If you leave it blank, the URL will be used.

      -

      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.

      +

      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.

      Here are some examples:

      @@ -148,7 +148,7 @@ will be added automatically from the information specified in your config file.

      Nearly identical to the anchor() 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:

      @@ -173,7 +173,7 @@ If you want the function to use all of its defaults simply pass an empty array i

      mailto()

      -

      Creates a standard HTML email link. Usage example:

      +

      Creates a standard HTML email link. Usage example:

      echo mailto('me@my-site.com', 'Click Here to Contact Me'); @@ -188,12 +188,12 @@ written with JavaScript to help prevent the email address from being harvested b

      auto_link()

      -

      Automatically turns URLs and email addresses contained in a string into links. Example:

      +

      Automatically turns URLs and email addresses contained in a string into links. Example:

      $string = auto_link($string); -

      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.

      +

      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.

      Converts only URLs:

      $string = auto_link($string, 'url'); @@ -201,42 +201,42 @@ if the parameter is not specified. Email links are encoded as safe_mailto() as s

      Converts only Email addresses:

      $string = auto_link($string, 'email'); -

      The third parameter determines whether links are shown in a new window. The value can be TRUE or FALSE (boolean):

      +

      The third parameter determines whether links are shown in a new window. The value can be TRUE or FALSE (boolean):

      $string = auto_link($string, 'both', TRUE);

      url_title()

      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:

      +in which you'd like to use the title of your entries in the URL. Example:

      $title = "What's wrong with CSS?";

      $url_title = url_title($title);

      -// Produces: Whats-wrong-with-CSS +// Produces: Whats-wrong-with-CSS
      -

      The second parameter determines the word delimiter. By default dashes are used. Options are: dash, or underscore:

      +

      The second parameter determines the word delimiter. By default dashes are used. Options are: dash, or underscore:

      $title = "What's wrong with CSS?";

      $url_title = url_title($title, 'underscore');

      -// Produces: Whats_wrong_with_CSS +// Produces: Whats_wrong_with_CSS
      -

      The third parameter determines whether or not lowercase characters are forced. By default they are not. Options are boolean TRUE/FALSE:

      +

      The third parameter determines whether or not lowercase characters are forced. By default they are not. Options are boolean TRUE/FALSE:

      $title = "What's wrong with CSS?";

      $url_title = url_title($title, 'underscore', TRUE);

      -// Produces: whats_wrong_with_css +// Produces: whats_wrong_with_css

      prep_url()

      -

      This function will add http:// in the event that a scheme is missing from a URL. Pass the URL string to the function like this:

      +

      This function will add http:// in the event that a scheme is missing from a URL. Pass the URL string to the function like this:

      $url = "example.com";

      $url = prep_url($url);
      @@ -250,7 +250,7 @@ $url = prep_url($url);
      to the controller you want to direct to will create the link. The function will build the URL based on your config file values.

      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 only available with 'location' redirects, and not 'refresh'. Examples:

      +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 only available with 'location' redirects, and not 'refresh'. Examples:

      if ($logged_in == FALSE)
      {
      @@ -262,7 +262,7 @@ redirect('/article/13', 'location', 301);

      Note: In order for this function to work it must be used before anything is outputted to the browser since it utilizes server headers.
      -Note: For very fine grained control over headers, you should use the Output Library's set_header() function.

      +Note: For very fine grained control over headers, you should use the Output Library's set_header() function.

      diff --git a/user_guide/helpers/xml_helper.html b/user_guide/helpers/xml_helper.html index b3d408c7d..ded9aaa35 100644 --- a/user_guide/helpers/xml_helper.html +++ b/user_guide/helpers/xml_helper.html @@ -78,7 +78,7 @@ Less then and greater than characters: < >
      Single and double quotes: '  "
      Dashes: -

      -

      This function ignores ampersands if they are part of existing character entities. Example:

      +

      This function ignores ampersands if they are part of existing character entities. Example:

      $string = xml_convert($string); diff --git a/user_guide/installation/index.html b/user_guide/installation/index.html index f62aadb5e..87da5189f 100644 --- a/user_guide/installation/index.html +++ b/user_guide/installation/index.html @@ -61,24 +61,24 @@ Installation Instructions
      1. Unzip the package.
      2. -
      3. Upload the CodeIgniter folders and files to your server. Normally the index.php file will be at your root.
      4. -
      5. Open the application/config/config.php file with a text editor and set your base URL. If you intend to use encryption or sessions, set your encryption key.
      6. +
      7. Upload the CodeIgniter folders and files to your server. Normally the index.php file will be at your root.
      8. +
      9. Open the application/config/config.php file with a text editor and set your base URL. If you intend to use encryption or sessions, set your encryption key.
      10. If you intend to use a database, open the application/config/database.php file with a text editor and set your database settings.

      If you wish to increase security by hiding the location of your CodeIgniter files you can rename the system and application folders -to something more private. If you do rename them, you must open your main index.php file and set the $system_folder and $application_folder +to something more private. If you do rename them, you must open your main index.php file and set the $system_folder and $application_folder variables at the top of the file with the new name you've chosen.

      -

      For the best security, both the system and any application 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.

      +

      For the best security, both the system and any application 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.

      After moving them, open your main index.php file and set the $system_folder and $application_folder variables, preferably with a full path, e.g. '/www/MyUser/system'.

      - 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 ENVIRONMENT constant, which is - more fully described on the security page. + 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 ENVIRONMENT constant, which is + more fully described on the security page.

      That's it!

      diff --git a/user_guide/installation/troubleshooting.html b/user_guide/installation/troubleshooting.html index f99fc0a32..2a50b8dbf 100644 --- a/user_guide/installation/troubleshooting.html +++ b/user_guide/installation/troubleshooting.html @@ -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 application/config/config.php file and look for the URI Protocol -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 application/config/config.php file and change this:

      +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 application/config/config.php file and change this:

      $config['index_page'] = "index.php"; diff --git a/user_guide/installation/upgrade_130.html b/user_guide/installation/upgrade_130.html index e6bb9480e..f7ffac74e 100644 --- a/user_guide/installation/upgrade_130.html +++ b/user_guide/installation/upgrade_130.html @@ -57,7 +57,7 @@ Upgrading from 1.2 to 1.3

      Upgrading from 1.2 to 1.3

      -

      Note: The instructions on this page assume you are running version 1.2. If you +

      Note: The instructions on this page assume you are running version 1.2. If you have not upgraded to that version please do so first.

      @@ -72,8 +72,8 @@ with a static one.

      Note: If you have any custom developed files in these folders please make copies of them first.

        -
      • application/models/   (new for 1.3)
      • -
      • codeigniter   (new for 1.3)
      • +
      • application/models/   (new for 1.3)
      • +
      • codeigniter   (new for 1.3)
      • drivers
      • helpers
      • init
      • @@ -109,7 +109,7 @@ replace this folder:

        Step 3: Update your index.php file

        -

        Please open your main index.php file (located at your root). At the very bottom of the file, change this:

        +

        Please open your main index.php file (located at your root). At the very bottom of the file, change this:

        require_once BASEPATH.'libraries/Front_controller'.EXT; diff --git a/user_guide/installation/upgrade_131.html b/user_guide/installation/upgrade_131.html index a7025f2a7..7541a83ec 100644 --- a/user_guide/installation/upgrade_131.html +++ b/user_guide/installation/upgrade_131.html @@ -57,7 +57,7 @@ Upgrading from 1.3 to 1.3.1

        Upgrading from 1.3 to 1.3.1

        -

        Note: The instructions on this page assume you are running version 1.3. If you +

        Note: The instructions on this page assume you are running version 1.3. If you have not upgraded to that version please do so first.

        Before performing an update you should take your site offline by replacing the index.php file with a static one.

        diff --git a/user_guide/installation/upgrade_132.html b/user_guide/installation/upgrade_132.html index 3b71594dc..4fcbb46b9 100644 --- a/user_guide/installation/upgrade_132.html +++ b/user_guide/installation/upgrade_132.html @@ -57,7 +57,7 @@ Upgrading from 1.3.1 to 1.3.2

        Upgrading from 1.3.1 to 1.3.2

        -

        Note: The instructions on this page assume you are running version 1.3.1. If you +

        Note: 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.

        Before performing an update you should take your site offline by replacing the index.php file with a static one.

        diff --git a/user_guide/installation/upgrade_133.html b/user_guide/installation/upgrade_133.html index a81f67bf5..c63465955 100644 --- a/user_guide/installation/upgrade_133.html +++ b/user_guide/installation/upgrade_133.html @@ -57,7 +57,7 @@ Upgrading from 1.3.2 to 1.3.3

        Upgrading from 1.3.2 to 1.3.3

        -

        Note: The instructions on this page assume you are running version 1.3.2. If you +

        Note: 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.

        Before performing an update you should take your site offline by replacing the index.php file with a static one.

        @@ -83,9 +83,9 @@ have not upgraded to that version please do so first.

        If you are NOT using CodeIgniter's Models feature disregard this step.

        -

        As of version 1.3.3, CodeIgniter does not 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, +

        As of version 1.3.3, CodeIgniter does not 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, as described here.

        diff --git a/user_guide/installation/upgrade_140.html b/user_guide/installation/upgrade_140.html index 234e2f5b3..2049628a6 100644 --- a/user_guide/installation/upgrade_140.html +++ b/user_guide/installation/upgrade_140.html @@ -57,7 +57,7 @@ Upgrading from 1.3.3 to 1.4.0

        Upgrading from 1.3.3 to 1.4.0

        -

        Note: The instructions on this page assume you are running version 1.3.3. If you +

        Note: 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.

        Before performing an update you should take your site offline by replacing the index.php file with a static one.

        @@ -95,7 +95,7 @@ have not upgraded to that version please do so first.

        |-------------------------------------------------------------------------- | | 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 79e51e4ab..c19143c64 100644 --- a/user_guide/installation/upgrade_141.html +++ b/user_guide/installation/upgrade_141.html @@ -56,7 +56,7 @@ Upgrading from 1.4.0 to 1.4.1

        Upgrading from 1.4.0 to 1.4.1

        -

        Note: The instructions on this page assume you are running version 1.4.0. If you +

        Note: 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.

        Before performing an update you should take your site offline by replacing the index.php file with a static one.

        @@ -88,16 +88,16 @@ have not upgraded to that version please do so first.

        | 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 9cd0089c0..342d486df 100644 --- a/user_guide/installation/upgrade_150.html +++ b/user_guide/installation/upgrade_150.html @@ -57,7 +57,7 @@ Upgrading from 1.4.1 to 1.5.0

        Upgrading from 1.4.1 to 1.5.0

        -

        Note: The instructions on this page assume you are running version 1.4.1. If you +

        Note: 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.

        Before performing an update you should take your site offline by replacing the index.php file with a static one.

        @@ -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 136e3090b..f601a252e 100644 --- a/user_guide/installation/upgrade_152.html +++ b/user_guide/installation/upgrade_152.html @@ -57,7 +57,7 @@ Upgrading from 1.5.0 to 1.5.2

        Upgrading from 1.5.0 to 1.5.2

        -

        Note: The instructions on this page assume you are running version 1.5.0 or 1.5.1. If you +

        Note: 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.

        Before performing an update you should take your site offline by replacing the index.php file with a static one.

        diff --git a/user_guide/installation/upgrade_160.html b/user_guide/installation/upgrade_160.html index 2adeff379..d06f58ec9 100644 --- a/user_guide/installation/upgrade_160.html +++ b/user_guide/installation/upgrade_160.html @@ -84,16 +84,16 @@ Upgrading from 1.5.4 to 1.6.0

        Add the following to application/config/autoload.php

        /*
        | -------------------------------------------------------------------
        - | Auto-load Model files
        + | Auto-load Model files
        | -------------------------------------------------------------------
        | Prototype:
        |
        - | $autoload['model'] = array('my_model');
        + | $autoload['model'] = array('my_model');
        |
        */

        $autoload['model'] = array();

        -

        Step 4: Add to your database.php

        +

        Step 4: Add to your database.php

        Make the following changes to your application/config/database.php file:

        Add the following variable above the database configuration options, with $active_group

        $active_record = TRUE;

        diff --git a/user_guide/installation/upgrade_170.html b/user_guide/installation/upgrade_170.html index 6fd92f52a..01597a416 100644 --- a/user_guide/installation/upgrade_170.html +++ b/user_guide/installation/upgrade_170.html @@ -88,14 +88,14 @@ Here is an example of what this column might look like for MySQL:

        ALTER TABLE `ci_sessions` ADD `user_data` text NOT NULL -

        You'll find more information regarding the new Session functionality in the Session class page.

        +

        You'll find more information regarding the new Session functionality in the Session class page.

        Step 3: Update your Validation Syntax

        -

        This is an optional, but recommended step, for people currently using the Validation class. CI 1.7 introduces a new Form Validation class, 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.

        +

        This is an optional, but recommended step, for people currently using the Validation class. CI 1.7 introduces a new Form Validation class, 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.

        diff --git a/user_guide/installation/upgrade_200.html b/user_guide/installation/upgrade_200.html index cd39d924d..0b24079ef 100644 --- a/user_guide/installation/upgrade_200.html +++ b/user_guide/installation/upgrade_200.html @@ -69,8 +69,8 @@ Upgrading from 1.7.2 to 2.0.0

        Step 2: Adjust get_dir_file_info() where necessary

        -

        Version 2.0.0 brings a non-backwards compatible change to get_dir_file_info() in the File Helper. 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 need +

        Version 2.0.0 brings a non-backwards compatible change to get_dir_file_info() in the File Helper. 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 need recursiveness where you are using this helper function, change such instances, setting the second parameter, $top_level_only to FALSE:

        get_dir_file_info('/path/to/directory', FALSE); @@ -79,7 +79,7 @@ Upgrading from 1.7.2 to 2.0.0

        Step 3: Convert your Plugins to Helpers

        -

        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 filename_pi.php to filename_helper.php, move them to your helpers folder, and change all instances of: +

        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 filename_pi.php to filename_helper.php, move them to your helpers folder, and change all instances of: $this->load->plugin('foo'); @@ -94,7 +94,7 @@ to

        Note: 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.

        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, encode_from_legacy() 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.

        @@ -104,7 +104,7 @@ to

        The compatibility helper has been removed from the CodeIgniter core. All methods in it should be natively available in supported PHP versions.

        Step 6: Update Class extension

        -

        All core classes are now prefixed with CI_. Update Models and Controllers to extend CI_Model and CI_Controller, respectively.

        +

        All core classes are now prefixed with CI_. Update Models and Controllers to extend CI_Model and CI_Controller, respectively.

        Step 7: Update Parent Constructor calls

        All native CodeIgniter classes now use the PHP 5 __construct() convention. Please update extended libraries to call parent::__construct().

        diff --git a/user_guide/installation/upgrade_202.html b/user_guide/installation/upgrade_202.html index 93c537227..d457d8bbb 100644 --- a/user_guide/installation/upgrade_202.html +++ b/user_guide/installation/upgrade_202.html @@ -76,7 +76,7 @@ Upgrading from 2.0.1 to 2.0.2

        If you are overriding or extending the Security library, you will need to move it to application/core.

        -

        csrf_token_name and csrf_hash have changed to protected class properties. Please use security->get_csrf_hash() and security->get_csrf_token_name() to access those values.

        +

        csrf_token_name and csrf_hash have changed to protected class properties. Please use security->get_csrf_hash() and security->get_csrf_token_name() to access those values.

        diff --git a/user_guide/installation/upgrade_203.html b/user_guide/installation/upgrade_203.html index d1c9a940f..7dbc907ea 100644 --- a/user_guide/installation/upgrade_203.html +++ b/user_guide/installation/upgrade_203.html @@ -69,7 +69,7 @@ Upgrading from 2.0.2 to 2.0.3

        Step 2: Update CodeIgniter files

        Replace the files and directories in your "system" folder with the new versions:

        - +

        Step 3: Update your main index.php file

        If you are running a stock index.php file simply replace your version with the new one.

        @@ -81,7 +81,7 @@ Upgrading from 2.0.2 to 2.0.3

        This config file has been updated to contain more user agent types, please copy it to application/config/user_agents.php.

        Step 5: Change references of the EXT constant to ".php"

        -

        Note: 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.

        +

        Note: 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.

        Step 6: Remove APPPATH.'third_party' from autoload.php

        @@ -101,10 +101,10 @@ Upgrading from 2.0.2 to 2.0.3 CREATE INDEX last_activity_idx ON ci_sessions(last_activity); ALTER TABLE ci_sessions MODIFY user_agent VARCHAR(120); - - - - + + + + diff --git a/user_guide/installation/upgrade_b11.html b/user_guide/installation/upgrade_b11.html index d2fc20d18..add7228c8 100644 --- a/user_guide/installation/upgrade_b11.html +++ b/user_guide/installation/upgrade_b11.html @@ -61,7 +61,7 @@ Upgrading from Beta 1.0 to Beta 1.1

        Step 1: Replace your index file

        -

        Replace your main index.php 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.

        +

        Replace your main index.php 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.

        Step 2: Relocate your config folder

        @@ -91,7 +91,7 @@ the following item to your version: language/english/calendar_lang.phpStep 5: Edit your config file -

        The original application/config/config.php file has a typo in it Open the file and look for the items related to cookies:

        +

        The original application/config/config.php file has a typo in it Open the file and look for the items related to cookies:

        $conf['cookie_prefix'] = "";
        $conf['cookie_domain'] = "";
        @@ -112,7 +112,7 @@ $config['cookie_path'] = "/";
        |------------------------------------------------
        |
        | This item determines which server global
        -| should be used to retrieve the URI string. The
        +| should be used to retrieve the URI string. The
        | default setting of "auto" works for most servers.
        | If your links do not seem to work, try one of
        | the other delicious flavors:
        diff --git a/user_guide/libraries/benchmark.html b/user_guide/libraries/benchmark.html index 4dadf6b83..c29acb7b2 100644 --- a/user_guide/libraries/benchmark.html +++ b/user_guide/libraries/benchmark.html @@ -83,7 +83,7 @@ timing of the entire system execution to be shown.

        Using the Benchmark Class

        -

        The Benchmark class can be used within your controllers, views, or your models. The process for usage is this:

        +

        The Benchmark class can be used within your controllers, views, or your models. The process for usage is this:

        1. Mark a start point
        2. @@ -101,7 +101,7 @@ $this->benchmark->mark('code_end');

          echo $this->benchmark->elapsed_time('code_start', 'code_end'); -

          Note: The words "code_start" and "code_end" are arbitrary. They are simply words used to set two markers. You can +

          Note: 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:

          $this->benchmark->mark('dog');
          @@ -154,8 +154,8 @@ is sent to the browser, simply place this in one of your view templates:

          <?php echo $this->benchmark->elapsed_time();?>

          You'll notice that it's the same function used in the examples above to calculate the time between two point, except you are -not 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.

          +not 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.

          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:

          {elapsed_time} diff --git a/user_guide/libraries/caching.html b/user_guide/libraries/caching.html index 3fa9fa6a4..190232e4b 100644 --- a/user_guide/libraries/caching.html +++ b/user_guide/libraries/caching.html @@ -58,7 +58,7 @@ Caching Driver

          Caching Driver

          -

          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.

          +

          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.

          Table of Contents

            @@ -97,7 +97,7 @@ echo $foo;

            is_supported(driver['string'])

            -

            This function is automatically called when accessing drivers via $this->cache->get(). However, if the individual drivers are used, make sure to call this function to ensure the driver is supported in the hosting environment.

            +

            This function is automatically called when accessing drivers via $this->cache->get(). However, if the individual drivers are used, make sure to call this function to ensure the driver is supported in the hosting environment.

            if ($this->cache->apc->is_supported())
            @@ -111,23 +111,23 @@ if ($this->cache->apc->is_supported())

            get(id['string'])

            -

            This function will attempt to fetch an item from the cache store. If the item does not exist, the function will return FALSE.

            +

            This function will attempt to fetch an item from the cache store. If the item does not exist, the function will return FALSE.

            $foo = $this->cache->get('my_cached_item');

            save(id['string'], data['mixed'], ttl['int'])

            -

            This function will save an item to the cache store. If saving fails, the function will return FALSE.

            +

            This function will save an item to the cache store. If saving fails, the function will return FALSE.

            The optional third parameter (Time To Live) defaults to 60 seconds.

            $this->cache->save('cache_item_id', 'data_to_cache');

            delete(id['string'])

            -

            This function will delete a specific item from the cache store. If item deletion fails, the function will return FALSE.

            +

            This function will delete a specific item from the cache store. If item deletion fails, the function will return FALSE.

            $this->cache->delete('cache_item_id');

            clean()

            -

            This function will 'clean' the entire cache. If the deletion of the cache files fails, the function will return FALSE.

            +

            This function will 'clean' the entire cache. If the deletion of the cache files fails, the function will return FALSE.

            $this->cache->clean(); @@ -154,7 +154,7 @@ if ($this->cache->apc->is_supported())

            File-based Caching

            -

            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.

            +

            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.

            All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:

            $this->load->driver('cache');
            @@ -172,7 +172,7 @@ if ($this->cache->apc->is_supported())

            Dummy Cache

            -

            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.

            +

            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.

            diff --git a/user_guide/libraries/calendar.html b/user_guide/libraries/calendar.html index 06dfec71e..e1af71cc9 100644 --- a/user_guide/libraries/calendar.html +++ b/user_guide/libraries/calendar.html @@ -86,13 +86,13 @@ To show a calendar for a specific month and year you will pass this information
            echo $this->calendar->generate(2006, 6);
            -

            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.

            +

            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.

            Passing Data to your Calendar Cells

            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:

            +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:

            $this->load->library('calendar');

            @@ -114,7 +114,7 @@ how data passed to your cells is handled so you can pass different types of info

            Setting Display Preferences

            -

            There are seven preferences you can set to control various aspects of the calendar. Preferences are set by passing an +

            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:

            @@ -129,7 +129,7 @@ $this->load->library('calendar', $prefs);

            echo $this->calendar->generate();
            -

            The above code would start the calendar on saturday, use the "long" month heading, and the "short" day names. More information +

            The above code would start the calendar on saturday, use the "long" month heading, and the "short" day names. More information regarding preferences below.

            @@ -180,7 +180,7 @@ echo $this->calendar->generate($this->uri->segment(3), $this->ur
            • You must set the "show_next_prev" to TRUE.
            • You must supply the URL to the controller containing your calendar in the "next_prev_url" preference.
            • -
            • 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.).
            • +
            • 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.).
            diff --git a/user_guide/libraries/cart.html b/user_guide/libraries/cart.html index 433bd5089..f084d5dcf 100644 --- a/user_guide/libraries/cart.html +++ b/user_guide/libraries/cart.html @@ -61,13 +61,13 @@ Shopping Cart Class

            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.

            -

            Please note that the Cart Class ONLY provides the core "cart" functionality. It does not provide shipping, credit card authorization, or other processing components.

            +

            Please note that the Cart Class ONLY provides the core "cart" functionality. It does not provide shipping, credit card authorization, or other processing components.

            Initializing the Shopping Cart Class

            Important: The Cart class utilizes CodeIgniter's -Session Class to save the cart information to a database, so before using the Cart class you must set up a database table +Session Class 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 Session Documentation , and set the session preferences in your application/config/config.php file to utilize a database.

            To initialize the Shopping Cart Class in your controller constructor, use the $this->load->library function:

            @@ -106,19 +106,19 @@ It is intended to be used in cases where your product has options associated wit
          • qty - The quantity being purchased.
          • price - The price of the item.
          • name - The name of the item. -
          • options - Any additional attributes that are needed to identify the product. These must be passed via an array. +
          • options - Any additional attributes that are needed to identify the product. These must be passed via an array.
          -

          In addition to the five indexes above, there are two reserved words: rowid and subtotal. These are used internally by the Cart class, so +

          In addition to the five indexes above, there are two reserved words: rowid and subtotal. These are used internally by the Cart class, so please do NOT use those words as index names when inserting data into the cart.

          -

          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 +

          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.

          Adding Multiple Items to The Cart

          -

          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 +

          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.

          @@ -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);
          -

          What is a Row ID?  The row ID is a unique identifier that is generated by the cart code when an item is added to the cart. The reason a +

          What is a Row ID?  The row ID 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.

          -

          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 +

          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.

          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

          $this->cart->has_options(rowid);

          -

          Returns TRUE (boolean) if a particular row in the cart contains options. This function is designed to be used in a loop with $this->cart->contents(), since you must pass the rowid to this function, as shown in the Displaying the Cart example above.

          +

          Returns TRUE (boolean) if a particular row in the cart contains options. This function is designed to be used in a loop with $this->cart->contents(), since you must pass the rowid to this function, as shown in the Displaying the Cart example above.

          $this->cart->product_options(rowid);

          @@ -322,7 +322,7 @@ function when the update form is submitted. Please examine the construction of t

          $this->cart->destroy();

          -

          Permits you to destroy the cart. This function will likely be called when you are finished processing the customer's order.

          +

          Permits you to destroy the cart. This function will likely be called when you are finished processing the customer's order.

          diff --git a/user_guide/libraries/config.html b/user_guide/libraries/config.html index c0192ca0a..2433ec4ad 100644 --- a/user_guide/libraries/config.html +++ b/user_guide/libraries/config.html @@ -58,7 +58,7 @@ Config Class

          Config Class

          -

          The Config class provides a means to retrieve configuration preferences. These preferences can +

          The Config class provides a means to retrieve configuration preferences. These preferences can come from the default config file (application/config/config.php) or from your own custom config files.

          Note: This class is initialized automatically by the system so there is no need to do it manually.

          @@ -66,7 +66,7 @@ come from the default config file (application/config/config.php) o

          Anatomy of a Config File

          -

          By default, CodeIgniter has one primary config file, located at application/config/config.php. If you open the file using +

          By default, CodeIgniter has one primary config file, located at application/config/config.php. If you open the file using your text editor you'll see that config items are stored in an array called $config.

          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 config folder.

          Note: If you do create your own config files use the same format as the primary one, storing your items in -an array called $config. CodeIgniter will intelligently manage these files so there will be no conflict even though +an array called $config. 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).

          Loading a Config File

          @@ -92,12 +92,12 @@ so you will only need to load a config file if you have created your own.

          Where filename is the name of your config file, without the .php file extension.

          -

          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 TRUE +

          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 TRUE and each config file will be stored in an array index corresponding to the name of the config file. Example:

          -// Stored in an array with this prototype: $this->config['blog_settings'] = $config
          +// Stored in an array with this prototype: $this->config['blog_settings'] = $config
          $this->config->load('blog_settings', TRUE);

          Please see the section entitled Fetching Config Items below to learn how to retrieve config items set this way.

          @@ -109,7 +109,7 @@ $this->config->load('blog_settings', TRUE);
        3. Auto-loading -

          If you find that you need a particular config file globally, you can have it loaded automatically by the system. To do this, +

          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 autoload.php file, located at application/config/autoload.php, and add your config file as indicated in the file.

        4. @@ -129,7 +129,7 @@ indicated in the file.

          The function returns FALSE (boolean) if the item you are trying to fetch does not exist.

          If you are using the second parameter of the $this->config->load 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 $this->config->item() function. Example:

          +you can retrieve it by specifying the index name in the second parameter of the $this->config->item() function. Example:

          // Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"
          @@ -154,32 +154,32 @@ $site_name = $blog_config['site_name'];

          Environments

          - You may load different configuration files depending on the current environment. - The ENVIRONMENT constant is defined in index.php, and is described - in detail in the Handling Environments - section. + You may load different configuration files depending on the current environment. + The ENVIRONMENT constant is defined in index.php, and is described + in detail in the Handling Environments + section.

          - 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

          For example, to create a production-only config.php, you would:

            -
          1. Create the directory application/config/production/
          2. -
          3. Copy your existing config.php into the above directory
          4. -
          5. Edit application/config/production/config.php so it contains your production settings
          6. +
          7. Create the directory application/config/production/
          8. +
          9. Copy your existing config.php into the above directory
          10. +
          11. Edit application/config/production/config.php so it contains your production settings

          - When you set the ENVIRONMENT constant to 'production', the settings - for your new production-only config.php will be loaded. + When you set the ENVIRONMENT constant to 'production', the settings + for your new production-only config.php will be loaded.

          You can place the following configuration files in environment-specific folders:

          - +
          • Default CodeIgniter configuration files
          • Your own custom configuration files
          • diff --git a/user_guide/libraries/email.html b/user_guide/libraries/email.html index 61e139187..5a8814d59 100644 --- a/user_guide/libraries/email.html +++ b/user_guide/libraries/email.html @@ -78,7 +78,7 @@ Email Class

            Sending email is not only simple, but you can configure it on the fly or set your preferences in a config file.

            -

            Here is a basic example demonstrating how you might send email. Note: This example assumes you are sending the email from one of your +

            Here is a basic example demonstrating how you might send email. Note: This example assumes you are sending the email from one of your controllers.

            $this->load->library('email');
            @@ -103,7 +103,7 @@ echo $this->email->print_debugger();

            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:

            -

            Preferences are set by passing an array of preference values to the email initialize function. Here is an example of how you might set some preferences:

            +

            Preferences are set by passing an array of preference values to the email initialize function. Here is an example of how you might set some preferences:

            $config['protocol'] = 'sendmail';
            $config['mailpath'] = '/usr/sbin/sendmail';
            @@ -117,7 +117,7 @@ $this->email->initialize($config);
            >

            Setting Email Preferences in a Config File

            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 email.php, add the $config +Simply create a new file called the email.php, add the $config array in that file. Then save the file at config/email.php and it will be used automatically. You will NOT need to use the $this->email->initialize() function if you save your preferences in a config file.

            @@ -156,13 +156,13 @@ will NOT need to use the $this->email->initialize() function if you s
    - + - + - + @@ -188,12 +188,12 @@ will NOT need to use the $this->email->initialize() function if you s $this->email->from('you@example.com', 'Your Name');

    $this->email->reply_to()

    -

    Sets the reply-to address. If the information is not provided the information in the "from" function is used. Example:

    +

    Sets the reply-to address. If the information is not provided the information in the "from" function is used. Example:

    $this->email->reply_to('you@example.com', 'Your Name');

    $this->email->to()

    -

    Sets the email address(s) of the recipient(s). Can be a single email, a comma-delimited list or an array:

    +

    Sets the email address(s) of the recipient(s). Can be a single email, a comma-delimited list or an array:

    $this->email->to('someone@example.com');$this->email->to('one@example.com, two@example.com, three@example.com'); @@ -221,14 +221,14 @@ $this->email->to($list);

    Sets the alternative email message body:

    $this->email->set_alt_message('This is the alternative message'); -

    This is an optional message string which can be used if you send HTML formatted email. It lets you specify an alternative +

    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.

    $this->email->clear()

    -

    Initializes all the email variables to an empty state. This function is intended for use if you run the email sending function +

    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.

    foreach ($list as $name => $address)
    {
    @@ -268,13 +268,13 @@ $this->email->send();

    $this->email->print_debugger()

    -

    Returns a string containing any server messages, the email headers, and the email messsage. Useful for debugging.

    +

    Returns a string containing any server messages, the email headers, and the email messsage. Useful for debugging.

    Overriding Word Wrapping

    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:

    The text of your email that
    diff --git a/user_guide/libraries/encryption.html b/user_guide/libraries/encryption.html index 96ad54bc0..60099312c 100644 --- a/user_guide/libraries/encryption.html +++ b/user_guide/libraries/encryption.html @@ -58,9 +58,9 @@ Encryption Class

    Encryption Class

    -

    The Encryption Class provides two-way data encryption. It uses a scheme that either compiles +

    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.

    @@ -72,7 +72,7 @@ In fact, the key you chose will provide the only 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.

    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.

    @@ -91,9 +91,9 @@ storage mechanism and pass the key dynamically when encoding/decoding.

    Message Length

    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.

    @@ -124,7 +124,7 @@ $encrypted_string = $this->encrypt->encode($msg, $key);

    $this->encrypt->decode()

    -

    Decrypts an encoded string. Example:

    +

    Decrypts an encoded string. Example:

    $encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84';
    @@ -142,9 +142,9 @@ $encrypted_string = $this->encrypt->decode($msg, $key);

    $this->encrypt->set_cipher();

    -

    Permits you to set an Mcrypt cipher. By default it uses MCRYPT_RIJNDAEL_256. Example:

    +

    Permits you to set an Mcrypt cipher. By default it uses MCRYPT_RIJNDAEL_256. Example:

    $this->encrypt->set_cipher(MCRYPT_BLOWFISH); -

    Please visit php.net for a list of available ciphers.

    +

    Please visit php.net for a list of available ciphers.

    If you'd like to manually test whether your server supports Mcrypt you can use:

    echo ( ! function_exists('mcrypt_encrypt')) ? 'Nope' : 'Yup'; @@ -152,13 +152,13 @@ $encrypted_string = $this->encrypt->decode($msg, $key);

    $this->encrypt->set_mode();

    -

    Permits you to set an Mcrypt mode. By default it uses MCRYPT_MODE_CBC. Example:

    +

    Permits you to set an Mcrypt mode. By default it uses MCRYPT_MODE_CBC. Example:

    $this->encrypt->set_mode(MCRYPT_MODE_CFB); -

    Please visit php.net for a list of available modes.

    +

    Please visit php.net for a list of available modes.

    $this->encrypt->sha1();

    -

    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:

    +

    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:

    $hash = $this->encrypt->sha1('Some string');

    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:

    If your server does not support SHA1 you can use the provided function.

    $this->encrypt->encode_from_legacy($orig_data, $legacy_mode = MCRYPT_MODE_ECB, $key = '');

    -

    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 +

    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.

    -

    Why only a method to re-encode the data instead of maintaining legacy methods for both encoding and decoding? The algorithms in +

    Why only a method to re-encode the data instead of maintaining legacy methods for both encoding and decoding? 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.

    @@ -195,13 +195,13 @@ function:

    - - +
    wrapchars76 Character count to wrap at.
    mailtypetexttext or htmlType 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.mailtypetexttext or htmlType 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.
    charsetutf-8Character set (utf-8, iso-8859-1, etc.).
    validateFALSETRUE or FALSE (boolean)Whether to validate the email address.validateFALSETRUE or FALSE (boolean)Whether to validate the email address.
    priority31, 2, 3, 4, 5Email Priority. 1 = highest. 5 = lowest. 3 = normal.priority31, 2, 3, 4, 5Email Priority. 1 = highest. 5 = lowest. 3 = normal.
    crlf
    $legacy_mode MCRYPT_MODE_ECBThe Mcrypt mode that was used to generate the original encrypted data. CodeIgniter 1.x's default was MCRYPT_MODE_ECB, and it will + 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.
    $key n/aThe encryption key. This it typically specified in your config file as outlined above.The encryption key. This it typically specified in your config file as outlined above.
    diff --git a/user_guide/libraries/file_uploading.html b/user_guide/libraries/file_uploading.html index a248267ae..e4e842e5f 100644 --- a/user_guide/libraries/file_uploading.html +++ b/user_guide/libraries/file_uploading.html @@ -58,7 +58,7 @@ File Uploading Class

    File Uploading Class

    -

    CodeIgniter's File Uploading Class permits files to be uploaded. You can set various +

    CodeIgniter's File Uploading Class permits files to be uploaded. You can set various preferences, restricting the type and size of the files.

    @@ -80,7 +80,7 @@ preferences, restricting the type and size of the files.

    -

    Using a text editor, create a form called upload_form.php. In it, place this code and save it to your applications/views/ +

    Using a text editor, create a form called upload_form.php. In it, place this code and save it to your applications/views/ folder:

    @@ -106,8 +106,8 @@ folder:

    </body> </html> -

    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 +

    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.

    @@ -138,7 +138,7 @@ In it, place this code and save it to your applications/views/ fold

    The Controller

    -

    Using a text editor, create a controller called upload.php. In it, place this code and save it to your applications/controllers/ +

    Using a text editor, create a controller called upload.php. In it, place this code and save it to your applications/controllers/ folder:

    @@ -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 {

    The Upload Folder

    -

    You'll need a destination folder for your uploaded images. Create a folder at the root of your CodeIgniter installation called +

    You'll need a destination folder for your uploaded images. Create a folder at the root of your CodeIgniter installation called uploads and set its file permissions to 777.

    @@ -215,26 +215,26 @@ controller is correct it should work.

    Setting Preferences

    -

    Similar to other libraries, you'll control what is allowed to be upload based on your preferences. In the controller you +

    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:

    $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);

    -// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:
    +// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:
    $this->upload->initialize($config);
    -

    The above preferences should be fairly self-explanatory. Below is a table describing all available preferences.

    +

    The above preferences should be fairly self-explanatory. Below is a table describing all available preferences.

    Preferences

    -

    The following preferences are available. The default value indicates what will be used if you do not specify that preference.

    +

    The following preferences are available. The default value indicates what will be used if you do not specify that preference.

    @@ -248,14 +248,14 @@ $this->upload->initialize($config); - + - + @@ -264,7 +264,7 @@ $this->upload->initialize($config); @@ -280,28 +280,28 @@ $this->upload->initialize($config); - + - + - + - + @@ -323,7 +323,7 @@ $this->upload->initialize($config);

    Setting preferences in a config file

    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 upload.php, add the $config +Simply create a new file called the upload.php, add the $config array in that file. Then save the file in: config/upload.php and it will be used automatically. You will NOT need to use the $this->upload->initialize function if you save your preferences in a config file.

    @@ -335,7 +335,7 @@ will NOT need to use the $this->upload->initialize function if you sa

    $this->upload->do_upload()

    -

    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 +

    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 userfile, and the form must be a "multipart type:

    <form method="post" action="some_action" enctype="multipart/form-data" /> @@ -349,11 +349,11 @@ $this->upload->do_upload($field_name)

    $this->upload->display_errors()

    -

    Retrieves any error messages if the do_upload() function returned false. The function does not echo automatically, it +

    Retrieves any error messages if the do_upload() function returned false. The function does not echo automatically, it returns the data so you can assign it however you need.

    Formatting Errors

    -

    By default the above function wraps any errors within <p> tags. You can set your own delimiters like this:

    +

    By default the above function wraps any errors within <p> tags. You can set your own delimiters like this:

    $this->upload->display_errors('<p>', '</p>'); @@ -403,7 +403,7 @@ Here is the array prototype:

    - + @@ -415,7 +415,7 @@ Here is the array prototype:

    - + @@ -424,10 +424,10 @@ Here is the array prototype:

    - + - +
    upload_path None NoneThe path to the folder where the upload should be placed. The folder must be writable and the path can be absolute or relative.The path to the folder where the upload should be placed. The folder must be writable and the path can be absolute or relative.
    allowed_types None NoneThe 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.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.
    None Desired file name -

    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.

    +

    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.

    max_size 0 NoneThe 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.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.
    max_width 0 NoneThe maximum width (in pixels) that the file can be. Set to zero for no limit.The maximum width (in pixels) that the file can be. Set to zero for no limit.
    max_height 0 NoneThe maximum height (in pixels) that the file can be. Set to zero for no limit.The maximum height (in pixels) that the file can be. Set to zero for no limit.
    max_filename 0 NoneThe maximum length that a file name can be. Set to zero for no limit.The maximum length that a file name can be. Set to zero for no limit.
    The file name without the extension
    orig_nameThe original file name. This is only useful if you use the encrypted name option.
    The original file name. This is only useful if you use the encrypted name option.
    client_name The file name as supplied by the client user agent, prior to any file name preparation or incrementing.
    The file size in kilobytes
    is_imageWhether the file is an image or not. 1 = image. 0 = not.
    Whether the file is an image or not. 1 = image. 0 = not.
    image_width Image width.
    Image height
    image_typeImage type. Typically the file extension without the period.
    Image type. Typically the file extension without the period.
    image_size_strA string containing the width and height. Useful to put into an image tag.
    A string containing the width and height. Useful to put into an image tag.
    diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html index 54908d41d..8fdcd1446 100644 --- a/user_guide/libraries/form_validation.html +++ b/user_guide/libraries/form_validation.html @@ -113,10 +113,10 @@ along with an error message describing the problem.
    1. Check for required data.
    2. 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.
    3. Sanitize the data for security.
    4. -
    5. Pre-format the data if needed (Does the data need to be trimmed? HTML encoded? Etc.)
    6. +
    7. Pre-format the data if needed (Does the data need to be trimmed? HTML encoded? Etc.)
    8. Prep the data for insertion in the database.
    @@ -150,7 +150,7 @@ Form validation, while simple to create, is generally very messy and tedious to

    The Form

    -

    Using a text editor, create a form called myform.php. In it, place this code and save it to your applications/views/ +

    Using a text editor, create a form called myform.php. In it, place this code and save it to your applications/views/ folder:

    @@ -191,7 +191,7 @@ folder:

    The Success Page

    -

    Using a text editor, create a form called formsuccess.php. In it, place this code and save it to your applications/views/ +

    Using a text editor, create a form called formsuccess.php. In it, place this code and save it to your applications/views/ folder:

    @@ -215,7 +215,7 @@ folder:

    The Controller

    -

    Using a text editor, create a controller called form.php. In it, place this code and save it to your applications/controllers/ +

    Using a text editor, create a controller called form.php. In it, place this code and save it to your applications/controllers/ folder:

    @@ -248,10 +248,10 @@ class Form extends CI_Controller { example.com/index.php/form/ -

    If you submit the form you should simply see the form reload. That's because you haven't set up any validation +

    If you submit the form you should simply see the form reload. That's because you haven't set up any validation rules yet.

    -

    Since you haven't told the Form Validation class to validate anything yet, it returns FALSE (boolean false) by default. The run() +

    Since you haven't told the Form Validation class to validate anything yet, it returns FALSE (boolean false) by default. The run() function only returns TRUE if it has successfully applied your rules without any of them failing.

    @@ -263,8 +263,8 @@ function only returns TRUE if it has successfully applied your rules
    1. It uses a form helper 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.
    2. +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.
    3. At the top of the form you'll notice the following function call: <?php echo validation_errors(); ?> @@ -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.

      Note: The form fields are not yet being re-populated with the data when -there is an error. We'll get to that shortly.

      +there is an error. We'll get to that shortly.

      @@ -387,7 +387,7 @@ $this->form_validation->set_rules($config);

      Cascading Rules

      -

      CodeIgniter lets you pipe multiple rules together. Let's try it. Change your rules in the third parameter of rule setting function, like this:

      +

      CodeIgniter lets you pipe multiple rules together. Let's try it. Change your rules in the third parameter of rule setting function, like this:

      $this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');
      @@ -427,7 +427,7 @@ $this->form_validation->set_rules('email', 'Email', 'trim|required|va the "xss_clean" function, which removes malicious data.

      Any native PHP function that accepts one parameter can be used as a rule, like htmlspecialchars, -trim, MD5, etc.

      +trim, MD5, etc.

      Note: You will generally want to use the prepping functions after the validation rules so if there is an error, the original data will be shown in the form.

      @@ -438,7 +438,7 @@ the validation rules so if there is an error, the original data will be shown in

      Re-populating the form

      -

      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 +

      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:

      set_value('field name') @@ -481,13 +481,13 @@ that permit you to do this. The one you will use most commonly is:

      -

      Now reload your page and submit the form so that it triggers an error. Your form fields should now be re-populated

      +

      Now reload your page and submit the form so that it triggers an error. Your form fields should now be re-populated

      Note: The Function Reference section below contains functions that permit you to re-populate <select> menus, radio buttons, and checkboxes.

      -

      Important Note: If you use an array as the name of a form field, you must supply it as an array to the function. Example:

      +

      Important Note: If you use an array as the name of a form field, you must supply it as an array to the function. Example:

      <input type="text" name="colors[]" value="<?php echo set_value('colors[]'); ?>" size="50" /> @@ -500,16 +500,16 @@ permit you to re-populate <select> menus, radio buttons, and checkboxes.

      Callbacks: Your own Validation Functions

      -

      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.

      +

      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.

      In your controller, change the "username" rule to this:

      $this->form_validation->set_rules('username', 'Username', 'callback_username_check'); -

      Then add a new function called username_check to your controller. Here's how your controller should now look:

      +

      Then add a new function called username_check to your controller. Here's how your controller should now look:

      -

      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 +

      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.

      To invoke a callback just put the function name in a rule, with "callback_" as the rule prefix.

      -

      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 +

      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.

      @@ -568,7 +568,7 @@ it is assumed that the data is your newly processed form data.

      Setting Error Messages

      -

      All of the native error messages are located in the following language file: language/english/form_validation_lang.php

      +

      All of the native error messages are located in the following language file: language/english/form_validation_lang.php

      To set your own custom message you can either edit that file, or use the following function:

      @@ -582,7 +582,7 @@ it is assumed that the data is your newly processed form data.

      $this->form_validation->set_message('username_check') -

      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:

      +

      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:

      $this->form_validation->set_message('required', 'Your custom message here'); @@ -669,9 +669,9 @@ individually.

      <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" /> -

      If there are no errors, nothing will be shown. If there is an error, the message will appear.

      +

      If there are no errors, nothing will be shown. If there is an error, the message will appear.

      -

      Important Note: If you use an array as the name of a form field, you must supply it as an array to the function. Example:

      +

      Important Note: If you use an array as the name of a form field, you must supply it as an array to the function. Example:

      <?php echo form_error('options[size]'); ?>
      <input type="text" name="options[size]" value="<?php echo set_value("options[size]"); ?>" size="50" /> @@ -688,8 +688,8 @@ individually.

      Saving Sets of Validation Rules to a Config File

      -

      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 +

      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.

      How to save your rules

      @@ -728,8 +728,8 @@ $config = array(

      Creating Sets of Rules

      -

      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:

      +

      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:

      $config = array(
      @@ -783,7 +783,7 @@ We've arbitrarily called these two rules "signup" and "email". You can name your

      Calling a Specific Rule Group

      -

      In order to call a specific group you will pass its name to the run() function. For example, to call the signup rule you will do this:

      +

      In order to call a specific group you will pass its name to the run() function. For example, to call the signup rule you will do this:

      if ($this->form_validation->run('signup') == FALSE)
      @@ -800,8 +800,8 @@ else

      Associating a Controller Function with a Rule Group

      -

      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 Member and a function named signup. Here's what your class might look like:

      +

      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 Member and a function named signup. Here's what your class might look like:

      <?php

      @@ -860,7 +860,7 @@ class Member extends CI_Controller {

      Using Arrays as Field Names

      -

      The Form Validation class supports the use of arrays as field names. Consider this example:

      +

      The Form Validation class supports the use of arrays as field names. Consider this example:

      <input type="text" name="options[]" value="" size="50" /> @@ -1147,13 +1147,13 @@ like trim, htmlspecialchars, urldecode, etc.

      $this->form_validation->run(); -

      Runs the validation routines. Returns boolean TRUE on success and FALSE on failure. You can optionally pass the name of the validation +

      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: Saving Groups of Validation Rules to a Config File.

      $this->form_validation->set_message();

      -

      Permits you to set custom error messages. See Setting Error Messages above.

      +

      Permits you to set custom error messages. See Setting Error Messages above.

       

      @@ -1161,25 +1161,25 @@ group via the function, as described in: Saving Groups

      Helper Reference

      -

      The following helper functions are available for use in the view files containing your forms. Note that these are procedural functions, so they +

      The following helper functions are available for use in the view files containing your forms. Note that these are procedural functions, so they do not require you to prepend them with $this->form_validation.

      form_error()

      -

      Shows an individual error message associated with the field name supplied to the function. Example:

      +

      Shows an individual error message associated with the field name supplied to the function. Example:

      <?php echo form_error('username'); ?> -

      The error delimiters can be optionally specified. See the Changing the Error Delimiters section above.

      +

      The error delimiters can be optionally specified. See the Changing the Error Delimiters section above.

      validation_errors()

      -

      Shows all error messages as a string: Example:

      +

      Shows all error messages as a string: Example:

      <?php echo validation_errors(); ?> -

      The error delimiters can be optionally specified. See the Changing the Error Delimiters section above.

      +

      The error delimiters can be optionally specified. See the Changing the Error Delimiters section above.

      @@ -1194,7 +1194,7 @@ The second (optional) parameter allows you to set a default value for the form.

      set_select()

      -

      If you use a <select> menu, this function permits you to display the menu item that was selected. The first parameter +

      If you use a <select> 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).

      @@ -1202,16 +1202,16 @@ each item, and the third (optional) parameter lets you set an item as the defaul <select name="myselect">
      -<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
      -<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
      -<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
      +<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
      +<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
      +<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
      </select>

      set_checkbox()

      -

      Permits you to display a checkbox in the state it was submitted. The first parameter +

      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:

      <input type="checkbox" name="mycheck[]" value="1" <?php echo set_checkbox('mycheck[]', '1'); ?> />
      @@ -1222,8 +1222,8 @@ must contain the name of the checkbox, the second parameter must contain its val

      Permits you to display radio buttons in the state they were submitted. This function is identical to the set_checkbox() function above.

      -<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />
      -<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />
      +<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />
      +<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />
      diff --git a/user_guide/libraries/ftp.html b/user_guide/libraries/ftp.html index c318bc15a..43b949a50 100644 --- a/user_guide/libraries/ftp.html +++ b/user_guide/libraries/ftp.html @@ -59,7 +59,7 @@ FTP Class

      FTP Class

      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.

      +and deleted. The FTP class also includes a "mirroring" function that permits an entire local directory to be recreated remotely via FTP.

      Note:  SFTP and SSL FTP protocols are not supported, only standard FTP.

      @@ -74,7 +74,7 @@ and deleted. The FTP class also includes a "mirroring" function that permits an

      Usage Examples

      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.

      +file permissions are set to 755. Note: Setting permissions requires PHP 5.

      $this->load->library('ftp');
      @@ -157,26 +157,26 @@ $this->ftp->connect($config);

      Setting FTP Preferences in a Config File

      If you prefer you can store your FTP preferences in a config file. -Simply create a new file called the ftp.php, add the $config +Simply create a new file called the ftp.php, add the $config array in that file. Then save the file at config/ftp.php and it will be used automatically.

      Available connection options:

        -
      • hostname - the FTP hostname. Usually something like:  ftp.example.com
      • +
      • hostname - the FTP hostname. Usually something like:  ftp.example.com
      • username - the FTP username.
      • password - the FTP password.
      • port - The port number. Set to 21 by default.
      • debug - TRUE/FALSE (boolean). Whether to enable debugging to display error messages.
      • -
      • passive - TRUE/FALSE (boolean). Whether to use passive mode. Passive is set automatically by default.
      • +
      • passive - TRUE/FALSE (boolean). Whether to use passive mode. Passive is set automatically by default.

      $this->ftp->upload()

      -

      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. +

      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:

      @@ -190,7 +190,7 @@ Example:

      $this->ftp->download()

      -

      Downloads a file from your server. You must supply the remote path and the local path, and you can optionally set the mode. +

      Downloads a file from your server. You must supply the remote path and the local path, and you can optionally set the mode. Example:

      $this->ftp->download('/public_html/myfile.html', '/local/path/to/myfile.html', 'ascii'); @@ -202,7 +202,7 @@ Example:

      $this->ftp->rename()

      -

      Permits you to rename a file. Supply the source file name/path and the new file name/path.

      +

      Permits you to rename a file. Supply the source file name/path and the new file name/path.

      // Renames green.html to blue.html
      @@ -210,7 +210,7 @@ $this->ftp->rename('/public_html/foo/green.html', '/public_html/foo/blue.html');

      $this->ftp->move()

      -

      Lets you move a file. Supply the source and destination paths:

      +

      Lets you move a file. Supply the source and destination paths:

      // Moves blog.html from "joe" to "fred"
      @@ -221,7 +221,7 @@ $this->ftp->move('/public_html/joe/blog.html', '/public_html/fred/blog.html');

      $this->ftp->delete_file()

      -

      Lets you delete a file. Supply the source path with the file name.

      +

      Lets you delete a file. Supply the source path with the file name.

      $this->ftp->delete_file('/public_html/joe/blog.html'); @@ -229,10 +229,10 @@ $this->ftp->delete_file('/public_html/joe/blog.html');

      $this->ftp->delete_dir()

      -

      Lets you delete a directory and everything it contains. Supply the source path to the directory with a trailing slash.

      +

      Lets you delete a directory and everything it contains. Supply the source path to the directory with a trailing slash.

      -

      Important  Be VERY careful with this function. It will recursively delete -everything within the supplied path, including sub-folders and all files. Make absolutely sure your path is correct. +

      Important  Be VERY careful with this function. It will recursively delete +everything within the supplied path, including sub-folders and all files. Make absolutely sure your path is correct. Try using the list_files() function first to verify that your path is correct.

      @@ -242,7 +242,7 @@ $this->ftp->delete_dir('/public_html/path/to/folder/');

      $this->ftp->list_files()

      -

      Permits you to retrieve a list of files on your server returned as an array. You must supply +

      Permits you to retrieve a list of files on your server returned as an array. You must supply the path to the desired directory.

      @@ -255,7 +255,7 @@ print_r($list);

      $this->ftp->mirror()

      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:

      @@ -266,7 +266,7 @@ $this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/');

      $this->ftp->mkdir()

      -

      Lets you create a directory on your server. Supply the path ending in the folder name you wish to create, with a trailing slash. +

      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 octal value in the second parameter (if you are running PHP 5).

      @@ -277,7 +277,7 @@ $this->ftp->mkdir('/public_html/foo/bar/', DIR_WRITE_MODE);

      $this->ftp->chmod()

      -

      Permits you to set file permissions. Supply the path to the file or folder you wish to alter permissions on:

      +

      Permits you to set file permissions. Supply the path to the file or folder you wish to alter permissions on:

      // Chmod "bar" to 777
      @@ -288,7 +288,7 @@ $this->ftp->chmod('/public_html/foo/bar/', DIR_WRITE_MODE);

      $this->ftp->close();

      -

      Closes the connection to your server. It's recommended that you use this when you are finished uploading.

      +

      Closes the connection to your server. It's recommended that you use this when you are finished uploading.

      diff --git a/user_guide/libraries/image_lib.html b/user_guide/libraries/image_lib.html index e6d38fc96..dbf07768e 100644 --- a/user_guide/libraries/image_lib.html +++ b/user_guide/libraries/image_lib.html @@ -68,11 +68,11 @@ Image Manipulation Class
    4. Image Watermarking
    5. -

      All three major image libraries are supported: GD/GD2, NetPBM, and ImageMagick

      +

      All three major image libraries are supported: GD/GD2, NetPBM, and ImageMagick

      Note: 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.

      @@ -82,14 +82,14 @@ library you specify.

      using the $this->load->library function:

      $this->load->library('image_lib'); -

      Once the library is loaded it will be ready for use. The image library object you will use to call all functions is: $this->image_lib

      +

      Once the library is loaded it will be ready for use. The image library object you will use to call all functions is: $this->image_lib

      Processing an Image

      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:

      +call one of four available processing functions. For example, to create an image thumbnail you'll do this:

      $config['image_library'] = 'gd2';
      $config['source_image'] = '/path/to/image/mypic.jpg';
      @@ -106,7 +106,7 @@ $this->image_lib->resize();

      The above code tells the image_resize function to look for an image called mypic.jpg located in the source_image folder, then create a thumbnail that is 75 X 50 pixels using the GD2 image_library. Since the maintain_ratio option is enabled, the thumb will be as close to the target width and -height as possible while preserving the original aspect ratio. The thumbnail will be called mypic_thumb.jpg +height as possible while preserving the original aspect ratio. The thumbnail will be called mypic_thumb.jpg

      Note: 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.

    6. $this->image_lib->clear()
    7. -

      These functions return boolean TRUE upon success and FALSE for failure. If they fail you can retrieve the +

      These functions return boolean TRUE upon success and FALSE for failure. If they fail you can retrieve the error message using this function:

      echo $this->image_lib->display_errors(); @@ -138,7 +138,7 @@ error message using this function:

          echo $this->image_lib->display_errors();
      }
      -

      Note: You can optionally specify the HTML formatting to be applied to the errors, by submitting the opening/closing +

      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:

      $this->image_lib->display_errors('<p>', '</p>'); @@ -146,11 +146,11 @@ tags in the function, like this:

      Preferences

      -

      The preferences described below allow you to tailor the image processing to suit your needs.

      +

      The preferences described below allow you to tailor the image processing to suit your needs.

      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.

      +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.

      Availability Legend:

      @@ -187,7 +187,7 @@ preferences have no effect on cropping. The "availability" column indicates whic library_path None None -Sets the server path to your ImageMagick or NetPBM library. If you use either of those libraries you must supply the path. +Sets the server path to your ImageMagick or NetPBM library. If you use either of those libraries you must supply the path. R, C, X @@ -195,7 +195,7 @@ preferences have no effect on cropping. The "availability" column indicates whic source_image None None -Sets the source image name/path. The path must be a relative or absolute server path, not a URL. +Sets the source image name/path. The path must be a relative or absolute server path, not a URL. R, C, S, W @@ -203,7 +203,7 @@ preferences have no effect on cropping. The "availability" column indicates whic dynamic_output FALSE TRUE/FALSE (boolean) -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. +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. R, C, X, W @@ -221,7 +221,7 @@ preferences have no effect on cropping. The "availability" column indicates whic new_image None None -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. +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. R, C, X, W @@ -253,7 +253,7 @@ preferences have no effect on cropping. The "availability" column indicates whic thumb_marker _thumb None -Specifies the thumbnail indicator. It will be inserted just before the file extension, so mypic.jpg would become mypic_thumb.jpg +Specifies the thumbnail indicator. It will be inserted just before the file extension, so mypic.jpg would become mypic_thumb.jpg R @@ -281,7 +281,7 @@ preferences have no effect on cropping. The "availability" column indicates whic rotation_angle None 90, 180, 270, vrt, hor -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. +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. X @@ -306,7 +306,7 @@ preferences have no effect on cropping. The "availability" column indicates whic

      Setting preferences in a config file

      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 image_lib.php, add the $config +Simply create a new file called image_lib.php, add the $config array in that file. Then save the file in: config/image_lib.php and it will be used automatically. You will NOT need to use the $this->image_lib->initialize function if you save your preferences in a config file.

      @@ -319,7 +319,7 @@ or create a thumbnail image.

      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).

      -

      All preferences listed in the table above are available for this function except these three: rotation_angle, x_axis, and y_axis.

      +

      All preferences listed in the table above are available for this function except these three: rotation_angle, x_axis, and y_axis.

      Creating a Thumbnail

      @@ -358,7 +358,7 @@ preferences for the X and Y axis (in pixels) specifying where to crop, like this $config['x_axis'] = '100';
      $config['y_axis'] = '40';
      -

      All preferences listed in the table above are available for this function except these: rotation_angle, width, height, create_thumb, new_image.

      +

      All preferences listed in the table above are available for this function except these: rotation_angle, width, height, create_thumb, new_image.

      Here's an example showing how you might crop an image:

      @@ -378,8 +378,8 @@ if ( ! $this->image_lib->crop())

      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.

      $this->image_lib->rotate()

      @@ -443,7 +443,7 @@ containing your watermark over the source image.

      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:

      +calling the watermark function. Here is an example:

      $config['source_image'] = '/path/to/image/mypic.jpg';
      @@ -452,9 +452,9 @@ $config['wm_type'] = 'text';
      $config['wm_font_path'] = './system/fonts/texb.ttf';
      $config['wm_font_size'] = '16';
      $config['wm_font_color'] = 'ffffff';
      -$config['wm_vrt_alignment'] = 'bottom';
      -$config['wm_hor_alignment'] = 'center';
      -$config['wm_padding'] = '20';
      +$config['wm_vrt_alignment'] = 'bottom';
      +$config['wm_hor_alignment'] = 'center';
      +$config['wm_padding'] = '20';

      $this->image_lib->initialize($config);
      @@ -462,7 +462,7 @@ $this->image_lib->initialize($config); $this->image_lib->watermark();
      -

      The above example will use a 16 pixel True Type font to create the text "Copyright 2006 - John Doe". The watermark +

      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.

      Note: In order for the image class to be allowed to do any processing, the image file must have "write" file permissions. For example, 777.

      @@ -491,14 +491,14 @@ will be positioned at the bottom/center of the image, 20 pixels from the bottom source_image None None -Sets the source image name/path. The path must be a relative or absolute server path, not a URL. +Sets the source image name/path. The path must be a relative or absolute server path, not a URL. dynamic_output FALSE TRUE/FALSE (boolean) -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. +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. @@ -563,28 +563,28 @@ will be positioned at the bottom/center of the image, 20 pixels from the bottom wm_text None None -The text you would like shown as the watermark. Typically this will be a copyright notice. +The text you would like shown as the watermark. Typically this will be a copyright notice. wm_font_path None None -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. +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. wm_font_size 16 None -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. +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. wm_font_color ffffff None -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). +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). diff --git a/user_guide/libraries/input.html b/user_guide/libraries/input.html index 6070b6c48..08b8ab0d3 100644 --- a/user_guide/libraries/input.html +++ b/user_guide/libraries/input.html @@ -70,20 +70,20 @@ Input Class

      Security Filtering

      -

      The security filtering function is called automatically when a new controller is invoked. It does the following:

      +

      The security filtering function is called automatically when a new controller is invoked. It does the following:

        -
      • Destroys the global GET array. Since CodeIgniter does not utilize GET strings, there is no reason to allow it.
      • +
      • Destroys the global GET array. Since CodeIgniter does not utilize GET strings, there is no reason to allow it.
      • Destroys all global variables in the event register_globals is turned on.
      • Filters the POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters.
      • -
      • Provides XSS (Cross-site Scripting Hacks) filtering. This can be enabled globally, or upon request.
      • +
      • Provides XSS (Cross-site Scripting Hacks) filtering. This can be enabled globally, or upon request.
      • Standardizes newline characters to \n

      XSS Filtering

      -

      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 +

      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 application/config/config.php file and setting this:

      $config['global_xss_filtering'] = TRUE; @@ -93,9 +93,9 @@ Input Class

      Using POST, COOKIE, or SERVER Data

      -

      CodeIgniter comes with three helper functions that let you fetch POST, COOKIE or SERVER items. The main advantage of using the provided +

      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:

      @@ -128,7 +128,7 @@ else

      The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.

      -

      The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;

      +

      The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;

      $this->input->post('some_data', TRUE); @@ -179,7 +179,7 @@ else

      $this->input->set_cookie()

      -

      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: +

      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:

      Array Method

      @@ -203,10 +203,10 @@ $this->input->set_cookie($cookie);

      Only the name and value are required. To delete a cookie set it with the expiration blank.

      -

      The expiration is set in seconds, which will be added to the current time. Do not include the time, but rather only the -number of seconds from now that you wish the cookie to be valid. If the expiration is set to +

      The expiration is set in seconds, which will be added to the current time. Do not include the time, but rather only the +number of seconds from now 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.

      -

      For site-wide cookies regardless of how your site is requested, add your URL to the domain starting with a period, like this: .your-domain.com

      +

      For site-wide cookies regardless of how your site is requested, add your URL to the domain starting with a period, like this: .your-domain.com

      The path is usually not needed since the function sets a root path.

      The prefix is only needed if you need to avoid name collisions with other identically named cookies for your server.

      The secure boolean is only needed if you want to make it a secure cookie by setting it to TRUE.

      @@ -219,25 +219,25 @@ zero the cookie will only last as long as the browser is open.

      $this->input->cookie()

      -

      Lets you fetch a cookie. The first parameter will contain the name of the cookie you are looking for (including any prefixes):

      +

      Lets you fetch a cookie. The first parameter will contain the name of the cookie you are looking for (including any prefixes):

      cookie('some_cookie');

      The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.

      -

      The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;

      +

      The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;

      cookie('some_cookie', TRUE);

      $this->input->ip_address()

      -

      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

      +

      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

      echo $this->input->ip_address();

      $this->input->valid_ip($ip)

      -

      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 +

      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.

      if ( ! $this->input->valid_ip($ip))
      @@ -256,7 +256,7 @@ else

      See the User Agent Class for methods which extract information from the user agent string.

      $this->input->request_headers()

      -

      Useful if running in a non-Apache environment where apache_request_headers() will not be supported. Returns an array of headers.

      +

      Useful if running in a non-Apache environment where apache_request_headers() will not be supported. Returns an array of headers.

      $headers = $this->input->request_headers(); diff --git a/user_guide/libraries/javascript.html b/user_guide/libraries/javascript.html index cd3adf1d2..4e262279d 100644 --- a/user_guide/libraries/javascript.html +++ b/user_guide/libraries/javascript.html @@ -65,11 +65,11 @@ JavaScript Driver $this->load->library('javascript'); -

      The Javascript class also accepts parameters, js_library_driver (string) default 'jquery' and autoload (bool) default TRUE. You may override the defaults if you wish by sending an associative array:

      +

      The Javascript class also accepts parameters, js_library_driver (string) default 'jquery' and autoload (bool) default TRUE. You may override the defaults if you wish by sending an associative array:

      $this->load->library('javascript', array('js_library_driver' => 'scripto', 'autoload' => FALSE)); -

      Again, presently only 'jquery' is available. You may wish to set autoload 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.

      +

      Again, presently only 'jquery' is available. You may wish to set autoload 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.

      Once loaded, the jQuery library object will be available using: $this->javascript

      Setup and Configuration

      @@ -93,7 +93,7 @@ JavaScript Driver $this->load->library('jquery'); -

      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:

      +

      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:

      $this->load->library('jquery', FALSE); @@ -115,7 +115,7 @@ JavaScript Driver

      Effects

      -

      The query library supports a powerful Effects repertoire. Before an effect can be used, it must be loaded:

      +

      The query library supports a powerful Effects repertoire. Before an effect can be used, it must be loaded:

      $this->jquery->effect([optional path] plugin name); // for example @@ -125,8 +125,8 @@ $this->jquery->effect('bounce');

      hide() / show()

      Each of this functions will affect the visibility of an item on your page. hide() will set an item invisible, show() will reveal it.

      -

      $this->jquery->hide(target, optional speed, optional extra information);
      - $this->jquery->show(target, optional speed, optional extra information);

      +

      $this->jquery->hide(target, optional speed, optional extra information);
      + $this->jquery->show(target, optional speed, optional extra information);

      • "target" will be any valid jQuery selector or selectors.
      • @@ -162,8 +162,8 @@ $this->jquery->click('#trigger', $this->jquery->animate('#note', $pa

        fadeIn() / fadeOut()

        -

        $this->jquery->fadeIn(target, optional speed, optional extra information);
        - $this->jquery->fadeOut(target, optional speed, optional extra information);

        +

        $this->jquery->fadeIn(target, optional speed, optional extra information);
        + $this->jquery->fadeOut(target, optional speed, optional extra information);

        • "target" will be any valid jQuery selector or selectors.
        • "speed" is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.
        • @@ -182,8 +182,8 @@ $this->jquery->click('#trigger', $this->jquery->animate('#note', $pa

          fadeIn() / fadeOut()

          These effects cause an element(s) to disappear or reappear over time.

          -

          $this->jquery->fadeIn(target, optional speed, optional extra information);
          - $this->jquery->fadeOut(target, optional speed, optional extra information);

          +

          $this->jquery->fadeIn(target, optional speed, optional extra information);
          + $this->jquery->fadeOut(target, optional speed, optional extra information);

          • "target" will be any valid jQuery selector or selectors.
          • "speed" is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.
          • @@ -193,9 +193,9 @@ $this->jquery->click('#trigger', $this->jquery->animate('#note', $pa

            slideUp() / slideDown() / slideToggle()

            These effects cause an element(s) to slide.

            -

            $this->jquery->slideUp(target, optional speed, optional extra information);
            - $this->jquery->slideDown(target, optional speed, optional extra information);
            -$this->jquery->slideToggle(target, optional speed, optional extra information);

            +

            $this->jquery->slideUp(target, optional speed, optional extra information);
            + $this->jquery->slideDown(target, optional speed, optional extra information);
            +$this->jquery->slideToggle(target, optional speed, optional extra information);

            • "target" will be any valid jQuery selector or selectors.
            • "speed" is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.
            • diff --git a/user_guide/libraries/language.html b/user_guide/libraries/language.html index 1b253fa00..75863c2ac 100644 --- a/user_guide/libraries/language.html +++ b/user_guide/libraries/language.html @@ -60,30 +60,30 @@ Language Class

              The Language Class provides functions to retrieve language files and lines of text for purposes of internationalization.

              -

              In your CodeIgniter system folder you'll find one called language containing sets of language files. You can create +

              In your CodeIgniter system folder you'll find one called language 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.

              -

              Language files are typically stored in your system/language directory. Alternately you can create a folder called language inside -your application folder and store them there. CodeIgniter will look first in your application/language -directory. If the directory does not exist or the specified language is not located there CI will instead look in your global +

              Language files are typically stored in your system/language directory. Alternately you can create a folder called language inside +your application folder and store them there. CodeIgniter will look first in your application/language +directory. If the directory does not exist or the specified language is not located there CI will instead look in your global system/language folder.

              -

              Note:  Each language should be stored in its own folder. For example, the English files are located at: +

              Note:  Each language should be stored in its own folder. For example, the English files are located at: system/language/english

              Creating Language Files

              -

              Language files must be named with _lang.php as the file extension. For example, let's say you want to create a file -containing error messages. You might name it: error_lang.php

              +

              Language files must be named with _lang.php as the file extension. For example, let's say you want to create a file +containing error messages. You might name it: error_lang.php

              Within the file you will assign each line of text to an array called $lang with this prototype:

              $lang['language_key'] = "The actual message to be shown";

              Note: 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 error_

              +similarly named items in other files. For example, if you are creating error messages you might prefix them with error_

              $lang['error_email_missing'] = "You must submit an email address";
              $lang['error_url_missing'] = "You must submit a URL";
              @@ -92,12 +92,12 @@ $lang['error_username_missing'] = "You must submit a username";
              Loading A Language File -

              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:

              +

              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:

              $this->lang->load('filename', 'language');

              Where filename is the name of the file you wish to load (without the file extension), and language -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 application/config/config.php file will be used.

              @@ -109,7 +109,7 @@ is the language set containing it (ie, english). If the second parameter is miss

              Where language_key is the array key corresponding to the line you wish to show.

              -

              Note: This function simply returns the line. It does not echo it for you.

              +

              Note: This function simply returns the line. It does not echo it for you.

              Using language lines as form labels

              diff --git a/user_guide/libraries/loader.html b/user_guide/libraries/loader.html index 50ec60c1f..1d93af5ed 100644 --- a/user_guide/libraries/loader.html +++ b/user_guide/libraries/loader.html @@ -58,7 +58,7 @@ Loader Class

              Loader Class

              -

              Loader, as the name suggests, is used to load elements. These elements can be libraries (classes) View files, +

              Loader, as the name suggests, is used to load elements. These elements can be libraries (classes) View files, Helpers, Models, or your own files.

              Note: This class is initialized automatically by the system so there is no need to do it manually.

              @@ -69,7 +69,7 @@ Loader Class

              $this->load->library('class_name', $config, 'object name')

              -

              This function is used to load core classes. Where class_name is the name of the class you want to load. +

              This function is used to load core classes. Where class_name is the name of the class you want to load. Note: We use the terms "class" and "library" interchangeably.

              For example, if you would like to send email with CodeIgniter, the first step is to load the email class within your controller:

              @@ -96,7 +96,7 @@ For example, if you have file located at:

              Setting options

              -

              The second (optional) parameter allows you to optionally pass configuration setting. You will typically pass these as an array:

              +

              The second (optional) parameter allows you to optionally pass configuration setting. You will typically pass these as an array:

              $config = array (
              @@ -113,7 +113,7 @@ $this->load->library('email', $config);

              Assigning a Library to a different object name

              -

              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 Session, it +

              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 Session, it will be assigned to a variable named $this->session.

              If you prefer to set your own class names you can pass its value to the third parameter:

              @@ -131,20 +131,20 @@ $this->my_session

              $this->load->view('file_name', $data, true/false)

              -

              This function is used to load your View files. If you haven't read the Views section of the +

              This function is used to load your View files. If you haven't read the Views section of the user guide it is recommended that you do since it shows you how this function is typically used.

              -

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

              +

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

              The second optional parameter can take an associative array or an object as input, which it runs through the PHP extract function to -convert to variables that can be used in your view files. Again, read the Views page to learn +convert to variables that can be used in your view files. Again, read the Views page to learn how this might be useful.

              The third optional 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 true (boolean) it will return data. The default behavior is false, which sends it -to your browser. Remember to assign it to a variable if you want the data returned:

              +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 true (boolean) it will return data. The default behavior is false, which sends it +to your browser. Remember to assign it to a variable if you want the data returned:

              $string = $this->load->view('myfile', '', true); @@ -159,7 +159,7 @@ to your browser. Remember to assign it to a variable if you want the data return
              $this->fubar->function();

              $this->load->database('options', true/false)

              -

              This function lets you load the database class. The two parameters are optional. Please see the +

              This function lets you load the database class. The two parameters are optional. Please see the database section for more info.

              @@ -168,9 +168,9 @@ $this->fubar->function();

              $this->load->vars($array)

              This function takes an associative array as input and generates variables using the PHP extract function. -This function produces the same result as using the second parameter of the $this->load->view() function above. The reason you might +This function produces the same result as using the second parameter of the $this->load->view() 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.

              @@ -180,7 +180,7 @@ and merged into one array for conversion to variables.

              $this->load->file('filepath/filename', true/false)

              -

              This is a generic file loading function. Supply the filepath and name in the first parameter and it will open and read the file. +

              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 true (boolean) it will instead return the data as a string.

              @@ -194,7 +194,7 @@ it will instead return the data as a string.

              Application "Packages"

              -

              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 application/third_party folder. Below is a sample map of an package directory

              +

              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 application/third_party folder. Below is a sample map of an package directory

              Sample Package "Foo Bar" Directory Map

              @@ -210,18 +210,18 @@ libraries/
              models/
              -

              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.

              +

              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.

              $this->load->add_package_path()

              -

              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 Foo_bar.php. In our controller, we'd do the following:

              +

              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 Foo_bar.php. In our controller, we'd do the following:

              $this->load->add_package_path(APPPATH.'third_party/foo_bar/');
              $this->load->library('foo_bar');

              $this->load->remove_package_path()

              -

              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.

              +

              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.

              $this->load->remove_package_path()

              @@ -231,8 +231,8 @@ $this->load->library('foo_bar');

              Package view files

              -

              By Default, package view files paths are set when add_package_path() is called. View paths are looped through, and once a match is encountered that view is loaded.

              -

              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 FALSE when calling add_package_path().

              +

              By Default, package view files paths are set when add_package_path() is called. View paths are looped through, and once a match is encountered that view is loaded.

              +

              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 FALSE when calling add_package_path().

              $this->load->add_package_path(APPPATH.'my_app', TRUE);
              diff --git a/user_guide/libraries/output.html b/user_guide/libraries/output.html index 8846e15ff..4d1f8d97a 100644 --- a/user_guide/libraries/output.html +++ b/user_guide/libraries/output.html @@ -58,7 +58,7 @@ Output Class

              Output Class

              -

              The Output class is a small class with one main function: To send the finalized web page to the requesting browser. It is +

              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 caching your web pages, if you use that feature.

              Note: This class is initialized automatically by the system so there is no need to do it manually.

              @@ -70,7 +70,7 @@ It is possible, however, for you to manually intervene with the output if you ne

              $this->output->set_output();

              -

              Permits you to manually set the final output string. Usage example:

              +

              Permits you to manually set the final output string. Usage example:

              $this->output->set_output($data); @@ -95,7 +95,7 @@ $this->output

              $this->output->get_output();

              -

              Permits you to manually retrieve any output that has been sent for storage in the output class. Usage example:

              +

              Permits you to manually retrieve any output that has been sent for storage in the output class. Usage example:

              $string = $this->output->get_output();

              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 $this->load->view().

              $this->output->append_output();

              -

              Appends data onto the output string. Usage example:

              +

              Appends data onto the output string. Usage example:

              $this->output->append_output($data); @@ -112,7 +112,7 @@ CodeIgniter functions like $this->load->view().

              $this->output->set_header();

              -

              Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display. Example:

              +

              Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display. Example:

              $this->output->set_header("HTTP/1.0 200 OK");
              @@ -125,10 +125,10 @@ $this->output->set_header("Pragma: no-cache");

              $this->output->set_status_header(code, 'text');

              -

              Permits you to manually set a server status header. Example:

              +

              Permits you to manually set a server status header. Example:

              $this->output->set_status_header('401');
              -// Sets the header as: Unauthorized
              +// Sets the header as: Unauthorized

              See here for a full list of headers.

              @@ -147,14 +147,14 @@ at the bottom of your pages for debugging and optimization purposes.

              $this->output->set_profiler_sections();

              -

              Permits you to enable/disable specific sections of the Profiler when enabled. Please refer to the Profiler documentation for further information.

              +

              Permits you to enable/disable specific sections of the Profiler when enabled. Please refer to the Profiler documentation for further information.

              $this->output->cache();

              -

              The CodeIgniter output library also controls caching. For more information, please see the caching documentation.

              +

              The CodeIgniter output library also controls caching. For more information, please see the caching documentation.

              Parsing Execution Variables

              -

              CodeIgniter will parse the pseudo-variables {elapsed_time} and {memory_usage} in your output by default. To disable this, set the $parse_exec_vars class property to FALSE in your controller. +

              CodeIgniter will parse the pseudo-variables {elapsed_time} and {memory_usage} in your output by default. To disable this, set the $parse_exec_vars class property to FALSE in your controller. $this->output->parse_exec_vars = FALSE; diff --git a/user_guide/libraries/pagination.html b/user_guide/libraries/pagination.html index a6b9287a3..3c366a69f 100644 --- a/user_guide/libraries/pagination.html +++ b/user_guide/libraries/pagination.html @@ -72,26 +72,26 @@ Pagination Class $this->load->library('pagination');

              $config['base_url'] = 'http://example.com/index.php/test/page/';
              $config['total_rows'] = 200;
              -$config['per_page'] = 20; +$config['per_page'] = 20;

              $this->pagination->initialize($config);

              -echo $this->pagination->create_links(); +echo $this->pagination->create_links();

              Notes:

              -

              The $config array contains your configuration variables. It is passed to the $this->pagination->initialize 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:

              +

              The $config array contains your configuration variables. It is passed to the $this->pagination->initialize 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:

                -
              • base_url 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 +
              • base_url 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 re-route your URI if you need a different structure.
              • total_rows 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.
              • -
              • per_page The number of items you intend to show per page. In the above example, you would be showing 20 items per page.
              • +
              • per_page The number of items you intend to show per page. In the above example, you would be showing 20 items per page.

              The create_links() function returns an empty string when there is no pagination to show.

              @@ -100,7 +100,7 @@ minimum you need the three shown. Here is a description of what those items repr

              Setting preferences in a config file

              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 pagination.php, add the $config +Simply create a new file called pagination.php, add the $config array in that file. Then save the file in: config/pagination.php and it will be used automatically. You will NOT need to use the $this->pagination->initialize function if you save your preferences in a config file.

              @@ -122,9 +122,9 @@ something different you can specify it.

              $config['page_query_string'] = TRUE

              By default, the pagination library assume you are using URI Segments, and constructs your links something like

              http://example.com/index.php/test/page/20

              -

              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.

              +

              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.

              http://example.com/index.php?c=test&m=page&per_page=20

              -

              Note that "per_page" is the default query string passed, however can be configured using $config['query_string_segment'] = 'your_string'

              +

              Note that "per_page" is the default query string passed, however can be configured using $config['query_string_segment'] = 'your_string'

              Adding Enclosing Markup

              If you would like to surround the entire pagination with some markup you can do it with these two prefs:

              diff --git a/user_guide/libraries/parser.html b/user_guide/libraries/parser.html index 4f04aaf48..cb2f100a2 100644 --- a/user_guide/libraries/parser.html +++ b/user_guide/libraries/parser.html @@ -83,10 +83,10 @@ variables or variable tag pairs. If you've never used a template engine, pseudo- PHP from your templates (view files).

              Note: CodeIgniter does not 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.

              -

              Also Note: The Template Parser Class is not a +

              Also Note: The Template Parser Class is not a full-blown template parsing solution. We've kept it very lean on purpose in order to maintain maximum performance.

              @@ -102,7 +102,7 @@ full-blown template parsing solution. We've kept it very lean on purpose in orde

              $this->parser->parse()

              -

              This method accepts a template name and data array as input, and it generates a parsed version. Example:

              +

              This method accepts a template name and data array as input, and it generates a parsed version. Example:

              $this->load->library('parser');

              @@ -114,11 +114,11 @@ $data = array(
              $this->parser->parse('blog_template', $data);

              The first parameter contains the name of the view file (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}

              -

              There is no need to "echo" or do something with the data returned by $this->parser->parse(). 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 +

              There is no need to "echo" or do something with the data returned by $this->parser->parse(). 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:

              $string = $this->parser->parse('blog_template', $data, TRUE); @@ -130,8 +130,8 @@ pass TRUE (boolean) to the third parameter:

              Variable Pairs

              -

              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:

              +

              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:

              <html>
              <head>
              diff --git a/user_guide/libraries/security.html b/user_guide/libraries/security.html index 0cb1d0cb1..735187459 100644 --- a/user_guide/libraries/security.html +++ b/user_guide/libraries/security.html @@ -63,11 +63,11 @@ Security Class

              XSS Filtering

              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 not +all POST and COOKIE data that is encountered, or you can run it on a per item basis. By default it does not run globally since it requires a bit of processing overhead, and since you may not need it in all cases.

              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.

              +or do other malicious things. If anything disallowed is encountered it is rendered safe by converting the data to character entities.

              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.

              @@ -88,7 +88,7 @@ Note: This function should only be used to deal with data upon submission. It's

              Note: If you use the form validation class, it gives you the option of XSS filtering as well.

              -

              An optional second parameter, is_image, 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 TRUE, 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.

              +

              An optional second parameter, is_image, 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 TRUE, 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.

              if ($this->security->xss_clean($file, TRUE) === FALSE)
              {
              @@ -98,7 +98,7 @@ Note: This function should only be used to deal with data upon submission. It's

              $this->security->sanitize_filename()

              -

              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 sanitize_filename() method of the Security class. Here is an example:

              +

              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 sanitize_filename() method of the Security class. Here is an example:

              $filename = $this->security->sanitize_filename($this->input->post('filename')); diff --git a/user_guide/libraries/sessions.html b/user_guide/libraries/sessions.html index bb8f1fc9b..a6f3c601c 100644 --- a/user_guide/libraries/sessions.html +++ b/user_guide/libraries/sessions.html @@ -61,7 +61,7 @@ Session Class

              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.

              @@ -93,8 +93,8 @@ will cause it to read, create, and update sessions.

              If sessions data does not 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.

              -

              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 +

              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.

              @@ -106,7 +106,7 @@ even add your own data to a user's session, but the process of reading, writing,
            • 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)
            • The user's IP Address
            • The user's User Agent data (the first 50 characters of the browser data string)
            • -
            • The "last activity" time stamp.
            • +
            • The "last activity" time stamp.

            The above data is stored in a cookie as a serialized array with this prototype:

            @@ -124,7 +124,7 @@ making the data highly secure and impervious to being read or altered by someone can be found here, although the Session class will take care of initializing and encrypting the data automatically.

            -

            Note: Session cookies are only updated every five minutes by default to reduce processor load. If you repeatedly reload a page +

            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.

            @@ -134,7 +134,7 @@ the cookie was written. This time is configurable by changing the $config['sess_ $this->session->userdata('item'); -

            Where item is the array index corresponding to the item you wish to fetch. For example, to fetch the session ID you +

            Where item is the array index corresponding to the item you wish to fetch. For example, to fetch the session ID you will do this:

            $session_id = $this->session->userdata('session_id'); @@ -145,7 +145,7 @@ will do this:

            Adding Custom Session Data

            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:

            +Why would you want to do this? Here's one example:

            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.

            $this->session->set_userdata($array); -

            Where $array is an associative array containing your new data. Here's an example:

            +

            Where $array is an associative array containing your new data. Here's an example:

            $newdata = array(
            @@ -167,7 +167,7 @@ having to run a database query when you need it.

            $this->session->set_userdata($newdata);

            If you want to add userdata one value at a time, set_userdata() also supports this syntax.

            $this->session->set_userdata('some_name', 'some_value');

            -

            Note: Cookies can only hold 4KB of data, so be careful not to exceed the capacity. The +

            Note: 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.

            Retrieving All Session Data

            @@ -179,10 +179,10 @@ encryption process in particular produces a longer data string than the original
             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
            +    [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
             )
             
            @@ -206,20 +206,20 @@ $this->session->unset_userdata($array_items);

            $this->session->keep_flashdata('item');

            Saving Session Data to a Database

            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.

            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.

            -

            In order to store sessions, you must first create a database table for this purpose. Here is the basic +

            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:

            -

            Note: In the above code we are using a "url helper". You can find more information in the Helpers Functions page.

            +

            Note: In the above code we are using a "url helper". You can find more information in the Helpers Functions page.

            The Server

            @@ -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);

            $this->xmlrpc->send_request()

            -

            The request sending function. Returns boolean TRUE or FALSE based on success for failure, enabling it to be used conditionally.

            +

            The request sending function. Returns boolean TRUE or FALSE based on success for failure, enabling it to be used conditionally.

            $this->xmlrpc->set_debug(TRUE);

            Enables debugging, which will display a variety of information and error data helpful during development.

            @@ -463,7 +463,7 @@ $this->xmlrpc->request($request); echo $this->xmlrpc->display_error();

            $this->xmlrpc->display_response()

            -

            Returns the response from the remote server once request is received. The response will typically be an associative array.

            +

            Returns the response from the remote server once request is received. The response will typically be an associative array.

            $this->xmlrpc->display_response();

            $this->xmlrpc->send_error_message()

            diff --git a/user_guide/libraries/zip.html b/user_guide/libraries/zip.html index 2fc5fd81b..031126603 100644 --- a/user_guide/libraries/zip.html +++ b/user_guide/libraries/zip.html @@ -81,7 +81,7 @@ $this->zip->add_data($name, $data);
            // Write the zip file to a folder on your server. Name it "my_backup.zip"
            $this->zip->archive('/path/to/directory/my_backup.zip');

            - // Download the file to your desktop. Name it "my_backup.zip"
            + // Download the file to your desktop. Name it "my_backup.zip"
            $this->zip->download('my_backup.zip'); @@ -100,7 +100,7 @@ $this->zip->add_data($name, $data);

            You are allowed multiple calls to this function in order to -add several files to your archive. Example:

            +add several files to your archive. Example:

            $name = 'mydata1.txt';
            @@ -139,8 +139,8 @@ $this->zip->add_data($name, $data);

            $this->zip->add_dir()

            -

            Permits you to add a directory. Usually this function is unnecessary since you can place your data into folders when -using $this->zip->add_data(), but if you would like to create an empty folder you can do so. Example:

            +

            Permits you to add a directory. Usually this function is unnecessary since you can place your data into folders when +using $this->zip->add_data(), but if you would like to create an empty folder you can do so. Example:

            $this->zip->add_dir('myfolder'); // Creates a folder called "myfolder" @@ -148,49 +148,49 @@ using $this->zip->add_data(), but if you would like to create an empt

            $this->zip->read_file()

            -

            Permits you to compress a file that already exists somewhere on your server. Supply a file path and the zip class will +

            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:

            $path = '/path/to/photo.jpg';

            $this->zip->read_file($path);

            - // Download the file to your desktop. Name it "my_backup.zip"
            + // Download the file to your desktop. Name it "my_backup.zip"
            $this->zip->download('my_backup.zip');

            If you would like the Zip archive to maintain the directory structure of the file in it, pass TRUE (boolean) in the -second parameter. Example:

            +second parameter. Example:

            $path = '/path/to/photo.jpg';

            $this->zip->read_file($path, TRUE);

            - // Download the file to your desktop. Name it "my_backup.zip"
            + // Download the file to your desktop. Name it "my_backup.zip"
            $this->zip->download('my_backup.zip');
            -

            In the above example, photo.jpg will be placed inside two folders: path/to/

            +

            In the above example, photo.jpg will be placed inside two folders: path/to/

            $this->zip->read_dir()

            -

            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:

            +

            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:

            $path = '/path/to/your/directory/';

            $this->zip->read_dir($path);

            - // Download the file to your desktop. Name it "my_backup.zip"
            + // Download the file to your desktop. Name it "my_backup.zip"
            $this->zip->download('my_backup.zip');

            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 FALSE (boolean) in the second parameter. Example:

            +you can pass FALSE (boolean) in the second parameter. Example:

            $path = '/path/to/your/directory/';

            @@ -204,7 +204,7 @@ $this->zip->read_dir($path, FALSE);

            $this->zip->archive()

            -

            Writes the Zip-encoded file to a directory on your server. Submit a valid server path ending in the file name. Make sure the +

            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:

            $this->zip->archive('/path/to/folder/myarchive.zip'); // Creates a file named myarchive.zip @@ -223,7 +223,7 @@ that cause the download to happen and the file to be treated as binary.

            $this->zip->get_zip()

            -

            Returns the Zip-compressed file data. Generally you will not need this function unless you want to do something unique with the data. +

            Returns the Zip-compressed file data. Generally you will not need this function unless you want to do something unique with the data. Example:

            diff --git a/user_guide/license.html b/user_guide/license.html index ecc5b500d..8f53851a7 100644 --- a/user_guide/license.html +++ b/user_guide/license.html @@ -63,7 +63,7 @@ License Agreement

            Copyright (c) 2008 - 2011, EllisLab, Inc.
            All rights reserved.

            -

            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.

            +

            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.

            Permitted Use

            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:

            diff --git a/user_guide/nav/hacks.txt b/user_guide/nav/hacks.txt index 183481b78..8c17f008a 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 b21ee20e0..256371d19 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/prototype.lite.js b/user_guide/nav/prototype.lite.js index 857faae4d..e6c362279 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 +/* Prototype JavaScript framework + * (c) 2005 Sam Stephenson * - * 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 3b1c42e4c..bcbc43ff8 100644 --- a/user_guide/overview/appflow.html +++ b/user_guide/overview/appflow.html @@ -67,7 +67,7 @@ Appflow
          • The index.php serves as the front controller, initializing the base resources needed to run CodeIgniter.
          • The Router examines the HTTP request to determine what should be done with it.
          • If a cache file exists, it is sent directly to the browser, bypassing the normal system execution.
          • -
          • Security. Before the application controller is loaded, the HTTP request and any user submitted data is filtered for security.
          • +
          • Security. Before the application controller is loaded, the HTTP request and any user submitted data is filtered for security.
          • The Controller loads the model, core libraries, helpers, and any other resources needed to process the specific request.
          • 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.
          • diff --git a/user_guide/overview/at_a_glance.html b/user_guide/overview/at_a_glance.html index 1175e7f42..b6b81d760 100644 --- a/user_guide/overview/at_a_glance.html +++ b/user_guide/overview/at_a_glance.html @@ -60,7 +60,7 @@ What is CodeIgniter?

            CodeIgniter is an Application Framework

            -

            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 +

            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.

            @@ -70,7 +70,7 @@ minimizing the amount of code needed for a given task.

            For more information please read the license agreement.

            CodeIgniter is Light Weight

            -

            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. +

            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.

            @@ -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.

            CodeIgniter Generates Clean URLs

            -

            The URLs generated by CodeIgniter are clean and search-engine friendly. Rather than using the standard "query string" +

            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:

            example.com/news/article/345 @@ -92,7 +92,7 @@ approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a seg

            Note: By default the index.php file is included in the URL but it can be removed using a simple .htaccess file.

            CodeIgniter Packs a Punch

            -

            CodeIgniter comes with full-range of libraries that enable the most commonly needed web development tasks, +

            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.

            @@ -104,7 +104,7 @@ much more.

            Although CodeIgniter does 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:

            +engine is usually only marginally easier than learning the basics of PHP. Consider this block of PHP code:

            <ul>

            @@ -133,7 +133,7 @@ back into PHP to run. Since one of our goals is maximum performance, we

            CodeIgniter is Thoroughly Documented

            -

            Programmers love to code and hate to write documentation. We're no different, of course, but +

            Programmers love to code and hate to write documentation. We're no different, of course, but since documentation is as important as the code itself, we are committed to doing it. Our source code is extremely clean and well commented as well.

            diff --git a/user_guide/overview/features.html b/user_guide/overview/features.html index 4209463b1..e20219e0f 100644 --- a/user_guide/overview/features.html +++ b/user_guide/overview/features.html @@ -59,10 +59,10 @@ Features

            CodeIgniter Features

            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. Installing -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.

            +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.

            • Model-View-Controller Based System
            • @@ -73,7 +73,7 @@ CodeIgniter is child's play so we encourage you to do just that. In the mean tim
            • Security and XSS Filtering
            • Session Management
            • Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, and Mail) and more.
            • -
            • Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM
            • +
            • Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM
            • File Uploading Class
            • FTP Class
            • Localization
            • diff --git a/user_guide/overview/getting_started.html b/user_guide/overview/getting_started.html index 168332644..f120913f4 100644 --- a/user_guide/overview/getting_started.html +++ b/user_guide/overview/getting_started.html @@ -57,7 +57,7 @@ Getting Started

              Getting Started With CodeIgniter

              -

              Any software application requires some effort to learn. We've done our best to minimize the learning +

              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.

              diff --git a/user_guide/overview/goals.html b/user_guide/overview/goals.html index 7f1f7678e..754ecaae0 100644 --- a/user_guide/overview/goals.html +++ b/user_guide/overview/goals.html @@ -67,9 +67,9 @@ rejecting anything that doesn't further the stated objective.

              From a technical and architectural standpoint, CodeIgniter was created with the following objectives:

                -
              • Dynamic Instantiation. 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.
              • -
              • Loose Coupling. 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.
              • -
              • Component Singularity. 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.
              • +
              • Dynamic Instantiation. 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.
              • +
              • Loose Coupling. 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.
              • +
              • Component Singularity. 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.

              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.

              diff --git a/user_guide/overview/mvc.html b/user_guide/overview/mvc.html index 9eb327a95..91cf64977 100644 --- a/user_guide/overview/mvc.html +++ b/user_guide/overview/mvc.html @@ -60,12 +60,12 @@ MVC

              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.

              +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.

              • The Model represents your data structures. Typically your model classes will contain functions that help you -retrieve, insert, and update information in your database.
              • -
              • The View 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.
              • +
              • The View 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".
              • The Controller serves as an intermediary between the Model, the View, and any other resources needed to process the HTTP request and generate a web page.
              • diff --git a/user_guide/userguide.css b/user_guide/userguide.css index b08f4fb00..f93ff0d75 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; -- cgit v1.2.3-24-g4f1b From 8a02247acbac87b3b947d9188ec4f5805f2e1a52 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Fri, 15 Jul 2011 15:25:15 -0600 Subject: ... set_dbprefix(). Programatically set the prefix, great for multi-site systems that "namespace" with prefixes. --- user_guide/changelog.html | 1 + user_guide/database/queries.html | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index a841785f0..a924edc9c 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -86,6 +86,7 @@ Change Log
                • Altered Session to use a longer match against the user_agent string. See upgrade notes if using database sessions.
                • Added is_unique to the Form Validation library.
                • +
                • Added $this->db->set_dbprefix() to the Database Driver.
              diff --git a/user_guide/database/queries.html b/user_guide/database/queries.html index f9f96803f..4c1ddfe7d 100644 --- a/user_guide/database/queries.html +++ b/user_guide/database/queries.html @@ -80,11 +80,16 @@ It DOES NOT return a database result set, nor does it set the query timer, or co It simply lets you submit a query. Most users will rarely use this function.

              -

              Adding Database prefixes manually

              -

              If you have configured a database prefix and would like to add it in manually for, you can use the following.

              +

              Working with Database prefixes manually

              +

              If you have configured a database prefix and would like to prepend it to a table name for use in a native SQL query for example, then you can use the following:

              $this->db->dbprefix('tablename');
              // outputs prefix_tablename

              +

              If for any reason you would like to change the prefix programatically without needing to create a new connection, you can use this method:

              +

              $this->db->set_dbprefix('newprefix');

              +$this->db->dbprefix('tablename');
              +// outputs newprefix_tablename

              +

              Protecting identifiers

              In many databases it is advisable to protect table and field names - for example with backticks in MySQL. Active Record queries are automatically protected, however if you need to manually protect an identifier you can use:

              -- cgit v1.2.3-24-g4f1b From 1b1b67693060ecb6dd399ea6aee4a5503d96adda Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Fri, 15 Jul 2011 19:37:31 -0600 Subject: enable use of param in a callback rule, on behalf of marcoscoelho. --- user_guide/changelog.html | 1 + 1 file changed, 1 insertion(+) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index a924edc9c..8a6fea748 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -75,6 +75,7 @@ Change Log
            • Removed internal usage of the EXT constant.
            • Visual updates to the welcome_message view file and default error templates. Thanks to danijelb for the pull request.
            • Added insert_batch() function to the PostgreSQL database driver. Thanks to epallerols for the patch.
            • +
            • Callback validation rules can now accept parameters like any other validation rule.
          • Helpers -- cgit v1.2.3-24-g4f1b From 7dafce416ebbfa5a2a43c4fd40be5ab4e81bc739 Mon Sep 17 00:00:00 2001 From: MarcosCoelho Date: Sat, 16 Jul 2011 02:57:47 -0300 Subject: explains how use a parameter/argument (optional) in your callback rule declaration --- user_guide/libraries/form_validation.html | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'user_guide') diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html index bba8f507e..da2f5e5e8 100644 --- a/user_guide/libraries/form_validation.html +++ b/user_guide/libraries/form_validation.html @@ -508,11 +508,9 @@ create a callback function that does that. Let's create a example of this.

            $this->form_validation->set_rules('username', 'Username', 'callback_username_check'); -

            Then add a new function called username_check to your controller. Here's how your controller should now look:

            - - + +

            There are only two things here that probably look unfamiliar to you: the form_open() function and the validation_errors() function.

            + +

            The first function is provided by the form helper and renders the form element and adds extra functionality, like adding a hidden CSFR prevention field. The latter is used to report errors related to from validation.

            + +

            Go back to your news controller. You're going to do two things here, check whether the form was submitted and whether the submitted data passed the validation rules. You'll use the form validation library to do this.

            + +
            +function create()
            +{
            +	$this->load->helper('form');
            +	$this->load->library('form_validation');
            +	
            +	$data['title'] = 'Create a news item';
            +	
            +	$this->form_validation->set_rules('title', 'Title', 'required');
            +	$this->form_validation->set_rules('text', 'text', 'required');
            +	
            +	if ($this->form_validation->run() === FALSE)
            +	{
            +		$this->load->view('templates/header', $data);	
            +		$this->load->view('news/create');
            +		$this->load->view('templates/footer');
            +		
            +	}
            +	else
            +	{
            +		$this->news_model->set_news();
            +		$this->load->view('news/success');
            +	}
            +	
            +}
            +
            + +

            The code above adds a lot of functionality. The first few lines load the form helper and the form validation library. After that, rules for the form validation are set. The set_rules() method takes three arguments; the name of the input field, the name to be used in error messages, and the rule. In this case the title and text fields are required.

            + +

            CodeIgniter has a powerful form validation library as demonstrated above. You can read more about this library here.

            + +

            Continuing down, you can see a condition that checks whether the form validation ran successfully. If it did not, the form is displayed, if it was submitted and passed all the rules, the model is called. After this, a view is loaded to display a success message. Create a view at application/view/news/success.php and write a success message.

            + +

            Model

            + +

            The only thing that remains is writing a method that writes the data to the database. You'll use the Active Record class to insert the information and use the input library to get the posted data. Open up the model created earlier and add the following:

            + +
            +function set_news()
            +{
            +	$this->load->helper('url');
            +	
            +	$slug = url_title($this->input->post('title'), 'dash', TRUE);
            +	
            +	$data = array(
            +		'title' => $this->input->post('title'),
            +		'slug' => $slug,
            +		'text' => $this->input->post('text')
            +	);
            +	
            +	return $this->db->insert('news', $data);
            +	
            +}
            +
            + +

            This new method takes care of inserting the news item into the database. The third line contains a new function, url_title(). This function - provided by the URL helper - strips down the string you pass it, replacing all spaces by dashes (-) and makes sure everything is in lowercase characters. This leaves you with a nice slug, perfect for creating URIs.

            + +

            Let's continue with preparing the record that is going to be inserted later, inside the $data array. Each element corresponds with a column in the database table created earlier. You might notice a new method here, namely the post() method from the input library. This method makes sure the data is sanitized, protecting you from nasty attacks from others. The input library is loaded by default. At last, you insert our $data array into our database.

            + +

            Routing

            + +

            Before you can start adding news items into your CodeIgniter application you have to add an extra rule to config/routes.php file. Make sure your file contains the following. This makes sure CodeIgniter sees 'update' as a method instead of a news item's slug.

            + +
            +$route['news/create'] = 'news/create';
            +$route['news/(:any)'] = 'news/view/$1';
            +$route['news'] = 'news';
            +$route['(:any)'] = 'pages/view/$1';
            +$route['default_controller'] = 'pages/view';
            +
            + +

            Now point your browser to your local development environment where you installed CodeIgniter and add index.php/news/create to the URL. Congratulations, you just created your first CodeIgniter application! Add some news and check out the different pages you made.

            + + + + + + + + + \ No newline at end of file diff --git a/user_guide/tutorial/hard_coded_pages.html b/user_guide/tutorial/hard_coded_pages.html new file mode 100644 index 000000000..6201ed081 --- /dev/null +++ b/user_guide/tutorial/hard_coded_pages.html @@ -0,0 +1,159 @@ + + + + + +CodeIgniter Features : CodeIgniter User Guide + + + + + + + + + + + + + + + + + + + + + +
            + + + + + +

            CodeIgniter User Guide Version 2.0.2

            +
            + + + + + + + + + +
            + + +
            + + + +
            + + +

            Tutorial - Hard coded pages

            + +

            The first thing we're going to do is setting up a controller to handle our hard coded pages. A controller is a class with a collection of methods that represent the different actions you can perform on a certain object. In our case, we want to be able to view a page.

            + +

            Note: This tutorial assumes you've downloaded CodeIgniter and installed the framework in your development environment.

            + +

            Create a file at application/controllers/pages.php with the following code.

            + + + +

            If you're familiar with PHP classes you see that we create a Pages class with a view method that accepts one parameter, $page. Another interesting observation is that the Pages class is extending the CI_Controller class. This means that the new Pages class can access the methods and variables defined in the CI_Controller class. When you look at this class in system/core/controller.php you can see this class is doing something really important; assigning an instance from the CodeIgniter super object to the $this object. In most of your code, $this is the object you will use to interact with the framework.

            + +

            Now we've created our first method, it is time to do some basic templating. For this tutorial, we will be creating two views to acts as our footer and header. Let's create our header at application/views/templates/header.php and ad the following code.

            + + + +

            Our header doesn't do anything exciting. It contains the basic HTML code that we will want to display before loading the main view. You can also see that we echo the $title variable, which we didn't define. We will set this variable in the Pages controller a bit later. Let's go ahead and create a footer at application/views/templates/footer.php that includes the following code.

            + + + +

            Adding logic to the controller

            + +

            Now we've set up the basics so we can finally do some real programming. Earlier we set up our controller with a view method. Because we don't want to write a separate method for every page, we made the view method accept one parameter, the name of the page. These hard coded pages will be located in application/views/pages/. Create two files in this directory named home.php and about.php and put in some HTML content.

            + +

            In order to load these pages we'll have to check whether these page actually exists. When the page does exist, we load the view for that pages, including the header and footer and display it to the user. If it doesn't, we show a "404 Page not found" error.

            + + + +

            The first thing we do is checking whether the page we're looking for does actually exist. We use PHP's native file_exists() to do this check and pass the path where the file is supposed to be. Next is the function show_404(), a CodeIgniter function that renders the default error page and sets the appropriate HTTP headers.

            + +

            In the header template you saw we were using the $title variable to customize our page title. This is where we define the title, but instead of assigning the value to a variable, we assign it to the title element in the $data array. The last thing we need to do is loading the views in the order we want them to be displayed. We also pass the $data array to the header view to make its elements available in the header view file.

            + +

            Routing

            + +

            Actually, our controller is already functioning. Point your browser to index.php/pages/view to see your homepage. When you visit index.php/pages/view/about you will see the about page, again including your header and footer. Now we're going to get rid of the pages/view part in our URI. As you may have seen, CodeIgniter does its routing by the class, method and parameter, separated by slashes.

            + +

            Open the routing file located at application/config/routes.php and add the following two lines. Remove all other code that sets any element in the $route array.

            + + + +

            CodeIgniter reads its routing rules from top to bottom and routes the request to the first matching rule. These routes are stored in the $route array where the keys represent the incoming request and the value the path to the method, as described above.

            + +

            The first rule in our $routes array matches every request - using the wildcard operator (:any) - and passes the value to the view method of the pages class we created earlier. The default controller route makes sure every request to the root goes to the view method as well, which has the first parameter set to 'home' by default.

            + +
            + + + + + + + \ No newline at end of file diff --git a/user_guide/tutorial/introduction.html b/user_guide/tutorial/introduction.html new file mode 100644 index 000000000..cb91f4856 --- /dev/null +++ b/user_guide/tutorial/introduction.html @@ -0,0 +1,92 @@ + + + + + +CodeIgniter Features : CodeIgniter User Guide + + + + + + + + + + + + + + + + + + + + + +
            + + + + + +

            CodeIgniter User Guide Version 2.0.2

            +
            + + + + + + + + + +
            + + +
            + + + +
            + + +

            Tutorial − Introduction

            + +

            This tutorial is intended to introduce you to the CodeIgniter framework and the basic principles of MVC architecture. + It will show you how a basic CodeIgniter application is constructed in step-by-step fashion. +

            + +

            In this tutorial, you will be creating a basic news application. You will begin by writing the code that can load static pages. Next, you will create a news section that reads news items from a database. Finally, you'll add a form to create news items in the database.

            + +

            This tutorial will primarily focus on:

            +
              +
            • Model-View-Controller basics
            • +
            • Routing basics
            • +
            • Form validation
            • +
            • Performing basic database queries using "Active Record"
            • +
            + +
            + + + + + + + \ No newline at end of file diff --git a/user_guide/tutorial/news_section.html b/user_guide/tutorial/news_section.html new file mode 100644 index 000000000..d0f64e0c9 --- /dev/null +++ b/user_guide/tutorial/news_section.html @@ -0,0 +1,242 @@ + + + + + +CodeIgniter Features : CodeIgniter User Guide + + + + + + + + + + + + + + + + + + + + + +
            + + + + + +

            CodeIgniter User Guide Version 2.0.2

            +
            + + + + + + + + + +
            + + +
            + + + +
            + + +

            Tutorial − News section

            + +

            In the last section, we went over some basic concepts of the framework by writing a class that includes static pages. We cleaned up the URI by adding custom routing rules. Now it's time to introduce dynamic content and start using a database.

            + +

            Setting up your model

            + +

            Instead of writing database operations right in the controller, queries should be placed in a model, so they can easily be reused later. Models are the place where you retrieve, insert, and update information in your database or other data stores. They represent your data.

            + +

            Open up the application/models directory and create a new file called news_model.php and add the following code. Make sure you've configured your database properly as described here.

            + +
            +<?php
            +class News_model extends CI_Model {
            +
            +	function __construct()
            +	{
            +		$this->load->database();
            +
            +	}
            +}
            +
            + +

            This code looks similar to the controller code that was used earlier. It creates a new model by extending CI_Model and loads the database library. This will make the database class available through the $this->db object.

            + +

            Before querying the database, a database schema has to be created. Connect to your database and run the SQL command below. Also add some seed records.

            + +
            +CREATE TABLE news (
            +	id int(11) NOT NULL AUTO_INCREMENT,
            +	title varchar(128) NOT NULL,
            +	slug varchar(128) NOT NULL,
            +	text text NOT NULL,
            +	PRIMARY KEY (id),
            +	KEY slug (slug)
            +);
            +
            + +

            Now that the database and a model have been set up, you'll need a method to get all of our posts from our database. To do this, the database abstraction layer that is included with CodeIgniter — ActiveRecord — is used. This makes it possible to write your 'queries' once and make them work on all supported database systems. Add the following code to your model.

            + +
            +function get_news($slug = FALSE)
            +{
            +	if ($slug === FALSE)
            +	{
            +		$query = $this->db->get('news');
            +		return $query->result_array();
            +
            +	}
            +	else
            +	{
            +		$query = $this->db->get_where('news', array('slug' => $slug));
            +		return $query->row_array();
            +
            +	}
            +
            +}
            +
            + +

            With this code you can perform two different queries. You can get all news records, or get a news item by its slug. You might have noticed that the $slug variable wasn't sanitized before running the query; Active Record does this for you.

            + +

            Display the news

            + +

            Now that the queries are written, the model should be tied to the views that are going to display the news items to the user. This could be done in our pages controller created earlier, but for the sake of clarity, a new "news" controller is defined. Create the new controller at application/controllers/news.php.

            + +
            +<?php
            +class News extends CI_Controller{
            +
            +	function __construct()
            +	{
            +		parent::__construct();
            +		$this->load->model('news_model');
            +
            +	}
            +
            +	function index()
            +	{
            +		$data['news'] = $this->news_model->get_news();
            +
            +	}
            +
            +	function view($slug)
            +	{
            +		$data['news'] = $this->news_model->get_news($slug);
            +
            +	}
            +
            +}
            +
            + +

            Looking at the code, you may see some similarity with the files we created earlier. First, the "__construct" method: it calls the constructor of its parent class (CI_Controller) and loads the model, so it can be used in all other methods in this controller.

            + +

            Next, there are two methods to view all news items and one for a specific news item. You can see that the $slug variable is passed to the model's method in the second method. The model is using this slug to identify the news item to be returned.

            + +

            Now the data is retrieved by the controller through our model, but nothing is displayed yet. The next thing to do is passing this data to the views.

            + +
            +function index()
            +{
            +	$data['news'] = $this->news_model->get_news();
            +	$data['title'] = 'News archive';
            +
            +	$this->load->view('templates/header', $data);
            +	$this->load->view('news/index', $data);
            +	$this->load->view('templates/footer');
            +
            +}
            +
            + +

            The code above gets all news records from the model and assigns it to a variable. The value for the title is also assigned to the $data['title'] element and all data is passed to the views. You now need to create a view to render the news items. Create application/views/news/index.php and add the next piece of code.

            + +
            +<?php foreach ($news as $news_item): ?>
            +
            +    <h2><?php echo $news_item['title'] ?></h2>
            +    <div id="main">
            +        <?php echo $news_item['text'] ?>
            +    </div>
            +    <p><a href="news/<?php echo $news_item['slug'] ?>">View article</a></p>
            +
            +<?php endforeach ?>
            +
            + +

            Here, each news item is looped and displayed to the user. You can see we wrote our template in PHP mixed with HTML. If you prefer to use a template language, you can use CodeIgniter's Template Parser class or a third party parser.

            + +

            The news overview page is now done, but a page to display individual news items is still absent. The model created earlier is made in such way that it can easily be used for this functionality. You only need to add some code to the controller and create a new view. Go back to the news controller and add the following lines to the file.

            + +
            +function view($slug)
            +{
            +	$data['news_item'] = $this->news_model->get_news($slug);
            +
            +	if (empty($data['news_item']))
            +	{
            +		show_404();
            +	}
            +
            +	$data['title'] = $data['news_item']['title'];
            +
            +	$this->load->view('templates/header', $data);
            +	$this->load->view('news/view', $data);
            +	$this->load->view('templates/footer');
            +
            +}
            +
            + +

            Instead of calling the get_news() method without a parameter, the $slug variable is passed, so it will return the specific news item. The only things left to do is create the corresponding view at application/views/news/view.php. Put the following code in this file.

            + +
            +<?php
            +echo '<h2>' . $news_item['title'] . '</h2>';
            +echo $news_item['text'];
            +
            + +

            Routing

            +

            Because of the wildcard routing rule created earlier, you need need an extra route to view the controller that you just made. Modify your routing file (application/config/routes.php) so it looks as follows. This makes sure the requests reaches the news controller instead of going directly to the pages controller. The first line routes URI's with a slug to the view method in the news controller.

            + +
            +$route['news/(:any)'] = 'news/view/$1';
            +$route['news'] = 'news';
            +$route['(:any)'] = 'pages/view/$1';
            +$route['default_controller'] = 'pages/view';
            +
            + +

            Point your browser to your document root, followed by index.php/news and watch your news page.

            + +
            + + + + + + + \ No newline at end of file diff --git a/user_guide/tutorial/static_pages.html b/user_guide/tutorial/static_pages.html new file mode 100644 index 000000000..69e5b7446 --- /dev/null +++ b/user_guide/tutorial/static_pages.html @@ -0,0 +1,206 @@ + + + + + +CodeIgniter Features : CodeIgniter User Guide + + + + + + + + + + + + + + + + + + + + + +
            + + + + + +

            CodeIgniter User Guide Version 2.0.2

            +
            + + + + + + + + + +
            + + +
            + + + +
            + + +

            Tutorial − Static pages

            + +

            Note: This tutorial assumes you've downloaded CodeIgniter and installed the framework in your development environment.

            + +

            The first thing you're going to do is set up a controller to handle static pages. +A controller is simply a class that helps delegate work. It is the glue of your +web application.

            + +

            For example, when a call is made to: http://example.com/news/latest/10 We might imagine +that there is a controller named "news". The method being called on news +would be "latest". The news method's job could be to grab 10 +news items, and render them on the page. Very often in MVC, you'll see URL +patterns that match: http://example.com/[controller-class]/[controller-method]/[arguments] +As URL schemes become more complex, this may change. But for now, this is all we will need to know.

            + +

            Create a file at application/controllers/pages.php with the following code.

            + + + +

            You have created a class named "pages", with a view method that accepts one argument named $page. +The pages class is extending the CI_Controller class. +This means that the new pages class can access the methods and variables defined in the CI_Controller class +(system/core/Controller.php).

            + +

            The controller is what will become the center of every request to your web application. +In very technical CodeIgniter discussions, it may be referred to as the super object. +Like any php class, you refer to it within your controllers as $this. +Referring to $this is how you will load libraries, views, and generally +command the framework.

            + +

            Now you've created your first method, it's time to make some basic page templates. +We will be creating two "views" (page templates) that act as our page footer and header.

            + +

            Create the header at application/views/templates/header.php and add the following code.

            + + + +

            The header contains the basic HTML code that you'll want to display before loading the main view, together with a heading. +It will also output the $title variable, which we'll define later in the controller. +Now create a footer at application/views/templates/footer.php that includes the following code:

            + + + +

            Adding logic to the controller

            + +

            Earlier you set up a controller with a view() method. The method accepts one parameter, which is the name of the page to be loaded. +The static page templates will be located in the application/views/pages/ directory.

            + +

            In that directory, create two files named home.php and about.php. +Within those files, type some text − anything you'd like − and save them. +If you like to be particularly un-original, try "Hello World!".

            + +

            In order to load those pages, you'll have to check whether the requested page actually exists:

            + +
            +function view($page = 'home')
            +{
            +			
            +	if ( ! file_exists('application/views/pages/' . $page . EXT))
            +	{
            +		// Whoops, we don't have a page for that!
            +		show_404();
            +	}
            +	
            +	$data['title'] = ucfirst($page); // Capitalize the first letter
            +	
            +	$this->load->view('templates/header', $data);
            +	$this->load->view('pages/' . $page, $data);
            +	$this->load->view('templates/footer', $data);
            +	
            +}	
            +
            + +

            Now, when the page does exist, it is loaded, including the header and footer, and displayed to the user. If the page doesn't exist, a "404 Page not found" error is shown.

            + +

            The first line in this method checks whether the page actually exists. PHP's native file_exists() function is used to check whether the file is where it's expected to be. show_404() is a built-in CodeIgniter function that renders the default error page.

            + +

            In the header template, the $title variable was used to customize the page title. The value of title is defined in this method, but instead of assigning the value to a variable, it is assigned to the title element in the $data array.

            + +

            The last thing that has to be done is loading the views in the order they should be displayed. +The second parameter in the view() method is used to pass values to the view. Each value in the $data array is assigned to a variable with the name of its key. So the value of $data['title'] in the controller is equivalent to $title in the view.

            + +

            Routing

            + +

            The controller is now functioning! Point your browser to [your-site-url]index.php/pages/view to see your page. When you visit index.php/pages/view/about you'll see the about page, again including the header and footer.

            + +

            Using custom routing rules, you have the power to map any URI to any controller and method, and break free from the normal convention: +http://example.com/[controller-class]/[controller-method]/[arguments]

            + +

            Let's do that. Open the routing file located at application/config/routes.php and add the following two lines. Remove all other code that sets any element in the $route array.

            + +
            +$route['default_controller'] = 'pages';
            +$route['(:any)'] = 'pages/view/$1';
            +
            + +

            CodeIgniter reads its routing rules from top to bottom and routes the request to the first matching rule. Each rule is a regular expression +(left-side) mapped to a controller and method name separated by slashes (right-side). +When a request comes in, CodeIgniter looks for the first match, and calls the appropriate controller and method, possibly with arguments.

            + +

            More information about routing can be found in the URI Routing documentation.

            + +

            Here, the second rule in the $routes array matches any request using the wildcard string (:any). +and passes the parameter to the view() method of the pages class.

            + +

            Now visit index.php/about. Did it get routed correctly to the view() method +in the pages controller? Awesome!

            + +
            + + + + + + + \ No newline at end of file -- cgit v1.2.3-24-g4f1b From b430ecd00aaa80c63734b508c82501bec3a0b703 Mon Sep 17 00:00:00 2001 From: Joël Cox Date: Tue, 23 Aug 2011 14:54:42 +0200 Subject: Bumped the version number, corrected spelling mistakes (thanks @chrisberthe) and added links to the tutorial pages in the introduction. --- user_guide/tutorial/conclusion.html | 4 ++-- user_guide/tutorial/create_news_items.html | 6 +++--- user_guide/tutorial/introduction.html | 17 +++++++++++++---- user_guide/tutorial/news_section.html | 4 ++-- user_guide/tutorial/static_pages.html | 2 +- 5 files changed, 21 insertions(+), 12 deletions(-) (limited to 'user_guide') diff --git a/user_guide/tutorial/conclusion.html b/user_guide/tutorial/conclusion.html index f0a22956d..f3bdaad1d 100644 --- a/user_guide/tutorial/conclusion.html +++ b/user_guide/tutorial/conclusion.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.2

            CodeIgniter User Guide Version 2.0.3

            @@ -43,7 +43,7 @@ CodeIgniter Home  ›  User Guide Home  ›  Tutorial  ›  -Features +Conclusion
            Search User Guide   
            diff --git a/user_guide/tutorial/create_news_items.html b/user_guide/tutorial/create_news_items.html index 66cfc6fdd..a25917930 100644 --- a/user_guide/tutorial/create_news_items.html +++ b/user_guide/tutorial/create_news_items.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.2

            CodeIgniter User Guide Version 2.0.3

            @@ -85,7 +85,7 @@ Create news items

            There are only two things here that probably look unfamiliar to you: the form_open() function and the validation_errors() function.

            -

            The first function is provided by the form helper and renders the form element and adds extra functionality, like adding a hidden CSFR prevention field. The latter is used to report errors related to from validation.

            +

            The first function is provided by the form helper and renders the form element and adds extra functionality, like adding a hidden CSFR prevention field. The latter is used to report errors related to form validation.

            Go back to your news controller. You're going to do two things here, check whether the form was submitted and whether the submitted data passed the validation rules. You'll use the form validation library to do this.

            @@ -150,7 +150,7 @@ function set_news()

            Routing

            -

            Before you can start adding news items into your CodeIgniter application you have to add an extra rule to config/routes.php file. Make sure your file contains the following. This makes sure CodeIgniter sees 'update' as a method instead of a news item's slug.

            +

            Before you can start adding news items into your CodeIgniter application you have to add an extra rule to config/routes.php file. Make sure your file contains the following. This makes sure CodeIgniter sees 'create' as a method instead of a news item's slug.

             $route['news/create'] = 'news/create';
            diff --git a/user_guide/tutorial/introduction.html b/user_guide/tutorial/introduction.html
            index cb91f4856..78fd00b61 100644
            --- a/user_guide/tutorial/introduction.html
            +++ b/user_guide/tutorial/introduction.html
            @@ -28,7 +28,7 @@
             
            - +

            CodeIgniter User Guide Version 2.0.2

            CodeIgniter User Guide Version 2.0.3

            @@ -59,9 +59,7 @@ Introduction

            Tutorial − Introduction

            -

            This tutorial is intended to introduce you to the CodeIgniter framework and the basic principles of MVC architecture. - It will show you how a basic CodeIgniter application is constructed in step-by-step fashion. -

            +

            This tutorial is intended to introduce you to the CodeIgniter framework and the basic principles of MVC architecture. It will show you how a basic CodeIgniter application is constructed in step-by-step fashion.

            In this tutorial, you will be creating a basic news application. You will begin by writing the code that can load static pages. Next, you will create a news section that reads news items from a database. Finally, you'll add a form to create news items in the database.

            @@ -73,6 +71,17 @@ Introduction
          • Performing basic database queries using "Active Record"
          +

          The entire tutorial is split up over several pages, each explaining a small part of the functionality of the CodeIgniter framework. You'll go through the following pages:

          +
            +
          • Introduction, this page, which gives you an overview of what to expect.
          • +
          • Static pages, which will teach you the basics of controllers, views and routing.
          • +
          • News section, where you'll start using models and will be doing some basic database operations.
          • +
          • Create news items, which will introduce more advanced database operations and form validation.
          • +
          • Conclusion, which will give you some pointers on further reading and other resources.
          • +
          + +

          Enjoy your exploration of the CodeIgniter framework.

          + diff --git a/user_guide/tutorial/news_section.html b/user_guide/tutorial/news_section.html index d0f64e0c9..8d8899968 100644 --- a/user_guide/tutorial/news_section.html +++ b/user_guide/tutorial/news_section.html @@ -28,7 +28,7 @@
          - +

          CodeIgniter User Guide Version 2.0.2

          CodeIgniter User Guide Version 2.0.3

          @@ -94,7 +94,7 @@ CREATE TABLE news ( ); -

          Now that the database and a model have been set up, you'll need a method to get all of our posts from our database. To do this, the database abstraction layer that is included with CodeIgniter — ActiveRecord — is used. This makes it possible to write your 'queries' once and make them work on all supported database systems. Add the following code to your model.

          +

          Now that the database and a model have been set up, you'll need a method to get all of our posts from our database. To do this, the database abstraction layer that is included with CodeIgniter — Active Record — is used. This makes it possible to write your 'queries' once and make them work on all supported database systems. Add the following code to your model.

           function get_news($slug = FALSE)
          diff --git a/user_guide/tutorial/static_pages.html b/user_guide/tutorial/static_pages.html
          index 69e5b7446..d5eec43da 100644
          --- a/user_guide/tutorial/static_pages.html
          +++ b/user_guide/tutorial/static_pages.html
          @@ -28,7 +28,7 @@
           
          - +

          CodeIgniter User Guide Version 2.0.2

          CodeIgniter User Guide Version 2.0.3

          -- cgit v1.2.3-24-g4f1b From d5141d2008abbf709c30463797df16d3291e3c9c Mon Sep 17 00:00:00 2001 From: Joël Cox Date: Tue, 23 Aug 2011 15:27:38 +0200 Subject: Removed EXT constant and excessive else statement. --- user_guide/tutorial/news_section.html | 9 +++------ user_guide/tutorial/static_pages.html | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) (limited to 'user_guide') diff --git a/user_guide/tutorial/news_section.html b/user_guide/tutorial/news_section.html index 8d8899968..191f0e1eb 100644 --- a/user_guide/tutorial/news_section.html +++ b/user_guide/tutorial/news_section.html @@ -105,12 +105,9 @@ function get_news($slug = FALSE) return $query->result_array(); } - else - { - $query = $this->db->get_where('news', array('slug' => $slug)); - return $query->row_array(); - - } + + $query = $this->db->get_where('news', array('slug' => $slug)); + return $query->row_array(); }
          diff --git a/user_guide/tutorial/static_pages.html b/user_guide/tutorial/static_pages.html index d5eec43da..bf52f4543 100644 --- a/user_guide/tutorial/static_pages.html +++ b/user_guide/tutorial/static_pages.html @@ -137,7 +137,7 @@ If you like to be particularly un-original, try "Hello World!".

          function view($page = 'home') { - if ( ! file_exists('application/views/pages/' . $page . EXT)) + if ( ! file_exists('application/views/pages/' . $page . '.php')) { // Whoops, we don't have a page for that! show_404(); -- cgit v1.2.3-24-g4f1b From 5cbced2f3899726241b7a3a83e47a92fb01dbf83 Mon Sep 17 00:00:00 2001 From: Joël Cox Date: Tue, 23 Aug 2011 16:21:33 +0200 Subject: Forgot to save after bumping version number in hard_coded_pages.html. --- user_guide/tutorial/hard_coded_pages.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/tutorial/hard_coded_pages.html b/user_guide/tutorial/hard_coded_pages.html index 6201ed081..e83f1ec80 100644 --- a/user_guide/tutorial/hard_coded_pages.html +++ b/user_guide/tutorial/hard_coded_pages.html @@ -28,7 +28,7 @@
          - +

          CodeIgniter User Guide Version 2.0.2

          CodeIgniter User Guide Version 2.0.3

          -- cgit v1.2.3-24-g4f1b From 7bd6335c77cfc5fec9e7e788d45d110c1b09ffd1 Mon Sep 17 00:00:00 2001 From: Joël Cox Date: Sat, 27 Aug 2011 20:21:19 +0200 Subject: Renamed introduction to index and small code style fixes (patch by @ericbarnes). --- user_guide/nav/nav.js | 2 +- user_guide/toc.html | 2 +- user_guide/tutorial/conclusion.html | 2 +- user_guide/tutorial/create_news_items.html | 8 +-- user_guide/tutorial/hard_coded_pages.html | 7 +- user_guide/tutorial/index.html | 101 +++++++++++++++++++++++++++++ user_guide/tutorial/introduction.html | 101 ----------------------------- user_guide/tutorial/news_section.html | 29 +++------ user_guide/tutorial/static_pages.html | 16 ++--- 9 files changed, 128 insertions(+), 140 deletions(-) create mode 100644 user_guide/tutorial/index.html delete mode 100644 user_guide/tutorial/introduction.html (limited to 'user_guide') diff --git a/user_guide/nav/nav.js b/user_guide/nav/nav.js index b57851a6c..bc668ec27 100644 --- a/user_guide/nav/nav.js +++ b/user_guide/nav/nav.js @@ -40,7 +40,7 @@ function create_menu(basepath) '

          Tutorial

          ' + '
            ' + - '
          • Introduction
          • ' + + '
          • Introduction
          • ' + '
          • Static pages
          • ' + '
          • News section
          • ' + '
          • Create news items
          • ' + diff --git a/user_guide/toc.html b/user_guide/toc.html index aedea4464..bd6aaf510 100644 --- a/user_guide/toc.html +++ b/user_guide/toc.html @@ -91,7 +91,7 @@ Table of Contents

            Tutorial

              -
            • Introduction
            • +
            • Introduction
            • Static pages
            • News section
            • Create news items
            • diff --git a/user_guide/tutorial/conclusion.html b/user_guide/tutorial/conclusion.html index f3bdaad1d..ccf89175f 100644 --- a/user_guide/tutorial/conclusion.html +++ b/user_guide/tutorial/conclusion.html @@ -42,7 +42,7 @@ CodeIgniter Home  ›  User Guide Home  ›  -Tutorial  ›  +Tutorial  ›  Conclusion
              Search User Guide   
              diff --git a/user_guide/tutorial/create_news_items.html b/user_guide/tutorial/create_news_items.html index a25917930..48c82c799 100644 --- a/user_guide/tutorial/create_news_items.html +++ b/user_guide/tutorial/create_news_items.html @@ -42,7 +42,7 @@ CodeIgniter Home  ›  User Guide Home  ›  -Tutorial  ›  +Tutorial  ›  Create news items
              Search User Guide   
              @@ -90,7 +90,7 @@ Create news items

              Go back to your news controller. You're going to do two things here, check whether the form was submitted and whether the submitted data passed the validation rules. You'll use the form validation library to do this.

              -function create()
              +public function create()
               {
               	$this->load->helper('form');
               	$this->load->library('form_validation');
              @@ -112,7 +112,6 @@ function create()
               		$this->news_model->set_news();
               		$this->load->view('news/success');
               	}
              -	
               }
               
              @@ -127,7 +126,7 @@ function create()

              The only thing that remains is writing a method that writes the data to the database. You'll use the Active Record class to insert the information and use the input library to get the posted data. Open up the model created earlier and add the following:

              -function set_news()
              +public function set_news()
               {
               	$this->load->helper('url');
               	
              @@ -140,7 +139,6 @@ function set_news()
               	);
               	
               	return $this->db->insert('news', $data);
              -	
               }
               
              diff --git a/user_guide/tutorial/hard_coded_pages.html b/user_guide/tutorial/hard_coded_pages.html index e83f1ec80..408634a78 100644 --- a/user_guide/tutorial/hard_coded_pages.html +++ b/user_guide/tutorial/hard_coded_pages.html @@ -68,7 +68,7 @@ Features <?php class Pages extends CI_Controller { - function view($page = 'home') + public function view($page = 'home') { } @@ -104,7 +104,7 @@ class Pages extends CI_Controller {

              In order to load these pages we'll have to check whether these page actually exists. When the page does exist, we load the view for that pages, including the header and footer and display it to the user. If it doesn't, we show a "404 Page not found" error.

              diff --git a/user_guide/tutorial/index.html b/user_guide/tutorial/index.html new file mode 100644 index 000000000..4f665fe0a --- /dev/null +++ b/user_guide/tutorial/index.html @@ -0,0 +1,101 @@ + + + + + +CodeIgniter Features : CodeIgniter User Guide + + + + + + + + + + + + + + + + + + + + + +
              + + + + + +

              CodeIgniter User Guide Version 2.0.3

              +
              + + + + + + + + + +
              + + +
              + + + +
              + + +

              Tutorial − Introduction

              + +

              This tutorial is intended to introduce you to the CodeIgniter framework and the basic principles of MVC architecture. It will show you how a basic CodeIgniter application is constructed in step-by-step fashion.

              + +

              In this tutorial, you will be creating a basic news application. You will begin by writing the code that can load static pages. Next, you will create a news section that reads news items from a database. Finally, you'll add a form to create news items in the database.

              + +

              This tutorial will primarily focus on:

              +
                +
              • Model-View-Controller basics
              • +
              • Routing basics
              • +
              • Form validation
              • +
              • Performing basic database queries using "Active Record"
              • +
              + +

              The entire tutorial is split up over several pages, each explaining a small part of the functionality of the CodeIgniter framework. You'll go through the following pages:

              +
                +
              • Introduction, this page, which gives you an overview of what to expect.
              • +
              • Static pages, which will teach you the basics of controllers, views and routing.
              • +
              • News section, where you'll start using models and will be doing some basic database operations.
              • +
              • Create news items, which will introduce more advanced database operations and form validation.
              • +
              • Conclusion, which will give you some pointers on further reading and other resources.
              • +
              + +

              Enjoy your exploration of the CodeIgniter framework.

              + +
              + + + + + + + \ No newline at end of file diff --git a/user_guide/tutorial/introduction.html b/user_guide/tutorial/introduction.html deleted file mode 100644 index 78fd00b61..000000000 --- a/user_guide/tutorial/introduction.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -CodeIgniter Features : CodeIgniter User Guide - - - - - - - - - - - - - - - - - - - - - -
              - - - - - -

              CodeIgniter User Guide Version 2.0.3

              -
              - - - - - - - - - -
              - - -
              - - - -
              - - -

              Tutorial − Introduction

              - -

              This tutorial is intended to introduce you to the CodeIgniter framework and the basic principles of MVC architecture. It will show you how a basic CodeIgniter application is constructed in step-by-step fashion.

              - -

              In this tutorial, you will be creating a basic news application. You will begin by writing the code that can load static pages. Next, you will create a news section that reads news items from a database. Finally, you'll add a form to create news items in the database.

              - -

              This tutorial will primarily focus on:

              -
                -
              • Model-View-Controller basics
              • -
              • Routing basics
              • -
              • Form validation
              • -
              • Performing basic database queries using "Active Record"
              • -
              - -

              The entire tutorial is split up over several pages, each explaining a small part of the functionality of the CodeIgniter framework. You'll go through the following pages:

              -
                -
              • Introduction, this page, which gives you an overview of what to expect.
              • -
              • Static pages, which will teach you the basics of controllers, views and routing.
              • -
              • News section, where you'll start using models and will be doing some basic database operations.
              • -
              • Create news items, which will introduce more advanced database operations and form validation.
              • -
              • Conclusion, which will give you some pointers on further reading and other resources.
              • -
              - -

              Enjoy your exploration of the CodeIgniter framework.

              - -
              - - - - - - - \ No newline at end of file diff --git a/user_guide/tutorial/news_section.html b/user_guide/tutorial/news_section.html index 191f0e1eb..b2d883184 100644 --- a/user_guide/tutorial/news_section.html +++ b/user_guide/tutorial/news_section.html @@ -42,7 +42,7 @@ CodeIgniter Home  ›  User Guide Home  ›  -Tutorial  ›  +Tutorial  ›  News section
              Search User Guide   
              @@ -71,10 +71,9 @@ News section <?php class News_model extends CI_Model { - function __construct() + public function __construct() { $this->load->database(); - } } @@ -97,18 +96,16 @@ CREATE TABLE news (

              Now that the database and a model have been set up, you'll need a method to get all of our posts from our database. To do this, the database abstraction layer that is included with CodeIgniter — Active Record — is used. This makes it possible to write your 'queries' once and make them work on all supported database systems. Add the following code to your model.

              -function get_news($slug = FALSE)
              +public function get_news($slug = FALSE)
               {
               	if ($slug === FALSE)
               	{
               		$query = $this->db->get('news');
               		return $query->result_array();
              -
               	}
               	
               	$query = $this->db->get_where('news', array('slug' => $slug));
               	return $query->row_array();
              -
               }
               
              @@ -120,27 +117,23 @@ function get_news($slug = FALSE)
               <?php
              -class News extends CI_Controller{
              +class News extends CI_Controller {
               
              -	function __construct()
              +	public function __construct()
               	{
               		parent::__construct();
               		$this->load->model('news_model');
              -
               	}
               
              -	function index()
              +	public function index()
               	{
               		$data['news'] = $this->news_model->get_news();
              -
               	}
               
              -	function view($slug)
              +	public function view($slug)
               	{
               		$data['news'] = $this->news_model->get_news($slug);
              -
               	}
              -
               }
               
              @@ -151,7 +144,7 @@ class News extends CI_Controller{

              Now the data is retrieved by the controller through our model, but nothing is displayed yet. The next thing to do is passing this data to the views.

              -function index()
              +public function index()
               {
               	$data['news'] = $this->news_model->get_news();
               	$data['title'] = 'News archive';
              @@ -159,7 +152,6 @@ function index()
               	$this->load->view('templates/header', $data);
               	$this->load->view('news/index', $data);
               	$this->load->view('templates/footer');
              -
               }
               
              @@ -182,7 +174,7 @@ function index()

              The news overview page is now done, but a page to display individual news items is still absent. The model created earlier is made in such way that it can easily be used for this functionality. You only need to add some code to the controller and create a new view. Go back to the news controller and add the following lines to the file.

              -function view($slug)
              +public function view($slug)
               {
               	$data['news_item'] = $this->news_model->get_news($slug);
               
              @@ -196,7 +188,6 @@ function view($slug)
               	$this->load->view('templates/header', $data);
               	$this->load->view('news/view', $data);
               	$this->load->view('templates/footer');
              -
               }
               
              @@ -204,7 +195,7 @@ function view($slug)
               <?php
              -echo '<h2>' . $news_item['title'] . '</h2>';
              +echo '<h2>'.$news_item['title'].'</h2>';
               echo $news_item['text'];
               
              diff --git a/user_guide/tutorial/static_pages.html b/user_guide/tutorial/static_pages.html index bf52f4543..51a04c689 100644 --- a/user_guide/tutorial/static_pages.html +++ b/user_guide/tutorial/static_pages.html @@ -42,7 +42,7 @@ CodeIgniter Home  ›  User Guide Home  ›  -Tutorial  ›  +Tutorial  ›  Static pages
              Search User Guide   
              @@ -79,7 +79,7 @@ As URL schemes become more complex, this may change. But for now, this is all we class Pages extends CI_Controller { - function view($page = 'home') + public function view($page = 'home') { } @@ -134,10 +134,10 @@ If you like to be particularly un-original, try "Hello World!".

              In order to load those pages, you'll have to check whether the requested page actually exists:

              -function view($page = 'home')
              +public function view($page = 'home')
               {
               			
              -	if ( ! file_exists('application/views/pages/' . $page . '.php'))
              +	if ( ! file_exists('application/views/pages/'.$page.'.php'))
               	{
               		// Whoops, we don't have a page for that!
               		show_404();
              @@ -146,10 +146,10 @@ function view($page = 'home')
               	$data['title'] = ucfirst($page); // Capitalize the first letter
               	
               	$this->load->view('templates/header', $data);
              -	$this->load->view('pages/' . $page, $data);
              +	$this->load->view('pages/'.$page, $data);
               	$this->load->view('templates/footer', $data);
              -	
              -}	
              +
              +}
               

              Now, when the page does exist, it is loaded, including the header and footer, and displayed to the user. If the page doesn't exist, a "404 Page not found" error is shown.

              @@ -193,7 +193,7 @@ in the pages controller? Awesome!

            Version 2.0.3

            -- cgit v1.2.3-24-g4f1b From 9c63d0bb34be4007178d5a7e46348d5e23fee3ff Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 01:55:44 +0100 Subject: Bumped CodeIgniter version to 2.1.0. --- user_guide/changelog.html | 2 +- user_guide/database/active_record.html | 2 +- user_guide/database/caching.html | 2 +- user_guide/database/call_function.html | 2 +- user_guide/database/configuration.html | 2 +- user_guide/database/connecting.html | 2 +- user_guide/database/examples.html | 2 +- user_guide/database/fields.html | 2 +- user_guide/database/forge.html | 2 +- user_guide/database/helpers.html | 2 +- user_guide/database/index.html | 2 +- user_guide/database/queries.html | 2 +- user_guide/database/results.html | 2 +- user_guide/database/table_data.html | 2 +- user_guide/database/transactions.html | 2 +- user_guide/database/utilities.html | 2 +- user_guide/doc_style/index.html | 2 +- user_guide/general/alternative_php.html | 2 +- user_guide/general/ancillary_classes.html | 2 +- user_guide/general/autoloader.html | 2 +- user_guide/general/caching.html | 2 +- user_guide/general/cli.html | 2 +- user_guide/general/common_functions.html | 2 +- user_guide/general/controllers.html | 2 +- user_guide/general/core_classes.html | 2 +- user_guide/general/creating_drivers.html | 2 +- user_guide/general/creating_libraries.html | 2 +- user_guide/general/credits.html | 2 +- user_guide/general/drivers.html | 2 +- user_guide/general/environments.html | 2 +- user_guide/general/errors.html | 2 +- user_guide/general/helpers.html | 2 +- user_guide/general/hooks.html | 2 +- user_guide/general/libraries.html | 2 +- user_guide/general/managing_apps.html | 2 +- user_guide/general/models.html | 2 +- user_guide/general/profiling.html | 2 +- user_guide/general/quick_reference.html | 2 +- user_guide/general/requirements.html | 2 +- user_guide/general/reserved_names.html | 2 +- user_guide/general/routing.html | 2 +- user_guide/general/security.html | 2 +- user_guide/general/styleguide.html | 2 +- user_guide/general/urls.html | 2 +- user_guide/general/views.html | 2 +- user_guide/helpers/array_helper.html | 2 +- user_guide/helpers/captcha_helper.html | 2 +- user_guide/helpers/cookie_helper.html | 2 +- user_guide/helpers/date_helper.html | 2 +- user_guide/helpers/directory_helper.html | 2 +- user_guide/helpers/download_helper.html | 2 +- user_guide/helpers/email_helper.html | 2 +- user_guide/helpers/file_helper.html | 2 +- user_guide/helpers/form_helper.html | 2 +- user_guide/helpers/html_helper.html | 2 +- user_guide/helpers/inflector_helper.html | 2 +- user_guide/helpers/language_helper.html | 2 +- user_guide/helpers/number_helper.html | 2 +- user_guide/helpers/path_helper.html | 2 +- user_guide/helpers/security_helper.html | 2 +- user_guide/helpers/smiley_helper.html | 2 +- user_guide/helpers/string_helper.html | 2 +- user_guide/helpers/text_helper.html | 2 +- user_guide/helpers/typography_helper.html | 2 +- user_guide/helpers/xml_helper.html | 2 +- user_guide/index.html | 2 +- user_guide/installation/downloads.html | 2 +- user_guide/installation/index.html | 2 +- user_guide/installation/troubleshooting.html | 2 +- user_guide/installation/upgrade_120.html | 2 +- user_guide/installation/upgrade_130.html | 2 +- user_guide/installation/upgrade_131.html | 2 +- user_guide/installation/upgrade_132.html | 2 +- user_guide/installation/upgrade_133.html | 2 +- user_guide/installation/upgrade_140.html | 2 +- user_guide/installation/upgrade_141.html | 2 +- user_guide/installation/upgrade_150.html | 2 +- user_guide/installation/upgrade_152.html | 2 +- user_guide/installation/upgrade_153.html | 2 +- user_guide/installation/upgrade_154.html | 2 +- user_guide/installation/upgrade_160.html | 2 +- user_guide/installation/upgrade_161.html | 2 +- user_guide/installation/upgrade_162.html | 2 +- user_guide/installation/upgrade_163.html | 2 +- user_guide/installation/upgrade_170.html | 2 +- user_guide/installation/upgrade_171.html | 2 +- user_guide/installation/upgrade_172.html | 2 +- user_guide/installation/upgrade_200.html | 2 +- user_guide/installation/upgrade_201.html | 2 +- user_guide/installation/upgrade_202.html | 2 +- user_guide/installation/upgrade_203.html | 8 +- user_guide/installation/upgrade_b11.html | 2 +- user_guide/installation/upgrading.html | 4 +- user_guide/libraries/benchmark.html | 2 +- user_guide/libraries/caching.html | 2 +- user_guide/libraries/calendar.html | 2 +- user_guide/libraries/cart.html | 2 +- user_guide/libraries/config.html | 2 +- user_guide/libraries/email.html | 2 +- user_guide/libraries/encryption.html | 2 +- user_guide/libraries/file_uploading.html | 2 +- user_guide/libraries/form_validation.html | 2 +- user_guide/libraries/ftp.html | 2 +- user_guide/libraries/image_lib.html | 2 +- user_guide/libraries/input.html | 2 +- user_guide/libraries/javascript.html | 2 +- user_guide/libraries/language.html | 2 +- user_guide/libraries/loader.html | 2 +- user_guide/libraries/migration.html | 176 +++++++++++++++++++++++++++ user_guide/libraries/output.html | 2 +- user_guide/libraries/pagination.html | 2 +- user_guide/libraries/parser.html | 2 +- user_guide/libraries/security.html | 2 +- user_guide/libraries/sessions.html | 2 +- user_guide/libraries/table.html | 2 +- user_guide/libraries/trackback.html | 2 +- user_guide/libraries/typography.html | 2 +- user_guide/libraries/unit_testing.html | 2 +- user_guide/libraries/uri.html | 2 +- user_guide/libraries/user_agent.html | 2 +- user_guide/libraries/xmlrpc.html | 2 +- user_guide/libraries/zip.html | 2 +- user_guide/license.html | 2 +- user_guide/overview/appflow.html | 2 +- user_guide/overview/at_a_glance.html | 2 +- user_guide/overview/cheatsheets.html | 2 +- user_guide/overview/features.html | 2 +- user_guide/overview/getting_started.html | 2 +- user_guide/overview/goals.html | 2 +- user_guide/overview/index.html | 2 +- user_guide/overview/mvc.html | 2 +- user_guide/tutorial/conclusion.html | 2 +- user_guide/tutorial/create_news_items.html | 2 +- user_guide/tutorial/hard_coded_pages.html | 2 +- user_guide/tutorial/index.html | 2 +- user_guide/tutorial/news_section.html | 2 +- user_guide/tutorial/static_pages.html | 2 +- 137 files changed, 316 insertions(+), 140 deletions(-) create mode 100644 user_guide/libraries/migration.html (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index b0da1ac53..35946a217 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/active_record.html b/user_guide/database/active_record.html index 3f44fcd5b..074f869b4 100644 --- a/user_guide/database/active_record.html +++ b/user_guide/database/active_record.html @@ -27,7 +27,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/caching.html b/user_guide/database/caching.html index 16d380f5f..e6e72f269 100644 --- a/user_guide/database/caching.html +++ b/user_guide/database/caching.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/call_function.html b/user_guide/database/call_function.html index 38cbd1b2c..4fc894743 100644 --- a/user_guide/database/call_function.html +++ b/user_guide/database/call_function.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/configuration.html b/user_guide/database/configuration.html index f06b08fe8..17a291ac2 100644 --- a/user_guide/database/configuration.html +++ b/user_guide/database/configuration.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/connecting.html b/user_guide/database/connecting.html index 309f2bc1a..f86602269 100644 --- a/user_guide/database/connecting.html +++ b/user_guide/database/connecting.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/examples.html b/user_guide/database/examples.html index 1bdecb79e..58035557d 100644 --- a/user_guide/database/examples.html +++ b/user_guide/database/examples.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/fields.html b/user_guide/database/fields.html index 3a1ea0cf2..56c9d9fdf 100644 --- a/user_guide/database/fields.html +++ b/user_guide/database/fields.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/forge.html b/user_guide/database/forge.html index 6b8709892..2289e148e 100644 --- a/user_guide/database/forge.html +++ b/user_guide/database/forge.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/helpers.html b/user_guide/database/helpers.html index 6a8aba55b..82f5c1d21 100644 --- a/user_guide/database/helpers.html +++ b/user_guide/database/helpers.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/index.html b/user_guide/database/index.html index c85e9bf4c..8a957ecef 100644 --- a/user_guide/database/index.html +++ b/user_guide/database/index.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/queries.html b/user_guide/database/queries.html index e7333efc2..3152997ca 100644 --- a/user_guide/database/queries.html +++ b/user_guide/database/queries.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/results.html b/user_guide/database/results.html index ec5f97762..a6b85d8c4 100644 --- a/user_guide/database/results.html +++ b/user_guide/database/results.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/table_data.html b/user_guide/database/table_data.html index 14ff28d40..dc5b54198 100644 --- a/user_guide/database/table_data.html +++ b/user_guide/database/table_data.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/transactions.html b/user_guide/database/transactions.html index 1a25f1657..dd5f73ed1 100644 --- a/user_guide/database/transactions.html +++ b/user_guide/database/transactions.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html index 8231c7e78..7c30070f6 100644 --- a/user_guide/database/utilities.html +++ b/user_guide/database/utilities.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/doc_style/index.html b/user_guide/doc_style/index.html index 27a1756e7..aa7fff43d 100644 --- a/user_guide/doc_style/index.html +++ b/user_guide/doc_style/index.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/alternative_php.html b/user_guide/general/alternative_php.html index a4ce418e9..6e601af44 100644 --- a/user_guide/general/alternative_php.html +++ b/user_guide/general/alternative_php.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/ancillary_classes.html b/user_guide/general/ancillary_classes.html index fb78edaeb..0e3d54deb 100644 --- a/user_guide/general/ancillary_classes.html +++ b/user_guide/general/ancillary_classes.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/autoloader.html b/user_guide/general/autoloader.html index b65674fda..699751202 100644 --- a/user_guide/general/autoloader.html +++ b/user_guide/general/autoloader.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/caching.html b/user_guide/general/caching.html index b40e770a9..a0d7596ed 100644 --- a/user_guide/general/caching.html +++ b/user_guide/general/caching.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/cli.html b/user_guide/general/cli.html index befc9994a..70ab13802 100644 --- a/user_guide/general/cli.html +++ b/user_guide/general/cli.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/common_functions.html b/user_guide/general/common_functions.html index 65457759d..2751133bb 100644 --- a/user_guide/general/common_functions.html +++ b/user_guide/general/common_functions.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/controllers.html b/user_guide/general/controllers.html index 2d525141c..91dd95a00 100644 --- a/user_guide/general/controllers.html +++ b/user_guide/general/controllers.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/core_classes.html b/user_guide/general/core_classes.html index b8917864f..be711903c 100644 --- a/user_guide/general/core_classes.html +++ b/user_guide/general/core_classes.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/creating_drivers.html b/user_guide/general/creating_drivers.html index 367755452..77cccd03c 100644 --- a/user_guide/general/creating_drivers.html +++ b/user_guide/general/creating_drivers.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/creating_libraries.html b/user_guide/general/creating_libraries.html index aeec871b2..f905bb7c3 100644 --- a/user_guide/general/creating_libraries.html +++ b/user_guide/general/creating_libraries.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/credits.html b/user_guide/general/credits.html index 2785e7f25..00c577871 100644 --- a/user_guide/general/credits.html +++ b/user_guide/general/credits.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/drivers.html b/user_guide/general/drivers.html index d0e4a1f1b..f463adb10 100644 --- a/user_guide/general/drivers.html +++ b/user_guide/general/drivers.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/environments.html b/user_guide/general/environments.html index 38ce862b4..0245b085d 100644 --- a/user_guide/general/environments.html +++ b/user_guide/general/environments.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/errors.html b/user_guide/general/errors.html index 83725dcc5..d6bed9ea1 100644 --- a/user_guide/general/errors.html +++ b/user_guide/general/errors.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/helpers.html b/user_guide/general/helpers.html index 3747eb7b9..619e9ff78 100644 --- a/user_guide/general/helpers.html +++ b/user_guide/general/helpers.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/hooks.html b/user_guide/general/hooks.html index c0d616c50..07d302a7d 100644 --- a/user_guide/general/hooks.html +++ b/user_guide/general/hooks.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/libraries.html b/user_guide/general/libraries.html index 40533e124..73b642bef 100644 --- a/user_guide/general/libraries.html +++ b/user_guide/general/libraries.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/managing_apps.html b/user_guide/general/managing_apps.html index e716d1072..388519796 100644 --- a/user_guide/general/managing_apps.html +++ b/user_guide/general/managing_apps.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/models.html b/user_guide/general/models.html index 1696f424a..7bda4d9a9 100644 --- a/user_guide/general/models.html +++ b/user_guide/general/models.html @@ -27,7 +27,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/profiling.html b/user_guide/general/profiling.html index 9895b0284..451b6f9e6 100644 --- a/user_guide/general/profiling.html +++ b/user_guide/general/profiling.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/quick_reference.html b/user_guide/general/quick_reference.html index 242e9afb8..6c07b335c 100644 --- a/user_guide/general/quick_reference.html +++ b/user_guide/general/quick_reference.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/requirements.html b/user_guide/general/requirements.html index 405798f04..1393b40e0 100644 --- a/user_guide/general/requirements.html +++ b/user_guide/general/requirements.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/reserved_names.html b/user_guide/general/reserved_names.html index 91d93a03b..450c0f667 100644 --- a/user_guide/general/reserved_names.html +++ b/user_guide/general/reserved_names.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/routing.html b/user_guide/general/routing.html index c6429628e..d5c90a1b8 100644 --- a/user_guide/general/routing.html +++ b/user_guide/general/routing.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/security.html b/user_guide/general/security.html index 5685bfa89..9e78d4c68 100644 --- a/user_guide/general/security.html +++ b/user_guide/general/security.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/styleguide.html b/user_guide/general/styleguide.html index 25fab6547..c94313365 100644 --- a/user_guide/general/styleguide.html +++ b/user_guide/general/styleguide.html @@ -34,7 +34,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/urls.html b/user_guide/general/urls.html index 580b5fc54..edf03309b 100644 --- a/user_guide/general/urls.html +++ b/user_guide/general/urls.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/general/views.html b/user_guide/general/views.html index a2273f862..5dc1d3250 100644 --- a/user_guide/general/views.html +++ b/user_guide/general/views.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/array_helper.html b/user_guide/helpers/array_helper.html index 956c54e8f..92a11ed69 100644 --- a/user_guide/helpers/array_helper.html +++ b/user_guide/helpers/array_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/captcha_helper.html b/user_guide/helpers/captcha_helper.html index 991c2d3f1..6c2671ad0 100644 --- a/user_guide/helpers/captcha_helper.html +++ b/user_guide/helpers/captcha_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/cookie_helper.html b/user_guide/helpers/cookie_helper.html index 3fbaa8fa1..2fde7f841 100644 --- a/user_guide/helpers/cookie_helper.html +++ b/user_guide/helpers/cookie_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/date_helper.html b/user_guide/helpers/date_helper.html index f930ea3ae..e705593b0 100644 --- a/user_guide/helpers/date_helper.html +++ b/user_guide/helpers/date_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/directory_helper.html b/user_guide/helpers/directory_helper.html index 5623d5098..7fd7797af 100644 --- a/user_guide/helpers/directory_helper.html +++ b/user_guide/helpers/directory_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/download_helper.html b/user_guide/helpers/download_helper.html index cabacf8fe..ccfe9ac72 100644 --- a/user_guide/helpers/download_helper.html +++ b/user_guide/helpers/download_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/email_helper.html b/user_guide/helpers/email_helper.html index 10730d7e4..13ae220fe 100644 --- a/user_guide/helpers/email_helper.html +++ b/user_guide/helpers/email_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/file_helper.html b/user_guide/helpers/file_helper.html index 1194498a2..0296191ff 100644 --- a/user_guide/helpers/file_helper.html +++ b/user_guide/helpers/file_helper.html @@ -27,7 +27,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/form_helper.html b/user_guide/helpers/form_helper.html index dd935ebd9..ce809e946 100644 --- a/user_guide/helpers/form_helper.html +++ b/user_guide/helpers/form_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/html_helper.html b/user_guide/helpers/html_helper.html index 92bfdfb2e..a8277febe 100644 --- a/user_guide/helpers/html_helper.html +++ b/user_guide/helpers/html_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/inflector_helper.html b/user_guide/helpers/inflector_helper.html index d7fa959e8..66982e8b3 100644 --- a/user_guide/helpers/inflector_helper.html +++ b/user_guide/helpers/inflector_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/language_helper.html b/user_guide/helpers/language_helper.html index 1102d7a3c..073c368d8 100644 --- a/user_guide/helpers/language_helper.html +++ b/user_guide/helpers/language_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/number_helper.html b/user_guide/helpers/number_helper.html index 1ee7cbbdf..c48987e6c 100644 --- a/user_guide/helpers/number_helper.html +++ b/user_guide/helpers/number_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/path_helper.html b/user_guide/helpers/path_helper.html index 103690cc8..00f4aa2ec 100644 --- a/user_guide/helpers/path_helper.html +++ b/user_guide/helpers/path_helper.html @@ -27,7 +27,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/security_helper.html b/user_guide/helpers/security_helper.html index 7343da152..16d5c51f2 100644 --- a/user_guide/helpers/security_helper.html +++ b/user_guide/helpers/security_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/smiley_helper.html b/user_guide/helpers/smiley_helper.html index 6f1fa5915..8bdd1df2c 100644 --- a/user_guide/helpers/smiley_helper.html +++ b/user_guide/helpers/smiley_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/string_helper.html b/user_guide/helpers/string_helper.html index 314124037..3d7ba1c51 100644 --- a/user_guide/helpers/string_helper.html +++ b/user_guide/helpers/string_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/text_helper.html b/user_guide/helpers/text_helper.html index 496eccb73..9f0d22ffc 100644 --- a/user_guide/helpers/text_helper.html +++ b/user_guide/helpers/text_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/typography_helper.html b/user_guide/helpers/typography_helper.html index e7bd473a9..a6bd809a5 100644 --- a/user_guide/helpers/typography_helper.html +++ b/user_guide/helpers/typography_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/helpers/xml_helper.html b/user_guide/helpers/xml_helper.html index 0dbe5577c..f410b2114 100644 --- a/user_guide/helpers/xml_helper.html +++ b/user_guide/helpers/xml_helper.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/index.html b/user_guide/index.html index bb1d21621..ac6d0f7f6 100644 --- a/user_guide/index.html +++ b/user_guide/index.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/downloads.html b/user_guide/installation/downloads.html index f36b2bc0f..5420dec8d 100644 --- a/user_guide/installation/downloads.html +++ b/user_guide/installation/downloads.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/index.html b/user_guide/installation/index.html index 5e8ab3883..f01c8b8d5 100644 --- a/user_guide/installation/index.html +++ b/user_guide/installation/index.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/troubleshooting.html b/user_guide/installation/troubleshooting.html index 943e2d802..e79eb6a9f 100644 --- a/user_guide/installation/troubleshooting.html +++ b/user_guide/installation/troubleshooting.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_120.html b/user_guide/installation/upgrade_120.html index 357f68bbb..2b3d066cd 100644 --- a/user_guide/installation/upgrade_120.html +++ b/user_guide/installation/upgrade_120.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_130.html b/user_guide/installation/upgrade_130.html index 7ad26bbfd..dd1465617 100644 --- a/user_guide/installation/upgrade_130.html +++ b/user_guide/installation/upgrade_130.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_131.html b/user_guide/installation/upgrade_131.html index bc624261a..202468dac 100644 --- a/user_guide/installation/upgrade_131.html +++ b/user_guide/installation/upgrade_131.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_132.html b/user_guide/installation/upgrade_132.html index beef9b279..99f8fd3ab 100644 --- a/user_guide/installation/upgrade_132.html +++ b/user_guide/installation/upgrade_132.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_133.html b/user_guide/installation/upgrade_133.html index 4d61ac601..b9b7a7fd3 100644 --- a/user_guide/installation/upgrade_133.html +++ b/user_guide/installation/upgrade_133.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_140.html b/user_guide/installation/upgrade_140.html index 721d70695..50891b912 100644 --- a/user_guide/installation/upgrade_140.html +++ b/user_guide/installation/upgrade_140.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_141.html b/user_guide/installation/upgrade_141.html index 7c81d0521..afa8018b8 100644 --- a/user_guide/installation/upgrade_141.html +++ b/user_guide/installation/upgrade_141.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_150.html b/user_guide/installation/upgrade_150.html index f622ea310..f910aa039 100644 --- a/user_guide/installation/upgrade_150.html +++ b/user_guide/installation/upgrade_150.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_152.html b/user_guide/installation/upgrade_152.html index d350aae78..55e43f728 100644 --- a/user_guide/installation/upgrade_152.html +++ b/user_guide/installation/upgrade_152.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_153.html b/user_guide/installation/upgrade_153.html index 50c6970e3..3e6af7a38 100644 --- a/user_guide/installation/upgrade_153.html +++ b/user_guide/installation/upgrade_153.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_154.html b/user_guide/installation/upgrade_154.html index 90abaf30b..627fa0896 100644 --- a/user_guide/installation/upgrade_154.html +++ b/user_guide/installation/upgrade_154.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_160.html b/user_guide/installation/upgrade_160.html index 16c53eb46..70e589ccf 100644 --- a/user_guide/installation/upgrade_160.html +++ b/user_guide/installation/upgrade_160.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_161.html b/user_guide/installation/upgrade_161.html index b167f1da4..40877369d 100644 --- a/user_guide/installation/upgrade_161.html +++ b/user_guide/installation/upgrade_161.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_162.html b/user_guide/installation/upgrade_162.html index 015b7da75..d67190842 100644 --- a/user_guide/installation/upgrade_162.html +++ b/user_guide/installation/upgrade_162.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_163.html b/user_guide/installation/upgrade_163.html index a1c3c8ff9..cdf6bdf6f 100644 --- a/user_guide/installation/upgrade_163.html +++ b/user_guide/installation/upgrade_163.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_170.html b/user_guide/installation/upgrade_170.html index a0e12c678..7c67f9125 100644 --- a/user_guide/installation/upgrade_170.html +++ b/user_guide/installation/upgrade_170.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_171.html b/user_guide/installation/upgrade_171.html index 052af69f7..014b2c589 100644 --- a/user_guide/installation/upgrade_171.html +++ b/user_guide/installation/upgrade_171.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_172.html b/user_guide/installation/upgrade_172.html index 971453297..961f3cae1 100644 --- a/user_guide/installation/upgrade_172.html +++ b/user_guide/installation/upgrade_172.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_200.html b/user_guide/installation/upgrade_200.html index 9f9dce7d0..b5d6e75ec 100644 --- a/user_guide/installation/upgrade_200.html +++ b/user_guide/installation/upgrade_200.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_201.html b/user_guide/installation/upgrade_201.html index 036ef7c05..7edd0ba6a 100644 --- a/user_guide/installation/upgrade_201.html +++ b/user_guide/installation/upgrade_201.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_202.html b/user_guide/installation/upgrade_202.html index b6c62b4d5..9aaa561eb 100644 --- a/user_guide/installation/upgrade_202.html +++ b/user_guide/installation/upgrade_202.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrade_203.html b/user_guide/installation/upgrade_203.html index 7dbc907ea..2a0ab52be 100644 --- a/user_guide/installation/upgrade_203.html +++ b/user_guide/installation/upgrade_203.html @@ -3,7 +3,7 @@ -Upgrading from 2.0.2 to 2.0.3 : CodeIgniter User Guide +Upgrading from 2.0.2 to 2.1.0 : CodeIgniter User Guide @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            @@ -42,7 +42,7 @@ CodeIgniter Home  ›  User Guide Home  ›  -Upgrading from 2.0.2 to 2.0.3 +Upgrading from 2.0.2 to 2.1.0
            Search User Guide   
            @@ -55,7 +55,7 @@ Upgrading from 2.0.2 to 2.0.3
            -

            Upgrading from 2.0.2 to 2.0.3

            +

            Upgrading from 2.0.2 to 2.1.0

            Before performing an update you should take your site offline by replacing the index.php file with a static one.

            diff --git a/user_guide/installation/upgrade_b11.html b/user_guide/installation/upgrade_b11.html index 7cf06cd9d..dc3c1f07c 100644 --- a/user_guide/installation/upgrade_b11.html +++ b/user_guide/installation/upgrade_b11.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            diff --git a/user_guide/installation/upgrading.html b/user_guide/installation/upgrading.html index 58a45ee9d..d69b6bc9c 100644 --- a/user_guide/installation/upgrading.html +++ b/user_guide/installation/upgrading.html @@ -28,7 +28,7 @@
            - +

            CodeIgniter User Guide Version 2.0.3

            CodeIgniter User Guide Version 2.1.0

            @@ -60,7 +60,7 @@ Upgrading from a Previous Version

            Please read the upgrade notes corresponding to the version you are upgrading from.

              -
            • Upgrading from 2.0.2 to 2.0.3
            • +
            • Upgrading from 2.0.2 to 2.1.0
            • Upgrading from 2.0.1 to 2.0.2
            • Upgrading from 2.0 to 2.0.1
            • Upgrading from 1.7.2 to 2.0
            • diff --git a/user_guide/libraries/benchmark.html b/user_guide/libraries/benchmark.html index c7b7ec9a7..602e6fac0 100644 --- a/user_guide/libraries/benchmark.html +++ b/user_guide/libraries/benchmark.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/caching.html b/user_guide/libraries/caching.html index 9b503f6d1..9808aaa51 100644 --- a/user_guide/libraries/caching.html +++ b/user_guide/libraries/caching.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/calendar.html b/user_guide/libraries/calendar.html index 724c08f8b..2abc43975 100644 --- a/user_guide/libraries/calendar.html +++ b/user_guide/libraries/calendar.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/cart.html b/user_guide/libraries/cart.html index f1e8473e7..b867b709c 100644 --- a/user_guide/libraries/cart.html +++ b/user_guide/libraries/cart.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/config.html b/user_guide/libraries/config.html index d522bbc5b..08b612e77 100644 --- a/user_guide/libraries/config.html +++ b/user_guide/libraries/config.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/email.html b/user_guide/libraries/email.html index d246254ab..7fc56d55b 100644 --- a/user_guide/libraries/email.html +++ b/user_guide/libraries/email.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/encryption.html b/user_guide/libraries/encryption.html index 5c64127cb..6ec629f96 100644 --- a/user_guide/libraries/encryption.html +++ b/user_guide/libraries/encryption.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/file_uploading.html b/user_guide/libraries/file_uploading.html index a88c67220..2cb1ef5ea 100644 --- a/user_guide/libraries/file_uploading.html +++ b/user_guide/libraries/file_uploading.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html index d9d8a4502..2028bcd2c 100644 --- a/user_guide/libraries/form_validation.html +++ b/user_guide/libraries/form_validation.html @@ -27,7 +27,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/ftp.html b/user_guide/libraries/ftp.html index 6c7ed5c65..3dbb0530e 100644 --- a/user_guide/libraries/ftp.html +++ b/user_guide/libraries/ftp.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/image_lib.html b/user_guide/libraries/image_lib.html index 475f02a56..1caf791d8 100644 --- a/user_guide/libraries/image_lib.html +++ b/user_guide/libraries/image_lib.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/input.html b/user_guide/libraries/input.html index 311f76ee9..cfb0d5e1e 100644 --- a/user_guide/libraries/input.html +++ b/user_guide/libraries/input.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/javascript.html b/user_guide/libraries/javascript.html index 09530e246..3dda1fd69 100644 --- a/user_guide/libraries/javascript.html +++ b/user_guide/libraries/javascript.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/language.html b/user_guide/libraries/language.html index 1f670ea4b..a9afcef90 100644 --- a/user_guide/libraries/language.html +++ b/user_guide/libraries/language.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/loader.html b/user_guide/libraries/loader.html index af27176ad..53440c53c 100644 --- a/user_guide/libraries/loader.html +++ b/user_guide/libraries/loader.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/migration.html b/user_guide/libraries/migration.html new file mode 100644 index 000000000..ed99044d1 --- /dev/null +++ b/user_guide/libraries/migration.html @@ -0,0 +1,176 @@ + + + + + +Migration Class : CodeIgniter User Guide + + + + + + + + + + + + + + + + + + + + + +
              + + + + + +

              CodeIgniter User Guide Version 2.1.0

              +
              + + + + + + + + + +
              + + +
              + + + +
              + + +

              Migration Class

              + +

              Migrations are a convenient way for you to alter your database in a structured and organized manner. You could edit fragments of SQL by hand but you would then be responsible for telling other developers that they need to go and run them. You’d also have to keep track of which changes need to be run against the production machines next time you deploy.

              + +

              The database table migration tracks which migrations have already been run so all you have to do is update your application files and call $this->migrate->current() to work out which migrations should be run. The current version is found in config/migration.php.

              + +

              Create a Migration

              + +

              This will be the first migration for a new site which has a blog. All migrations go in the folder application/migrations/ and have names such as: 001_add_blog.php.

              + +
              +defined('BASEPATH') OR exit('No direct script access allowed');
              +
              +class Migration_Add_blog extends CI_Migration {
              +
              +	public function up()
              +	{
              +		$this->dbforge->add_field(array(
              +			'blog_id' => array(
              +				'type' => 'INT',
              +				'constraint' => 5,
              +				'unsigned' => TRUE,
              +				'auto_increment' => TRUE
              +			),
              +			'blog_title' => array(
              +				'type' => 'VARCHAR',
              +				'constraint' => '100',
              +			),
              +			'blog_description' => array(
              +				'type' => 'TEXT',
              +				'null' => TRUE,
              +			),
              +		));
              +		
              +		$this->dbforge->create_table('blog');
              +	}
              +
              +	public function down()
              +	{
              +		$this->dbforge->drop_table('blog');
              +	}
              +
              + +

              Then in application/config/migration.php set $config['migration_version'] = 1;. + +

              Usage Example

              + +

              In this example some simple code is placed in application/controllers/migrate.php to update the schema.

              + +
              +$this->load->library('migration');
              +
              +if ( ! $this->migration->current())
              +{
              +	show_error($this->migration->error_string());
              +}
              +
              + + +

              Function Reference

              + +

              $this->migration->current()

              + +

              The current migration is whatever is set for $config['migration_version'] in application/config/migration.php.

              + + +

              $this->migration->latest()

              + +

              This works much the same way as current() but instead of looking for the $config['migration_version'] the Migration class will use the very newest migration found in the filesystem.

              + +

              $this->migration->version()

              + +

              Version can be used to roll back changes or step forwards programmatically to specific versions. It works just like current but ignores $config['migration_version'].

              + +
              +$this->load->library('migration');
              +
              +$this->migration->version(5);
              +
              + +

              Migration Preferences

              + +

              The following is a list of all the config options for migrations.

              + + + + + + + + + + + + + + + +
              PreferenceDefault ValueOptionsDescription
              migration_enabledFALSETRUE / FALSEEnable or disable migrations.
              migration_version0NoneThe current version your database should use.
              migration_pathAPPPATH.'migrations/'NoneThe path to your migrations folder.
              + + +
              + + + + + + + \ No newline at end of file diff --git a/user_guide/libraries/output.html b/user_guide/libraries/output.html index 7361d7961..77fe464ce 100644 --- a/user_guide/libraries/output.html +++ b/user_guide/libraries/output.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/pagination.html b/user_guide/libraries/pagination.html index 196555441..b5f971f5a 100644 --- a/user_guide/libraries/pagination.html +++ b/user_guide/libraries/pagination.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/parser.html b/user_guide/libraries/parser.html index b8a53452e..f449145ac 100644 --- a/user_guide/libraries/parser.html +++ b/user_guide/libraries/parser.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/security.html b/user_guide/libraries/security.html index dd62a4386..ad1d9ae86 100644 --- a/user_guide/libraries/security.html +++ b/user_guide/libraries/security.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/sessions.html b/user_guide/libraries/sessions.html index e09c31db3..dfb732491 100644 --- a/user_guide/libraries/sessions.html +++ b/user_guide/libraries/sessions.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/table.html b/user_guide/libraries/table.html index 1f34dd9e2..003916ef3 100644 --- a/user_guide/libraries/table.html +++ b/user_guide/libraries/table.html @@ -27,7 +27,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/trackback.html b/user_guide/libraries/trackback.html index a2912a594..035158463 100644 --- a/user_guide/libraries/trackback.html +++ b/user_guide/libraries/trackback.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/typography.html b/user_guide/libraries/typography.html index cd287933c..12be119cc 100644 --- a/user_guide/libraries/typography.html +++ b/user_guide/libraries/typography.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/unit_testing.html b/user_guide/libraries/unit_testing.html index 5ebec0cbf..7d27ff1dd 100644 --- a/user_guide/libraries/unit_testing.html +++ b/user_guide/libraries/unit_testing.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/uri.html b/user_guide/libraries/uri.html index 0e1c26f1e..f04bb9f10 100644 --- a/user_guide/libraries/uri.html +++ b/user_guide/libraries/uri.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/user_agent.html b/user_guide/libraries/user_agent.html index e1d3640d3..8b3dcee62 100644 --- a/user_guide/libraries/user_agent.html +++ b/user_guide/libraries/user_agent.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/xmlrpc.html b/user_guide/libraries/xmlrpc.html index 3635c221b..bb939dff4 100644 --- a/user_guide/libraries/xmlrpc.html +++ b/user_guide/libraries/xmlrpc.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/libraries/zip.html b/user_guide/libraries/zip.html index 21cf8017a..53fc71ef3 100644 --- a/user_guide/libraries/zip.html +++ b/user_guide/libraries/zip.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/license.html b/user_guide/license.html index a0d694f2e..f9769a417 100644 --- a/user_guide/license.html +++ b/user_guide/license.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/overview/appflow.html b/user_guide/overview/appflow.html index fbc68fab0..61bf907a6 100644 --- a/user_guide/overview/appflow.html +++ b/user_guide/overview/appflow.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/overview/at_a_glance.html b/user_guide/overview/at_a_glance.html index 641c04b22..7e93bd2a6 100644 --- a/user_guide/overview/at_a_glance.html +++ b/user_guide/overview/at_a_glance.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/overview/cheatsheets.html b/user_guide/overview/cheatsheets.html index b7b10b90c..60e655229 100644 --- a/user_guide/overview/cheatsheets.html +++ b/user_guide/overview/cheatsheets.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/overview/features.html b/user_guide/overview/features.html index 5f71c5083..d1d5c8c25 100644 --- a/user_guide/overview/features.html +++ b/user_guide/overview/features.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/overview/getting_started.html b/user_guide/overview/getting_started.html index 2b6b3f288..ad6fa01ed 100644 --- a/user_guide/overview/getting_started.html +++ b/user_guide/overview/getting_started.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/overview/goals.html b/user_guide/overview/goals.html index 6acaa65a2..f2263c7ae 100644 --- a/user_guide/overview/goals.html +++ b/user_guide/overview/goals.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/overview/index.html b/user_guide/overview/index.html index 08e61e283..f295d4e81 100644 --- a/user_guide/overview/index.html +++ b/user_guide/overview/index.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/overview/mvc.html b/user_guide/overview/mvc.html index 4721cbf67..4aebb1095 100644 --- a/user_guide/overview/mvc.html +++ b/user_guide/overview/mvc.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/tutorial/conclusion.html b/user_guide/tutorial/conclusion.html index ccf89175f..9cf146746 100644 --- a/user_guide/tutorial/conclusion.html +++ b/user_guide/tutorial/conclusion.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/tutorial/create_news_items.html b/user_guide/tutorial/create_news_items.html index 48c82c799..26b1ed10f 100644 --- a/user_guide/tutorial/create_news_items.html +++ b/user_guide/tutorial/create_news_items.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/tutorial/hard_coded_pages.html b/user_guide/tutorial/hard_coded_pages.html index 408634a78..b34e9f1be 100644 --- a/user_guide/tutorial/hard_coded_pages.html +++ b/user_guide/tutorial/hard_coded_pages.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/tutorial/index.html b/user_guide/tutorial/index.html index 4f665fe0a..65075fb2a 100644 --- a/user_guide/tutorial/index.html +++ b/user_guide/tutorial/index.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/tutorial/news_section.html b/user_guide/tutorial/news_section.html index b2d883184..cf3377ff9 100644 --- a/user_guide/tutorial/news_section.html +++ b/user_guide/tutorial/news_section.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              diff --git a/user_guide/tutorial/static_pages.html b/user_guide/tutorial/static_pages.html index 26c8306e1..da2c58cda 100644 --- a/user_guide/tutorial/static_pages.html +++ b/user_guide/tutorial/static_pages.html @@ -28,7 +28,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              -- cgit v1.2.3-24-g4f1b From 5543fd7ba20a1ddc9bdd0fb9505c1de310e9b833 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 01:55:56 +0100 Subject: Added long missing Migration documentation. --- user_guide/nav/nav.js | 1 + user_guide/toc.html | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/nav/nav.js b/user_guide/nav/nav.js index bc668ec27..b9b6e0943 100644 --- a/user_guide/nav/nav.js +++ b/user_guide/nav/nav.js @@ -103,6 +103,7 @@ function create_menu(basepath) '
            • Javascript Class
            • ' + '
            • Loader Class
            • ' + '
            • Language Class
            • ' + + '
            • Migration Class
            • ' + '
            • Output Class
            • ' + '
            • Pagination Class
            • ' + '
            • Security Class
            • ' + diff --git a/user_guide/toc.html b/user_guide/toc.html index bd6aaf510..01b5a7b92 100644 --- a/user_guide/toc.html +++ b/user_guide/toc.html @@ -29,7 +29,7 @@
              - +

              CodeIgniter User Guide Version 2.0.3

              CodeIgniter User Guide Version 2.1.0

              @@ -157,6 +157,7 @@ Table of Contents
            • Javascript Class
            • Loader Class
            • Language Class
            • +
            • Migration Class
            • Output Class
            • Pagination Class
            • Security Class
            • -- cgit v1.2.3-24-g4f1b From c53eb99a7cc5a49d2de7e96445146d88cf873f90 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 01:59:29 +0100 Subject: Removed PEAR snipe. --- user_guide/index.html | 1 - 1 file changed, 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/index.html b/user_guide/index.html index ac6d0f7f6..fa90983e1 100644 --- a/user_guide/index.html +++ b/user_guide/index.html @@ -77,7 +77,6 @@ minimizing the amount of code needed for a given task.

            • You want a framework that requires nearly zero configuration.
            • You want a framework that does not require you to use the command line.
            • You want a framework that does not require you to adhere to restrictive coding rules.
            • -
            • You are not interested in large-scale monolithic libraries like PEAR.
            • You do not want to be forced to learn a templating language (although a template parser is optionally available if you desire one).
            • You eschew complexity, favoring simple solutions.
            • You need clear, thorough documentation.
            • -- cgit v1.2.3-24-g4f1b From 9744670222ba409c05a857c61daf0a0a5fac8774 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 02:03:03 +0100 Subject: Removed a bunch of PHP 5 specific messages from FTP documentation. --- user_guide/libraries/ftp.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'user_guide') diff --git a/user_guide/libraries/ftp.html b/user_guide/libraries/ftp.html index 3dbb0530e..175efe19b 100644 --- a/user_guide/libraries/ftp.html +++ b/user_guide/libraries/ftp.html @@ -74,7 +74,7 @@ and deleted. The FTP class also includes a "mirroring" function that permits an

              Usage Examples

              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.

              +file permissions are set to 755.

              $this->load->library('ftp');
              @@ -185,8 +185,7 @@ Example:

              Mode options are:  ascii, binary, and auto (the default). If auto is used it will base the mode on the file extension of the source file.

              -

              Permissions are available if you are running PHP 5 and can be passed as an octal value in the fourth parameter.

              - +

              Permissions can be passed as an octal value in the fourth parameter.

              $this->ftp->download()

              @@ -267,7 +266,7 @@ $this->ftp->mirror('/path/to/myfolder/', '/public_html/myfolder/');

              $this->ftp->mkdir()

              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 octal value in the second parameter (if you are running PHP 5).

              +Permissions can be set by passed an octal value in the second parameter.

              // Creates a folder named "bar"
              -- cgit v1.2.3-24-g4f1b From fd82e02ee3636ed7feeedfeefeef794cf77c3a70 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Sun, 4 Sep 2011 13:55:28 +0100 Subject: Removed reference is IS_CLI in the documentation, which should have been $this->input->is_cli_request() --- user_guide/general/cli.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/general/cli.html b/user_guide/general/cli.html index 70ab13802..5dda24b56 100644 --- a/user_guide/general/cli.html +++ b/user_guide/general/cli.html @@ -83,7 +83,7 @@ Running via the CLI
              • Run your cron-jobs without needing to use wget or curl
              • -
              • Make your cron-jobs inaccessible from being loaded in the URL by checking for IS_CLI
              • +
              • Make your cron-jobs inaccessible from being loaded in the URL by checking for $this->input->is_cli_request()
              • Make interactive "tasks" that can do things like set permissions, prune cache folders, run backups, etc.
              • Integrate with other applications in other languages. For example, a random C++ script could call one command and run code in your models!
              -- cgit v1.2.3-24-g4f1b From 0a4fe3128341264999e0826b4fbb55cfa441a619 Mon Sep 17 00:00:00 2001 From: mmestrovic Date: Thu, 1 Sep 2011 03:30:43 +0300 Subject: Updated download links for current and older versions. --- user_guide/installation/downloads.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/installation/downloads.html b/user_guide/installation/downloads.html index 5420dec8d..074fd8bcd 100644 --- a/user_guide/installation/downloads.html +++ b/user_guide/installation/downloads.html @@ -58,7 +58,9 @@ Downloading CodeIgniter

              Downloading CodeIgniter

                -
              • CodeIgniter V 2.0.2 (Current version)
              • +
              • CodeIgniter V 2.1.0 (Current version)
              • +
              • CodeIgniter V 2.0.3
              • +
              • CodeIgniter V 2.0.2
              • CodeIgniter V 2.0.1
              • CodeIgniter V 2.0.0
              • CodeIgniter V 1.7.3
              • -- cgit v1.2.3-24-g4f1b From 33d0502628df3e45b26d2a4075929016b2a7f8a8 Mon Sep 17 00:00:00 2001 From: Greg Aker Date: Sat, 20 Aug 2011 16:53:52 -0500 Subject: Removing duplicate instructions in the 2.0.3 update instructions. --- user_guide/installation/upgrade_203.html | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'user_guide') diff --git a/user_guide/installation/upgrade_203.html b/user_guide/installation/upgrade_203.html index 2a0ab52be..3aceb7ff1 100644 --- a/user_guide/installation/upgrade_203.html +++ b/user_guide/installation/upgrade_203.html @@ -65,25 +65,21 @@ Upgrading from 2.0.2 to 2.1.0

                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.

                Note: If you have any custom developed files in these folders please make copies of them first.

                - -

                Step 2: Update CodeIgniter files

                - -

                Replace the files and directories in your "system" folder with the new versions:

                -

                Step 3: Update your main index.php file

                +

                Step 2: Update your main index.php file

                If you are running a stock index.php file simply replace your version with the new one.

                If your index.php file has internal modifications, please add your modifications to the new file and use it.

                -

                Step 4: Replace config/user_agents.php

                +

                Step 3: Replace config/user_agents.php

                This config file has been updated to contain more user agent types, please copy it to application/config/user_agents.php.

                -

                Step 5: Change references of the EXT constant to ".php"

                +

                Step 4: Change references of the EXT constant to ".php"

                Note: 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.

                -

                Step 6: Remove APPPATH.'third_party' from autoload.php

                +

                Step 5: Remove APPPATH.'third_party' from autoload.php

                Open application/autoload.php, and look for the following:

                -- cgit v1.2.3-24-g4f1b From 7fdfd219ab64a8dc8436a2897cea3982ff8253c5 Mon Sep 17 00:00:00 2001 From: mmestrovic Date: Wed, 14 Sep 2011 01:26:15 +0300 Subject: Added link: "Upgrading from 2.0.3 to 2.1.0" --- user_guide/installation/upgrading.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/installation/upgrading.html b/user_guide/installation/upgrading.html index d69b6bc9c..c3f5ae6dd 100644 --- a/user_guide/installation/upgrading.html +++ b/user_guide/installation/upgrading.html @@ -60,7 +60,8 @@ Upgrading from a Previous Version

                Please read the upgrade notes corresponding to the version you are upgrading from.

                  -
                • Upgrading from 2.0.2 to 2.1.0
                • +
                • Upgrading from 2.0.3 to 2.1.0
                • +
                • Upgrading from 2.0.2 to 2.0.3
                • Upgrading from 2.0.1 to 2.0.2
                • Upgrading from 2.0 to 2.0.1
                • Upgrading from 1.7.2 to 2.0
                • -- cgit v1.2.3-24-g4f1b From f7149f2562c6173f617b32538f438a1be3a4398d Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 12:42:01 +0100 Subject: Added upgrade guide for 2.1.0. --- user_guide/installation/upgrade_203.html | 4 +- user_guide/installation/upgrade_210.html | 89 ++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 user_guide/installation/upgrade_210.html (limited to 'user_guide') diff --git a/user_guide/installation/upgrade_203.html b/user_guide/installation/upgrade_203.html index 3aceb7ff1..d0d37677f 100644 --- a/user_guide/installation/upgrade_203.html +++ b/user_guide/installation/upgrade_203.html @@ -42,7 +42,7 @@ CodeIgniter Home  ›  User Guide Home  ›  -Upgrading from 2.0.2 to 2.1.0 +Upgrading from 2.0.2 to 2.0.3
                  Search User Guide   
                  @@ -55,7 +55,7 @@ Upgrading from 2.0.2 to 2.1.0
                  -

                  Upgrading from 2.0.2 to 2.1.0

                  +

                  Upgrading from 2.0.2 to 2.0.3

                  Before performing an update you should take your site offline by replacing the index.php file with a static one.

                  diff --git a/user_guide/installation/upgrade_210.html b/user_guide/installation/upgrade_210.html new file mode 100644 index 000000000..7edab2e7d --- /dev/null +++ b/user_guide/installation/upgrade_210.html @@ -0,0 +1,89 @@ + + + + + +Upgrading from 2.0.2 to 2.1.0 : CodeIgniter User Guide + + + + + + + + + + + + + + + + + + + + + +
                  + + + + + +

                  CodeIgniter User Guide Version 2.1.0

                  +
                  + + + + + + + + + +
                  + + +
                  + + + +
                  + +

                  Upgrading from 2.0.3 to 2.1.0

                  + +

                  Before performing an update you should take your site offline by replacing the index.php file with a static one.

                  + +

                  Step 1: Update your CodeIgniter files

                  + +

                  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.

                  + +

                  Note: If you have any custom developed files in these folders please make copies of them first.

                  + +

                  Step 2: Replace config/user_agents.php

                  + +

                  This config file has been updated to contain more user agent types, please copy it to application/config/user_agents.php.

                  + + +
                  + + + + + + + \ No newline at end of file -- cgit v1.2.3-24-g4f1b From f2bae2cb50d040e17ca0323b394a60499e639834 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 12:46:52 +0100 Subject: Corrected 2.0.3 to 2.1.0. --- user_guide/installation/upgrade_203.html | 2 +- user_guide/installation/upgrade_210.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'user_guide') diff --git a/user_guide/installation/upgrade_203.html b/user_guide/installation/upgrade_203.html index d0d37677f..d4b703af0 100644 --- a/user_guide/installation/upgrade_203.html +++ b/user_guide/installation/upgrade_203.html @@ -3,7 +3,7 @@ -Upgrading from 2.0.2 to 2.1.0 : CodeIgniter User Guide +Upgrading from 2.0.2 to 2.0.3 : CodeIgniter User Guide diff --git a/user_guide/installation/upgrade_210.html b/user_guide/installation/upgrade_210.html index 7edab2e7d..d9a7213a9 100644 --- a/user_guide/installation/upgrade_210.html +++ b/user_guide/installation/upgrade_210.html @@ -3,7 +3,7 @@ -Upgrading from 2.0.2 to 2.1.0 : CodeIgniter User Guide +Upgrading from 2.0.3 to 2.1.0 : CodeIgniter User Guide @@ -42,7 +42,7 @@ CodeIgniter Home  ›  User Guide Home  ›  -Upgrading from 2.0.2 to 2.1.0 +Upgrading from 2.0.3 to 2.1.0
                  Search User Guide   
                  -- cgit v1.2.3-24-g4f1b From e06f2cb3700edd13426af4b66d3f2a4d0fefd080 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 13:00:00 +0100 Subject: Updated changelog. --- user_guide/changelog.html | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 35946a217..faa96b82f 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -79,6 +79,7 @@ Change Log
                • Database
                • @@ -88,6 +89,13 @@ Change Log
                • Added support to set an optional parameter in your callback rules of validation using the Form Validation Library.
                • Added a Migration Library to assist with applying incremental updates to your database schema.
                • Driver children can be located in any package path.
                • + +
                + +
              • Core +
                  +
                • Changed private functions in CI_URI to protected so MY_URI can override them.
                • +
                • Removed CI_CORE boolean constant from CodeIgniter.php (there are no longer Reactor and Core versions).
              @@ -97,7 +105,22 @@ Change Log
            • Fixed #378 Robots identified as regular browsers by the User Agent class.
            • If a config class was loaded first then a library with the same name is loaded, the config would be ignored.
            • Fixed a bug (Reactor #19) where 1) the 404_override route was being ignored in some cases, and 2) auto-loaded libraries were not available to the 404_override controller when a controller existed but the requested method did not.
            • -
            • Fixed a bug (Reactor #89) where MySQL export would fail if the table had hyphens or other non alphanumeric/underscore characters.
            • +
            • Fixed a bug (Reactor #89) where MySQL export would fail if the table had hyphens or other non alphanumeric/underscore characters.
            • +
            • Fixed a bug (#200) where MySQL queries would be malformed after calling count_all() then db->get()
            • +
            • Fixed bug #105 that stopped query errors from being logged unless database debugging was enabled
            • +
            • Fixed a bug (#181) where a mis-spelling was in the form validation language file.
            • +
            • Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.
            • +
            • Fixed a bug (#150) - field_data() now correctly returns column length.
            • +
            • Fixed a bug (#8) - load_class() now looks for core classes in APPPATH first, allowing them to be replaced.
            • +
            • Fixed a bug (#24) - ODBC database driver called incorrect parent in __construct().
            • +
            • Fixed a bug (#85) - OCI8 (Oracle) database escape_str() function did not escape correct.
            • +
            • Fixed a bug (#344) - Using schema found in Saving Session Data to a Database, system would throw error "user_data does not have a default value" when deleting then creating a session.
            • +
            • Fixed a bug (#112) - OCI8 (Oracle) driver didn't pass the configured database character set when connecting.
            • +
            • Fixed a bug (#182) - OCI8 (Oracle) driver used to re-execute the statement whenever num_rows() is called.
            • +
            • Fixed a bug (#82) - WHERE clause field names in the DB update_string() method were not escaped, resulting in failed queries in some cases.
            • +
            • Fixed a bug (#89) - Fix a variable type mismatch in DB display_error() where an array is expected, but a string could be set instead.
            • +
            • Fixed a bug (#467) - Suppress warnings generated from get_magic_quotes_gpc() (deprecated in PHP 5.4)
            • +
            • Fixed a bug (#484) - First time _csrf_set_hash() is called, hash is never set to the cookie (in Security.php).
            • Fixed a bug (#60) - Added _file_mime_type() method to the File Uploading Library in order to fix a possible MIME-type injection (also fixes bug #394).
            • Fixed a bug (#537) - Support for all wav type in browser.
            • Fixed a bug (#576) - Using ini_get() function to detect if apc is enabled or not.
            • -- cgit v1.2.3-24-g4f1b From da6aa15a41c2286ca161d036a02f6857ce060e27 Mon Sep 17 00:00:00 2001 From: Nithin Meppurathu Date: Sun, 21 Aug 2011 12:05:17 -0400 Subject: updated changelog and documentation for active record new 3rd argument option #none# to like clause --- user_guide/changelog.html | 3 +++ user_guide/database/active_record.html | 7 +++++++ 2 files changed, 10 insertions(+) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index faa96b82f..37dcaea45 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -81,6 +81,8 @@ Change Log
            • Added a CUBRID driver to the Database Driver. Thanks to the CUBRID team for supplying this patch.
            • Added a PDO driver to the Database Driver.
            • Typecast limit and offset in the Database Driver to integers to avoid possible injection.
            • +
            • Added additional option 'none' for the optional third argument for $this->db->like() in the Database Driver. +
          • Libraries @@ -124,6 +126,7 @@ Change Log
          • Fixed a bug (#60) - Added _file_mime_type() method to the File Uploading Library in order to fix a possible MIME-type injection (also fixes bug #394).
          • Fixed a bug (#537) - Support for all wav type in browser.
          • Fixed a bug (#576) - Using ini_get() function to detect if apc is enabled or not.
          • +
          • Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.

          Version 2.0.3

          diff --git a/user_guide/database/active_record.html b/user_guide/database/active_record.html index 074f869b4..bd3c07d88 100644 --- a/user_guide/database/active_record.html +++ b/user_guide/database/active_record.html @@ -334,6 +334,13 @@ $this->db->or_where('id >', $id); $this->db->like('title', 'match', 'both');
          // Produces: WHERE title LIKE '%match%'
          +If you do not want to use the wildcard (%) you can pass to the optional third argument the option 'none'. + + + $this->db->like('title', 'match', 'none');
          +// Produces: WHERE title LIKE 'match' +
          +
        • Associative array method: -- cgit v1.2.3-24-g4f1b From 071e2fbcd775528fb69577c49eed909cb3a56300 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 10 Aug 2011 09:00:52 -0600 Subject: Typecast limit and offset in the Database Driver to integers. Fixes https://bitbucket.org/ellislab/codeigniter-reactor/issue/341/active-record-limit-function-have-sql#comment-597403 --- user_guide/changelog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 37dcaea45..2552ed64c 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -144,9 +144,9 @@ Change Log
        • Added Session Class userdata to the output profiler. Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.
        • Removed internal usage of the EXT constant.
        • Visual updates to the welcome_message view file and default error templates. Thanks to danijelb for the pull request.
        • -
        • Added insert_batch() function to the PostgreSQL database driver. Thanks to epallerols for the patch.
        • Added "application/x-csv" to mimes.php.
        • Fixed a bug where Email library attachments with a "." in the name would using invalid MIME-types.
        • +
        • Callback validation rules can now accept parameters like any other validation rule.
      • Helpers -- cgit v1.2.3-24-g4f1b From 57514b96b89431d37b3eeea283a3ae0f36ac7ef4 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 13:20:55 +0100 Subject: Updated changelog. --- user_guide/changelog.html | 2 -- 1 file changed, 2 deletions(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 2552ed64c..312e7e7c1 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -110,7 +110,6 @@ Change Log
      • Fixed a bug (Reactor #89) where MySQL export would fail if the table had hyphens or other non alphanumeric/underscore characters.
      • Fixed a bug (#200) where MySQL queries would be malformed after calling count_all() then db->get()
      • Fixed bug #105 that stopped query errors from being logged unless database debugging was enabled
      • -
      • Fixed a bug (#181) where a mis-spelling was in the form validation language file.
      • Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.
      • Fixed a bug (#150) - field_data() now correctly returns column length.
      • Fixed a bug (#8) - load_class() now looks for core classes in APPPATH first, allowing them to be replaced.
      • @@ -126,7 +125,6 @@ Change Log
      • Fixed a bug (#60) - Added _file_mime_type() method to the File Uploading Library in order to fix a possible MIME-type injection (also fixes bug #394).
      • Fixed a bug (#537) - Support for all wav type in browser.
      • Fixed a bug (#576) - Using ini_get() function to detect if apc is enabled or not.
      • -
      • Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.

      Version 2.0.3

      -- cgit v1.2.3-24-g4f1b From ad4681f7889beb66f44995882c3977239eb1b3df Mon Sep 17 00:00:00 2001 From: danmontgomery Date: Sun, 21 Aug 2011 15:31:22 -0400 Subject: Fixed issue #150 (for mysql and mysqli), now returns the actual column length. --- user_guide/changelog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 312e7e7c1..f2e05fae0 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -111,7 +111,7 @@ Change Log
    8. Fixed a bug (#200) where MySQL queries would be malformed after calling count_all() then db->get()
    9. Fixed bug #105 that stopped query errors from being logged unless database debugging was enabled
    10. Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.
    11. -
    12. Fixed a bug (#150) - field_data() now correctly returns column length.
    13. +
    14. Fixed a bug (#150) - field_data() now correctly returns column length.
    15. Fixed a bug (#8) - load_class() now looks for core classes in APPPATH first, allowing them to be replaced.
    16. Fixed a bug (#24) - ODBC database driver called incorrect parent in __construct().
    17. Fixed a bug (#85) - OCI8 (Oracle) database escape_str() function did not escape correct.
    18. -- cgit v1.2.3-24-g4f1b From 49a27745e1ba505ca72dc84f56301f7ae76d70d4 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Thu, 27 Oct 2011 13:34:35 +0100 Subject: Changelog updated. --- user_guide/changelog.html | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index f2e05fae0..19e659f45 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -57,8 +57,6 @@ Change Log

      Change Log

      -

      The Reactor Marker indicates items that were contributed to CodeIgniter via CodeIgniter Reactor.

      -

      Version 2.1.0

      Release Date: November 01, 2011

      @@ -91,13 +89,12 @@ Change Log
    19. Added support to set an optional parameter in your callback rules of validation using the Form Validation Library.
    20. Added a Migration Library to assist with applying incremental updates to your database schema.
    21. Driver children can be located in any package path.
    22. -
    23. Core
        -
      • Changed private functions in CI_URI to protected so MY_URI can override them.
      • -
      • Removed CI_CORE boolean constant from CodeIgniter.php (there are no longer Reactor and Core versions).
      • +
      • Changed private functions in URI Library to protected so MY_URI can override them.
      • +
      • Removed CI_CORE boolean constant from CodeIgniter.php (there are no longer different Reactor and Core versions).
    24. @@ -108,23 +105,23 @@ Change Log
    25. If a config class was loaded first then a library with the same name is loaded, the config would be ignored.
    26. Fixed a bug (Reactor #19) where 1) the 404_override route was being ignored in some cases, and 2) auto-loaded libraries were not available to the 404_override controller when a controller existed but the requested method did not.
    27. Fixed a bug (Reactor #89) where MySQL export would fail if the table had hyphens or other non alphanumeric/underscore characters.
    28. -
    29. Fixed a bug (#200) where MySQL queries would be malformed after calling count_all() then db->get()
    30. +
    31. Fixed a bug (#200) where MySQL queries would be malformed after calling $this->db->count_all() then $this->db->get()
    32. Fixed bug #105 that stopped query errors from being logged unless database debugging was enabled
    33. Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.
    34. Fixed a bug (#150) - field_data() now correctly returns column length.
    35. Fixed a bug (#8) - load_class() now looks for core classes in APPPATH first, allowing them to be replaced.
    36. Fixed a bug (#24) - ODBC database driver called incorrect parent in __construct().
    37. -
    38. Fixed a bug (#85) - OCI8 (Oracle) database escape_str() function did not escape correct.
    39. +
    40. Fixed a bug (#85) - OCI8 (Oracle) database escape_str() function did not escape correct.
    41. Fixed a bug (#344) - Using schema found in Saving Session Data to a Database, system would throw error "user_data does not have a default value" when deleting then creating a session.
    42. Fixed a bug (#112) - OCI8 (Oracle) driver didn't pass the configured database character set when connecting.
    43. Fixed a bug (#182) - OCI8 (Oracle) driver used to re-execute the statement whenever num_rows() is called.
    44. -
    45. Fixed a bug (#82) - WHERE clause field names in the DB update_string() method were not escaped, resulting in failed queries in some cases.
    46. -
    47. Fixed a bug (#89) - Fix a variable type mismatch in DB display_error() where an array is expected, but a string could be set instead.
    48. -
    49. Fixed a bug (#467) - Suppress warnings generated from get_magic_quotes_gpc() (deprecated in PHP 5.4)
    50. -
    51. Fixed a bug (#484) - First time _csrf_set_hash() is called, hash is never set to the cookie (in Security.php).
    52. -
    53. Fixed a bug (#60) - Added _file_mime_type() method to the File Uploading Library in order to fix a possible MIME-type injection (also fixes bug #394).
    54. +
    55. Fixed a bug (#82) - WHERE clause field names in the DB update_string() method were not escaped, resulting in failed queries in some cases.
    56. +
    57. Fixed a bug (#89) - Fix a variable type mismatch in DB display_error() where an array is expected, but a string could be set instead.
    58. +
    59. Fixed a bug (#467) - Suppress warnings generated from get_magic_quotes_gpc() (deprecated in PHP 5.4)
    60. +
    61. Fixed a bug (#484) - First time _csrf_set_hash() is called, hash is never set to the cookie (in Security.php).
    62. +
    63. Fixed a bug (#60) - Added _file_mime_type() method to the File Uploading Library in order to fix a possible MIME-type injection (also fixes bug #394).
    64. Fixed a bug (#537) - Support for all wav type in browser.
    65. -
    66. Fixed a bug (#576) - Using ini_get() function to detect if apc is enabled or not.
    67. +
    68. Fixed a bug (#576) - Using ini_get() function to detect if apc is enabled or not.
    69. Version 2.0.3

      -- cgit v1.2.3-24-g4f1b From 55027807e4826dfe722598172ab7ffbd9dc0b48c Mon Sep 17 00:00:00 2001 From: kenjis Date: Thu, 25 Aug 2011 10:51:44 +0900 Subject: add html_escape() function to escape HTML. --- user_guide/changelog.html | 1 + user_guide/general/common_functions.html | 2 ++ 2 files changed, 3 insertions(+) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 19e659f45..11a15370e 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -64,6 +64,7 @@ Change Log
    70. General Changes
    71. Helpers diff --git a/user_guide/general/common_functions.html b/user_guide/general/common_functions.html index 2751133bb..f290521a9 100644 --- a/user_guide/general/common_functions.html +++ b/user_guide/general/common_functions.html @@ -104,6 +104,8 @@ else

      This function prevents inserting null characters between ascii characters, like Java\0script.

      +

      html_escape($mixed)

      +

      This function provides short cut for htmlspecialchars() function. It accepts string and array. To prevent Cross Site Scripting (XSS), it is very useful.

      -- cgit v1.2.3-24-g4f1b From 04b0cf073484d80fb65c4bc072db9a91fef7040f Mon Sep 17 00:00:00 2001 From: Yoko TAMADA Date: Tue, 1 Nov 2011 23:01:29 +0900 Subject: fix user_guide/database/results.html, unmodified variable '$user' to '$row' --- user_guide/database/results.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/database/results.html b/user_guide/database/results.html index a6b85d8c4..0baf992fb 100644 --- a/user_guide/database/results.html +++ b/user_guide/database/results.html @@ -103,7 +103,7 @@ Query Results $query = $this->db->query("SELECT * FROM users;");

      - foreach ($query->result('User') as $user)
      + foreach ($query->result('User') as $row)
      {
         echo $row->name; // call attributes
         echo $row->reverse_name(); // or methods defined on the 'User' class
      -- cgit v1.2.3-24-g4f1b From 2c7e01dc7a26629b1e8447c54b49d55295bb3cc9 Mon Sep 17 00:00:00 2001 From: Ben Edmunds Date: Sat, 20 Aug 2011 14:02:33 -0500 Subject: Resolved issue 167 - Input Class Userguide Update --- user_guide/libraries/input.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'user_guide') diff --git a/user_guide/libraries/input.html b/user_guide/libraries/input.html index cfb0d5e1e..10c84a9ea 100644 --- a/user_guide/libraries/input.html +++ b/user_guide/libraries/input.html @@ -73,11 +73,11 @@ Input Class

      The security filtering function is called automatically when a new controller is invoked. It does the following:

        -
      • Destroys the global GET array. Since CodeIgniter does not utilize GET strings, there is no reason to allow it.
      • +
      • If $config['allow_get_array'] is FALSE(default is TRUE), destroys the global GET array.
      • Destroys all global variables in the event register_globals is turned on.
      • -
      • Filters the POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters.
      • +
      • Filters the GET/POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters.
      • Provides XSS (Cross-site Scripting Hacks) filtering. This can be enabled globally, or upon request.
      • -
      • Standardizes newline characters to \n
      • +
      • Standardizes newline characters to \n(In Windows \r\n)
      @@ -133,13 +133,13 @@ else
      $this->input->post('some_data', TRUE);

      To return an array of all POST items call without any parameters.

      -

      To return all POST items and pass them through the XSS filter leave the first parameter blank while setting the second parameter to boolean;

      +

      To return all POST items and pass them through the XSS filter set the first parameter NULL while setting the second parameter to boolean;

      The function returns FALSE (boolean) if there are no items in the POST.

      - $this->input->post(); // returns all POST items with XSS filter + $this->input->post(NULL, TRUE); // returns all POST items with XSS filter
      - $this->input->post(NULL, FALSE); // returns all POST items without XSS + $this->input->post(); // returns all POST items without XSS filter

      $this->input->get()

      @@ -149,13 +149,13 @@ else
      $this->input->get('some_data', TRUE);

      To return an array of all GET items call without any parameters.

      -

      To return all GET items and pass them through the XSS filter leave the first parameter blank while setting the second parameter to boolean;

      +

      To return all GET items and pass them through the XSS filter set the first parameter NULL while setting the second parameter to boolean;

      The function returns FALSE (boolean) if there are no items in the GET.

      - $this->input->get(); // returns all GET items with XSS filter + $this->input->get(NULL, TRUE); // returns all GET items with XSS filter
      - $this->input->get(NULL, FALSE); // returns all GET items without XSS filtering + $this->input->get(); // returns all GET items without XSS filtering

      $this->input->get_post()

      -- cgit v1.2.3-24-g4f1b From 8d0a31314fbf8040cce5d7601a12fffe208ae884 Mon Sep 17 00:00:00 2001 From: Shane Pearson Date: Mon, 22 Aug 2011 16:11:20 -0500 Subject: Fix #8 - Load core classes from the application folder first. --- user_guide/changelog.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 11a15370e..69ba4e6c8 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -95,7 +95,7 @@ Change Log
    72. Core
      • Changed private functions in URI Library to protected so MY_URI can override them.
      • -
      • Removed CI_CORE boolean constant from CodeIgniter.php (there are no longer different Reactor and Core versions).
      • +
      • Removed CI_CORE boolean constant from CodeIgniter.php (there are no longer different Reactor and Core versions).
    73. @@ -110,7 +110,7 @@ Change Log
    74. Fixed bug #105 that stopped query errors from being logged unless database debugging was enabled
    75. Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.
    76. Fixed a bug (#150) - field_data() now correctly returns column length.
    77. -
    78. Fixed a bug (#8) - load_class() now looks for core classes in APPPATH first, allowing them to be replaced.
    79. +
    80. Fixed a bug (#8) - Look for core classes in APPPATH first.
    81. Fixed a bug (#24) - ODBC database driver called incorrect parent in __construct().
    82. Fixed a bug (#85) - OCI8 (Oracle) database escape_str() function did not escape correct.
    83. Fixed a bug (#344) - Using schema found in Saving Session Data to a Database, system would throw error "user_data does not have a default value" when deleting then creating a session.
    84. -- cgit v1.2.3-24-g4f1b From 72b5b8a506df81252d71c69336c0de0172f9e616 Mon Sep 17 00:00:00 2001 From: Shane Pearson Date: Mon, 22 Aug 2011 16:17:32 -0500 Subject: updated changelog message --- user_guide/changelog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 69ba4e6c8..9130bf1bd 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -110,7 +110,7 @@ Change Log
    85. Fixed bug #105 that stopped query errors from being logged unless database debugging was enabled
    86. Fixed a bug (#160) - Removed unneeded array copy in the file cache driver.
    87. Fixed a bug (#150) - field_data() now correctly returns column length.
    88. -
    89. Fixed a bug (#8) - Look for core classes in APPPATH first.
    90. +
    91. Fixed a bug (#8) - load_class() now looks for core classes in APPPATH first, allowing them to be replaced.
    92. Fixed a bug (#24) - ODBC database driver called incorrect parent in __construct().
    93. Fixed a bug (#85) - OCI8 (Oracle) database escape_str() function did not escape correct.
    94. Fixed a bug (#344) - Using schema found in Saving Session Data to a Database, system would throw error "user_data does not have a default value" when deleting then creating a session.
    95. -- cgit v1.2.3-24-g4f1b From 03192a087965e6927a4842e49f5fd825dedd350f Mon Sep 17 00:00:00 2001 From: saintnicster Date: Wed, 14 Sep 2011 16:30:21 -0500 Subject: Copied into GitHub from @kenjis 's bitbucket repo.https://bitbucket.org/kenjis/ci-user-guide/changeset/3d579dd14afe --- user_guide/database/active_record.html | 39 ++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'user_guide') diff --git a/user_guide/database/active_record.html b/user_guide/database/active_record.html index bd3c07d88..17c58c9f1 100644 --- a/user_guide/database/active_record.html +++ b/user_guide/database/active_record.html @@ -546,7 +546,7 @@ $data = array(
         )
      );

      -$this->db->update_batch('mytable', $data); +$this->db->insert_batch('mytable', $data);

      // Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')
      @@ -669,6 +669,41 @@ You can optionally pass this information directly into the update function as a

      You may also use the $this->db->set() function described above when performing updates.

      +

      $this->db->update_batch();

      +

      Generates an update string based on the data you supply, and runs the query. You can either pass an +array or an object to the function. Here is an example using an array:

      + + +$data = array(
      +   array(
      +      'title' => 'My title' ,
      +      'name' => 'My Name 2' ,
      +      'date' => 'My date 2'
      +   ),
      +   array(
      +      'title' => 'Another title' ,
      +      'name' => 'Another Name 2' ,
      +      'date' => 'Another date 2'
      +   )
      +);
      +
      +$this->db->update_batch('mytable', $data, 'title'); +

      +// Produces:
      +// UPDATE `mytable` SET `name` = CASE
      +// WHEN `title` = 'My title' THEN 'My Name 2'
      +// WHEN `title` = 'Another title' THEN 'Another Name 2'
      +// ELSE `name` END,
      +// `date` = CASE
      +// WHEN `title` = 'My title' THEN 'My date 2'
      +// WHEN `title` = 'Another title' THEN 'Another date 2'
      +// ELSE `date` END
      +// WHERE `title` IN ('My title','Another title')
      + +

      The first parameter will contain the table name, the second is an associative array of values, the third parameter is the where key.

      + +

      Note: All values are escaped automatically producing safer queries.

      +  

      Deleting Data

      @@ -786,4 +821,4 @@ Next Topic:  Transactions - \ No newline at end of file + -- cgit v1.2.3-24-g4f1b From bc503c9312ba4c78581e67ed9ed6576a2ef26dac Mon Sep 17 00:00:00 2001 From: daparky Date: Fri, 4 Nov 2011 20:13:26 +0000 Subject: The link to common functions wasn't closed properly under the 'Added html_escape() to the Common functions' change. --- user_guide/changelog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 9130bf1bd..de14c1d26 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -64,7 +64,7 @@ Change Log
    96. General Changes
    97. Helpers -- cgit v1.2.3-24-g4f1b From da8a560802501cb660952dccab3f3761352c323c Mon Sep 17 00:00:00 2001 From: Aaron Kuzemchak Date: Sat, 3 Sep 2011 20:59:07 -0400 Subject: Enables real page numbers for URI segment in Pagination library --- user_guide/libraries/pagination.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'user_guide') diff --git a/user_guide/libraries/pagination.html b/user_guide/libraries/pagination.html index b5f971f5a..6478694d0 100644 --- a/user_guide/libraries/pagination.html +++ b/user_guide/libraries/pagination.html @@ -119,7 +119,11 @@ something different you can specify it.

      The number of "digit" links you would like before and after the selected page number. For example, the number 2 will place two digits on either side, as in the example links at the very top of this page.

      -

      $config['page_query_string'] = TRUE

      + +

      $config['use_page_numbers'] = TRUE;

      +

      By default, the URI segment will use the starting index for the items you are paginating. If you prefer to show the the actual page number, set this to TRUE.

      + +

      $config['page_query_string'] = TRUE;

      By default, the pagination library assume you are using URI Segments, and constructs your links something like

      http://example.com/index.php/test/page/20

      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.

      -- cgit v1.2.3-24-g4f1b From 1a160c9bc2b0817c822365b7aae5866af830d2cd Mon Sep 17 00:00:00 2001 From: Aaron Kuzemchak Date: Tue, 20 Sep 2011 21:29:30 -0400 Subject: Updating changelog --- user_guide/changelog.html | 1 + 1 file changed, 1 insertion(+) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 9130bf1bd..27980cf32 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -90,6 +90,7 @@ Change Log
    98. Added support to set an optional parameter in your callback rules of validation using the Form Validation Library.
    99. Added a Migration Library to assist with applying incremental updates to your database schema.
    100. Driver children can be located in any package path.
    101. +
    102. Added $config['use_page_numbers'] to the Pagination library, which enables real page numbers in the URI.
    103. Core -- cgit v1.2.3-24-g4f1b From 56aff8b1339989a387bae47cbad0f6b3b8617ccf Mon Sep 17 00:00:00 2001 From: purwandi Date: Thu, 8 Sep 2011 19:05:29 +0700 Subject: Modified repo from mercurial to git on User Guide --- user_guide/installation/downloads.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'user_guide') diff --git a/user_guide/installation/downloads.html b/user_guide/installation/downloads.html index 074fd8bcd..e4e0bc27f 100644 --- a/user_guide/installation/downloads.html +++ b/user_guide/installation/downloads.html @@ -88,14 +88,14 @@ Downloading CodeIgniter -

      Mercurial Server

      -

      Mercurial is a distributed version control system.

      +

      Git Server

      +

      Git is a distributed version control system.

      -

      Public Hg access is available at BitBucket. +

      Public Git access is available at Github. Please note that while every effort is made to keep this code base functional, we cannot guarantee the functionality of code taken from the tip.

      -

      Beginning with version 1.6.1, stable tags are also available via BitBucket, simply select the version from the Tags dropdown.

      +

      Beginning with version 2.0.3, stable tags are also available via Github, simply select the version from the Tags dropdown.

      -- cgit v1.2.3-24-g4f1b From 9c893ca9323ac90f658f2cca791f387b45c2eba1 Mon Sep 17 00:00:00 2001 From: purwandi Date: Thu, 8 Sep 2011 19:40:32 +0700 Subject: Fix some typo --- user_guide/installation/downloads.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'user_guide') diff --git a/user_guide/installation/downloads.html b/user_guide/installation/downloads.html index e4e0bc27f..14c65edd0 100644 --- a/user_guide/installation/downloads.html +++ b/user_guide/installation/downloads.html @@ -91,11 +91,11 @@ Downloading CodeIgniter

      Git Server

      Git is a distributed version control system.

      -

      Public Git access is available at Github. +

      Public Git access is available at GitHub. Please note that while every effort is made to keep this code base functional, we cannot guarantee the functionality of code taken from the tip.

      -

      Beginning with version 2.0.3, stable tags are also available via Github, simply select the version from the Tags dropdown.

      +

      Beginning with version 2.0.3, stable tags are also available via GitHub, simply select the version from the Tags dropdown.

      -- cgit v1.2.3-24-g4f1b From db5a5494018ed8fe83e8899ba583cdf6de9525af Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Sun, 13 Nov 2011 18:47:19 +0000 Subject: Updated changelog. --- user_guide/changelog.html | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 6b2976855..d065bd478 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -77,25 +77,25 @@ Change Log
    104. Database
        -
      • Added a CUBRID driver to the Database Driver. Thanks to the CUBRID team for supplying this patch.
      • -
      • Added a PDO driver to the Database Driver.
      • -
      • Typecast limit and offset in the Database Driver to integers to avoid possible injection.
      • -
      • Added additional option 'none' for the optional third argument for $this->db->like() in the Database Driver. +
      • Added a CUBRID driver to the Database driver. Thanks to the CUBRID team for supplying this patch.
      • +
      • Added a PDO driver to the Database driver.
      • +
      • Typecast limit and offset in the Database driver to integers to avoid possible injection.
      • +
      • Added additional option 'none' for the optional third argument for $this->db->like() in the Database driver.
    105. Libraries
        -
      • Changed $this->cart->insert() in the Cart Library to return the Row ID if a single item was inserted successfully.
      • -
      • Added support to set an optional parameter in your callback rules of validation using the Form Validation Library.
      • -
      • Added a Migration Library to assist with applying incremental updates to your database schema.
      • +
      • Changed $this->cart->insert() in the Cart library to return the Row ID if a single item was inserted successfully.
      • +
      • Added support to set an optional parameter in your callback rules of validation using the Form Validation library.
      • +
      • Added a Migration library to assist with applying incremental updates to your database schema.
      • Driver children can be located in any package path.
      • Added $config['use_page_numbers'] to the Pagination library, which enables real page numbers in the URI.
    106. Core
        -
      • Changed private functions in URI Library to protected so MY_URI can override them.
      • +
      • Changed private functions in URI library to protected so MY_URI can override them.
      • Removed CI_CORE boolean constant from CodeIgniter.php (there are no longer different Reactor and Core versions).
    107. @@ -103,7 +103,7 @@ Change Log

      Bug fixes for 2.1.0

        -
      • Fixed #378 Robots identified as regular browsers by the User Agent class.
      • +
      • Fixed #378 Robots identified as regular browsers by the User Agent class.
      • If a config class was loaded first then a library with the same name is loaded, the config would be ignored.
      • Fixed a bug (Reactor #19) where 1) the 404_override route was being ignored in some cases, and 2) auto-loaded libraries were not available to the 404_override controller when a controller existed but the requested method did not.
      • Fixed a bug (Reactor #89) where MySQL export would fail if the table had hyphens or other non alphanumeric/underscore characters.
      • @@ -124,6 +124,7 @@ Change Log
      • Fixed a bug (#60) - Added _file_mime_type() method to the File Uploading Library in order to fix a possible MIME-type injection (also fixes bug #394).
      • Fixed a bug (#537) - Support for all wav type in browser.
      • Fixed a bug (#576) - Using ini_get() function to detect if apc is enabled or not.
      • +
      • Fixed invalid date time format in Date helper and XMLRPC library.

      Version 2.0.3

      -- cgit v1.2.3-24-g4f1b From 61d1977d4b1a37043ed7dde43701483bf2714785 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Sun, 13 Nov 2011 19:23:40 +0000 Subject: More changelog tweaking. --- user_guide/changelog.html | 3 +++ 1 file changed, 3 insertions(+) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index d065bd478..353427546 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -82,6 +82,7 @@ Change Log
    108. Typecast limit and offset in the Database driver to integers to avoid possible injection.
    109. Added additional option 'none' for the optional third argument for $this->db->like() in the Database driver.
    110. +
    111. Added $this->db->insert_batch() support to the OCI8 (Oracle) driver.
    112. Libraries @@ -90,7 +91,9 @@ Change Log
    113. Added support to set an optional parameter in your callback rules of validation using the Form Validation library.
    114. Added a Migration library to assist with applying incremental updates to your database schema.
    115. Driver children can be located in any package path.
    116. +
    117. Added is_unique to the Form Validation library.
    118. Added $config['use_page_numbers'] to the Pagination library, which enables real page numbers in the URI.
    119. +
    120. Added TLS and SSL Encryption for SMTP.
    121. Core -- cgit v1.2.3-24-g4f1b From 917c3455cc70d5117daa7359f345a820154ada3e Mon Sep 17 00:00:00 2001 From: Pascal Kriete Date: Mon, 14 Nov 2011 13:55:31 -0500 Subject: Changelogging and setting release date. --- user_guide/changelog.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'user_guide') diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 353427546..167616e57 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -58,13 +58,14 @@ Change Log

      Change Log

      Version 2.1.0

      -

      Release Date: November 01, 2011

      +

      Release Date: November 14, 2011

      • General Changes
          +
        • Fixed a potential parameter injection flaw in the Security Library and strengthened the XSS filter for HTML5 vulnerabilites.
        • Callback validation rules can now accept parameters like any other validation rule.
        • -
        • Added html_escape() to the Common functions to escape HTML output for preventing XSS easliy.
        • +
        • Added html_escape() to the Common functions to escape HTML output for preventing XSS easliy.
      • Helpers -- cgit v1.2.3-24-g4f1b