codeigniter_vender 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (393) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +10 -0
  4. data/README.md +39 -0
  5. data/Rakefile +4 -2
  6. data/VERSION +1 -1
  7. data/bin/ci +5 -0
  8. data/codeigniter_vender.gemspec +355 -344
  9. data/lib/codeigniter/commands/app.rb +5 -0
  10. data/lib/codeigniter/commands/help.rb +7 -0
  11. data/lib/codeigniter/commands.rb +19 -0
  12. data/lib/{tasks/app.rake → codeigniter/tasks/ci.rake} +1 -1
  13. data/lib/codeigniter_vender.rb +26 -1
  14. data/lib/generators/base.rb +11 -0
  15. data/{generators → lib/generators/ci}/ci_app/USAGE +0 -0
  16. data/lib/generators/ci/ci_app/ci_app_generator.rb +10 -0
  17. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/.htaccess +1 -0
  18. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/cache/.htaccess +1 -0
  19. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/config → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/cache}/index.html +0 -0
  20. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/autoload.php +18 -18
  21. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/config.php +62 -31
  22. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/constants.php +7 -7
  23. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/database.php +20 -13
  24. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/doctypes.php +1 -1
  25. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/config/foreign_chars.php +64 -0
  26. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/hooks.php +1 -1
  27. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/controllers → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/config}/index.html +0 -0
  28. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/mimes.php +5 -5
  29. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/config/profiler.php +17 -0
  30. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/routes.php +7 -9
  31. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/smileys.php +2 -2
  32. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/config/user_agents.php +7 -4
  33. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/errors → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/controllers}/index.html +0 -0
  34. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/controllers/welcome.php +17 -0
  35. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/helpers → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/core}/index.html +0 -0
  36. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/errors/error_404.php +1 -1
  37. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/errors/error_db.php +1 -1
  38. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/errors/error_general.php +1 -1
  39. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/errors/error_php.php +0 -0
  40. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/hooks → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/errors}/index.html +0 -0
  41. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/helpers}/index.html +0 -0
  42. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/language/english → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/hooks}/index.html +0 -0
  43. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application}/index.html +0 -0
  44. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/models → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/language/english}/index.html +0 -0
  45. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/application/views → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/libraries}/index.html +0 -0
  46. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/cache → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/logs}/index.html +0 -0
  47. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/codeigniter → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/models}/index.html +0 -0
  48. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database/drivers → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/third_party}/index.html +0 -0
  49. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database/drivers/mssql → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/application/views}/index.html +0 -0
  50. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/application/views/welcome_message.php +6 -4
  51. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/index.php +166 -0
  52. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/license.txt +1 -2
  53. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/.htaccess +1 -0
  54. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/Benchmark.php +5 -5
  55. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core/CodeIgniter.php +340 -0
  56. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core/Common.php +503 -0
  57. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/Config.php +126 -57
  58. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core/Controller.php +67 -0
  59. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/Exceptions.php +24 -20
  60. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/Hooks.php +14 -15
  61. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core/Input.php +652 -0
  62. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries/Language.php → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core/Lang.php} +33 -16
  63. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/Loader.php +374 -364
  64. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core/Model.php +56 -0
  65. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/Output.php +140 -93
  66. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/Router.php +185 -115
  67. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/URI.php +78 -58
  68. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core/Utf8.php +165 -0
  69. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database/drivers/mysql → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/core}/index.html +0 -0
  70. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/DB.php +32 -27
  71. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/DB_active_rec.php +478 -225
  72. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/DB_cache.php +30 -30
  73. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/DB_driver.php +199 -175
  74. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/DB_forge.php +43 -36
  75. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/DB_result.php +115 -52
  76. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/DB_utility.php +69 -44
  77. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database/drivers/mysqli → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database/drivers}/index.html +0 -0
  78. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database/drivers/oci8 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database/drivers/mssql}/index.html +0 -0
  79. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mssql/mssql_driver.php +64 -67
  80. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mssql/mssql_forge.php +19 -19
  81. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mssql/mssql_result.php +14 -14
  82. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mssql/mssql_utility.php +3 -38
  83. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database/drivers/odbc → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database/drivers/mysql}/index.html +0 -0
  84. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mysql/mysql_driver.php +155 -63
  85. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mysql/mysql_forge.php +36 -21
  86. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mysql/mysql_result.php +14 -14
  87. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mysql/mysql_utility.php +25 -60
  88. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database/drivers/postgre → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database/drivers/mysqli}/index.html +0 -0
  89. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mysqli/mysqli_driver.php +131 -62
  90. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mysqli/mysqli_forge.php +17 -17
  91. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mysqli/mysqli_result.php +14 -14
  92. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/mysqli/mysqli_utility.php +4 -40
  93. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database/drivers/sqlite → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database/drivers/oci8}/index.html +0 -0
  94. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/oci8/oci8_driver.php +55 -58
  95. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/oci8/oci8_forge.php +18 -18
  96. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/oci8/oci8_result.php +17 -17
  97. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/oci8/oci8_utility.php +2 -37
  98. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/database → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database/drivers/odbc}/index.html +0 -0
  99. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/odbc/odbc_driver.php +58 -61
  100. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/odbc/odbc_forge.php +21 -21
  101. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/odbc/odbc_result.php +11 -11
  102. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/odbc/odbc_utility.php +5 -50
  103. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/fonts → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database/drivers/postgre}/index.html +0 -0
  104. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/postgre/postgre_driver.php +61 -61
  105. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/postgre/postgre_forge.php +84 -33
  106. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/postgre/postgre_result.php +11 -11
  107. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/postgre/postgre_utility.php +2 -38
  108. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/helpers → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database/drivers/sqlite}/index.html +0 -0
  109. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/sqlite/sqlite_driver.php +65 -65
  110. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/sqlite/sqlite_forge.php +18 -18
  111. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/sqlite/sqlite_result.php +12 -12
  112. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/database/drivers/sqlite/sqlite_utility.php +3 -48
  113. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/database}/index.html +0 -0
  114. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/language/english → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/fonts}/index.html +0 -0
  115. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/fonts/texb.ttf +0 -0
  116. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/array_helper.php +46 -6
  117. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/helpers/captcha_helper.php +246 -0
  118. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/cookie_helper.php +7 -48
  119. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/date_helper.php +90 -90
  120. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/directory_helper.php +18 -22
  121. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/download_helper.php +8 -8
  122. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/email_helper.php +4 -4
  123. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/file_helper.php +45 -39
  124. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/form_helper.php +59 -35
  125. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/html_helper.php +20 -14
  126. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/language → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/helpers}/index.html +0 -0
  127. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/inflector_helper.php +27 -16
  128. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/language_helper.php +3 -3
  129. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/number_helper.php +15 -14
  130. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/path_helper.php +7 -7
  131. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/security_helper.php +49 -15
  132. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/smiley_helper.php +29 -23
  133. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/string_helper.php +45 -28
  134. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/text_helper.php +195 -124
  135. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/typography_helper.php +32 -9
  136. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/url_helper.php +17 -15
  137. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/helpers/xml_helper.php +21 -12
  138. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system}/index.html +0 -0
  139. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/language/english/calendar_lang.php +51 -0
  140. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/date_lang.php +1 -0
  141. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/db_lang.php +2 -1
  142. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/email_lang.php +0 -0
  143. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/form_validation_lang.php +5 -4
  144. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/ftp_lang.php +1 -0
  145. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/imglib_lang.php +0 -0
  146. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/logs → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/language/english}/index.html +0 -0
  147. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/number_lang.php +0 -0
  148. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/profiler_lang.php +4 -1
  149. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/unit_test_lang.php +1 -0
  150. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/language/english/upload_lang.php +0 -0
  151. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/plugins → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/language}/index.html +0 -0
  152. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Cache/Cache.php +216 -0
  153. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Cache/drivers/Cache_apc.php +151 -0
  154. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Cache/drivers/Cache_dummy.php +129 -0
  155. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Cache/drivers/Cache_file.php +196 -0
  156. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Cache/drivers/Cache_memcached.php +209 -0
  157. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Calendar.php +81 -83
  158. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Cart.php +73 -73
  159. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Driver.php +229 -0
  160. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Email.php +209 -188
  161. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Encrypt.php +78 -15
  162. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Form_validation.php +265 -228
  163. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Ftp.php +46 -4
  164. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Image_lib.php +36 -43
  165. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Javascript.php +871 -0
  166. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Log.php +29 -32
  167. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Pagination.php +64 -29
  168. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Parser.php +63 -24
  169. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Profiler.php +502 -0
  170. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/Security.php +737 -0
  171. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Session.php +33 -16
  172. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Sha1.php +14 -14
  173. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Table.php +172 -84
  174. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Trackback.php +129 -128
  175. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Typography.php +84 -80
  176. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Unit_test.php +105 -69
  177. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Upload.php +273 -235
  178. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/User_agent.php +150 -115
  179. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Xmlrpc.php +193 -179
  180. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Xmlrpcs.php +91 -83
  181. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/system/libraries/Zip.php +110 -46
  182. data/{generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/images → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries}/index.html +0 -0
  183. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/system/libraries/javascript/Jquery.php +1071 -0
  184. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/changelog.html +182 -29
  185. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/active_record.html +48 -48
  186. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/caching.html +2 -2
  187. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/call_function.html +3 -3
  188. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/configuration.html +14 -5
  189. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/connecting.html +5 -3
  190. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/examples.html +2 -2
  191. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/fields.html +3 -3
  192. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/forge.html +3 -3
  193. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/helpers.html +2 -2
  194. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/index.html +3 -3
  195. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/queries.html +4 -4
  196. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/results.html +17 -17
  197. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/table_data.html +3 -3
  198. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/transactions.html +2 -2
  199. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/database/utilities.html +21 -2
  200. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/doc_style/index.html +4 -3
  201. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/doc_style/template.html +2 -2
  202. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/alternative_php.html +4 -4
  203. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/ancillary_classes.html +2 -2
  204. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/autoloader.html +3 -4
  205. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/caching.html +2 -2
  206. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/common_functions.html +9 -3
  207. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/controllers.html +32 -29
  208. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/core_classes.html +10 -9
  209. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/general/creating_drivers.html +100 -0
  210. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/creating_libraries.html +8 -13
  211. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/credits.html +4 -4
  212. data/{generators/ci_app/templates/CodeIgniter_1.7.2/user_guide/general/profiling.html → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/general/drivers.html} +21 -21
  213. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/errors.html +5 -3
  214. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/helpers.html +4 -4
  215. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/hooks.html +2 -4
  216. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/libraries.html +9 -5
  217. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/managing_apps.html +24 -24
  218. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/models.html +13 -13
  219. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/general/profiling.html +176 -0
  220. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/quick_reference.html +2 -2
  221. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/requirements.html +3 -3
  222. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/reserved_names.html +4 -33
  223. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/routing.html +7 -17
  224. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/security.html +3 -3
  225. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/styleguide.html +71 -79
  226. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/urls.html +2 -2
  227. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/general/views.html +13 -13
  228. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/array_helper.html +53 -2
  229. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/helpers/captcha_helper.html +195 -0
  230. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/helpers/cookie_helper.html +107 -0
  231. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/date_helper.html +6 -6
  232. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/directory_helper.html +6 -6
  233. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/download_helper.html +2 -2
  234. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/email_helper.html +2 -2
  235. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/file_helper.html +5 -4
  236. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/form_helper.html +9 -9
  237. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/html_helper.html +6 -6
  238. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/inflector_helper.html +2 -2
  239. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/language_helper.html +2 -2
  240. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/number_helper.html +9 -3
  241. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/path_helper.html +2 -2
  242. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/security_helper.html +12 -5
  243. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/smiley_helper.html +12 -12
  244. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/string_helper.html +11 -9
  245. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/text_helper.html +21 -2
  246. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/typography_helper.html +2 -2
  247. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/url_helper.html +7 -8
  248. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/helpers/xml_helper.html +2 -2
  249. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/appflowchart.gif +0 -0
  250. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/arrow.gif +0 -0
  251. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/ci_logo.jpg +0 -0
  252. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/ci_logo_flame.jpg +0 -0
  253. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/ci_quick_ref.png +0 -0
  254. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/codeigniter_1.7.1_helper_reference.pdf +0 -0
  255. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/codeigniter_1.7.1_helper_reference.png +0 -0
  256. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/codeigniter_1.7.1_library_reference.pdf +0 -0
  257. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/codeigniter_1.7.1_library_reference.png +0 -0
  258. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/file.gif +0 -0
  259. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/folder.gif +0 -0
  260. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/nav_bg_darker.jpg +0 -0
  261. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/nav_separator_darker.jpg +0 -0
  262. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/nav_toggle_darker.jpg +0 -0
  263. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/images/reactor-bullet.png +0 -0
  264. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/smile.gif +0 -0
  265. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/images/transparent.gif +0 -0
  266. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/index.html +2 -2
  267. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/downloads.html +10 -6
  268. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/index.html +10 -5
  269. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/troubleshooting.html +2 -2
  270. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_120.html +2 -2
  271. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_130.html +2 -2
  272. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_131.html +2 -2
  273. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_132.html +2 -2
  274. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_133.html +2 -2
  275. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_140.html +2 -2
  276. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_141.html +2 -2
  277. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_150.html +2 -2
  278. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_152.html +2 -2
  279. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_153.html +2 -2
  280. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_154.html +5 -5
  281. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_160.html +6 -6
  282. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_161.html +2 -2
  283. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_162.html +5 -5
  284. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_163.html +2 -2
  285. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_170.html +5 -5
  286. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_171.html +2 -2
  287. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_172.html +7 -3
  288. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/installation/upgrade_200.html +131 -0
  289. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrade_b11.html +2 -2
  290. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/installation/upgrading.html +3 -2
  291. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/benchmark.html +4 -4
  292. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/libraries/caching.html +193 -0
  293. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/calendar.html +3 -3
  294. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/cart.html +345 -345
  295. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/config.html +4 -4
  296. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/email.html +4 -4
  297. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/encryption.html +49 -7
  298. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/file_uploading.html +15 -15
  299. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/form_validation.html +22 -25
  300. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/ftp.html +21 -8
  301. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/image_lib.html +4 -3
  302. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/input.html +69 -31
  303. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/libraries/javascript.html +246 -0
  304. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/language.html +3 -3
  305. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/loader.html +56 -15
  306. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/output.html +19 -2
  307. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/pagination.html +19 -8
  308. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/parser.html +6 -2
  309. data/lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0/user_guide/libraries/security.html +135 -0
  310. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/sessions.html +18 -7
  311. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/table.html +33 -10
  312. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/trackback.html +2 -2
  313. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/typography.html +5 -5
  314. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/unit_testing.html +27 -6
  315. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/uri.html +3 -3
  316. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/user_agent.html +27 -2
  317. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/xmlrpc.html +25 -23
  318. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/libraries/zip.html +13 -3
  319. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/license.html +3 -3
  320. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/nav/hacks.txt +2 -1
  321. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/nav/moo.fx.js +1 -37
  322. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/nav/nav.js +27 -24
  323. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/nav/prototype.lite.js +0 -0
  324. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/nav/user_guide_menu.js +0 -0
  325. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/overview/appflow.html +3 -3
  326. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/overview/at_a_glance.html +5 -15
  327. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/overview/cheatsheets.html +2 -2
  328. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/overview/features.html +3 -5
  329. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/overview/getting_started.html +2 -2
  330. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/overview/goals.html +2 -2
  331. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/overview/index.html +3 -3
  332. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/overview/mvc.html +2 -2
  333. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/toc.html +14 -15
  334. data/{generators/ci_app/templates/CodeIgniter_1.7.2 → lib/generators/ci/ci_app/templates/CodeIgniterLibs/CodeIgniter_2.0.0}/user_guide/userguide.css +9 -0
  335. data/{generators → lib/generators/ci}/ci_app/templates/README +0 -0
  336. data/lib/generators/ci/ci_auth/USAGE +8 -0
  337. data/lib/generators/ci/ci_auth/ci_auth_generator.rb +11 -0
  338. data/lib/generators/ci/ci_auth/templates/auth.php +133 -0
  339. data/lib/generators/ci/ci_auth/templates/auth_model.php +52 -0
  340. data/lib/generators/ci/ci_auth/templates/login_form.php +29 -0
  341. data/{generators → lib/generators/ci}/ci_controller/USAGE +0 -0
  342. data/{generators → lib/generators/ci}/ci_controller/ci_controller_generator.rb +0 -0
  343. data/{generators → lib/generators/ci}/ci_controller/templates/ci_controller.php.erb +0 -0
  344. data/{generators → lib/generators/ci}/ci_controller/templates/ci_view.php.erb +0 -0
  345. data/{generators → lib/generators/ci}/ci_layout/USAGE +0 -0
  346. data/{generators → lib/generators/ci}/ci_layout/ci_layout_generator.rb +0 -0
  347. data/{generators → lib/generators/ci}/ci_layout/templates/application_layout.php.erb +0 -0
  348. data/{generators → lib/generators/ci}/ci_model/USAGE +0 -0
  349. data/{generators → lib/generators/ci}/ci_model/ci_model_generator.rb +0 -0
  350. data/{generators → lib/generators/ci}/ci_model/templates/ci_model.php.erb +0 -0
  351. data/{generators → lib/generators/ci}/ci_model/templates/model.rb +0 -0
  352. data/{generators → lib/generators/ci}/ci_model/templates/model_migration.rb.erb +0 -0
  353. metadata +358 -347
  354. data/README +0 -40
  355. data/generators/ci_app/ci_app_generator.rb +0 -12
  356. data/generators/ci_app/templates/CodeIgniter_1.7.2/index.php +0 -118
  357. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/application/controllers/welcome.php +0 -17
  358. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/codeigniter/Base4.php +0 -69
  359. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/codeigniter/Base5.php +0 -56
  360. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/codeigniter/CodeIgniter.php +0 -280
  361. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/codeigniter/Common.php +0 -421
  362. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/codeigniter/Compat.php +0 -93
  363. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/fonts/texb.ttf +0 -0
  364. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/helpers/compatibility_helper.php +0 -498
  365. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/language/english/calendar_lang.php +0 -51
  366. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/language/english/scaffolding_lang.php +0 -17
  367. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/language/english/validation_lang.php +0 -24
  368. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries/Controller.php +0 -127
  369. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries/Input.php +0 -1067
  370. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries/Model.php +0 -83
  371. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries/Profiler.php +0 -392
  372. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/libraries/Validation.php +0 -875
  373. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/plugins/captcha_pi.php +0 -356
  374. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/plugins/js_calendar_pi.php +0 -629
  375. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/Scaffolding.php +0 -291
  376. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/images/background.jpg +0 -0
  377. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/images/logo.jpg +0 -0
  378. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/index.html +0 -10
  379. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/add.php +0 -32
  380. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/delete.php +0 -9
  381. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/edit.php +0 -33
  382. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/footer.php +0 -10
  383. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/header.php +0 -29
  384. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/index.html +0 -10
  385. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/no_data.php +0 -8
  386. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/stylesheet.css +0 -143
  387. data/generators/ci_app/templates/CodeIgniter_1.7.2/system/scaffolding/views/view.php +0 -27
  388. data/generators/ci_app/templates/CodeIgniter_1.7.2/user_guide/general/plugins.html +0 -127
  389. data/generators/ci_app/templates/CodeIgniter_1.7.2/user_guide/general/scaffolding.html +0 -147
  390. data/generators/ci_app/templates/CodeIgniter_1.7.2/user_guide/helpers/compatibility_helper.html +0 -118
  391. data/generators/ci_app/templates/CodeIgniter_1.7.2/user_guide/helpers/cookie_helper.html +0 -147
  392. data/generators/ci_app/templates/CodeIgniter_1.7.2/user_guide/libraries/validation.html +0 -740
  393. data/generators/ci_app/templates/CodeIgniter_1.7.2/user_guide/nav/moo.fx.pack.js +0 -241
@@ -2,11 +2,11 @@
2
2
  /**
3
3
  * CodeIgniter
4
4
  *
5
- * An open source application development framework for PHP 4.3.2 or newer
5
+ * An open source application development framework for PHP 5.1.6 or newer
6
6
  *
7
7
  * @package CodeIgniter
8
8
  * @author ExpressionEngine Dev Team
9
- * @copyright Copyright (c) 2008 - 2010, EllisLab, Inc.
9
+ * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
10
10
  * @license http://codeigniter.com/user_guide/license.html
11
11
  * @link http://codeigniter.com
12
12
  * @since Version 1.0
@@ -25,59 +25,59 @@
25
25
  * @link http://codeigniter.com/user_guide/libraries/file_uploading.html
26
26
  */
27
27
  class CI_Upload {
28
-
29
- var $max_size = 0;
30
- var $max_width = 0;
31
- var $max_height = 0;
32
- var $max_filename = 0;
33
- var $allowed_types = "";
34
- var $file_temp = "";
35
- var $file_name = "";
36
- var $orig_name = "";
37
- var $file_type = "";
38
- var $file_size = "";
39
- var $file_ext = "";
40
- var $upload_path = "";
41
- var $overwrite = FALSE;
42
- var $encrypt_name = FALSE;
43
- var $is_image = FALSE;
44
- var $image_width = '';
45
- var $image_height = '';
46
- var $image_type = '';
47
- var $image_size_str = '';
48
- var $error_msg = array();
49
- var $mimes = array();
50
- var $remove_spaces = TRUE;
51
- var $xss_clean = FALSE;
52
- var $temp_prefix = "temp_file_";
53
- var $client_name = '';
54
-
55
- var $_file_name_override = '';
28
+
29
+ public $max_size = 0;
30
+ public $max_width = 0;
31
+ public $max_height = 0;
32
+ public $max_filename = 0;
33
+ public $allowed_types = "";
34
+ public $file_temp = "";
35
+ public $file_name = "";
36
+ public $orig_name = "";
37
+ public $file_type = "";
38
+ public $file_size = "";
39
+ public $file_ext = "";
40
+ public $upload_path = "";
41
+ public $overwrite = FALSE;
42
+ public $encrypt_name = FALSE;
43
+ public $is_image = FALSE;
44
+ public $image_width = '';
45
+ public $image_height = '';
46
+ public $image_type = '';
47
+ public $image_size_str = '';
48
+ public $error_msg = array();
49
+ public $mimes = array();
50
+ public $remove_spaces = TRUE;
51
+ public $xss_clean = FALSE;
52
+ public $temp_prefix = "temp_file_";
53
+ public $client_name = '';
54
+
55
+ protected $_file_name_override = '';
56
+
56
57
  /**
57
58
  * Constructor
58
59
  *
59
60
  * @access public
60
61
  */
61
- function CI_Upload($props = array())
62
+ public function __construct($props = array())
62
63
  {
63
64
  if (count($props) > 0)
64
65
  {
65
66
  $this->initialize($props);
66
67
  }
67
-
68
+
68
69
  log_message('debug', "Upload Class Initialized");
69
70
  }
70
-
71
+
71
72
  // --------------------------------------------------------------------
72
-
73
+
73
74
  /**
74
75
  * Initialize preferences
75
76
  *
76
- * @access public
77
77
  * @param array
78
78
  * @return void
79
- */
80
- function initialize($config = array())
79
+ */
80
+ public function initialize($config = array())
81
81
  {
82
82
  $defaults = array(
83
83
  'max_size' => 0,
@@ -105,9 +105,9 @@ class CI_Upload {
105
105
  'xss_clean' => FALSE,
106
106
  'temp_prefix' => "temp_file_",
107
107
  'client_name' => ''
108
- );
109
-
110
-
108
+ );
109
+
110
+
111
111
  foreach ($defaults as $key => $val)
112
112
  {
113
113
  if (isset($config[$key]))
@@ -120,28 +120,27 @@ class CI_Upload {
120
120
  else
121
121
  {
122
122
  $this->$key = $config[$key];
123
- }
123
+ }
124
124
  }
125
125
  else
126
126
  {
127
127
  $this->$key = $val;
128
128
  }
129
129
  }
130
-
130
+
131
131
  // if a file_name was provided in the config, use it instead of the user input
132
132
  // supplied file name for all uploads until initialized again
133
133
  $this->_file_name_override = $this->file_name;
134
134
  }
135
-
135
+
136
136
  // --------------------------------------------------------------------
137
-
137
+
138
138
  /**
139
139
  * Perform the file upload
140
140
  *
141
- * @access public
142
141
  * @return bool
143
- */
144
- function do_upload($field = 'userfile')
142
+ */
143
+ public function do_upload($field = 'userfile')
145
144
  {
146
145
  // Is $_FILES[$field] set? If not, no reason to continue.
147
146
  if ( ! isset($_FILES[$field]))
@@ -149,7 +148,7 @@ class CI_Upload {
149
148
  $this->set_error('upload_no_file_selected');
150
149
  return FALSE;
151
150
  }
152
-
151
+
153
152
  // Is the upload path valid?
154
153
  if ( ! $this->validate_upload_path())
155
154
  {
@@ -171,10 +170,10 @@ class CI_Upload {
171
170
  $this->set_error('upload_file_exceeds_form_limit');
172
171
  break;
173
172
  case 3: // UPLOAD_ERR_PARTIAL
174
- $this->set_error('upload_file_partial');
173
+ $this->set_error('upload_file_partial');
175
174
  break;
176
175
  case 4: // UPLOAD_ERR_NO_FILE
177
- $this->set_error('upload_no_file_selected');
176
+ $this->set_error('upload_no_file_selected');
178
177
  break;
179
178
  case 6: // UPLOAD_ERR_NO_TMP_DIR
180
179
  $this->set_error('upload_no_temp_directory');
@@ -192,9 +191,10 @@ class CI_Upload {
192
191
  return FALSE;
193
192
  }
194
193
 
194
+
195
195
  // Set the uploaded data as class variables
196
- $this->file_temp = $_FILES[$field]['tmp_name'];
197
- $this->file_size = $_FILES[$field]['size'];
196
+ $this->file_temp = $_FILES[$field]['tmp_name'];
197
+ $this->file_size = $_FILES[$field]['size'];
198
198
  $this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES[$field]['type']);
199
199
  $this->file_type = strtolower(trim(stripslashes($this->file_type), '"'));
200
200
  $this->file_name = $this->_prep_filename($_FILES[$field]['name']);
@@ -207,20 +207,31 @@ class CI_Upload {
207
207
  $this->set_error('upload_invalid_filetype');
208
208
  return FALSE;
209
209
  }
210
-
210
+
211
211
  // if we're overriding, let's now make sure the new name and type is allowed
212
212
  if ($this->_file_name_override != '')
213
213
  {
214
214
  $this->file_name = $this->_prep_filename($this->_file_name_override);
215
- $this->file_ext = $this->get_extension($this->file_name);
215
+
216
+ // If no extension was provided in the file_name config item, use the uploaded one
217
+ if(strpos($this->_file_name_override, '.') === FALSE)
218
+ {
219
+ $this->file_name .= $this->file_ext;
220
+ }
221
+
222
+ // An extension was provided, lets have it!
223
+ else
224
+ {
225
+ $this->file_ext = $this->get_extension($this->_file_name_override);
226
+ }
216
227
 
217
228
  if ( ! $this->is_allowed_filetype(TRUE))
218
229
  {
219
230
  $this->set_error('upload_invalid_filetype');
220
- return FALSE;
231
+ return FALSE;
221
232
  }
222
233
  }
223
-
234
+
224
235
  // Convert the file size to kilobytes
225
236
  if ($this->file_size > 0)
226
237
  {
@@ -244,7 +255,7 @@ class CI_Upload {
244
255
 
245
256
  // Sanitize the file name for security
246
257
  $this->file_name = $this->clean_file_name($this->file_name);
247
-
258
+
248
259
  // Truncate the file name if it's too long
249
260
  if ($this->max_filename > 0)
250
261
  {
@@ -268,13 +279,28 @@ class CI_Upload {
268
279
  if ($this->overwrite == FALSE)
269
280
  {
270
281
  $this->file_name = $this->set_filename($this->upload_path, $this->file_name);
271
-
282
+
272
283
  if ($this->file_name === FALSE)
273
284
  {
274
285
  return FALSE;
275
286
  }
276
287
  }
277
288
 
289
+ /*
290
+ * Run the file through the XSS hacking filter
291
+ * This helps prevent malicious code from being
292
+ * embedded within a file. Scripts can easily
293
+ * be disguised as images or other file types.
294
+ */
295
+ if ($this->xss_clean)
296
+ {
297
+ if ($this->do_xss_clean() === FALSE)
298
+ {
299
+ $this->set_error('upload_unable_to_write_file');
300
+ return FALSE;
301
+ }
302
+ }
303
+
278
304
  /*
279
305
  * Move the file to the final destination
280
306
  * To deal with different server configurations
@@ -286,21 +312,10 @@ class CI_Upload {
286
312
  {
287
313
  if ( ! @move_uploaded_file($this->file_temp, $this->upload_path.$this->file_name))
288
314
  {
289
- $this->set_error('upload_destination_error');
290
- return FALSE;
315
+ $this->set_error('upload_destination_error');
316
+ return FALSE;
291
317
  }
292
318
  }
293
-
294
- /*
295
- * Run the file through the XSS hacking filter
296
- * This helps prevent malicious code from being
297
- * embedded within a file. Scripts can easily
298
- * be disguised as images or other file types.
299
- */
300
- if ($this->xss_clean == TRUE)
301
- {
302
- $this->do_xss_clean();
303
- }
304
319
 
305
320
  /*
306
321
  * Set the finalized image dimensions
@@ -312,19 +327,18 @@ class CI_Upload {
312
327
 
313
328
  return TRUE;
314
329
  }
315
-
330
+
316
331
  // --------------------------------------------------------------------
317
-
332
+
318
333
  /**
319
334
  * Finalized Data Array
320
- *
335
+ *
321
336
  * Returns an associative array containing all of the information
322
337
  * related to the upload, allowing the developer easy access in one array.
323
338
  *
324
- * @access public
325
339
  * @return array
326
- */
327
- function data()
340
+ */
341
+ public function data()
328
342
  {
329
343
  return array (
330
344
  'file_name' => $this->file_name,
@@ -343,24 +357,23 @@ class CI_Upload {
343
357
  'image_size_str' => $this->image_size_str,
344
358
  );
345
359
  }
346
-
360
+
347
361
  // --------------------------------------------------------------------
348
-
362
+
349
363
  /**
350
364
  * Set Upload Path
351
365
  *
352
- * @access public
353
366
  * @param string
354
367
  * @return void
355
- */
356
- function set_upload_path($path)
368
+ */
369
+ public function set_upload_path($path)
357
370
  {
358
371
  // Make sure it has a trailing slash
359
372
  $this->upload_path = rtrim($path, '/').'/';
360
373
  }
361
-
374
+
362
375
  // --------------------------------------------------------------------
363
-
376
+
364
377
  /**
365
378
  * Set the file name
366
379
  *
@@ -368,29 +381,28 @@ class CI_Upload {
368
381
  * existence of a file with the same name. If found, it will append a
369
382
  * number to the end of the filename to avoid overwriting a pre-existing file.
370
383
  *
371
- * @access public
372
384
  * @param string
373
385
  * @param string
374
386
  * @return string
375
- */
376
- function set_filename($path, $filename)
387
+ */
388
+ public function set_filename($path, $filename)
377
389
  {
378
390
  if ($this->encrypt_name == TRUE)
379
- {
391
+ {
380
392
  mt_srand();
381
- $filename = md5(uniqid(mt_rand())).$this->file_ext;
393
+ $filename = md5(uniqid(mt_rand())).$this->file_ext;
382
394
  }
383
-
395
+
384
396
  if ( ! file_exists($path.$filename))
385
397
  {
386
398
  return $filename;
387
399
  }
388
-
400
+
389
401
  $filename = str_replace($this->file_ext, '', $filename);
390
-
402
+
391
403
  $new_filename = '';
392
404
  for ($i = 1; $i < 100; $i++)
393
- {
405
+ {
394
406
  if ( ! file_exists($path.$filename.$i.$this->file_ext))
395
407
  {
396
408
  $new_filename = $filename.$i.$this->file_ext;
@@ -408,89 +420,88 @@ class CI_Upload {
408
420
  return $new_filename;
409
421
  }
410
422
  }
411
-
423
+
412
424
  // --------------------------------------------------------------------
413
-
425
+
414
426
  /**
415
427
  * Set Maximum File Size
416
428
  *
417
- * @access public
418
429
  * @param integer
419
430
  * @return void
420
- */
421
- function set_max_filesize($n)
431
+ */
432
+ public function set_max_filesize($n)
422
433
  {
423
434
  $this->max_size = ((int) $n < 0) ? 0: (int) $n;
424
435
  }
425
-
436
+
426
437
  // --------------------------------------------------------------------
427
-
438
+
428
439
  /**
429
440
  * Set Maximum File Name Length
430
441
  *
431
- * @access public
432
442
  * @param integer
433
443
  * @return void
434
- */
435
- function set_max_filename($n)
444
+ */
445
+ public function set_max_filename($n)
436
446
  {
437
447
  $this->max_filename = ((int) $n < 0) ? 0: (int) $n;
438
448
  }
439
449
 
440
450
  // --------------------------------------------------------------------
441
-
451
+
442
452
  /**
443
453
  * Set Maximum Image Width
444
454
  *
445
- * @access public
446
455
  * @param integer
447
456
  * @return void
448
- */
449
- function set_max_width($n)
457
+ */
458
+ public function set_max_width($n)
450
459
  {
451
460
  $this->max_width = ((int) $n < 0) ? 0: (int) $n;
452
461
  }
453
-
462
+
454
463
  // --------------------------------------------------------------------
455
-
464
+
456
465
  /**
457
466
  * Set Maximum Image Height
458
467
  *
459
- * @access public
460
468
  * @param integer
461
469
  * @return void
462
- */
463
- function set_max_height($n)
470
+ */
471
+ public function set_max_height($n)
464
472
  {
465
473
  $this->max_height = ((int) $n < 0) ? 0: (int) $n;
466
474
  }
467
-
475
+
468
476
  // --------------------------------------------------------------------
469
-
477
+
470
478
  /**
471
479
  * Set Allowed File Types
472
480
  *
473
- * @access public
474
481
  * @param string
475
482
  * @return void
476
- */
477
- function set_allowed_types($types)
483
+ */
484
+ public function set_allowed_types($types)
478
485
  {
486
+ if ( ! is_array($types) && $types == '*')
487
+ {
488
+ $this->allowed_types = '*';
489
+ return;
490
+ }
479
491
  $this->allowed_types = explode('|', $types);
480
492
  }
481
-
493
+
482
494
  // --------------------------------------------------------------------
483
-
495
+
484
496
  /**
485
497
  * Set Image Properties
486
498
  *
487
499
  * Uses GD to determine the width/height/type of image
488
500
  *
489
- * @access public
490
501
  * @param string
491
502
  * @return void
492
- */
493
- function set_image_properties($path = '')
503
+ */
504
+ public function set_image_properties($path = '')
494
505
  {
495
506
  if ( ! $this->is_image())
496
507
  {
@@ -500,7 +511,7 @@ class CI_Upload {
500
511
  if (function_exists('getimagesize'))
501
512
  {
502
513
  if (FALSE !== ($D = @getimagesize($path)))
503
- {
514
+ {
504
515
  $types = array(1 => 'gif', 2 => 'jpeg', 3 => 'png');
505
516
 
506
517
  $this->image_width = $D['0'];
@@ -510,45 +521,43 @@ class CI_Upload {
510
521
  }
511
522
  }
512
523
  }
513
-
524
+
514
525
  // --------------------------------------------------------------------
515
-
526
+
516
527
  /**
517
528
  * Set XSS Clean
518
529
  *
519
530
  * Enables the XSS flag so that the file that was uploaded
520
531
  * will be run through the XSS filter.
521
532
  *
522
- * @access public
523
533
  * @param bool
524
534
  * @return void
525
535
  */
526
- function set_xss_clean($flag = FALSE)
536
+ public function set_xss_clean($flag = FALSE)
527
537
  {
528
538
  $this->xss_clean = ($flag == TRUE) ? TRUE : FALSE;
529
539
  }
530
-
540
+
531
541
  // --------------------------------------------------------------------
532
-
542
+
533
543
  /**
534
544
  * Validate the image
535
545
  *
536
- * @access public
537
546
  * @return bool
538
- */
539
- function is_image()
547
+ */
548
+ public function is_image()
540
549
  {
541
550
  // IE will sometimes return odd mime-types during upload, so here we just standardize all
542
551
  // jpegs or pngs to the same file type.
543
552
 
544
553
  $png_mimes = array('image/x-png');
545
554
  $jpeg_mimes = array('image/jpg', 'image/jpe', 'image/jpeg', 'image/pjpeg');
546
-
555
+
547
556
  if (in_array($this->file_type, $png_mimes))
548
557
  {
549
558
  $this->file_type = 'image/png';
550
559
  }
551
-
560
+
552
561
  if (in_array($this->file_type, $jpeg_mimes))
553
562
  {
554
563
  $this->file_type = 'image/jpeg';
@@ -558,29 +567,33 @@ class CI_Upload {
558
567
  'image/gif',
559
568
  'image/jpeg',
560
569
  'image/png',
561
- );
570
+ );
562
571
 
563
572
  return (in_array($this->file_type, $img_mimes, TRUE)) ? TRUE : FALSE;
564
573
  }
565
-
574
+
566
575
  // --------------------------------------------------------------------
567
-
576
+
568
577
  /**
569
578
  * Verify that the filetype is allowed
570
579
  *
571
- * @access public
572
580
  * @return bool
573
- */
574
- function is_allowed_filetype($ignore_mime = FALSE)
581
+ */
582
+ public function is_allowed_filetype($ignore_mime = FALSE)
575
583
  {
584
+ if ($this->allowed_types == '*')
585
+ {
586
+ return TRUE;
587
+ }
588
+
576
589
  if (count($this->allowed_types) == 0 OR ! is_array($this->allowed_types))
577
590
  {
578
591
  $this->set_error('upload_no_file_types');
579
592
  return FALSE;
580
593
  }
581
-
594
+
582
595
  $ext = strtolower(ltrim($this->file_ext, '.'));
583
-
596
+
584
597
  if ( ! in_array($ext, $this->allowed_types))
585
598
  {
586
599
  return FALSE;
@@ -594,40 +607,39 @@ class CI_Upload {
594
607
  if (getimagesize($this->file_temp) === FALSE)
595
608
  {
596
609
  return FALSE;
597
- }
610
+ }
598
611
  }
599
612
 
600
613
  if ($ignore_mime === TRUE)
601
614
  {
602
615
  return TRUE;
603
616
  }
604
-
617
+
605
618
  $mime = $this->mimes_types($ext);
606
-
619
+
607
620
  if (is_array($mime))
608
621
  {
609
622
  if (in_array($this->file_type, $mime, TRUE))
610
623
  {
611
624
  return TRUE;
612
- }
625
+ }
613
626
  }
614
627
  elseif ($mime == $this->file_type)
615
628
  {
616
629
  return TRUE;
617
630
  }
618
-
631
+
619
632
  return FALSE;
620
633
  }
621
-
634
+
622
635
  // --------------------------------------------------------------------
623
-
636
+
624
637
  /**
625
638
  * Verify that the file is within the allowed size
626
639
  *
627
- * @access public
628
640
  * @return bool
629
- */
630
- function is_allowed_filesize()
641
+ */
642
+ public function is_allowed_filesize()
631
643
  {
632
644
  if ($this->max_size != 0 AND $this->file_size > $this->max_size)
633
645
  {
@@ -638,16 +650,15 @@ class CI_Upload {
638
650
  return TRUE;
639
651
  }
640
652
  }
641
-
653
+
642
654
  // --------------------------------------------------------------------
643
-
655
+
644
656
  /**
645
657
  * Verify that the image is within the allowed width/height
646
658
  *
647
- * @access public
648
659
  * @return bool
649
- */
650
- function is_allowed_dimensions()
660
+ */
661
+ public function is_allowed_dimensions()
651
662
  {
652
663
  if ( ! $this->is_image())
653
664
  {
@@ -673,26 +684,25 @@ class CI_Upload {
673
684
 
674
685
  return TRUE;
675
686
  }
676
-
687
+
677
688
  // --------------------------------------------------------------------
678
-
689
+
679
690
  /**
680
691
  * Validate Upload Path
681
692
  *
682
693
  * Verifies that it is a valid upload path with proper permissions.
683
694
  *
684
695
  *
685
- * @access public
686
696
  * @return bool
687
- */
688
- function validate_upload_path()
697
+ */
698
+ public function validate_upload_path()
689
699
  {
690
700
  if ($this->upload_path == '')
691
701
  {
692
702
  $this->set_error('upload_no_filepath');
693
703
  return FALSE;
694
704
  }
695
-
705
+
696
706
  if (function_exists('realpath') AND @realpath($this->upload_path) !== FALSE)
697
707
  {
698
708
  $this->upload_path = str_replace("\\", "/", realpath($this->upload_path));
@@ -713,32 +723,30 @@ class CI_Upload {
713
723
  $this->upload_path = preg_replace("/(.+?)\/*$/", "\\1/", $this->upload_path);
714
724
  return TRUE;
715
725
  }
716
-
726
+
717
727
  // --------------------------------------------------------------------
718
-
728
+
719
729
  /**
720
730
  * Extract the file extension
721
731
  *
722
- * @access public
723
732
  * @param string
724
733
  * @return string
725
- */
726
- function get_extension($filename)
734
+ */
735
+ public function get_extension($filename)
727
736
  {
728
737
  $x = explode('.', $filename);
729
738
  return '.'.end($x);
730
- }
731
-
739
+ }
740
+
732
741
  // --------------------------------------------------------------------
733
-
742
+
734
743
  /**
735
744
  * Clean the file name for security
736
745
  *
737
- * @access public
738
746
  * @param string
739
747
  * @return string
740
- */
741
- function clean_file_name($filename)
748
+ */
749
+ public function clean_file_name($filename)
742
750
  {
743
751
  $bad = array(
744
752
  "<!--",
@@ -756,40 +764,39 @@ class CI_Upload {
756
764
  "%20",
757
765
  "%22",
758
766
  "%3c", // <
759
- "%253c", // <
760
- "%3e", // >
761
- "%0e", // >
762
- "%28", // (
763
- "%29", // )
764
- "%2528", // (
765
- "%26", // &
766
- "%24", // $
767
- "%3f", // ?
768
- "%3b", // ;
767
+ "%253c", // <
768
+ "%3e", // >
769
+ "%0e", // >
770
+ "%28", // (
771
+ "%29", // )
772
+ "%2528", // (
773
+ "%26", // &
774
+ "%24", // $
775
+ "%3f", // ?
776
+ "%3b", // ;
769
777
  "%3d" // =
770
778
  );
771
-
779
+
772
780
  $filename = str_replace($bad, '', $filename);
773
781
 
774
782
  return stripslashes($filename);
775
783
  }
776
784
 
777
785
  // --------------------------------------------------------------------
778
-
786
+
779
787
  /**
780
788
  * Limit the File Name Length
781
789
  *
782
- * @access public
783
790
  * @param string
784
791
  * @return string
785
- */
786
- function limit_filename_length($filename, $length)
792
+ */
793
+ public function limit_filename_length($filename, $length)
787
794
  {
788
795
  if (strlen($filename) < $length)
789
796
  {
790
797
  return $filename;
791
798
  }
792
-
799
+
793
800
  $ext = '';
794
801
  if (strpos($filename, '.') !== FALSE)
795
802
  {
@@ -797,12 +804,12 @@ class CI_Upload {
797
804
  $ext = '.'.array_pop($parts);
798
805
  $filename = implode('.', $parts);
799
806
  }
800
-
807
+
801
808
  return substr($filename, 0, ($length - strlen($ext))).$ext;
802
809
  }
803
810
 
804
811
  // --------------------------------------------------------------------
805
-
812
+
806
813
  /**
807
814
  * Runs the file through the XSS clean function
808
815
  *
@@ -810,59 +817,93 @@ class CI_Upload {
810
817
  * I'm not sure that it won't negatively affect certain files in unexpected ways,
811
818
  * but so far I haven't found that it causes trouble.
812
819
  *
813
- * @access public
814
820
  * @return void
815
- */
816
- function do_xss_clean()
817
- {
818
- $file = $this->upload_path.$this->file_name;
819
-
821
+ */
822
+ public function do_xss_clean()
823
+ {
824
+ $file = $this->file_temp;
825
+
820
826
  if (filesize($file) == 0)
821
827
  {
822
828
  return FALSE;
823
829
  }
824
830
 
831
+ if (function_exists('memory_get_usage') && memory_get_usage() && ini_get('memory_limit') != '')
832
+ {
833
+ $current = ini_get('memory_limit') * 1024 * 1024;
834
+
835
+ // There was a bug/behavioural change in PHP 5.2, where numbers over one million get output
836
+ // into scientific notation. number_format() ensures this number is an integer
837
+ // http://bugs.php.net/bug.php?id=43053
838
+
839
+ $new_memory = number_format(ceil(filesize($file) + $current), 0, '.', '');
840
+
841
+ ini_set('memory_limit', $new_memory); // When an integer is used, the value is measured in bytes. - PHP.net
842
+ }
843
+
844
+ // If the file being uploaded is an image, then we should have no problem with XSS attacks (in theory), but
845
+ // IE can be fooled into mime-type detecting a malformed image as an html file, thus executing an XSS attack on anyone
846
+ // using IE who looks at the image. It does this by inspecting the first 255 bytes of an image. To get around this
847
+ // CI will itself look at the first 255 bytes of an image to determine its relative safety. This can save a lot of
848
+ // processor power and time if it is actually a clean image, as it will be in nearly all instances _except_ an
849
+ // attempted XSS attack.
850
+
851
+ if (function_exists('getimagesize') && @getimagesize($file) !== FALSE)
852
+ {
853
+ if (($file = @fopen($file, 'rb')) === FALSE) // "b" to force binary
854
+ {
855
+ return FALSE; // Couldn't open the file, return FALSE
856
+ }
857
+
858
+ $opening_bytes = fread($file, 256);
859
+ fclose($file);
860
+
861
+ // These are known to throw IE into mime-type detection chaos
862
+ // <a, <body, <head, <html, <img, <plaintext, <pre, <script, <table, <title
863
+ // title is basically just in SVG, but we filter it anyhow
864
+
865
+ if ( ! preg_match('/<(a|body|head|html|img|plaintext|pre|script|table|title)[\s>]/i', $opening_bytes))
866
+ {
867
+ return TRUE; // its an image, no "triggers" detected in the first 256 bytes, we're good
868
+ }
869
+ }
870
+
825
871
  if (($data = @file_get_contents($file)) === FALSE)
826
872
  {
827
873
  return FALSE;
828
874
  }
829
-
830
- if ( ! $fp = @fopen($file, FOPEN_READ_WRITE))
875
+
876
+ $CI =& get_instance();
877
+
878
+ if ( ! isset($CI->security))
831
879
  {
832
- return FALSE;
880
+ $CI->load->library('security');
833
881
  }
834
882
 
835
- $CI =& get_instance();
836
- $data = $CI->input->xss_clean($data);
837
-
838
- flock($fp, LOCK_EX);
839
- fwrite($fp, $data);
840
- flock($fp, LOCK_UN);
841
- fclose($fp);
883
+ return $CI->security->xss_clean($data, TRUE);
842
884
  }
843
-
885
+
844
886
  // --------------------------------------------------------------------
845
-
887
+
846
888
  /**
847
889
  * Set an error message
848
890
  *
849
- * @access public
850
891
  * @param string
851
892
  * @return void
852
- */
853
- function set_error($msg)
893
+ */
894
+ public function set_error($msg)
854
895
  {
855
- $CI =& get_instance();
896
+ $CI =& get_instance();
856
897
  $CI->lang->load('upload');
857
-
898
+
858
899
  if (is_array($msg))
859
900
  {
860
901
  foreach ($msg as $val)
861
902
  {
862
- $msg = ($CI->lang->line($val) == FALSE) ? $val : $CI->lang->line($val);
903
+ $msg = ($CI->lang->line($val) == FALSE) ? $val : $CI->lang->line($val);
863
904
  $this->error_msg[] = $msg;
864
905
  log_message('error', $msg);
865
- }
906
+ }
866
907
  }
867
908
  else
868
909
  {
@@ -871,44 +912,42 @@ class CI_Upload {
871
912
  log_message('error', $msg);
872
913
  }
873
914
  }
874
-
915
+
875
916
  // --------------------------------------------------------------------
876
-
917
+
877
918
  /**
878
919
  * Display the error message
879
920
  *
880
- * @access public
881
921
  * @param string
882
922
  * @param string
883
923
  * @return string
884
- */
885
- function display_errors($open = '<p>', $close = '</p>')
924
+ */
925
+ public function display_errors($open = '<p>', $close = '</p>')
886
926
  {
887
927
  $str = '';
888
928
  foreach ($this->error_msg as $val)
889
929
  {
890
930
  $str .= $open.$val.$close;
891
931
  }
892
-
932
+
893
933
  return $str;
894
934
  }
895
-
935
+
896
936
  // --------------------------------------------------------------------
897
-
937
+
898
938
  /**
899
939
  * List of Mime Types
900
940
  *
901
941
  * This is a list of mime types. We use it to validate
902
942
  * the "allowed types" set by the developer
903
943
  *
904
- * @access public
905
944
  * @param string
906
945
  * @return string
907
- */
908
- function mimes_types($mime)
946
+ */
947
+ public function mimes_types($mime)
909
948
  {
910
949
  global $mimes;
911
-
950
+
912
951
  if (count($this->mimes) == 0)
913
952
  {
914
953
  if (@require_once(APPPATH.'config/mimes'.EXT))
@@ -917,25 +956,24 @@ class CI_Upload {
917
956
  unset($mimes);
918
957
  }
919
958
  }
920
-
959
+
921
960
  return ( ! isset($this->mimes[$mime])) ? FALSE : $this->mimes[$mime];
922
961
  }
923
962
 
924
963
  // --------------------------------------------------------------------
925
-
964
+
926
965
  /**
927
966
  * Prep Filename
928
967
  *
929
968
  * Prevents possible script execution from Apache's handling of files multiple extensions
930
969
  * http://httpd.apache.org/docs/1.3/mod/mod_mime.html#multipleext
931
970
  *
932
- * @access private
933
971
  * @param string
934
972
  * @return string
935
973
  */
936
- function _prep_filename($filename)
974
+ protected function _prep_filename($filename)
937
975
  {
938
- if (strpos($filename, '.') === FALSE)
976
+ if (strpos($filename, '.') === FALSE OR $this->allowed_types == '*')
939
977
  {
940
978
  return $filename;
941
979
  }
@@ -957,7 +995,7 @@ class CI_Upload {
957
995
  }
958
996
 
959
997
  $filename .= '.'.$ext;
960
-
998
+
961
999
  return $filename;
962
1000
  }
963
1001