Browse files

Merge refactoring into Trunk. Use TRUNK, not Refactoring branch for c…

…ontinued development

git-svn-id: http://joomlacode.org/svn/joomla/development/trunk@11140 6f6e1ebd-4c2b-0410-823f-f34bde69bce9
  • Loading branch information...
1 parent 7f47d50 commit 186d63070a54fb9b4950b8f50738a5e371efe5b9 @ircmaxell ircmaxell committed Oct 16, 2008
Showing with 12,390 additions and 6,318 deletions.
  1. +131 −5 CHANGELOG.php
  2. +38 −9 CREDITS.php
  3. +87 −87 LICENSES.php
  4. +1 −1 administrator/backups/index.html
  5. +1 −1 administrator/cache/index.html
  6. +21 −0 administrator/components/com_acl/acl.php
  7. +147 −0 administrator/components/com_acl/controller.php
  8. +222 −0 administrator/components/com_acl/controllers/acl.php
  9. +186 −0 administrator/components/com_acl/controllers/group.php
  10. +1 −0 administrator/components/com_acl/controllers/index.html
  11. +25 −0 administrator/components/com_acl/helpers/acl.php
  12. +82 −0 administrator/components/com_acl/helpers/html/acl.php
  13. +1 −0 administrator/components/com_acl/helpers/html/index.html
  14. +1 −0 administrator/components/com_acl/helpers/index.html
  15. +1 −0 administrator/components/com_acl/index.html
  16. +85 −0 administrator/components/com_acl/models/_prototypeitem.php
  17. +90 −0 administrator/components/com_acl/models/_prototypelist.php
  18. +231 −0 administrator/components/com_acl/models/acl.php
  19. +239 −0 administrator/components/com_acl/models/acls.php
  20. +82 −0 administrator/components/com_acl/models/group.php
  21. +161 −0 administrator/components/com_acl/models/groups.php
  22. +136 −0 administrator/components/com_acl/models/objects.php
  23. +81 −0 administrator/components/com_acl/models/sections.php
  24. +1 −0 administrator/components/com_acl/views/group/index.html
  25. +81 −0 administrator/components/com_acl/views/group/tmpl/edit.php
  26. +1 −0 administrator/components/com_acl/views/group/tmpl/index.html
  27. +61 −0 administrator/components/com_acl/views/group/view.html.php
  28. +1 −0 administrator/components/com_acl/views/groups/index.html
  29. +86 −0 administrator/components/com_acl/views/groups/tmpl/default.php
  30. +1 −0 administrator/components/com_acl/views/groups/tmpl/index.html
  31. +56 −0 administrator/components/com_acl/views/groups/view.html.php
  32. +1 −0 administrator/components/com_acl/views/level/index.html
  33. +48 −0 administrator/components/com_acl/views/level/tmpl/edit.php
  34. +1 −0 administrator/components/com_acl/views/level/tmpl/index.html
  35. +60 −0 administrator/components/com_acl/views/level/view.html.php
  36. +1 −0 administrator/components/com_acl/views/levels/index.html
  37. +85 −0 administrator/components/com_acl/views/levels/tmpl/default.php
  38. +1 −0 administrator/components/com_acl/views/levels/tmpl/index.html
  39. +56 −0 administrator/components/com_acl/views/levels/view.html.php
  40. +1 −0 administrator/components/com_acl/views/rule/index.html
  41. +106 −0 administrator/components/com_acl/views/rule/tmpl/edit.php
  42. +15 −0 administrator/components/com_acl/views/rule/tmpl/edit_acos.php
  43. +14 −0 administrator/components/com_acl/views/rule/tmpl/edit_arogroups.php
  44. +14 −0 administrator/components/com_acl/views/rule/tmpl/edit_axogroups.php
  45. +15 −0 administrator/components/com_acl/views/rule/tmpl/edit_axos.php
  46. +21 −0 administrator/components/com_acl/views/rule/tmpl/edit_type1.php
  47. +29 −0 administrator/components/com_acl/views/rule/tmpl/edit_type2.php
  48. +29 −0 administrator/components/com_acl/views/rule/tmpl/edit_type3.php
  49. +1 −0 administrator/components/com_acl/views/rule/tmpl/index.html
  50. +95 −0 administrator/components/com_acl/views/rule/view.html.php
  51. +1 −0 administrator/components/com_acl/views/rules/index.html
  52. +24 −0 administrator/components/com_acl/views/rules/tmpl/default.php
  53. +122 −0 administrator/components/com_acl/views/rules/tmpl/default_type1.php
  54. +143 −0 administrator/components/com_acl/views/rules/tmpl/default_type2.php
  55. +136 −0 administrator/components/com_acl/views/rules/tmpl/default_type3.php
  56. +1 −0 administrator/components/com_acl/views/rules/tmpl/index.html
  57. +56 −0 administrator/components/com_acl/views/rules/view.html.php
  58. +0 −330 administrator/components/com_admin/admin.admin.html.php
  59. +0 −48 administrator/components/com_admin/admin.admin.php
  60. +25 −0 administrator/components/com_admin/admin.php
  61. +12 −0 administrator/components/com_admin/admin.xml
  62. +5 −0 administrator/components/com_admin/config.xml
  63. +73 −0 administrator/components/com_admin/controller.php
  64. +1 −1 administrator/components/com_admin/index.html
  65. +85 −0 administrator/components/com_admin/models/changelog.php
  66. +1 −0 administrator/components/com_admin/models/index.html
  67. +0 −1 administrator/components/com_admin/tmpl/index.html
  68. +0 −73 administrator/components/com_admin/tmpl/sysinfo_config.php
  69. +0 −75 administrator/components/com_admin/tmpl/sysinfo_directory.php
  70. +0 −49 administrator/components/com_admin/tmpl/sysinfo_phpinfo.php
  71. +0 −165 administrator/components/com_admin/tmpl/sysinfo_phpsettings.php
  72. +0 −98 administrator/components/com_admin/tmpl/sysinfo_system.php
  73. +0 −48 administrator/components/com_admin/toolbar.admin.html.php
  74. +0 −42 administrator/components/com_admin/toolbar.admin.php
  75. +1 −0 administrator/components/com_admin/views/changelog/index.html
  76. +11 −0 administrator/components/com_admin/views/changelog/tmpl/default.php
  77. +1 −0 administrator/components/com_admin/views/changelog/tmpl/index.html
  78. +35 −0 administrator/components/com_admin/views/changelog/view.html.php
  79. +1 −0 administrator/components/com_admin/views/help/index.html
  80. +99 −0 administrator/components/com_admin/views/help/tmpl/default.php
  81. +1 −0 administrator/components/com_admin/views/help/tmpl/index.html
  82. +112 −0 administrator/components/com_admin/views/help/view.html.php
  83. +1 −0 administrator/components/com_admin/views/sysinfo/index.html
  84. +57 −0 administrator/components/com_admin/views/sysinfo/tmpl/default.php
  85. +68 −0 administrator/components/com_admin/views/sysinfo/tmpl/default_config.php
  86. +71 −0 administrator/components/com_admin/views/sysinfo/tmpl/default_directory.php
  87. 0 administrator/components/com_admin/{tmpl/navigation.php → views/sysinfo/tmpl/default_navigation.php}
  88. +44 −0 administrator/components/com_admin/views/sysinfo/tmpl/default_phpinfo.php
  89. +145 −0 administrator/components/com_admin/views/sysinfo/tmpl/default_phpsettings.php
  90. +95 −0 administrator/components/com_admin/views/sysinfo/tmpl/default_system.php
  91. +1 −0 administrator/components/com_admin/views/sysinfo/tmpl/index.html
  92. +86 −0 administrator/components/com_admin/views/sysinfo/view.html.php
  93. +0 −65 administrator/components/com_banners/admin.banners.php
  94. +62 −0 administrator/components/com_banners/banners.php
  95. +102 −286 administrator/components/com_banners/controllers/banner.php
  96. +57 −136 administrator/components/com_banners/controllers/client.php
  97. +1 −1 administrator/components/com_banners/controllers/index.html
  98. +1 −1 administrator/components/com_banners/elements/index.html
  99. +1 −1 administrator/components/com_banners/helpers/index.html
  100. +1 −1 administrator/components/com_banners/index.html
  101. +398 −0 administrator/components/com_banners/models/banner.php
  102. +261 −0 administrator/components/com_banners/models/bannerclient.php
  103. +191 −0 administrator/components/com_banners/models/bannerclients.php
  104. +207 −0 administrator/components/com_banners/models/banners.php
  105. +1 −0 administrator/components/com_banners/models/index.html
  106. +1 −1 administrator/components/com_banners/tables/index.html
  107. +0 −449 administrator/components/com_banners/views/banner.php
  108. +1 −0 administrator/components/com_banners/views/banner/index.html
  109. +234 −0 administrator/components/com_banners/views/banner/tmpl/default.php
  110. +1 −0 administrator/components/com_banners/views/banner/tmpl/index.html
  111. +108 −0 administrator/components/com_banners/views/banner/view.html.php
  112. +1 −0 administrator/components/com_banners/views/bannerclient/index.html
  113. +102 −0 administrator/components/com_banners/views/bannerclient/tmpl/default.php
  114. +1 −0 administrator/components/com_banners/views/bannerclient/tmpl/index.html
  115. +67 −0 administrator/components/com_banners/views/bannerclient/view.html.php
  116. +1 −0 administrator/components/com_banners/views/bannerclients/index.html
  117. +108 −0 administrator/components/com_banners/views/bannerclients/tmpl/default.php
  118. +1 −0 administrator/components/com_banners/views/bannerclients/tmpl/index.html
  119. +48 −0 administrator/components/com_banners/views/bannerclients/view.html.php
  120. +1 −0 administrator/components/com_banners/views/banners/index.html
  121. +165 −0 administrator/components/com_banners/views/banners/tmpl/default.php
  122. +1 −0 administrator/components/com_banners/views/banners/tmpl/index.html
  123. +51 −0 administrator/components/com_banners/views/banners/view.html.php
  124. +0 −258 administrator/components/com_banners/views/client.php
  125. +1 −1 administrator/components/com_banners/views/index.html
  126. +0 −106 administrator/components/com_cache/admin.cache.html.php
  127. +0 −98 administrator/components/com_cache/admin.cache.php
  128. +0 −161 administrator/components/com_cache/cache.class.php
  129. +33 −0 administrator/components/com_cache/cache.php
  130. +44 −0 administrator/components/com_cache/controller.php
  131. +1 −1 administrator/components/com_cache/index.html
  132. +208 −0 administrator/components/com_cache/models/cache.php
  133. +1 −0 administrator/components/com_cache/models/index.html
  134. +0 −33 administrator/components/com_cache/toolbar.cache.html.php
  135. +0 −25 administrator/components/com_cache/toolbar.cache.php
  136. +1 −0 administrator/components/com_cache/views/cache/index.html
  137. +69 −0 administrator/components/com_cache/views/cache/tmpl/default.php
  138. +1 −0 administrator/components/com_cache/views/cache/tmpl/index.html
  139. +68 −0 administrator/components/com_cache/views/cache/view.html.php
  140. +1 −0 administrator/components/com_cache/views/index.html
  141. +0 −578 administrator/components/com_categories/admin.categories.html.php
  142. +0 −997 administrator/components/com_categories/admin.categories.php
  143. +25 −0 administrator/components/com_categories/categories.php
  144. +12 −0 administrator/components/com_categories/categories.xml
  145. +5 −0 administrator/components/com_categories/config.xml
  146. +546 −0 administrator/components/com_categories/controller.php
  147. +1 −1 administrator/components/com_categories/index.html
  148. +354 −0 administrator/components/com_categories/models/categories.php
  149. +399 −0 administrator/components/com_categories/models/category.php
  150. +1 −0 administrator/components/com_categories/models/index.html
  151. +84 −0 administrator/components/com_categories/tables/category.php
  152. +1 −0 administrator/components/com_categories/tables/index.html
  153. +0 −84 administrator/components/com_categories/toolbar.categories.html.php
  154. +0 −44 administrator/components/com_categories/toolbar.categories.php
  155. +1 −0 administrator/components/com_categories/views/categories/index.html
  156. +189 −0 administrator/components/com_categories/views/categories/tmpl/default.php
  157. +1 −0 administrator/components/com_categories/views/categories/tmpl/index.html
  158. +74 −0 administrator/components/com_categories/views/categories/view.html.php
  159. +1 −0 administrator/components/com_categories/views/category/index.html
  160. +200 −0 administrator/components/com_categories/views/category/tmpl/default.php
  161. +1 −0 administrator/components/com_categories/views/category/tmpl/index.html
  162. +151 −0 administrator/components/com_categories/views/category/view.html.php
  163. +1 −0 administrator/components/com_categories/views/copyselect/index.html
  164. +92 −0 administrator/components/com_categories/views/copyselect/tmpl/default.php
  165. +1 −0 administrator/components/com_categories/views/copyselect/tmpl/index.html
  166. +89 −0 administrator/components/com_categories/views/copyselect/view.html.php
  167. +1 −0 administrator/components/com_categories/views/index.html
  168. +0 −107 administrator/components/com_checkin/admin.checkin.php
  169. +25 −0 administrator/components/com_checkin/checkin.php
  170. +29 −0 administrator/components/com_checkin/controller.php
  171. +1 −1 administrator/components/com_checkin/index.html
  172. +0 −31 administrator/components/com_checkin/toolbar.checkin.html.php
  173. +0 −24 administrator/components/com_checkin/toolbar.checkin.php
  174. +1 −0 administrator/components/com_checkin/views/checkin/index.html
  175. +42 −0 administrator/components/com_checkin/views/checkin/tmpl/default.php
  176. +1 −0 administrator/components/com_checkin/views/checkin/tmpl/index.html
  177. +90 −0 administrator/components/com_checkin/views/checkin/view.html.php
  178. +1 −0 administrator/components/com_checkin/views/index.html
  179. +0 −45 administrator/components/com_config/admin.config.php
  180. +31 −0 administrator/components/com_config/classes/config.php
  181. +1 −0 administrator/components/com_config/classes/index.html
  182. +46 −0 administrator/components/com_config/config.php
  183. +32 −186 administrator/components/com_config/controllers/application.php
  184. +2 −11 administrator/components/com_config/controllers/component.php
  185. +1 −1 administrator/components/com_config/controllers/index.html
  186. +1 −1 administrator/components/com_config/index.html
  187. +1 −1 administrator/components/com_config/models/index.html
  188. +0 −32 administrator/components/com_config/toolbar.config.html.php
  189. +0 −25 administrator/components/com_config/toolbar.config.php
  190. +1 −1 administrator/components/com_config/views/application/index.html
  191. +67 −0 administrator/components/com_config/views/application/tmpl/config.php
  192. +8 −8 administrator/components/com_config/views/application/tmpl/config_cache.php
  193. +6 −6 administrator/components/com_config/views/application/tmpl/config_database.php
  194. +2 −2 administrator/components/com_config/views/application/tmpl/config_debug.php
  195. +6 −6 administrator/components/com_config/views/application/tmpl/config_ftp.php
  196. 0 administrator/components/com_config/views/application/tmpl/{ftp.php → config_ftp_auth.php}
  197. +1 −1 administrator/components/com_config/views/application/tmpl/config_locale.php
  198. +8 −8 administrator/components/com_config/views/application/tmpl/config_mail.php
  199. +4 −4 administrator/components/com_config/views/application/tmpl/config_metadata.php
  200. 0 administrator/components/com_config/views/application/tmpl/{navigation.php → config_navigation.php}
  201. +4 −4 administrator/components/com_config/views/application/tmpl/config_seo.php
  202. +3 −3 administrator/components/com_config/views/application/tmpl/config_server.php
  203. +2 −2 administrator/components/com_config/views/application/tmpl/config_session.php
  204. +6 −6 administrator/components/com_config/views/application/tmpl/config_site.php
  205. +4 −4 administrator/components/com_config/views/application/tmpl/config_system.php
  206. +1 −1 administrator/components/com_config/views/application/tmpl/index.html
  207. +226 −0 administrator/components/com_config/views/application/view.html.php
  208. +0 −131 administrator/components/com_config/views/application/view.php
  209. +1 −1 administrator/components/com_config/views/component/index.html
  210. +31 −0 administrator/components/com_config/views/component/tmpl/default.php
  211. +1 −0 administrator/components/com_config/views/component/tmpl/index.html
  212. +4 −30 administrator/components/com_config/views/component/view.php
  213. +1 −1 administrator/components/com_config/views/index.html
  214. +0 −476 administrator/components/com_contact/admin.contact.html.php
  215. +0 −505 administrator/components/com_contact/admin.contact.php
  216. +33 −0 administrator/components/com_contact/contact.php
  217. +1 −1 administrator/components/com_contact/contact.xml
  218. +0 −100 administrator/components/com_contact/contact_items.xml
  219. +282 −0 administrator/components/com_contact/controller.php
  220. +1 −1 administrator/components/com_contact/elements/index.html
  221. +0 −1 administrator/components/com_contact/helpers/index.html
  222. +0 −94 administrator/components/com_contact/helpers/vcard.php
  223. +1 −1 administrator/components/com_contact/index.html
  224. +439 −0 administrator/components/com_contact/models/contact.php
  225. +100 −0 administrator/components/com_contact/models/contact.xml
  226. +207 −0 administrator/components/com_contact/models/contacts.php
  227. +1 −0 administrator/components/com_contact/models/index.html
  228. +1 −1 administrator/components/com_contact/tables/contact.php
  229. +1 −1 administrator/components/com_contact/tables/index.html
  230. +0 −59 administrator/components/com_contact/toolbar.contact.html.php
  231. +0 −33 administrator/components/com_contact/toolbar.contact.php
  232. +1 −0 administrator/components/com_contact/views/contact/index.html
  233. +299 −0 administrator/components/com_contact/views/contact/tmpl/default.php
  234. +1 −0 administrator/components/com_contact/views/contact/tmpl/index.html
  235. +101 −0 administrator/components/com_contact/views/contact/view.html.php
  236. +1 −0 administrator/components/com_contact/views/contacts/index.html
  237. +142 −0 administrator/components/com_contact/views/contacts/tmpl/default.php
  238. +1 −0 administrator/components/com_contact/views/contacts/tmpl/index.html
  239. +62 −0 administrator/components/com_contact/views/contacts/view.html.php
  240. +1 −0 administrator/components/com_contact/views/index.html
  241. +40 −0 administrator/components/com_contactdirectory/contactdirectory.php
  242. +12 −0 administrator/components/com_contactdirectory/contactdirectory.xml
  243. +265 −0 administrator/components/com_contactdirectory/controllers/contact.php
  244. +272 −0 administrator/components/com_contactdirectory/controllers/field.php
  245. +1 −0 administrator/components/com_contactdirectory/controllers/index.html
  246. +42 −0 administrator/components/com_contactdirectory/elements/contact.php
  247. +1 −0 administrator/components/com_contactdirectory/elements/index.html
  248. +1 −0 administrator/components/com_contactdirectory/helpers/index.html
  249. +109 −0 administrator/components/com_contactdirectory/helpers/stringstream.php
  250. +1 −0 administrator/components/com_contactdirectory/index.html
Sorry, we could not display the entire diff because too many files (2,436) changed.
View
136 CHANGELOG.php
@@ -23,11 +23,10 @@
2. Changelog
------------
This is a non-exhaustive (but still near complete) changelog for
-Joomla! 1.5, including beta and release candidate versions.
+Joomla! 1.6, including beta and release candidate versions.
Our thanks to all those people who've contributed bug reports and
code fixes.
-
Legend:
* -> Security Fix
@@ -36,13 +35,140 @@
+ -> Addition
^ -> Change
- -> Removed
-! -> Note
-
+! -> Note
+
+COMMITERS
+
+Do not forget to update this page on the wiki when making changes relevant to developers:
+http://docs.joomla.org/index.php?title=Version_1.6_Developer_Notes
+
+14-Oct-2008 Alan Langford
+ + Added JLanguage::getLanguageIdentifier() plus much rework of class (with supporting unit tests)
+
+14-Oct-2008 Andrew Eddie
+ ! SCHEMA CHANGE - REINSTALL REQUIRED
+ ^ Broke ACLs into 3 types
+ + Added abstract JTableAxoMap table
+
+13-Oct-2008 Andrew Eddie
+ + Added support to edit access levels
+
+13-Oct-2008 Toby Patterson
+ # Added access methods to JToolBar
+ # Removed most references of keyword global from the framework
+ # Fixed bug with rendering cpanel modules
+ ^ Moved some routing logic out of index.php into JAdministrator::dispatch()
+
+11-Oct-2008 Alan Langford
+ + Added ability to specify module appearance in "exclude from list" mode.
+
+11-Oct-2008 Andrew Eddie
+ - Merge System-Debug plugin from 1.5
+ - Added com_acl (finally! they all say)
+ - Moved user group management from com_users to com_acl
+
+10-Oct-2008 Sam Moffatt
+ - Commented out useless lines in JDatabaseMySQL and JDatabaseMySQLi
+
+10-Oct-2008 Andrew Eddie
+ - Dropped joomla_backward.sql
+ ^ Changed installation error_reporting to 2047 while under development
+ + Added new ACL tables
+ ^ Update queries using jos_groups to jos_core_acl_axo_groups
+ - Removed JAuthorization::_mos_add_acl
+ + Added JAuthorization::getUserAccessLevels
+
+04-Oct-2008 Toby Patterson
+ # Fixed final step of installation, completed removal of patTemplates from Installer
+ - Removed global $mainframe from the framework files, except where other extensions will be loaded
+
+02-Oct-2008 Toby Patterson
+ - Fixed bug with JFTP and check for connection
+ # [#12699] Refactor installation application
+ - Most patTemplate code removed
+ - Migrator currently broken, may be redesigned, discussion pending
+29-Sep-2008 Chantal Bisson
+ - Removed duplicates of the language files for com_contactdirectory
+ # Fixed notice about $this->type not initialized on line 199 /administrator/components/com_categories/models/categories.php
+ # Fixed notice about $filter not initialized on line 23 /administrator/components/com_categories/views/tmpl/default.php
+ ^ Changed check() contactdirectory/tables/contact.php posible to add contacts with the same name
+ ^ Changed view for category and categories in com_contactdirectory
+ # Fixed redirect with router after sending mail in com_contactdirectory
+
+22-Sep-2008 Chantal Bisson
+ ^ Changed the column 'name' in the #__contactdirectory_fields table to 'alias'
+ ^ Changed the fields admin view to show the alias in the list and changed the edit field view to be able to modify the alias
+ + Added sample date for contact in com_contactdirectory
+ # Fixed right psition for image in com_contactdirectory contact view
+ # Fixed notice about $email->data in /components/com_contactdirectory/views/contact/view.html.php on line 203
+ # Fixed changing access level in com_contactdirectory from link in contact manager
+
+15-Sep-2008 Chantal Bisson
+ + Added com_contactdirectory and language files
+ + Added sql create table queries for com_contactdirectory in the installation
+ + Added sql sample data for com_contactdirectory
+14-Sep-2008 Johan Janssens
+ ^ Changed __autoload to spl_autoload_register() and refactored JLoader to adhere to E_STRICT
+
+11-Sep-2008 Sam Moffatt
+ ^ Changed behaviour of JFile::write and JFTP::write to use references for the second param
+
+25-Aug-2008 Andrew Eddie
+ + Added JQuery class
+ + Added .invalid styles to admin template for form validation
+ + Added new filters to com_users list
+ + Added support to manage groups in com_users
+
+23-Aug-2008 Andrew Eddie
+ ! Partial merge with 10701 (around 1.5.6)
+ - Remove old 1.5 RC sql diffs
+ ^ JModel::getState will now take an optional second argument to set a default
+ ^ JDatbase::setQuery cast the sql variable to a string allowing for the __toString interface to be used if an object is passed
+
+25-Jun-2008 Johan Janssens
+ - Removed libraries/bitfolge/vcard
+ + Added JDocumentVCARD format
+ + Implemented new Vcard format in contact component
+
+09-Jun-2008 Johan Janssens
+ - Removed backlink system plugin
+ - Removed legacy from mod_mainmenu
+
+08-Jun-2008 Johan Janssens
+ - Removed deprecated functions from JApplication
+
+19-May-2008 Johan Janssens
+ - Removed phpinputfilter library
+ - Removed phputf8, moved mbstring and iconv implementation into JString
+ - Removed administrator/includes/js/ThemeOffice
+ - Removed includes/js/ThemeOffice
+ - Removed includes/js/calendar
+ - Removed includes/js/jscalendar-1.0
+ - Removed includes/js/tabs
+ - Removed includes/js/dtree
+ - Removed includes/js/wz_tooltip.js
+ - Removed includes/js/overlib
+ - Removed includes/js/mambojavascript.js
+ - Removed includes/js/JSCookMenu
+ ^ Renamed joomla.javascript.js to legacy.js and moved to media/system/js
+
+15-May-2008 Johan Janssens
+ - Removed administrator/includes/pcl
+ - Removed folder and file placeholders from application includes directories
+ - Removed libraries/bitfolge/feedcreator
+ - Cleaned up legacy plugin for 1.6
+ - Removed 1.0 legacy code
+ - Updated version information to reflect 1.6
+ - Removed hack to support PHP5 style constructors in PHP4
+ - Removed hack to support PHP5 style destructors in PHP4
+ - Removed _parseURL function from JURI, replaced by parse_url
+ - Removed index2.php and index3.php entry files
+
19-Apr-2008 Andrew Eddie
! Trailing white-space cleanup
-
+
18-Apr-2008 Ian MacLennan
# [#10732] Help screen updates for Menu Manager
View
47 CREDITS.php
@@ -68,7 +68,7 @@
Bengali (bn-IN) - IndicJoomla! Team - Romit Chatterjee
Bosnian (bs-BA) - Bosnian Joomla! Community (joomla.ba) - Emir Sakic
Bulgarian (bg-BG) - Joomla! Bulgaria - Ivo Apostolov
-Catalan (ca-ES) - Damià Verger
+Catalan (ca-ES) - Joomla! Catalan Countries (joomla.cat) - Damià Verger
Chinese-Traditional (zh-TW) - Traditional Chinese Translation Team - Eddy Chang
Croatian (hr-HR) - Croatian Translation Team - Klaudia B.
Czech (cs-CZ) - Czech Translation Team - Svatopluk Vit
@@ -108,6 +108,35 @@
Ukrainian (uk-UA) - Ukrainian Translation Team - Denys Nosov
Vietnamese (vi-VN) - Việt Nam Translation Team - Viet Vu Hoang
+Pizaa Bug and fun Event
+-----------------------
+Chris Davenport
+Kevin Devine
+Anthony Ferrara
+Jerry Hilburn
+Louis Landry
+Wilco Jansen
+Jennifer Marriott
+Rob Schley
+Amy Stephen
+Nereyda Valentin-Macias
+Elin Waring
+Michael Casha
+Marcelo Eden
+Matt Thomas
+Ross Crawford
+Mickael Maison
+Ian MacLennan
+Jaap Woltjes
+Alan Langford
+Michael Hamanaka
+Joe LeBlanc
+Shannon Quinn
+Michelle Bisson
+Airton Torres
+Toni Marie Swats
+Jon Giles
+Matheus Mendes
Joomla! 1.5 includes or is derivative of works distributed under the licenses listed below.
The full text for most of the licenses listed below can be found in the LICENSES.php file.
@@ -144,13 +173,13 @@
-----------
Author: Mihai Bazon
Copyright: Copyright (C) Mihai Bazon, 2002
-License: GNU Lesser General Public License (LGPL)
+License: GNU Lesser General Public License (LGPL)
js-jscook-menu
--------------
Author: Heng Yuan
Copyright: Copyright (C) 2002-2005 by Heng Yuan
-License: MIT License
+License: MIT License
js-overlib
----------
@@ -204,13 +233,13 @@
--------------
Author: Daniel Morris
Copyright: Copyright (C) Daniel Morris
-License: GNU General Public License (GPL)
+License: GNU General Public License (GPL)
PHPMailer
--------
Author: Brent R. Matzelle
Copyright: Copyright (C) 2001 - 2003 Brent R. Matzelle
-License: GNU General Public License (GPL)
+License: GNU General Public License (GPL)
PHPXMLRPC
---------
@@ -316,13 +345,13 @@
-----------
Author: Mihai Bazon
Copyright: Copyright (C) Mihai Bazon, 2002
-License: GNU Lesser General Public License (LGPL)
+License: GNU Lesser General Public License (LGPL)
js-jscook-menu
--------------
Author: Heng Yuan
Copyright: Copyright (C) 2002-2005 by Heng Yuan
-License: MIT License
+License: MIT License
js-overlib
----------
@@ -370,13 +399,13 @@
--------------
Author: Daniel Morris
Copyright: Copyright (C) Daniel Morris
-License: GNU General Public License (GPL)
+License: GNU General Public License (GPL)
PHPMailer
---------
Author: Brent R. Matzelle
Copyright: Copyright (C) 2001 - 2003 Brent R. Matzelle
-License: GNU General Public License (GPL)
+License: GNU General Public License (GPL)
TinyMCE
-------
View
174 LICENSES.php
@@ -117,7 +117,7 @@
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
-
+
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
@@ -173,7 +173,7 @@
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
-
+
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@@ -220,34 +220,34 @@
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
-
+
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
- a) The modified work must itself be a software library.
+ a) The modified work must itself be a software library.
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
@@ -278,7 +278,7 @@
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
-
+
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
@@ -329,7 +329,7 @@ functions (ten lines or less in length), then the use of the object
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
-
+
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
@@ -345,37 +345,37 @@ functions (ten lines or less in length), then the use of the object
directing the user to the copy of this License. Also, you must do one
of these things:
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
@@ -391,22 +391,22 @@ functions (ten lines or less in length), then the use of the object
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
-
+
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
@@ -432,7 +432,7 @@ functions (ten lines or less in length), then the use of the object
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
-
+
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
@@ -484,7 +484,7 @@ functions (ten lines or less in length), then the use of the object
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
-
+
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
@@ -494,7 +494,7 @@ functions (ten lines or less in length), then the use of the object
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -551,38 +551,38 @@ functions (ten lines or less in length), then the use of the object
are met:
1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
+ notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
3. The name "PHP" must not be used to endorse or promote products
- derived from this software without prior written permission. For
- written permission, please contact group@php.net.
+ derived from this software without prior written permission. For
+ written permission, please contact group@php.net.
4. Products derived from this software may not be called "PHP", nor
- may "PHP" appear in their name, without prior written permission
- from group@php.net. You may indicate that your software works in
- conjunction with PHP by saying "Foo for PHP" instead of calling
- it "PHP Foo" or "phpfoo"
+ may "PHP" appear in their name, without prior written permission
+ from group@php.net. You may indicate that your software works in
+ conjunction with PHP by saying "Foo for PHP" instead of calling
+ it "PHP Foo" or "phpfoo"
5. The PHP Group may publish revised and/or new versions of the
- license from time to time. Each version will be given a
- distinguishing version number.
- Once covered code has been published under a particular version
- of the license, you may always continue to use it under the terms
- of that version. You may also choose to use such covered code
- under the terms of any subsequent version of the license
- published by the PHP Group. No one other than the PHP Group has
- the right to modify the terms applicable to covered code created
- under this License.
+ license from time to time. Each version will be given a
+ distinguishing version number.
+ Once covered code has been published under a particular version
+ of the license, you may always continue to use it under the terms
+ of that version. You may also choose to use such covered code
+ under the terms of any subsequent version of the license
+ published by the PHP Group. No one other than the PHP Group has
+ the right to modify the terms applicable to covered code created
+ under this License.
6. Redistributions of any form whatsoever must retain the following
- acknowledgment:
- "This product includes PHP, freely available from
- <http://www.php.net/>".
+ acknowledgment:
+ "This product includes PHP, freely available from
+ <http://www.php.net/>".
THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
View
2 administrator/backups/index.html
@@ -1 +1 @@
-<html><body bgcolor="#FFFFFF"></body></html>
+<html><body></body></html>
View
2 administrator/cache/index.html
@@ -1 +1 @@
-<html><body bgcolor="#FFFFFF"></body></html>
+<html><body></body></html>
View
21 administrator/components/com_acl/acl.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * @version $Id$
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+ * @license GNU/GPL, see LICENSE.php
+ */
+
+// no direct access
+defined('_JEXEC') or die('Restricted access');
+
+require_once JPATH_COMPONENT.DS.'controller.php';
+
+// Import library dependencies
+jimport('joomla.application.component.model');
+JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');
+
+$controller = &AccessController::getInstance();
+$controller->execute(JRequest::getVar('task'));
+$controller->redirect();
View
147 administrator/components/com_acl/controller.php
@@ -0,0 +1,147 @@
+<?php
+/**
+ * @version $Id$
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+ * @license GNU/GPL, see LICENSE.php
+ */
+
+// no direct access
+defined('_JEXEC') or die('Restricted access');
+
+jimport('joomla.application.component.controller');
+
+/**
+ * Component Controller
+ *
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ */
+class AccessController extends JController
+{
+ /**
+ * Default display method
+ */
+ function display()
+ {
+ $document = &JFactory::getDocument();
+
+ // Set the default view name and format from the Request
+ $vName = JRequest::getWord('view', 'rules');
+ $vFormat = $document->getType();
+ $lName = JRequest::getWord('layout', 'default');
+ $type = JRequest::getInt('type', 1);
+
+ if ($view = &$this->getView($vName, $vFormat))
+ {
+ switch ($vName)
+ {
+ case 'group':
+ $model = $this->getModel('group');
+ $model->setState('group_type', 'aro');
+ break;
+
+ case 'groups':
+ $model = $this->getModel('groups');
+ $model->setState('list.group_type', 'aro');
+ $model->setState('list.tree', true);
+ $model->setState('list.parent_id', 28);
+ break;
+
+ case 'level':
+ $model = $this->getModel('group');
+ $model->setState('group_type', 'axo');
+ break;
+
+ case 'levels':
+ $model = $this->getModel('groups');
+ $model->setState('list.group_type', 'axo');
+ $model->setState('list.tree', false);
+ $model->setState('list.parent_id', 1);
+ break;
+
+ case 'rule':
+ $model = $this->getModel('acl');
+ $model->setState('acl_type', $type);
+ break;
+
+ case 'rules':
+ default:
+ $model = $this->getModel('acls');
+ $model->setState('list.acl_type', $type);
+ break;
+ }
+
+ // Push the model into the view (as default)
+ $view->setModel($model, true);
+ $view->setLayout($lName);
+ $view->assignRef('document', $document);
+ $view->display();
+ }
+
+ // Set up the Linkbar
+ JSubMenuHelper::addEntry(JText::_('ACL Link Rules Type 1'), 'index.php?option=com_acl&view=rules&type=1', $vName == 'rules' AND $type == 1);
+ JSubMenuHelper::addEntry(JText::_('ACL Link Rules Type 2'), 'index.php?option=com_acl&view=rules&type=2', $vName == 'rules' AND $type == 2);
+ JSubMenuHelper::addEntry(JText::_('ACL Link Rules Type 3'), 'index.php?option=com_acl&view=rules&type=3', $vName == 'rules' AND $type == 3);
+ JSubMenuHelper::addEntry(JText::_('ACL Link User Groups'), 'index.php?option=com_acl&view=groups', $vName == 'groups');
+ JSubMenuHelper::addEntry(JText::_('ACL Link Access Levels'), 'index.php?option=com_acl&view=levels', $vName == 'levels');
+ }
+
+ /**
+ * Get an instance of the controller
+ */
+ function &getInstance()
+ {
+ // Determine the request protocol
+ $protocol = JRequest::getWord('protocol');
+
+ // Get task command from the request
+ $cmd = JRequest::getVar('task', null);
+
+ // If it was a multiple option post get the selected option
+ if (is_array($cmd)) {
+ $cmd = array_pop(array_keys($cmd));
+ }
+
+ // Filter the command and instantiate the appropriate controller
+ $cmd = JFilterInput::clean($cmd,'cmd');
+ if (strpos($cmd, '.') != false) {
+ // We have a defined controller/task pair -- lets split them out
+ list($controllerName, $task) = explode('.', $cmd);
+
+ // Define the controller name and path
+ $controllerName = strtolower($controllerName);
+ $controllerFile = ($protocol) ? $controllerName.'.'.$protocol : $controllerName;
+ $controllerPath = JPATH_COMPONENT.DS.'controllers'.DS.$controllerFile.'.php';
+
+ // If the controller file path exists, include it ... else lets die with a 500 error
+ if (file_exists($controllerPath)) {
+ require_once $controllerPath;
+ }
+ else {
+ JError::raiseError(500, 'Invalid Controller');
+ }
+
+ JRequest::setVar('task', $task);
+ }
+ else {
+ // Base controller, just set the task :)
+ $controllerName = null;
+ $task = $cmd;
+ }
+
+ // Set the name for the controller and instantiate it
+ $controllerClass = 'AccessController'.ucfirst($controllerName);
+
+ if (class_exists($controllerClass)) {
+ $controller = new $controllerClass();
+ }
+ else {
+ JError::raiseError(500, 'Invalid Controller Class');
+ $controller = null;
+ }
+
+ return $controller;
+ }
+}
View
222 administrator/components/com_acl/controllers/acl.php
@@ -0,0 +1,222 @@
+<?php
+/**
+ * @version $Id$
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+ * @license GNU/GPL, see LICENSE.php
+ */
+
+// no direct access
+defined('_JEXEC') or die('Restricted access');
+
+jimport('joomla.application.component.controller');
+
+/**
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ */
+class AccessControllerACL extends JController
+{
+ /**
+ * Constructor
+ */
+ function __construct()
+ {
+ parent::__construct();
+
+ $this->registerTask('save2copy', 'save');
+ $this->registerTask('save2new', 'save');
+ $this->registerTask('apply', 'save');
+ $this->registerTask('deny', 'allow');
+ $this->registerTask('disable', 'enable');
+ }
+
+ /**
+ * Display the view
+ */
+ function display()
+ {
+ JError::raiseWarning(500, 'This controller does not implement a display method');
+ }
+
+ /**
+ * Proxy for getModel
+ */
+ function &getModel()
+ {
+ return parent::getModel('ACL', 'AccessModel', array('ignore_request' => true));
+ }
+
+ /**
+ * Method to edit a object
+ *
+ * Sets object ID in the session from the request, checks the item out, and then redirects to the edit page.
+ *
+ * @access public
+ * @return void
+ */
+ function edit()
+ {
+ $cid = JRequest::getVar('cid', array(), '', 'array');
+ $id = JRequest::getInt('id', @$cid[0]);
+ $type = JRequest::getInt('acl_type', 1);
+
+ $session = &JFactory::getSession();
+ $session->set('com_acl.acl.id', $id);
+
+ if ($id) {
+ $model = $this->getModel();
+ $item = $model->getItem();
+ $type = $item->acl_type;
+ // Checkout item
+ //$model->checkout($id);
+ }
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view=rule&layout=edit&type='.$type, false));
+ }
+
+ /**
+ * Method to cancel an edit
+ *
+ * Checks the item in, sets item ID in the session to null, and then redirects to the list page.
+ *
+ * @access public
+ * @return void
+ */
+ function cancel()
+ {
+ $type = JRequest::getInt('acl_type', 1);
+ $session = &JFactory::getSession();
+ //if ($id = (int) $session->get('com_acl.acl.id')) {
+ // $model = $this->getModel();
+ // $model->checkin($id);
+ //}
+
+ // Clear the session of the item
+ $session->set('com_acl.acl.id', null);
+
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view=rules&type='.$type, false));
+ }
+
+ /**
+ * Save the record
+ */
+ function save()
+ {
+ // Check for request forgeries.
+ JRequest::checkToken();
+
+ // Get posted form variables.
+ $input = JRequest::get('post');
+ $type = JRequest::getInt('acl_type', 1);
+
+ // Get the id of the item out of the session.
+ $session = &JFactory::getSession();
+
+ // Override the automatic filters
+ //$input['username'] = JRequest::getVar('username', '', 'post', 'username');
+
+ // Clear static values
+ // @todo Look at moving these to the table bind method (but check how new user values are handled)
+ unset($input['updated_date']);
+
+ // Get the id of the item out of the session.
+ $session = &JFactory::getSession();
+ $id = (int) $session->get('com_acl.acl.id');
+ $input['id'] = $id;
+
+ // Get the extensions model and set the post request in its state.
+ $model = &$this->getModel();
+ $result = $model->save($input);
+ $msg = JError::isError($result) ? $result->getMessage() : 'Saved';
+
+ if ($this->_task == 'apply') {
+ $session->set('com_acl.acl.id', $model->getState('id'));
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view=rule&layout=edit', false), JText::_($msg));
+ }
+ else if ($this->_task == 'save2new') {
+ $session->set('com_acl.acl.id', null);
+ //$model->checkin($id);
+
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view=rule&layout=edit&type='.$type, false), JText::_($msg));
+ }
+ else {
+ $session->set('com_acl.acl.id', null);
+ //$model->checkin($id);
+
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view=rules&type='.$type, false), JText::_($msg));
+ }
+ }
+
+ /**
+ * Removes an item
+ */
+ function delete()
+ {
+ // Check for request forgeries
+ JRequest::checkToken() or die('Invalid Token');
+
+ $cid = JRequest::getVar('cid', array(), '', 'array');
+ $type = JRequest::getInt('acl_type', 1);
+
+ if (empty($cid)) {
+ JError::raiseWarning(500, JText::_('No items selected'));
+ }
+ else {
+ // Get the model.
+ $model = $this->getModel();
+
+ // Make sure the item ids are integers
+ jimport('joomla.utilities.arrayhelper');
+ JArrayHelper::toInteger($cid);
+
+ // Remove the items.
+ if (!$model->delete($cid)) {
+ JError::raiseWarning(500, $model->getError());
+ }
+ }
+
+ $this->setRedirect('index.php?option=com_acl&view=rules&type='.$type);
+ }
+
+ /**
+ * Sets the allow field value on an ACL
+ */
+ function allow()
+ {
+ // Check for request forgeries
+ JRequest::checkToken() or die('Invalid Token');
+
+ $values = array('allow' => 1, 'deny' => 0);
+ $type = JRequest::getInt('acl_type', 1);
+ $cid = JRequest::getVar('cid', null, 'post', 'array');
+ $task = $this->getTask();
+ $value = JArrayHelper::getValue($values, $task, 0, 'int');
+
+ $model = $this->getModel();
+ $result = $model->allow($cid, $value);
+ $this->setMessage(JError::isError($result) ? $result->getMessage() : '');
+ $this->setRedirect('index.php?option=com_acl&view=rules&type='.$type);
+ }
+
+ /**
+ * Sets the enable field value on an ACL
+ */
+ function enable()
+ {
+ // Check for request forgeries
+ JRequest::checkToken() or die('Invalid Token');
+
+ $values = array('enable' => 1, 'disable' => 0);
+ $type = JRequest::getInt('acl_type', 1);
+ $cid = JRequest::getVar('cid', null, 'post', 'array');
+ $task = $this->getTask();
+ $value = JArrayHelper::getValue($values, $task, 0, 'int');
+
+ $model = $this->getModel();
+ $result = $model->enable($cid, $value);
+ $this->setMessage(JError::isError($result) ? $result->getMessage() : '');
+ $this->setRedirect('index.php?option=com_acl&view=rules&type='.$type);
+ }
+
+}
View
186 administrator/components/com_acl/controllers/group.php
@@ -0,0 +1,186 @@
+<?php
+/**
+ * @version $Id$
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+ * @license GNU/GPL, see LICENSE.php
+ */
+
+// no direct access
+defined('_JEXEC') or die('Restricted access');
+
+jimport('joomla.application.component.controller');
+
+/**
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ */
+class AccessControllerGroup extends JController
+{
+ /**
+ * Constructor
+ */
+ function __construct()
+ {
+ parent::__construct();
+
+ $this->registerTask('save2copy', 'save');
+ $this->registerTask('save2new', 'save');
+ $this->registerTask('apply', 'save');
+ $this->registerTask('unpublish', 'publish');
+ $this->registerTask('trash', 'publish');
+ $this->registerTask('orderup', 'ordering');
+ $this->registerTask('orderdown', 'ordering');
+ }
+
+ /**
+ * Display the view
+ */
+ function display()
+ {
+ JError::raiseWarning(500, 'This controller does not implement a display method');
+ }
+
+ /**
+ * Proxy for getModel
+ */
+ function &getModel()
+ {
+ return parent::getModel('Group', 'AccessModel', array('ignore_request' => true));
+ }
+
+ protected function _getReturnView($type)
+ {
+ return strtolower($type) == 'axo' ? 'level' : 'group';
+ }
+
+ /**
+ * Method to edit a object
+ *
+ * Sets object ID in the session from the request, checks the item out, and then redirects to the edit page.
+ *
+ * @access public
+ * @return void
+ */
+ function edit()
+ {
+ $cid = JRequest::getVar('cid', array(), '', 'array');
+ $id = JRequest::getInt('id', @$cid[0]);
+ $type = JRequest::getWord('group_type', 'aro');
+
+ $session = &JFactory::getSession();
+ $session->set('com_acl.group.id', $id);
+
+ if ($id) {
+ // Checkout item
+ //$model = $this->getModel();
+ //$model->checkout($id);
+ }
+ $view = $this->_getReturnView($type);
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view='.$view.'&layout=edit', false));
+ }
+
+ /**
+ * Method to cancel an edit
+ *
+ * Checks the item in, sets item ID in the session to null, and then redirects to the list page.
+ *
+ * @access public
+ * @return void
+ */
+ function cancel()
+ {
+ $type = JRequest::getWord('group_type', 'aro');
+ $session = &JFactory::getSession();
+ // Clear the session of the item
+ $session->set('access.group.id', null);
+
+ $view = $this->_getReturnView($type);
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view='.$view.'s', false));
+ }
+
+ /**
+ * Save the record
+ */
+ function save()
+ {
+ // Check for request forgeries.
+ JRequest::checkToken();
+
+ // Get posted form variables.
+ $input = JRequest::get('post');
+ $type = JRequest::getWord('group_type');
+
+ // Get the id of the item out of the session.
+ $session = &JFactory::getSession();
+
+ // Override the automatic filters
+ //$input['username'] = JRequest::getVar('username', '', 'post', 'username');
+
+ // Clear static values
+ // @todo Look at moving these to the table bind method (but check how new user values are handled)
+ //unset($input['updated_date']);
+
+ // Get the id of the item out of the session.
+ $session = &JFactory::getSession();
+ $id = (int) $session->get('com_acl.group.id');
+ $input['id'] = $id;
+
+ // Get the extensions model and set the post request in its state.
+ $model = &$this->getModel();
+ $model->setState('group_type', $type);
+ $result = $model->save($input);
+ $msg = JError::isError($result) ? $result->message : 'Saved';
+ $view = $this->_getReturnView($type);
+
+ if ($this->_task == 'apply') {
+ $session->set('com_acl.group.id', $model->getState('id'));
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view='.$view.'&layout=edit', false), JText::_($msg));
+ }
+ else if ($this->_task == 'save2new') {
+ $session->set('com_acl.group.id', null);
+ //$model->checkin($id);
+
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view='.$view.'&layout=edit', false), JText::_($msg));
+ }
+ else {
+ $session->set('access.group.id', null);
+ //$model->checkin($id);
+
+ $this->setRedirect(JRoute::_('index.php?option=com_acl&view='.$view.'s', false), JText::_($msg));
+ }
+ }
+
+ /**
+ * Deletes a group
+ */
+ function delete()
+ {
+ // Check for request forgeries
+ JRequest::checkToken() or die('Invalid Token');
+
+ $cid = JRequest::getVar('cid', array(), '', 'array');
+ $type = JRequest::getWord('group_type', 'aro');
+
+ if (empty($cid)) {
+ JError::raiseWarning(500, JText::_('No items selected'));
+ }
+ else {
+ // Get the model.
+ $model = $this->getModel();
+
+ // Make sure the item ids are integers
+ jimport('joomla.utilities.arrayhelper');
+ JArrayHelper::toInteger($cid);
+
+ // Remove the items.
+ if (!$model->delete($cid)) {
+ JError::raiseWarning(500, $model->getError());
+ }
+ }
+
+ $view = $this->_getReturnView($type);
+ $this->setRedirect('index.php?option=com_acl&view='.$view.'s');
+ }
+}
View
1 administrator/components/com_acl/controllers/index.html
@@ -0,0 +1 @@
+<html><body></body></html>
View
25 administrator/components/com_acl/helpers/acl.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * @version $Id$
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+ * @license GNU/GPL, see LICENSE.php
+ */
+
+// no direct access
+defined('_JEXEC') or die('Restricted access');
+
+/**
+ * HTML Grid Helper
+ *
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ */
+class AclHelper
+{
+ function getExtendedAcl($items)
+ {
+
+ }
+}
View
82 administrator/components/com_acl/helpers/html/acl.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * @version $Id$
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+ * @license GNU/GPL, see LICENSE.php
+ */
+
+// no direct access
+defined('_JEXEC') or die('Restricted access');
+
+/**
+ * HTML Grid Helper
+ *
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ */
+class JHTMLACL
+{
+ function enabled($value, $i)
+ {
+ $images = array(0 => 'images/publish_x.png', 1 => 'images/tick.png');
+ $alts = array(0 => 'Disabled', 1 => 'Enabled');
+ $img = JArrayHelper::getValue($images, $value, $images[0]);
+ $task = $value == 1 ? 'acl.disable' : 'acl.enable';
+ $alt = JArrayHelper::getValue($alts, $value, $images[0]);
+ $action = JText::_('Click to toggle setting');
+
+ $href = '
+ <a href="javascript:void(0);" onclick="return listItemTask(\'cb'. $i .'\',\''. $task .'\')" title="'. $action .'">
+ <img src="'. $img .'" border="0" alt="'. $alt .'" /></a>'
+ ;
+
+ return $href;
+ }
+
+ function allowed($value, $i)
+ {
+ $images = array(0 => 'images/publish_x.png', 1 => 'images/tick.png');
+ $alts = array(0 => 'Denied', 1 => 'Allowed');
+ $img = JArrayHelper::getValue($images, $value, $images[0]);
+ $task = $value == 1 ? 'acl.deny' : 'acl.allow';
+ $alt = JArrayHelper::getValue($alts, $value, $images[0]);
+ $action = JText::_('Click to toggle setting');
+
+ $href = '
+ <a href="javascript:void(0);" onclick="return listItemTask(\'cb'. $i .'\',\''. $task .'\')" title="'. $action .'">
+ <img src="'. $img .'" border="0" alt="'. $alt .'" /></a>'
+ ;
+
+ return $href;
+ }
+
+ /**
+ * Build the select list for access level
+ */
+ function groups($selected = null, $parentId = 0, $type = 'aro')
+ {
+ $model = JModel::getInstance('Groups', 'AccessModel', array('ignore_request' => 1));
+ $model->setState('list.group_type', $type);
+
+ // Set the model state to get the groups tree
+ $model->setState('list.select', 'a.id AS value, a.name AS text');
+ $model->setState('list.tree', 1);
+ $model->setState('list.order', 'a.lft');
+ $model->setState('list.parent_id', $parentId);
+ // Get a list without resolving foreign keys
+ $options = $model->getList(false);
+
+ // Find the level of the parent
+ $parentLevel = ($parentId > 0) ? $model->getLevel($parentId, $type) : 0;
+
+ // Pad out the options to create a visual tree
+ foreach ($options as $i => $option) {
+ $options[$i]->text = str_pad($option->text, strlen($option->text) + 2*($option->level - $parentLevel), '- ', STR_PAD_LEFT);
+ }
+ //array_unshift($options, JHTML::_('select.option', 0, 'Select Group'));
+
+ return JHTML::_('select.options', $options, 'value', 'text', $selected);
+ }
+}
View
1 administrator/components/com_acl/helpers/html/index.html
@@ -0,0 +1 @@
+<html><body></body></html>
View
1 administrator/components/com_acl/helpers/index.html
@@ -0,0 +1 @@
+<html><body></body></html>
View
1 administrator/components/com_acl/index.html
@@ -0,0 +1 @@
+<html><body></body></html>
View
85 administrator/components/com_acl/models/_prototypeitem.php
@@ -0,0 +1,85 @@
+<?php
+/**
+* @version $Id$
+* @package Joomla.Framework
+* @subpackage Application
+* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+* @license GNU/GPL, see LICENSE.php
+*/
+
+// Check to ensure this file is within the rest of the framework
+defined('JPATH_BASE') or die();
+
+jimport('joomla.application.component.model');
+
+/**
+ * Extended JModel class for item-based models
+ *
+ * @package Joomla.Framework
+ * @subpackage Application
+ * @since 1.6
+ */
+class AccessModelPrototypeItem extends JModel
+{
+ /**
+ * @var string The SQL for the list
+ */
+ protected $_list_query = null;
+
+ /**
+ * @var string The current page of items
+ */
+ protected $_list_items = null;
+
+ /**
+ * @var int The total number of items
+ */
+ protected $_list_count = null;
+
+ /**
+ * @param boolean True to resolve foreign keys
+ *
+ * @return array List of items
+ */
+ function &getList($resolveFKs = true)
+ {
+ if ($this->_list_items == null) {
+ // Load the labels data.
+ $this->_list_items = $this->_getList($this->_getListQuery($resolveFKs), $this->getState('list.start'), $this->getState('list.limit'));
+
+ // Check for a database error.
+ if ($this->_db->getErrorNum()) {
+ $this->setError($this->_db->getErrorMsg());
+ }
+ }
+
+ return $this->_list_items;
+ }
+
+ /**
+ * @param boolean True to resolve foreign keys
+ *
+ * @return array List of items
+ */
+ function &getListCount($resolveFKs = true)
+ {
+ if ($this->_list_count == null) {
+ $db = &$this->getDBO();
+ $db->setQuery($this->_getListQuery($resolveFKs));
+ if (!$db->query()) {
+ $this->setError($this->_db->getErrorMsg());
+ }
+ $this->_list_count = $db->getAffectedRows();
+ }
+ return $this->_list_count;
+ }
+
+ /**
+ * @return object A pagination object
+ */
+ function getPagination()
+ {
+ jimport('joomla.html.pagination');
+ return new JPagination($this->getListCount(), $this->getState('list.start'), $this->getState('list.limit'));
+ }
+}
View
90 administrator/components/com_acl/models/_prototypelist.php
@@ -0,0 +1,90 @@
+<?php
+/**
+* @version $Id$
+* @package Joomla.Framework
+* @subpackage Application
+* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+* @license GNU/GPL, see LICENSE.php
+*/
+
+// Check to ensure this file is within the rest of the framework
+defined('JPATH_BASE') or die();
+
+jimport('joomla.application.component.model');
+jimport('joomla.database.query');
+
+/**
+ * Extended JModel class for list-based models
+ *
+ * This model assumes that two state variables are set for limit work.
+ * <code>list.limit</code> - the maximum number of items
+ * <code>list.start</code> - the offset from the start of the list
+ *
+ * @package Joomla.Framework
+ * @subpackage Application
+ * @since 1.6
+ */
+class AccessModelPrototypeList extends JModel
+{
+ /**
+ * @var string The SQL for the list
+ */
+ protected $_list_query = null;
+
+ /**
+ * @var string The current page of items
+ */
+ protected $_list_items = null;
+
+ /**
+ * @var int The total number of items
+ */
+ protected $_list_count = null;
+
+ /**
+ * @param boolean True to resolve foreign keys
+ *
+ * @return array List of items
+ */
+ function &getList($resolveFKs = true)
+ {
+ if ($this->_list_items == null) {
+ // Load the labels data.
+ $this->_list_items = $this->_getList($this->_getListQuery($resolveFKs), $this->getState('list.start'), $this->getState('list.limit'));
+
+ // Check for a database error.
+ if ($this->_db->getErrorNum()) {
+ $this->setError($this->_db->getErrorMsg());
+ }
+ }
+
+ return $this->_list_items;
+ }
+
+ /**
+ * @param boolean True to resolve foreign keys
+ *
+ * @return array List of items
+ */
+ function &getListCount($resolveFKs = true)
+ {
+ if ($this->_list_count == null) {
+ $db = &$this->getDBO();
+ $db->setQuery($this->_getListQuery($resolveFKs));
+ if (!$db->query()) {
+ $this->setError($this->_db->getErrorMsg());
+ }
+ $this->_list_count = $db->getAffectedRows();
+ }
+ return $this->_list_count;
+ }
+
+ /**
+ * @return object A pagination object
+ */
+ function getPagination()
+ {
+ jimport('joomla.html.pagination');
+ return new JPagination($this->getListCount(), $this->getState('list.start'), $this->getState('list.limit'));
+ }
+}
View
231 administrator/components/com_acl/models/acl.php
@@ -0,0 +1,231 @@
+<?php
+/**
+ * @version $Id$
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
+ * @license GNU/GPL, see LICENSE.php
+ */
+
+// no direct access
+defined('_JEXEC') or die('Restricted access');
+
+require_once JPATH_COMPONENT.DS.'models'.DS.'_prototypeitem.php';
+
+if (!defined('ACCESS_USERS_ARO_ID')) {
+ define('ACCESS_USERS_ARO_ID', 28);
+}
+
+/**
+ * @package Joomla.Administrator
+ * @subpackage com_acl
+ */
+class AccessModelACL extends AccessModelPrototypeItem
+{
+ /**
+ * The current item
+ *
+ * @var JTableAcl
+ */
+ protected $_item = null;
+
+ /**
+ * Proxy for getTable
+ */
+ function getTable()
+ {
+ return JTable::getInstance('ACL');
+ }
+
+ /**
+ * Get the native acl information
+ *
+ * @return array
+ */
+ function getACL()
+ {
+ // @todo - surely we can merge this with getExtendedItem (affect the edit view)
+ $acl = &JFactory::getACL();
+ $sess = &JFactory::getSession();
+ $id = (int) $sess->get('com_acl.acl.id', $this->getState('id'));
+ $result = $acl->get_acl($id);
+ return $result;
+ }
+
+ /**
+ * @param boolean True to resolve foreign data relationship
+ *
+ * @return JStdClass
+ */
+ function &getItem()
+ {
+ if (empty($this->_item))
+ {
+ $session = &JFactory::getSession();
+ $id = (int) $session->get('com_acl.acl.id', $this->getState('id'));
+
+ $table = $this->getTable();
+ if ($table->load($id)) {
+ // @todo Cannot tell if JTable::load throw an error on a null return
+ //$this->setError($table->getError());
+ }
+ $this->_item = JArrayHelper::toObject($table->getProperties(1), 'JStdClass');
+ }
+ return $this->_item;
+ }
+
+ /**
+ * Gets an ACL with extended data
+ *
+ * @return JStdClass
+ */
+ function getExtendedItem()
+ {
+ $item = array($this->getItem());
+ $model = JModel::getInstance('Acls', 'AccessModel');
+ $item = $model->getExtendedItems($item);
+ return $item[0];
+ }
+
+ function getSections()
+ {
+ $model = JModel::getInstance('Section', 'AccessModel');
+ $model->setState('list.select', 'a.value, a.name AS text');
+ $model->setState('list.section_type', 'acl');
+ $model->setState('list.order', 'a.order_value,a.name');
+ return $model->getList();
+ }
+
+ function getACOs()
+ {
+ //Model::addIncludePath(JPATH_COMPONENT.DS.'models');
+ $model = JModel::getInstance('objects', 'AccessModel');
+ $model->setState('list.section_value', $this->getState('section_value'));
+ $model->setState('list.object_type', 'aco');
+ $model->setState('list.hidden', '0');
+ $model->setState('list.order', 's.order_value,a.section_value,a.order_value,a.name');
+ if ($aclType = $this->getState('acl_type')) {
+ $model->setState('list.where', 'a.acl_type = '.(int) $aclType);
+ }
+ return $model->getList();
+ }
+
+ function getAROGroups()
+ {
+ $model = JModel::getInstance('Groups', 'AccessModel');
+ $model->setState('list.group_type', 'aro');
+ $model->setState('list.tree', '1');
+ $model->setState('list.parent_id', ACCESS_USERS_ARO_ID);
+ $model->setState('list.order', 'a.lft');
+ return $model->getList();
+ }
+
+ function getAXOs()
+ {
+ $model = JModel::getInstance('Objects', 'AccessModel');
+ $model->setState('list.section_value', $this->getState('section_value'));
+ $model->setState('list.object_type', 'axo');
+ $model->setState('list.hidden', '0');
+ $model->setState('list.order', 'a.order_value,a.name');
+ return $model->getList();
+ }
+
+ function getAXOGroups()
+ {
+ $model = JModel::getInstance('Groups', 'AccessModel');
+ $model->setState('list.group_type', 'axo');
+ $model->setState('list.tree', '1');
+ $model->setState('list.order', 'a.lft');
+ $model->setState('list.parent_id', 1);
+ return $model->getList();
+ }
+
+ function save($values)
+ {
+ $acl = &JFactory::getACL();
+
+ $acoArray = JArrayHelper::getValue($values, 'aco_array', array(), 'array');
+ $aroArray = JArrayHelper::getValue($values, 'aro_array', array(), 'array');
+ $aroGroupIds = JArrayHelper::getValue($values, 'aro_group_ids', array(), 'array');
+ $axoArray = JArrayHelper::getValue($values, 'axo_array', array(), 'array');
+ $axoGroupIds = JArrayHelper::getValue($values, 'axo_group_ids', array(), 'array');
+
+ $allow = JArrayHelper::getValue($values, 'allow', 1, 'int');
+ $enabled = JArrayHelper::getValue($values, 'enabled', 1, 'int');
+ $returnValue = JArrayHelper::getValue($values, 'return_value');
+ $note = JArrayHelper::getValue($values, 'note');
+ $sectionValue = JArrayHelper::getValue($values, 'section_value');
+ $aclId = JArrayHelper::getValue($values, 'id', 0, 'int');
+ $aclType = JArrayHelper::getValue($values, 'acl_type', 1, 'int');
+
+ //$acl->_debug = 1;
+ $result = $acl->add_acl($acoArray, $aroArray, $aroGroupIds, $axoArray, $axoGroupIds, $allow, $enabled, $returnValue, $note, $sectionValue, $aclId, $aclType);
+
+ if ($result) {
+ $this->setState('id', $result);
+ }
+ else {
+ $result = JError::raiseWarning(500, array_pop($acl->_debugLog));
+ }
+ return $result;
+ }
+
+ function delete($ids = array())
+ {
+ $acl = &JFactory::getACL();
+ foreach ((array) $ids as $id)
+ {
+ $result = $acl->del_acl($id);
+ $acl->_debug = 1;
+ if ($result == false) {
+ JError::raiseWarning(500, array_pop($acl->_debugLog));
+ break;
+ }
+ }
+ return $result;
+ }
+
+ function allow($ids = array(), $value = 1)
+ {
+ if (empty($ids)) {
+ return JException('No items selected');
+ }
+ else
+ {
+ $acl = &JFactory::getACL();
+ $db = $this->getDBO();
+ JArrayHelper::toInteger($ids);
+
+ $query = 'UPDATE #__core_acl_acl' .
+ ' SET allow = '.(int)($value ? 1 : 0) .
+ ' WHERE id IN ('.implode(',', $ids).')';
+ $db->setQuery($query);
+ if (!$db->query()) {
+ return new JExecption($db->getErrorMsg());
+ }
+ return true;
+ }
+ }