From 8bd01d62c4d38e05c1a5426ec04fe56ec69cb0e3 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Mon, 7 Feb 2011 19:48:44 +1300 Subject: [PATCH] ENHANCEMENT Added sapphire/docs (migrated from https://github.com/chillu/silverstripe-doc-restructuring) --- docs/LICENSE | 2 + docs/_manifest_exclude | 0 ...ook-front-cover-design-june2009preview.png | Bin 0 -> 19027 bytes docs/en/changelogs/2.0.1.md | 46 + docs/en/changelogs/2.0.2.md | 155 ++ docs/en/changelogs/2.1.0.md | 171 ++ docs/en/changelogs/2.1.1.md | 22 + docs/en/changelogs/2.2.0.md | 342 +++ docs/en/changelogs/2.2.1.md | 33 + docs/en/changelogs/2.2.2.md | 396 +++ docs/en/changelogs/2.2.3.md | 36 + docs/en/changelogs/2.2.4.md | 43 + docs/en/changelogs/2.3.0.md | 2134 +++++++++++++++++ docs/en/changelogs/2.3.1.md | 68 + docs/en/changelogs/2.3.10.md | 36 + docs/en/changelogs/2.3.11.md | 11 + docs/en/changelogs/2.3.2.md | 540 +++++ docs/en/changelogs/2.3.3.md | 65 + docs/en/changelogs/2.3.4.md | 43 + docs/en/changelogs/2.3.5.md | 15 + docs/en/changelogs/2.3.6.md | 40 + docs/en/changelogs/2.3.7.md | 12 + docs/en/changelogs/2.3.8.md | 55 + docs/en/changelogs/2.3.9.md | 52 + docs/en/changelogs/2.4.0.md | 861 +++++++ docs/en/changelogs/2.4.1.md | 497 ++++ docs/en/changelogs/2.4.2.md | 159 ++ docs/en/changelogs/2.4.3.md | 350 +++ docs/en/changelogs/2.4.4.md | 364 +++ docs/en/changelogs/2.4.5.md | 41 + docs/en/changelogs/_images/cms22screenie.jpg | Bin 0 -> 51057 bytes docs/en/changelogs/alpha/2.4.0-alpha1.md | 385 +++ docs/en/changelogs/beta/2.4.0-beta1.md | 732 ++++++ docs/en/changelogs/beta/2.4.0-beta2.md | 555 +++++ docs/en/changelogs/index.md | 63 + docs/en/changelogs/rc/2.3.11-rc1.md | 11 + docs/en/changelogs/rc/2.3.8-rc1.md | 41 + docs/en/changelogs/rc/2.4.0-rc1.md | 146 ++ docs/en/changelogs/rc/2.4.0-rc2.md | 127 + docs/en/changelogs/rc/2.4.0-rc3.md | 27 + docs/en/changelogs/rc/2.4.1-rc1.md | 328 +++ docs/en/changelogs/rc/2.4.1-rc2.md | 20 + docs/en/changelogs/rc/2.4.2-rc1.md | 146 ++ docs/en/changelogs/rc/2.4.2-rc2.md | 8 + docs/en/changelogs/rc/2.4.3-rc1.md | 148 ++ docs/en/changelogs/rc/2.4.3-rc2.md | 7 + docs/en/changelogs/rc/2.4.4-rc1.md | 80 + docs/en/changelogs/rc/2.4.4-rc2.md | 23 + docs/en/changelogs/rc/2.4.5-rc1.md | 41 + docs/en/howto/cache-control.md | 25 + docs/en/howto/csv-import.md | 198 ++ docs/en/howto/dynamic-default-fields.md | 39 + docs/en/howto/grouping-dataobjectsets.md | 142 ++ docs/en/howto/index.md | 18 + docs/en/howto/phpunit-configuration.md | 139 ++ docs/en/index.md | 63 + .../_images/webpi-2-a-silverstripe-choice.jpg | Bin 0 -> 110192 bytes .../_images/webpi-2-b-dependencies.jpg | Bin 0 -> 144860 bytes .../webpi-2-c-downloading-and-installaing.jpg | Bin 0 -> 108238 bytes .../webpi-2-d-installer-questions-step1.jpg | Bin 0 -> 103371 bytes .../webpi-2-e-installer-questions-step2.jpg | Bin 0 -> 112011 bytes .../_images/webpi-2-f-success-message.jpg | Bin 0 -> 104287 bytes .../webpi-2-g-silverstripe-homepage.jpg | Bin 0 -> 118352 bytes .../webpi-2-h-cms-interface-working.jpg | Bin 0 -> 157385 bytes docs/en/installation/common-problems.md | 67 + docs/en/installation/from-source.md | 45 + docs/en/installation/index.md | 35 + docs/en/installation/lighttpd.md | 87 + docs/en/installation/mac-osx.md | 37 + docs/en/installation/nginx.md | 35 + docs/en/installation/server-requirements.md | 49 + docs/en/installation/upgrading.md | 40 + docs/en/installation/webserver.md | 29 + docs/en/installation/windows-manual-iis-6.md | 150 ++ docs/en/installation/windows-manual-iis-7.md | 395 +++ docs/en/installation/windows-manual-iis.md | 31 + docs/en/installation/windows-pi.md | 50 + docs/en/installation/windows-wamp.md | 49 + docs/en/misc/coding-conventions.md | 455 ++++ docs/en/misc/contributing.md | 285 +++ docs/en/misc/index.md | 15 + docs/en/misc/module-release-process.md | 242 ++ docs/en/misc/release-process.md | 116 + docs/en/misc/ss-markdown.md | 113 + docs/en/misc/subversion.md | 175 ++ docs/en/reference/_images/modeladmin_edit.png | Bin 0 -> 38141 bytes .../reference/_images/modeladmin_results.png | Bin 0 -> 13589 bytes .../reference/_images/modeladmin_search.png | Bin 0 -> 18658 bytes docs/en/reference/_images/sitereport.png | Bin 0 -> 10535 bytes docs/en/reference/advanced-templates.md | 413 ++++ docs/en/reference/bbcode.md | 36 + docs/en/reference/built-in-page-controls.md | 345 +++ docs/en/reference/complextablefield.md | 150 ++ docs/en/reference/database-structure.md | 129 + docs/en/reference/dataobject.md | 196 ++ docs/en/reference/dataobjectdecorator.md | 172 ++ docs/en/reference/dataobjectset.md | 98 + docs/en/reference/director.md | 63 + docs/en/reference/execution-pipeline.md | 93 + docs/en/reference/form-field-types.md | 85 + docs/en/reference/image.md | 118 + docs/en/reference/index.md | 39 + docs/en/reference/leftandmain.md | 193 ++ docs/en/reference/member.md | 127 + docs/en/reference/modeladmin.md | 115 + docs/en/reference/partial-caching.md | 241 ++ docs/en/reference/permission.md | 74 + docs/en/reference/requirements.md | 193 ++ docs/en/reference/restfulservice.md | 179 ++ docs/en/reference/rssfeed.md | 84 + docs/en/reference/searchcontext.md | 196 ++ docs/en/reference/site-reports.md | 96 + docs/en/reference/siteconfig.md | 71 + docs/en/reference/sitetree.md | 298 +++ docs/en/reference/sqlquery.md | 208 ++ docs/en/reference/staticpublisher.md | 288 +++ docs/en/reference/tablefield.md | 82 + docs/en/reference/tablelistfield.md | 288 +++ docs/en/reference/typography.md | 108 + docs/en/reference/urlvariabletools.md | 92 + docs/en/reference/versioned.md | 33 + docs/en/topics/_images/basicfiles.gif | Bin 0 -> 5931 bytes docs/en/topics/_images/basicfiles.gif.png | Bin 0 -> 5113 bytes docs/en/topics/_images/basicfilestructure.gif | Bin 0 -> 4523 bytes .../topics/_images/basicfilestructure.gif.png | Bin 0 -> 3633 bytes .../_images/controllers-and-dataobjects.png | Bin 0 -> 36133 bytes docs/en/topics/_images/modules_folder.jpg | Bin 0 -> 28307 bytes .../topics/_images/pagetype-inheritance.png | Bin 0 -> 66476 bytes docs/en/topics/_images/translatable1.png | Bin 0 -> 24062 bytes docs/en/topics/_images/translatable2.png | Bin 0 -> 5657 bytes docs/en/topics/_images/translatable3.png | Bin 0 -> 14011 bytes .../en/topics/_images/translatable4_small.png | Bin 0 -> 79692 bytes docs/en/topics/_images/widget_demo.gif | Bin 0 -> 5463 bytes docs/en/topics/_images/widget_demo.gif.png | Bin 0 -> 4417 bytes docs/en/topics/access-control.md | 57 + docs/en/topics/commandline.md | 125 + docs/en/topics/configuration.md | 77 + docs/en/topics/controller.md | 99 + docs/en/topics/css.md | 93 + docs/en/topics/data-types.md | 34 + docs/en/topics/datamodel.md | 479 ++++ docs/en/topics/debugging.md | 145 ++ docs/en/topics/directory-structure.md | 65 + docs/en/topics/email.md | 123 + docs/en/topics/environment-management.md | 104 + docs/en/topics/error-handling.md | 105 + docs/en/topics/extending-the-cms.md | 67 + docs/en/topics/files.md | 19 + docs/en/topics/form-validation.md | 77 + docs/en/topics/forms.md | 279 +++ docs/en/topics/i18n.md | 324 +++ docs/en/topics/index.md | 36 + docs/en/topics/javascript.md | 647 +++++ docs/en/topics/module-development.md | 55 + docs/en/topics/modules.md | 88 + docs/en/topics/page-types.md | 160 ++ docs/en/topics/search.md | 26 + docs/en/topics/security.md | 360 +++ docs/en/topics/templates.md | 124 + .../topics/testing/create-functional-test.md | 67 + .../en/topics/testing/create-sapphire-test.md | 151 ++ docs/en/topics/testing/email-sending.md | 64 + docs/en/topics/testing/index.md | 153 ++ .../testing/testing-guide-troubleshooting.md | 8 + docs/en/topics/testing/why-test.md | 93 + docs/en/topics/theme-development.md | 279 +++ docs/en/topics/themes.md | 41 + docs/en/topics/translation.md | 406 ++++ docs/en/topics/widgets.md | 342 +++ docs/en/tutorials/1-building-a-basic-site.md | 480 ++++ docs/en/tutorials/2-extending-a-basic-site.md | 687 ++++++ docs/en/tutorials/3-forms.md | 418 ++++ docs/en/tutorials/4-site-search.md | 202 ++ .../5-dataobject-relationship-management.md | 794 ++++++ docs/en/tutorials/_images/2nd_level-cut.jpg | Bin 0 -> 21227 bytes docs/en/tutorials/_images/articleholder.jpg | Bin 0 -> 56558 bytes docs/en/tutorials/_images/cms-numbered.jpg | Bin 0 -> 34516 bytes docs/en/tutorials/_images/comments.jpg | Bin 0 -> 36912 bytes docs/en/tutorials/_images/create-staff.jpg | Bin 0 -> 85752 bytes docs/en/tutorials/_images/data-collation.jpg | Bin 0 -> 40040 bytes docs/en/tutorials/_images/einstein-small.jpg | Bin 0 -> 47193 bytes docs/en/tutorials/_images/einstein.jpg | Bin 0 -> 92728 bytes .../_images/gsoc-mentor-creation.jpg | Bin 0 -> 75799 bytes .../_images/gsoc-mentor-student-selection.jpg | Bin 0 -> 95977 bytes docs/en/tutorials/_images/gsoc-mentor.jpg | Bin 0 -> 59322 bytes .../_images/gsoc-module-creation.jpg | Bin 0 -> 53591 bytes .../_images/gsoc-project-creation.jpg | Bin 0 -> 79273 bytes .../_images/gsoc-project-module-selection.jpg | Bin 0 -> 92075 bytes .../gsoc-project-student-selection.jpg | Bin 0 -> 102284 bytes docs/en/tutorials/_images/gsoc-project.jpg | Bin 0 -> 62273 bytes .../tutorials/_images/gsoc-projects-table.jpg | Bin 0 -> 92677 bytes .../_images/gsoc-student-creation.jpg | Bin 0 -> 62766 bytes docs/en/tutorials/_images/home-first.jpg | Bin 0 -> 33069 bytes docs/en/tutorials/_images/home-small.jpg | Bin 0 -> 35357 bytes docs/en/tutorials/_images/home-template.jpg | Bin 0 -> 64362 bytes docs/en/tutorials/_images/homepage-news.jpg | Bin 0 -> 55536 bytes docs/en/tutorials/_images/homepage-type.jpg | Bin 0 -> 23863 bytes docs/en/tutorials/_images/icons2.jpg | Bin 0 -> 18506 bytes docs/en/tutorials/_images/layout.css | 435 ++++ .../en/tutorials/_images/menu-highlighted.jpg | Bin 0 -> 66479 bytes .../_images/menu-two-level-small.jpg | Bin 0 -> 35744 bytes docs/en/tutorials/_images/menu-two-level.jpg | Bin 0 -> 60579 bytes docs/en/tutorials/_images/menu.jpg | Bin 0 -> 59867 bytes docs/en/tutorials/_images/navigator.jpg | Bin 0 -> 6454 bytes docs/en/tutorials/_images/news-cms.jpg | Bin 0 -> 69716 bytes docs/en/tutorials/_images/news-comments.jpg | Bin 0 -> 32267 bytes .../tutorials/_images/news-with-rss-small.jpg | Bin 0 -> 29721 bytes docs/en/tutorials/_images/news.jpg | Bin 0 -> 65903 bytes .../_images/pagetype-inheritance.jpg | Bin 0 -> 33900 bytes docs/en/tutorials/_images/photo.jpg | Bin 0 -> 17843 bytes docs/en/tutorials/_images/pollform.jpg | Bin 0 -> 62346 bytes .../tutorials/_images/pollresults-small.jpg | Bin 0 -> 43891 bytes docs/en/tutorials/_images/pollresults.jpg | Bin 0 -> 74565 bytes docs/en/tutorials/_images/rss-feed.jpg | Bin 0 -> 64869 bytes docs/en/tutorials/_images/rss.jpg | Bin 0 -> 13789 bytes docs/en/tutorials/_images/search-file.gif | Bin 0 -> 170 bytes docs/en/tutorials/_images/search-file.jpg | Bin 0 -> 782 bytes .../en/tutorials/_images/searchform-small.jpg | Bin 0 -> 43085 bytes docs/en/tutorials/_images/searchform.jpg | Bin 0 -> 73558 bytes .../tutorials/_images/searchresults-small.jpg | Bin 0 -> 45990 bytes docs/en/tutorials/_images/searchresults.jpg | Bin 0 -> 85897 bytes ...ook-front-cover-design-june2009preview.jpg | Bin 0 -> 5508 bytes docs/en/tutorials/_images/staff-section.jpg | Bin 0 -> 62649 bytes .../_images/subtemplates-diagram.jpg | Bin 0 -> 19204 bytes docs/en/tutorials/_images/title.jpg | Bin 0 -> 67570 bytes .../_images/tutorial5-completecode.zip | Bin 0 -> 4169 bytes docs/en/tutorials/_images/url.jpg | Bin 0 -> 19444 bytes docs/en/tutorials/_images/validation.jpg | Bin 0 -> 10545 bytes docs/en/tutorials/index.md | 23 + 229 files changed, 25915 insertions(+) create mode 100644 docs/LICENSE create mode 100644 docs/_manifest_exclude create mode 100644 docs/en/_images/silverstripe-cms-book-front-cover-design-june2009preview.png create mode 100644 docs/en/changelogs/2.0.1.md create mode 100644 docs/en/changelogs/2.0.2.md create mode 100644 docs/en/changelogs/2.1.0.md create mode 100644 docs/en/changelogs/2.1.1.md create mode 100644 docs/en/changelogs/2.2.0.md create mode 100644 docs/en/changelogs/2.2.1.md create mode 100644 docs/en/changelogs/2.2.2.md create mode 100644 docs/en/changelogs/2.2.3.md create mode 100644 docs/en/changelogs/2.2.4.md create mode 100644 docs/en/changelogs/2.3.0.md create mode 100644 docs/en/changelogs/2.3.1.md create mode 100644 docs/en/changelogs/2.3.10.md create mode 100644 docs/en/changelogs/2.3.11.md create mode 100644 docs/en/changelogs/2.3.2.md create mode 100644 docs/en/changelogs/2.3.3.md create mode 100644 docs/en/changelogs/2.3.4.md create mode 100644 docs/en/changelogs/2.3.5.md create mode 100644 docs/en/changelogs/2.3.6.md create mode 100644 docs/en/changelogs/2.3.7.md create mode 100644 docs/en/changelogs/2.3.8.md create mode 100644 docs/en/changelogs/2.3.9.md create mode 100644 docs/en/changelogs/2.4.0.md create mode 100644 docs/en/changelogs/2.4.1.md create mode 100644 docs/en/changelogs/2.4.2.md create mode 100644 docs/en/changelogs/2.4.3.md create mode 100644 docs/en/changelogs/2.4.4.md create mode 100644 docs/en/changelogs/2.4.5.md create mode 100644 docs/en/changelogs/_images/cms22screenie.jpg create mode 100644 docs/en/changelogs/alpha/2.4.0-alpha1.md create mode 100644 docs/en/changelogs/beta/2.4.0-beta1.md create mode 100644 docs/en/changelogs/beta/2.4.0-beta2.md create mode 100644 docs/en/changelogs/index.md create mode 100644 docs/en/changelogs/rc/2.3.11-rc1.md create mode 100644 docs/en/changelogs/rc/2.3.8-rc1.md create mode 100644 docs/en/changelogs/rc/2.4.0-rc1.md create mode 100644 docs/en/changelogs/rc/2.4.0-rc2.md create mode 100644 docs/en/changelogs/rc/2.4.0-rc3.md create mode 100644 docs/en/changelogs/rc/2.4.1-rc1.md create mode 100644 docs/en/changelogs/rc/2.4.1-rc2.md create mode 100644 docs/en/changelogs/rc/2.4.2-rc1.md create mode 100644 docs/en/changelogs/rc/2.4.2-rc2.md create mode 100644 docs/en/changelogs/rc/2.4.3-rc1.md create mode 100644 docs/en/changelogs/rc/2.4.3-rc2.md create mode 100644 docs/en/changelogs/rc/2.4.4-rc1.md create mode 100644 docs/en/changelogs/rc/2.4.4-rc2.md create mode 100644 docs/en/changelogs/rc/2.4.5-rc1.md create mode 100644 docs/en/howto/cache-control.md create mode 100644 docs/en/howto/csv-import.md create mode 100755 docs/en/howto/dynamic-default-fields.md create mode 100755 docs/en/howto/grouping-dataobjectsets.md create mode 100644 docs/en/howto/index.md create mode 100644 docs/en/howto/phpunit-configuration.md create mode 100644 docs/en/index.md create mode 100644 docs/en/installation/_images/webpi-2-a-silverstripe-choice.jpg create mode 100644 docs/en/installation/_images/webpi-2-b-dependencies.jpg create mode 100644 docs/en/installation/_images/webpi-2-c-downloading-and-installaing.jpg create mode 100644 docs/en/installation/_images/webpi-2-d-installer-questions-step1.jpg create mode 100644 docs/en/installation/_images/webpi-2-e-installer-questions-step2.jpg create mode 100644 docs/en/installation/_images/webpi-2-f-success-message.jpg create mode 100644 docs/en/installation/_images/webpi-2-g-silverstripe-homepage.jpg create mode 100644 docs/en/installation/_images/webpi-2-h-cms-interface-working.jpg create mode 100644 docs/en/installation/common-problems.md create mode 100644 docs/en/installation/from-source.md create mode 100644 docs/en/installation/index.md create mode 100644 docs/en/installation/lighttpd.md create mode 100644 docs/en/installation/mac-osx.md create mode 100644 docs/en/installation/nginx.md create mode 100644 docs/en/installation/server-requirements.md create mode 100644 docs/en/installation/upgrading.md create mode 100644 docs/en/installation/webserver.md create mode 100644 docs/en/installation/windows-manual-iis-6.md create mode 100644 docs/en/installation/windows-manual-iis-7.md create mode 100644 docs/en/installation/windows-manual-iis.md create mode 100644 docs/en/installation/windows-pi.md create mode 100644 docs/en/installation/windows-wamp.md create mode 100644 docs/en/misc/coding-conventions.md create mode 100644 docs/en/misc/contributing.md create mode 100644 docs/en/misc/index.md create mode 100644 docs/en/misc/module-release-process.md create mode 100644 docs/en/misc/release-process.md create mode 100644 docs/en/misc/ss-markdown.md create mode 100644 docs/en/misc/subversion.md create mode 100644 docs/en/reference/_images/modeladmin_edit.png create mode 100644 docs/en/reference/_images/modeladmin_results.png create mode 100644 docs/en/reference/_images/modeladmin_search.png create mode 100644 docs/en/reference/_images/sitereport.png create mode 100644 docs/en/reference/advanced-templates.md create mode 100644 docs/en/reference/bbcode.md create mode 100644 docs/en/reference/built-in-page-controls.md create mode 100644 docs/en/reference/complextablefield.md create mode 100644 docs/en/reference/database-structure.md create mode 100644 docs/en/reference/dataobject.md create mode 100644 docs/en/reference/dataobjectdecorator.md create mode 100644 docs/en/reference/dataobjectset.md create mode 100644 docs/en/reference/director.md create mode 100644 docs/en/reference/execution-pipeline.md create mode 100644 docs/en/reference/form-field-types.md create mode 100644 docs/en/reference/image.md create mode 100644 docs/en/reference/index.md create mode 100644 docs/en/reference/leftandmain.md create mode 100644 docs/en/reference/member.md create mode 100644 docs/en/reference/modeladmin.md create mode 100644 docs/en/reference/partial-caching.md create mode 100644 docs/en/reference/permission.md create mode 100644 docs/en/reference/requirements.md create mode 100644 docs/en/reference/restfulservice.md create mode 100644 docs/en/reference/rssfeed.md create mode 100644 docs/en/reference/searchcontext.md create mode 100644 docs/en/reference/site-reports.md create mode 100644 docs/en/reference/siteconfig.md create mode 100644 docs/en/reference/sitetree.md create mode 100644 docs/en/reference/sqlquery.md create mode 100644 docs/en/reference/staticpublisher.md create mode 100644 docs/en/reference/tablefield.md create mode 100644 docs/en/reference/tablelistfield.md create mode 100644 docs/en/reference/typography.md create mode 100644 docs/en/reference/urlvariabletools.md create mode 100644 docs/en/reference/versioned.md create mode 100644 docs/en/topics/_images/basicfiles.gif create mode 100644 docs/en/topics/_images/basicfiles.gif.png create mode 100644 docs/en/topics/_images/basicfilestructure.gif create mode 100644 docs/en/topics/_images/basicfilestructure.gif.png create mode 100644 docs/en/topics/_images/controllers-and-dataobjects.png create mode 100644 docs/en/topics/_images/modules_folder.jpg create mode 100644 docs/en/topics/_images/pagetype-inheritance.png create mode 100644 docs/en/topics/_images/translatable1.png create mode 100644 docs/en/topics/_images/translatable2.png create mode 100644 docs/en/topics/_images/translatable3.png create mode 100644 docs/en/topics/_images/translatable4_small.png create mode 100644 docs/en/topics/_images/widget_demo.gif create mode 100644 docs/en/topics/_images/widget_demo.gif.png create mode 100644 docs/en/topics/access-control.md create mode 100644 docs/en/topics/commandline.md create mode 100644 docs/en/topics/configuration.md create mode 100644 docs/en/topics/controller.md create mode 100644 docs/en/topics/css.md create mode 100644 docs/en/topics/data-types.md create mode 100644 docs/en/topics/datamodel.md create mode 100644 docs/en/topics/debugging.md create mode 100644 docs/en/topics/directory-structure.md create mode 100644 docs/en/topics/email.md create mode 100644 docs/en/topics/environment-management.md create mode 100644 docs/en/topics/error-handling.md create mode 100644 docs/en/topics/extending-the-cms.md create mode 100644 docs/en/topics/files.md create mode 100644 docs/en/topics/form-validation.md create mode 100644 docs/en/topics/forms.md create mode 100644 docs/en/topics/i18n.md create mode 100644 docs/en/topics/index.md create mode 100644 docs/en/topics/javascript.md create mode 100644 docs/en/topics/module-development.md create mode 100644 docs/en/topics/modules.md create mode 100644 docs/en/topics/page-types.md create mode 100644 docs/en/topics/search.md create mode 100644 docs/en/topics/security.md create mode 100644 docs/en/topics/templates.md create mode 100644 docs/en/topics/testing/create-functional-test.md create mode 100644 docs/en/topics/testing/create-sapphire-test.md create mode 100644 docs/en/topics/testing/email-sending.md create mode 100644 docs/en/topics/testing/index.md create mode 100644 docs/en/topics/testing/testing-guide-troubleshooting.md create mode 100644 docs/en/topics/testing/why-test.md create mode 100644 docs/en/topics/theme-development.md create mode 100644 docs/en/topics/themes.md create mode 100644 docs/en/topics/translation.md create mode 100644 docs/en/topics/widgets.md create mode 100644 docs/en/tutorials/1-building-a-basic-site.md create mode 100644 docs/en/tutorials/2-extending-a-basic-site.md create mode 100644 docs/en/tutorials/3-forms.md create mode 100644 docs/en/tutorials/4-site-search.md create mode 100644 docs/en/tutorials/5-dataobject-relationship-management.md create mode 100644 docs/en/tutorials/_images/2nd_level-cut.jpg create mode 100644 docs/en/tutorials/_images/articleholder.jpg create mode 100644 docs/en/tutorials/_images/cms-numbered.jpg create mode 100644 docs/en/tutorials/_images/comments.jpg create mode 100644 docs/en/tutorials/_images/create-staff.jpg create mode 100644 docs/en/tutorials/_images/data-collation.jpg create mode 100644 docs/en/tutorials/_images/einstein-small.jpg create mode 100644 docs/en/tutorials/_images/einstein.jpg create mode 100644 docs/en/tutorials/_images/gsoc-mentor-creation.jpg create mode 100644 docs/en/tutorials/_images/gsoc-mentor-student-selection.jpg create mode 100644 docs/en/tutorials/_images/gsoc-mentor.jpg create mode 100644 docs/en/tutorials/_images/gsoc-module-creation.jpg create mode 100644 docs/en/tutorials/_images/gsoc-project-creation.jpg create mode 100644 docs/en/tutorials/_images/gsoc-project-module-selection.jpg create mode 100644 docs/en/tutorials/_images/gsoc-project-student-selection.jpg create mode 100644 docs/en/tutorials/_images/gsoc-project.jpg create mode 100644 docs/en/tutorials/_images/gsoc-projects-table.jpg create mode 100644 docs/en/tutorials/_images/gsoc-student-creation.jpg create mode 100644 docs/en/tutorials/_images/home-first.jpg create mode 100644 docs/en/tutorials/_images/home-small.jpg create mode 100644 docs/en/tutorials/_images/home-template.jpg create mode 100644 docs/en/tutorials/_images/homepage-news.jpg create mode 100644 docs/en/tutorials/_images/homepage-type.jpg create mode 100644 docs/en/tutorials/_images/icons2.jpg create mode 100644 docs/en/tutorials/_images/layout.css create mode 100644 docs/en/tutorials/_images/menu-highlighted.jpg create mode 100644 docs/en/tutorials/_images/menu-two-level-small.jpg create mode 100644 docs/en/tutorials/_images/menu-two-level.jpg create mode 100644 docs/en/tutorials/_images/menu.jpg create mode 100644 docs/en/tutorials/_images/navigator.jpg create mode 100644 docs/en/tutorials/_images/news-cms.jpg create mode 100644 docs/en/tutorials/_images/news-comments.jpg create mode 100644 docs/en/tutorials/_images/news-with-rss-small.jpg create mode 100644 docs/en/tutorials/_images/news.jpg create mode 100644 docs/en/tutorials/_images/pagetype-inheritance.jpg create mode 100644 docs/en/tutorials/_images/photo.jpg create mode 100644 docs/en/tutorials/_images/pollform.jpg create mode 100644 docs/en/tutorials/_images/pollresults-small.jpg create mode 100644 docs/en/tutorials/_images/pollresults.jpg create mode 100644 docs/en/tutorials/_images/rss-feed.jpg create mode 100644 docs/en/tutorials/_images/rss.jpg create mode 100644 docs/en/tutorials/_images/search-file.gif create mode 100644 docs/en/tutorials/_images/search-file.jpg create mode 100644 docs/en/tutorials/_images/searchform-small.jpg create mode 100644 docs/en/tutorials/_images/searchform.jpg create mode 100644 docs/en/tutorials/_images/searchresults-small.jpg create mode 100644 docs/en/tutorials/_images/searchresults.jpg create mode 100644 docs/en/tutorials/_images/silverstripe-cms-book-front-cover-design-june2009preview.jpg create mode 100644 docs/en/tutorials/_images/staff-section.jpg create mode 100644 docs/en/tutorials/_images/subtemplates-diagram.jpg create mode 100644 docs/en/tutorials/_images/title.jpg create mode 100644 docs/en/tutorials/_images/tutorial5-completecode.zip create mode 100644 docs/en/tutorials/_images/url.jpg create mode 100644 docs/en/tutorials/_images/validation.jpg create mode 100644 docs/en/tutorials/index.md diff --git a/docs/LICENSE b/docs/LICENSE new file mode 100644 index 000000000..8c3ecb0fd --- /dev/null +++ b/docs/LICENSE @@ -0,0 +1,2 @@ +Licensed under Creative Commons Attribution 3.0 New Zealand +http://creativecommons.org/licenses/by/3.0/nz/ \ No newline at end of file diff --git a/docs/_manifest_exclude b/docs/_manifest_exclude new file mode 100644 index 000000000..e69de29bb diff --git a/docs/en/_images/silverstripe-cms-book-front-cover-design-june2009preview.png b/docs/en/_images/silverstripe-cms-book-front-cover-design-june2009preview.png new file mode 100644 index 0000000000000000000000000000000000000000..f74a0b395bb03c84ba5ac1797d0a26f443cda36b GIT binary patch literal 19027 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 now only shows the first paragraph + * Fixed HTMLText->Summary() + * Fixed layout issues on IE7 for TreeDropdownField + * Don't show Akismet errors to user + * Removed overloaded MemberTableField->sourceItems() that was causing problems + * Fixed UserDefinedForm submission emails + * Fixed UserDefinedForm permissions + * If a file extension doesn't have a maximum upload size associated with it, then allow uploads of any size + * Fixed a bug with the TreeMultiselectField that prevented it from displaying the checkboxes + * Made Scheduled tasks concrete so they can be instantiated + * TableField fixes + * Fixed security vunerability in search + * GD::color_web2gd() was using incorrect substr + * Fixed last link css + * Fixed duplicate checkbox fields in UserDefinedForm + * Fixed css in UserDefinedForm + * CMS + * Fixed sizing of tabs in CMS + * Fixed popup for single asset in Files & Images section + * Fixed link to CMS on default homepage + * Fixed permissions table in Security section + * Fixed el no properties error in IE + * Pressing the flash button a second time now hides the dropdown + * Installer + * Fixed MySQL version check + * Merge with existing .htaccess file + * Test that mod_rewrite is working + * Added option to delete installer files after successful install + * Fixed PHP4 parse error so installer loads and shows correct error message + * Apache test passes if apache is used but apache php functions are not available + * SilverStripe needs at least PHP version 5.0.4 diff --git a/docs/en/changelogs/2.0.2.md b/docs/en/changelogs/2.0.2.md new file mode 100644 index 000000000..c1ae17d74 --- /dev/null +++ b/docs/en/changelogs/2.0.2.md @@ -0,0 +1,155 @@ +# 2.0.2 (2007-07-14) + +SilverStripe 2.0.2 was released on '''14 July 2007''' and had the following changes: + +## Overview + + * BlackCandy is the new default theme + * Added pagination for page comments + * Updated date field in CMS-edited forms to use CalendarDateField + * Added 'open in new window' checkbox to link inserter + * Added dimension fields when inserting images + +## Features and Enhancements + + * Much more API Documentation + * Modules must now have _config.php files in order to be loaded + * New Classes + * PermissionProvider + * Improved Classes + * CalendarDateField + * Added a calendar icon + * CheckboxSetField + * Prepared for use editing a many-many join in the CMS, popualted with a SQLMap object + * ClassInfo + * Added implementorsOf() + * ContentNegotiator + * Added set_encoding() to choose a character set other than utf-8 + * DatabaseAdmin + * Removed populate() as it was a security risk, the initial content is now loaded via requireDefaultRecords() + * DataObject + * Added add_extension() for adding decorators in _config.php + * DataObjectDecorator + * Added extraDBFields() for modifying the decorated data objects, adding extra database fields + * Email + * Added send_all_emails_to() + * Added cc_all_emails_to() + * Added bcc_all_emails_to() + * Replaced sentLiveErrorsTo() with send_errors_to(), for more flexibility + * Form + * Added current_action() + * Added single_field_required() + * FormField + * Added Required(), so that you can put asterisks into a form template if you wish + * GenericDataAdmin + * Updated to use new permission model + * LeftAndMain + * Added second argument to setApplicationName() so that the name in the top corner and the name shown elsewhere can be 2 different strings + * Permission + * Added get_codes() + * Profiler + * Added trace argument to show() + * Added profiling scaffolds + * Added ?profile_trace=1 url variable tool to show a trace on the profiler + * Sorted the output of profiler + * Improvements to profiling information + * TableField + * Added option to aid putting TableFields inside the ComplexTableField popup + * TreeDropdownField + * Added setTreeBaseID(), for showing a sub-tree in your field + * Javascript + * Added event.setStyle to prototype_improvements.js + * Add class text field to image properties dialog in TinyMCE + * Added ?debug_behaviour=1 URL option for debugging behaviour calls with Firebug + +## Bugfixes + + * CMS + * Forms in newsletter & security section were incorrectly submitting when enter was pressed + * Fixed search in MemberTableField + * Don't show popup when validation fails in Security section + * Fixed bug where scrollbars aren't shown in the CMS + * Let CMSMain be used to manage objects without Sort + * The help button now redirects to http://userhelp.silverstripe.com + * Version displayed in CMS now works correctly + * Fixed CMS action button support when text size increases + * Added message when report is empty + * fixed (overrides) to CSS to avoid larger font-size due to em values + * Fixed tree scrolling and resizing issues + * Fixed sizing issues with CMS right content area + * Fixed bug with image insertion + * Fixed bug where new pages weren't being highlighted in the CMS + * Fixed bug where the last page in the site tree wasn't being highlighted in the CMS + * Fixed reordering of groups in security section + * Improvements to image inserter + * Sapphire + * Reduced warnings when E_NOTICE is enabled + * Fixed validation of date fields in a user defined form + * Fixed multiple security groups being created when logging in with default admin + * Fixed permissions for administrating page comments + * Fixed ContentController::PageComments() method to die if spammers are POSTing form data when comments are disabled + * Fixed permission checking on PHP 5.0.5 + * Fixed 'cannot access protected property' error in Security section on PHP 5.0.5 + * Fixed javascript validation of forms + * Fixed error when asp_tags = On + * Fixed bug where you have a non-required field with numeric validation + * Added a limit of 20 steps in Breadcrumbs generation + * Changed SiteTree.Title length from 100 to 255 + * Fixed random password generator in Member::createNewPassword() + * Fixed BatchProcess to not display an error if no objects could be processed + * Fixed a bug where a user is redirected incorrectly after logging in + * Changed temp-folder selection to not leave temp files lying around, and put silverstripe temp files into a silverstripe-cache folder + * Made guid of PageComments in rss feed unique + * Removed duplicate XML class + * Fixed bugs caused by missing html elements + * Fixed code to remove need for short_open_tag + * Fixed FileSize generation for sizes of just over 1 meg + * only show $messageBlock in FormField::FieldHolder() if $Message is existing + * fixed rightTitle and id in FormField::FieldHolder() + * Fixed ?isDev=1 mode + * Set default of sendWarnings on Debug::send_errors_to + * Fixed formatting of error emails sent from ajax requests + * Removed debug plumbing from the results of Debug::backtrace() + * Simplified return data of htmlEmail, an inconsequential internal optimisation + * Create assets folder if it doesn't exist when uploading a file + * Fixed bug in SiteTree::NestedTitle() + * Don't append /home to the home page URL + * Small fix for windows installations + * Fixed efficiency problems in Versioned::get_latest_version + * Fixed File::sync(), to let it recurse into new directories in a single execution + * Fixed bug with getting form action that was breaking form submission and complextablefield pop-up + * Fixed SQLMap iteration + * Simplified EmailField validation error message + * Fixed some bugs in the debug emailer + * Reduced amount of ajax-refetching that the TreeSelectorFields do + * Fix macron support in reports + * Improved debug message (remove big blocks of redundant data) + * Allow for the disabling of default buttons. Apply this to CMSMain and GenericDataAdmin in the administration, so that we don't default to clicking the *DELETE* button. + * Added default value to first arg of permissionFailure(); it's not actually used! + * Improved handling of EditableFormFields on new UserDefinedForms + * Improved search results message shown on first load + * Made calendar control register a date change when the calendar is used + * Set some good defaults in DataObjectSet::TotalPages() if they have not been set + * Changes to support forum + * Require authenficiation to do a db/build on live sites + * Close directories before trying to remove them + * Fixed a bug where CheckboxSetField wouldn't save if there was a method the same as the field name + * Fix multiple "broken" in class attribute of HTML Content + * Fixed bug with TreeDropdownField when you clicked the expand link 3 or more times, it wouldn't close + * Fixed bug when editing properties of new text fields + * Fixed duplicate of UserDefinedForm objects + * JSParty + * Fixed a bug where you couldn't always edit the bottom of an WYSIWYG editor field + * Ensure that WYSIWYG context menu always appears on the screen + * Javascript performance improvements + * Fix weird bug in behaviour to do with class.applyToChildren + * Improved console.log alternative + * Installer + * Added option of installing either the default template, or the tutorial template + * mod_rewrite check now works with http authentification + * Workaround for 'URL file-access is disabled in the server configuration' using curl for mod_rewrite test + * Better error message if the installer can't detect the web server + * Added an alternative .htaccess configuration + * Less file permissions required by the installer + * Made deleting the installer files more prominent, it now deletes all the installations files, not just php. + * MySQL password is now a hidden field. diff --git a/docs/en/changelogs/2.1.0.md b/docs/en/changelogs/2.1.0.md new file mode 100644 index 000000000..404e55286 --- /dev/null +++ b/docs/en/changelogs/2.1.0.md @@ -0,0 +1,171 @@ +# 2.1.0 (2007-10-02) + +SilverStripe 2.1.0 was released on '''2 October 2007''' and had the following changes: + +## Overview + + * Comment administration section, and comment moderation + * Allow CMS users to limit view/edit access to a page + * Show an rss link for page comments on each page + +## Upgrading + +### Too many redirects + +A problem occurs of 'too many redirects' or the page just doesn't load (home page) because of these situations: + + * Access tab for home page has 'logged in users only', OR + * NO radio buttons have been set. This happens when upgrading site from old DB. + +It's caused by a redirect to Security/login on the home page controller, which is blocked off, so you can't actually +login, so it infinitely loops a redirect. See http://open.silverstripe.com/ticket/1488 + +## Features and Enhancements + + * Theme support + * Widget support + * Better extension API + * Unit testing framework + * More API documentation + * Added support for __ss_environment.php files + * New classes + * BankAccountField + * BBCodeParser + * HasManyComplexTableField + * HasOneComplexTableField + * ManyManyComplexTableField + * NewsletterType + * RestfulService (from mashups module) + * Improved classes + * ComplexTableField + * Validation in popup + * ContentController + * Added project() + * Controller + * Added redirectedTo() + * Convert + * Added raw2htmlatt() + * Added raw2mailto() + * DatabaseAdmin + * Drastically improved database build performance + * DataObject + * Added ID,ID,ID syntax for populating many-many joins + * DataObjectDecorator + * Allow member CMS fields to be added + * DataObjectSet + * Added getRange() + * Date + * Added past_date() + * Director + * Added set_dev_servers() + * Added set_test_servers() + * Added redirected_to() + * Refactored CMS page-URL accessing to use ->AbsoluteLink(), which can be overridden by defining alternateAbsoluteLink() + * Debug + * Optionally hide backtrace-headers in message() and show() (applied in 'showqueries') + * Email + * MimeType-fallback (from /etc/mime.types) + * Improved validation in is_valid_address() + * FieldSet + * Added insertAfter() + * Form + * Automatic filesystem backup of POST-data + * FormField + * Support for right-aligned titles + * Custom CSS-classes by addExtraClass() and removeExtraClass() + * Group + * Added Description field + * HtmlEditorField + * Allow classes other than 'typography' to be set + * Image + * Added PaddedImage() + * ImageField + * Added readonly transformation + * PageCommentInterface + * Added anchors to page comments, and made rss feed link to them + * Permission + * Added $strict flag to check() + * Allow passing of an array of permission codes to get_members_by_permission() + * Added get_groups_by_permission() + * PhoneNumberField + * Improved validation + * Security + * Added basicauthlogin() + * SecurityAdmin + * Added EDIT_PERMISSIONS permission code + * TableField + * Validation and RequiredFields + * TableListField + * Added sorting, highlighting, formatting + * Improved styling + * TreeDropdownField + * Improved styling + * Varchar + * Added RTF() + * ViewableData + * Added `<% if HasPerm(PERM_CODE() %>` for templates + * Javascript + * Implemented showIndicator() and hideIndicator() + * Improved statusMessage() to clear manually instead of fixed interval + * Added hideStatusMessage() + +#### Bug Fixes + + * CMS + * Fix specific newsletter bug + * Don't show classes user doesn't have permissions to change to in class dropdown + * Fix reading of Live pages in CMSMain + * Fix double page reading after changing the class + * Fix insert flash + * Fix version regex for release candidates + * Fix delete in Files and Images section + * Fixed saving root folder causes error + * Fixed "non-numeric ID" error that occurs when visiting newsletter section for a newsletter that doesn't exist (caused by session sometimes) + * Fixed CMS sort subpages bug + * Sapphire + * Improved spam detection + * Support for running SilverStripe in safe mode and under open_basedir restrictions + * PHP notice fixes + * Use normal authentification rather than basicauth for db/build + * Fix CSS of profiler pop-up + * Changed DropdownField $emptyString syntax from '0' to '' + * Fixed IE6 DOM-parsing bug caused by FormResponse::load_form() + * Triggering previewwrite for 'delete' and 'replace' SQL-actions + * Changed record-insertion in DataObject + * Boolean accepts database-default + * Fixed Permission::get_members_by_permission() + * Added memory_limit to publishall() + * Fix many-many component set relation setting + * The Link for a RedirectorPage points to its target + * Add SQL_ prefix in place it was missing in Email + * Added a check to make sure record exists before calling hasMethod on it in CheckboxSetField + * Fixed bug in DataObject::addStaticVars() + * Check for string 'true' as well as boolean in SiteTree::MetaTags() + * Fix AllNewsletters value not being passed to OptionSetField in SubscribeForm + * Improved the encapsulation of ErrorPage publication + * Fix redirect back after failing login + * Fixed renaming of .tar.gz and .tar.bz2 files + * Fixed validation of DateField, EmailField and NumericField + * Fix livesite bug for visibility handling difference between PHP5.2.0 and PHP5.1.6 + * Changed colouring of db/build to be more appropriate for the actual meaning of the messages + * Fixed redirection from /home/ to /./ in IE6 + * Use the homepage as a model for the security base-page, so that things like the current subsite are factored in + * Sorted permission codes in Permission::get_codes + * Changes to support gallery module + * Added missing has_many in DataObjectDecorator + * Replace empty strings in SQL queries with NULL + * JSParty + * TinyMCE has been updated to 2.1.1.1 + +Installer + + * New installer look based on BlackCandy + * Use the new theme system + * Add first and last name fields + * Added ability to set servers that will be in dev mode + * When the posix module isn't present, throw a warning instead of dying + * Warn if PHP version is less that 5.2.0 in support of GoPHP5 (http://www.gophp5.org) + * Added favicon to installer and default template + * Optional reporting of version information to SilverStripe + * Installer now runs with short tags disabled + * open_basedir and safe mode fixes diff --git a/docs/en/changelogs/2.1.1.md b/docs/en/changelogs/2.1.1.md new file mode 100644 index 000000000..c737f2d5e --- /dev/null +++ b/docs/en/changelogs/2.1.1.md @@ -0,0 +1,22 @@ +# 2.1.1 (2007-11-02) + +SilverStripe 2.1.1 was released on '''2 Nov 2007''' and had the following changes: + +## Bug Fixes + + * CMS + * BBCode help link now works inside CMS + * Fixed invalid 'cursor: normal' CSS in cms_left.css + * Ensure ComplexTableField CSS is loaded in CMS + * Fixed blank comments showing in Comment Admin + * Ensure behaviour is applied correctly to new fields in a UserDefinedForm + * Fixed fatal error in Newsletter Admin on some servers + * Sapphire + * Fix infinite redirects when upgrading from 2.0.2 + * Use the hostname, not the ip address, in dev/test mode tests + * Changed the include of the BBCodeParser so it works on more systems + * Fixed saving of HasOneComplexTableField and HasManyComplexTableField when value is undefined + * Removed extra comma in TableListField.js + * Fixed redirection of login when login fails + * Fixed bug where removing a comment via ajax removed all comments from display + * Fix $_SESSION not saving correctly on some servers diff --git a/docs/en/changelogs/2.2.0.md b/docs/en/changelogs/2.2.0.md new file mode 100644 index 000000000..027a47693 --- /dev/null +++ b/docs/en/changelogs/2.2.0.md @@ -0,0 +1,342 @@ +# 2.2.0 (2007-11-28) + +SiverStripe 2.2.0 was released on '''28 November 2007''' and had the following changes: + +## Upgrading + +### Login Form + +Check that you have a Layout/Page.ss file for your site, or alternately have a Security_login.ss template. +Your template file needs a $Form variable for it to work. This is where the login form gets included. Without either of +these, the Security/login form will be blank. + + +### Form Actions HTML/CSS + +Check css/js and subclassed templates of Form.ss for changed markup. A global search for "p.Actions" should cover both +js/css changes. + + :::ss + // before +

+ // after +

+ +See http://open.silverstripe.com/changeset/43562 + +### Form Security Token + +There has been a hidden 'SecurityID' field added to SilverStripe generated forms by default, with the purpose to stop +CRSF attacks. If you wish your form not to be tied to a specific session, and able to be able to be executed by URL +without the SecurityID, you can disable it on your form with + + :::php + $form->disableSecurityToken(); + + +The other issue to be aware of is constructing the URL to execute the form manually, as is done in javascript sometimes. +If the security token is enabled, you need to add its value to the URL, eg: + + :::js + updateURL += ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : ''); + + +### Custom Section in CMS + +Special attention will need to be given to custom sections on a case-by-case basis. + +As we have changed the design of the CMS, the top bar for your custom sections is no longer needed. We've moved the +buttons that it once held down to the bottom. + +![](_images/cms22screenie.jpg) + + +### Classes added to 2.2 that may conflict + +Sitemap.php + + +## Features + + * New look for CMS + * Support for authentification by OpenID (auth_openid module included with installer) + * Google Sitemaps support + * Internationalisation support + * German translation + * Dutch translation + * Chinese (simplified) translation + * Spanish translation + * French translation + * Croatian translation + * Polish translation + * Portuguese (Portugal) translation + * Support for multilingual content + * Added a Statistics area showing the following reports + * Page views + * User activity + * Trends + * Operating Systems + * Browsers + * Added an image editor, allowing a user to rotate, crop and resize an image from within the CMS + * Added profile popup in CMS + * Added a 'Sent Status Report' tab to Newsletters with the following reports + * Sending to the following recipients failed + * Sending to the following recipients bounced + * The newsletter has never been sent to following subscribers + * Sending to the following recipients was successful + * Sending to the following recipients did not occur because they are blackListed + * Add 'Send to only people not previously sent to' option for sending newsletters + * Added SWFUpload library as default method of uploading files + * Added photo upload in from the Site Content section + * Added the ability to search the Site Content tree + * Added the ability to publish selected pages + * Added a list of unused assets in the Files & Images section, and the ability to delete unused thumbnails + * Usability improvements + * Move action buttons to bottom right of screen + * Moved insert image/flash/link to pane on right + * Removed right frame headers as the buttons have been moved and they only contain redundant information + * Use a javascript dialog box for confirming unsaved changes instead of the slow loading model one + * Reworked the tabs in the Newsletter section to be less confusing + * Cancel button added to Send Newsletter window + * External logo link opens in a new window + * Left sections in Site Content 'Site Tree', 'History' and 'Reports' now use expandable sections rather than tabs + * Relabeled 'Site Tree' to 'Site Content & Structure', 'History' to 'Page Version History' and 'Reports' to 'Site Reports' in left sections of Site Content + * Relabeled 'Files & Images' left frame to 'Folders' + * Added tooltips to site content tree, showing the page type + * In the 'Page Version History', use a checkbox lable 'Compare mode (click 2 below)' instead of a dropdown + * Renamed 'Save draft' button to 'Save' + * The 'Save' button text changes to 'Saving...', and the 'Publish' button text changes to 'Publishing...' when they are clicked + * Added save indicator to all 'Save' buttons, the 'Save & Publish' button and the 'Unpublish' button while they are being submitted + * Added a go button to the 'Site Reports' dropdown + * Relabeled 'Name' field to 'Folder Name' in Files & Images section + * Renamed the 'Save' button to 'Save folder name' in Files & Images section + * Relabeled 'Send newsletters from' field to 'From email address' in Newsletter section + * Removed the 'Move Files' button from Files & Images section, implemented multi-file drag & drop moving + * Add 'Newsletter Settings' tab to Newsletter type edit form for consistency with other forms + * Make the status message shown after sending a newsletter always include the # of emails sent + * Added delete confirmation for items in Newsletter left tree + * Added delete confirmation for items in Security left tree + * Make 'Add new draft' the default action for 'Create...' in the Newsletter section + * Replace the 'reorganise' button with 'Allowing drag & drog reordering' checkbox + * Delete and Unpublish buttons turn red on hover + * Added the ability to align images 'left on their own' + + +## Enhancements + + * New classes + * Authenticator, allowing multiple authentification methods + * ConfirmPasswordField + * DropdownTimeField + * i18n, for internationalisation + * LanguageDropdownField + * LoginForm, base class for login forms for each authentification method + * MemberAuthenticator, providing username/password authentification + * MemberLoginForm, refactored from old LoginForm form + * PopupDateTimeField + * ToggleField + * OpenIDAuthenticatedRole, which is an extension to Member that adds OpenID authentification columns + * OpenIDAuthenticator, providing OpenID authentification + * OpenIDLoginForm, providing OpenID sign in + * PageView, which saves the details of each page view for statistics + * Statistics, which provides static methods for statistics + * Translatable, for multilingual content + * New third party libraries + * PHP OpenID (http://openidenabled.com/php-openid/) + * Browscap (http://garetjax.info/projects/browscap/) + * Plotr (http://www.solutoire.com/plotr/) + * SWFUpload (http://profandesign.se/swfupload/) + * Improved classes + * CalendarDateField + * Refactored part of Field() into HTMLField() so it can be used in PopupDateTimeField + * ComplexTableField + * Improved pagination in popup + * Better transformation of save-button (replaced indicator with "saving..." label) + * CompositeField + * Added SmallFieldHolder() to properly render fields in a FieldGroup + * Added insertBeforeRecursive() + * Allow empty children + * Added Field() + * Added linebreaks for HTML + * ConfirmedFormAction + * Respect $extraClass + * ContentController + * Save statistics on page views + * Added LangAttributes(), for use in XML header + * Draft/Archived content can only be viewed by users with permission to access the CMS + * Core + * Added _t() for internationalisation + * Check if TEMP_FOLDER is already defined before defining it, allowing the user to set the temporary folder themself + * DataObject + * Added merge() + * Director + * Added extend_site(), which allows modules to register a function that will be run on every page load + * redirectBack() now redirects to the base URL if neither the referrer nor the _REDIRECT_BACK_URL is set + * Added support for translatable URLs + * Added is_cli() + * Added set_status_code() and get_status_code() + * Email + * Define 'EMAIL_BOUNCEHANDLER_KEY' in sapphire/_config.php and require its value to be sent as 'Key' $_GET var in pings to /Email_BounceHandler to prevent fake email bounce pings + * Display an error on duplicate bounce logs instead of a blank screen + * If the contents of the X-SilverStripeMessageID header is sent to /Email_BounceHandler in the 'SilverStripeMessageID' _GET variable, then it will be logged in the Newsletter_SentRecipient table so that the bounce report will show up on the 'Sent Status Report' tab of the Newsletter + * Bounced newsletter recipient emails and blacklisted by default + * FieldSet + * Added insertBeforeRecursive() + * FileSystem + * Added $file_create_mask and $folder_create_mask, which are used whenever creating new files/folders in sapphire + * Form + * All Forms now have a hidden SecurityID field to prevent CSRF attacks + * Added disableSecurityToken() to disable the SecurityID field + * Added securityTokenEnabled() + * Changed `

` to `

` + * Renamed PureName() to Name() + * GD + * Added rotate() + * Added rotatePixelByPixel(), allowing rotation where the imagerotate function is unavailable + * Added crop() + * Added getWidth() + * Added getHeight() + * Hierachy + * Versioned now automatically add suffixes, so Hierachy no longer needs to + * HTTP + * Added register_modification_timestamp() + * Added register_etag() + * ImageField + * Improved layout + * Int + * Added support for default value + * ManifestBuilder + * Refactored getClassManifest() for clearer ignore rules + * Ignore i18n language files + * Ignore folders that have a '_manifest_exclude' file + * Member + * Automatically login user if the 'remember login' cookie is set + * Added createNewPassword(), which generates a random password, optionally using a word list + * Added support for password encryption + * Added Locale field to store user preferred language + * Added the ability for Member decorators to augment MemberFormFields() + * MemberLoginForm (refactored from old LoginForm) + * Save the email address in the session to reuse when the login fails + * ModelAsController + * Added support for translatable URLs + * Object + * Added require_developer_login(), which allows you to check if the user has permission to use URL debugging tools + * ?debugmethods=1 now requires developer login + * PageComment + * Added the ability to have BBCode in comments (disabled by default) + * PasswordField + * Always show five stars in performReadonlyTransformation(), so it is impossible to use the information of the password length for brute-force attacks + * Permission + * Added declare_permissions() + * Added get_declared_permissions_list() + * Added traverse_declared_permissions() + * Added Permission_Group class, used to group permissions together for showing on an interface + * Added $admin_implies_all, if this is false then the 'ADMIN' permission doesn't imply all permissions + * Refactored Permission::checkMember(), should be faster now because the non-strict checking is now only executed if the user doesn't has the permission + * Added deny(), giving the ability to define 'deny permissions' + * RecipientImportField + * Added default 'GenericEmail.ss' template + * RestfulService + * Added caching + * RSSFeed + * Added support for conditional GETs + * Security + * Added support for password encryption + * Added set_word_list() and get_word_list(), to set the location of the word list used in Member::generateNewPassword() + * Session + * Added save(), which copies the current controllers session to $_SESSION + * SiteTree + * Changed references to 'stage site' to 'draft site' in TreeTitle() + * Use Translatable interface by default + * Add content language in MetaTags() + * Add delete class to unpublish and rollback buttons + * SSViewer + * Added support for internationalisation in templates, using `<% _t() %>` + * Added $Iteration in templates, which keeps track of the number of iterations in a control block + * TableListField + * Prevent onclick event in td.markingcheckbox from showing the popup + * TabSet + * Remove tabset div to reduce wasted space on tabs + * Added insertBeforeRecursive() + * ToggleCompositeField + * Refactored from TogglePanel + * Added icons and used 'cursor: pointer' to make it obvious that it is clickable + * Versioned + * Added the ability to versionise suffixed tables that have names that are not DataObject descendants + * Added canBeVersioned() + * Added extendWithSuffix() + * Added hasVersionField() + +## Bugfixes + + * Sapphire + * E_NOTICE fixes + * Fixed incorrect deprecated message in Convert::raw2xml() + * Don't show and error message and quit the script when @ is used to suppress the error + * Changed width of HTMLEditorFields to prevent horizontal scrollbars in IE7 + * Added checks in DataObjectSet::First() and DataObjectSet::Last() to prevent errors on an empty $items array + * Fixed incorrect treatment of Member::logout() as a static method in Security::logout() + * Ensure Priority is set in SiteTree::onBeforeWrite(), otherwise an invalid SQL statement will be generated when the page is published + * Only highlight broken links in HTMLEditorFields once, to prevent execution timeouts when there are lots of identical broken links + * Fixed bug "Fatal error: Access to undeclared static property: Controller::$db in ../sapphire/core/Object.php(282) : eval()'d code on line 1" + * Fixed DataObjectDecorators not supporting indexes and defaults + * Fixed ReportField generating invalid HTML + * In Member::setBlacklistedEmail() call this->write() so that the BlacklistedEmail field state will be saved to the Member database table + * Fix Email_BlackList::isBlocked() to check the BlockedEmail field instead of non-existant Email field so that it will actaully return true when an email is blocked + * Fix layout problems with search box in IE by only generating a label tag if TItle is set in FormField::FieldHolder() + * Fixed Permission::check() not p[assing $strict to Permission::checkMember() + * Fixed HTTP::gmt_date() + * Fix validation of Member extensions + * Removed DriversLicense references from LoginForm (project specific clutter) + * Added check for existence of #sitetree in RelationComplexTableField.js + * Fixed VirtualPage creation + * Fixed lighttpd flushing bug + * Fixed CustomRequiredFields + * Fix bugs with ComplexTableField when it is used outside of the CMS + * Fixed error saving when value is undefined in HasOneComplexTableField and HasManyComplexTableField + * Fixed saving error in FileIFrameField + * Added a security fix for Security::check_default_admin() + * Fixed caching in DataObject::getManyManyComponents() to take into account different SQL parameters + * Geop::ip2country() now throws an E_USER_NOTICE instead of an error when it cannot run geoiplookup + * Added if() check around a foreach loop that was causing errors when there were no entries in an RSS feed + * Fix inheritance in ManyManyComplexTableField + * Fixed FormField::setRightTitle() not showing because of a typo + * Create assets folder if doesn't eixts on ErrorPage publish + * Fixed submission of ImageField when no file was selected + * Catch errors in ContentController::deleteinstallfiles() + * Fix generation of group codes on creation of a Group + * Fix title on LabelledLiteralField + * Fix ImageField deleting the Image instead of unlinking it from the page + * Set TimeField value to null when a bad value is passed + * Don't return a span when the Title doesn't exist in DropdownField + * Fix bug where NumericField couldn't have 0 as a default value + * Call Page_Controller->init() when rendering Security/changepassword etc to respect any Requirements called in there + * Fixed an error when a CheckboxSetField is submitted with no checkboxes ticked + * Fixed exporting of TableListField to use commas for CSV files + * ?previewwrite no longer works on live sites + * Fixed incorrect CSS in TableListField.css + * Fixed incorrect namespacing in TableListField::BaseLink() + * If a CreditCardField is completely blank, then it's not invalid. Required-fields should be used to check for values. + * CMS + * E_NOTICE fixes + * New pages are created in the database straight away, which solves a number of issues + * Fixed Email link not working in page history + * Unsaved changes detection now works in Security section member tables + * Fix typo in LeftAndMain::addTreeNodeJS() by renaming 'select' parameter to 'selected' because 'selected' is what is used in the method body + * Delete image thumbnails after deleting an image + * Use 'html>body' instead of just 'html>' so that #sitetree correctly gets assigned width:auto on Mozilla browsers (prevents Folders being selected from 500px away on file drag and drop) + * Display a useful error message if getCMSFields() returns null + * When 'Duplicate this page' is clicked, first silently (without confirmation) save the page, then duplicate it so the new page is identical to the other page + * Fix errors when importing recipients to newsletter mailing list + * Fixed blocking during resize in IE6 + * Don't show a 'No template selected' error when sending a test Newsletter if no template has been selected since templates for Emails are optional + * Fixed bug 'for newly created newsletter drafts, content of newsletter sent is not what is shown on screen' + * Don't save new Newsletter drafts as soon as they are created to prevent TinyMCE Javascript errors in IE + * Add if((typeof tinyMCE != 'undefined')) statement around call to tinyMCE.init() to prevent "Error: 'tinyMCE' is undefined" error in IE7 on Newsletter Recipient import + * Don't allow a deleted draft to be edited in the Newsletter section + * Fix a bug where newsletter drafts will be added, but not show up in the left tree (because of a Javascript error), if no selection has been made + * If there are no newsletter types, and 'Add new draft' is chosen, create a newsletter type to prevent errors + * Fix changed icon only showing after Save button is clicked twice + * Fixed VirtualPage creation + * Fix 'Sort subpages' not working correctly + * Use classes instead of the align tag to align images diff --git a/docs/en/changelogs/2.2.1.md b/docs/en/changelogs/2.2.1.md new file mode 100644 index 000000000..5b031355a --- /dev/null +++ b/docs/en/changelogs/2.2.1.md @@ -0,0 +1,33 @@ +# 2.2.1 (2007-12-21) + +SilverStripe 2.2.1 was released on '''21 December 2007''' and had the following changes: + +## Features and Enhancements + + * Translations + * Added Italian translation + * Added Russian translation + * Added Slovak translation + * Added Turkish translation + * Added Bulgarian translation + * Added Czech translation + * Added Hungarian translation + * Added Portuguese (Brazil) translation + * Added Swedish translation + * Added Chinese (Taiwan) translation + * Added support for sapphire to Portuguese (Portugal) translation +#### Developer Tools + + * Added augmentDefaultRecords(), so DataObjectDecorators can extend requireDefaultRecords +Bug fixes + + * Sapphire + * Hardcoded array of encryption algorithims in Security::get_encryption_algorithms(), as a bug in MySQL causes corruption in dumps with enums with commas + * Fixed bug with google sitemap on translated sites + * Removed title from SecurityID fields, as some forms show labels on HiddenFields + * Fixed Object::uninherited() for PHP 5.1.2 + * Added empty array to member so that roles can add their own has_one relations + * CMS + * Added SecurityAdmin_rightbottom.ss + * Javascript + * Upgraded TinyMCE to 2.1.3 diff --git a/docs/en/changelogs/2.2.2.md b/docs/en/changelogs/2.2.2.md new file mode 100644 index 000000000..ffb4d463e --- /dev/null +++ b/docs/en/changelogs/2.2.2.md @@ -0,0 +1,396 @@ +# 2.2.2 (2008-05-22) + +SilverStripe 2.2.2 was released on '''22 May 2008''' and had the following changes: + +## Features and Enhancements + + * Set svn:externals for new phpinstaller release tags/2.2.2 (changeset 54973) + * Disable / fix flash uploading (changeset 54959) + * Fixed php/code snippets in forum posts (changeset 54619) + * BUGFIX #2504 - Fixed translation interface not working in CMS (changeset 54472) + * Removed references to 'mot' folder in code (changeset 54407) + * #2501 + #2500 - Fixed notice-level errors in editable forms (changeset 54402) + * #2482 - Fixed newsletter unsubscribe (changeset 54215) + * #2447 - Bug in editing comment (changeset 54212) + * Don't mark a test site as being in dev mode if set_test_servers matches (changeset 53373) + * FEATURE: added phpdoc comments to the API calls for customising CMS rebranding (changeset 53216) + * BUGFIX: Ticket #2449 - Fixed unsubscribe function - because it's extending ContentController without a data record, we have to hack this by using null in the parent::__construct() - This however, should be refactored to have a data record (page in the CMS) (changeset 53210) + * MINOR: PHP notice fix - undefined variable (changeset 53204) + * MINOR: Fixed some php notices (changeset 53188) + * BUGFIX: Removed display: none for "nolabel" class - this is custom project code, and shouldn't be in sapphire! (changeset 53175) + * BUGFIX: Ticket #2455 - Check variable exists before accessing Password index (changeset 53160) + * BUGFIX: Removed undefined variable $mem - we include ini_set for memory_limit in main.php instead (changeset 53156) + * _t call for EXPORTCSV problem fixed (changeset 53106) + * DataReport EXPORTCSV field missing (changeset 53105) + * API CHANGE Removed deprecated/incomplete Synchronise class - please do not use for production purposes (changeset 53101) + * Made has_one, has_many, and many_many methods more reliable (changeset 53075) + * Fix drag&drop in assets and security (changeset 53073) + * Make double-redirects a warning rather than an error, since they are usually benign. (changeset 53066) + * Don't redirect from /home to / if you've already called a redirection. (changeset 53066) + * Fixed ContentController where ->dataRecord is empty (changeset 52719) + * Don't strtolower ->action, as it had too many side-effects. (changeset 52452) + * #2387 - Fields specified in DataObjectDecor not saved in some cases (changeset 52448) + * Newsletter import: only send a change notification email if there are changes to be sent (changeset 52434) + * #2378 - Fixed newsletter import (changeset 52432) + * Fixed Authenticators to work with r52400 (changeset 52401) + * #2299 - Fatal error in specific version of PHP (changeset 52400) + * BUGFIX re-initializing tabstrip javascript after ajax-reload in AssetTableField popup (#2309 AssetTableField popup fails after saving) (changeset 52399) + * Fix to ManifestBuilder when running site on windows in a directory containing \r or \t or \n (changeset 52398) + * #2388 - Fixed CMS search. (changeset 52395) + * BUGFIX disable third party browscap by default (#2336) (changeset 52394) + * formatting (changeset 52393) + * Upgraded SWFUpload to improve CMS uploads (changeset 52392) + * Show security id errors on test sites as well as dev (changeset 52391) + * Improved behaviour of contentcontrollerInit when extensions are applied to subclasses of SiteTree (changeset 52350) + * fix comment admin not working correctly (changeset 52309) + * Added LeftAndMain::set_loading_image() for replacing the image shown when the CMS is loading (changeset 52298) + * Fix pagecomment links and feeds (changeset 52296) + * fix links in RSS feeds (changeset 52295) + * don't cache in overridden instance_get(), as the fields are different for subclasses (changeset 52293) + * #2314 - Fixed SQLMap implementation so that Group::map() returns appropriate data, and the group dropdown on the access tab works. (changeset 52224) + * #2362 - Fixed change password form (changeset 52213) + * Add scrollbar to RHS link inserter, so you can see everything (changeset 51973) + * Fix to anchor insertion (changeset 51963) + * fix php notice (changeset 51938) + * Make Object::hasMethod() and Object::__call() case-insensitive, and added tests for it (changeset 51462) + * Test for hasMethod (changeset 51461) + * Fixes to TestRunner for latest PHPUnit/PHP (changeset 51459) + * API CHANGE Allow for tests that don't use the database - don't define a static SapphireTest:: (changeset 51150) + * Fixed typo in r51150 (changeset 51151) + * Fixed HomepageForDomain behaviour when entering multiple domains (changeset 51436) + * API CHANGE Added RestfulService::httpHeader() for setting custom headers on REST requests (changeset 51203) + * API CHANGE Added RestfulService::basicAuth() for setting authentication for REST requests (changeset 51203) + * API CHANGE Added param to RestfulService::connect(), to allow for requesting of multiple URLs from a single RestfulService object. (changeset 51203) + * Updates to usability & IE support of link insertion (changeset 51081) + * #2265 Installer falsely claims modrewrite fails (mamp) (merged from trunk, r50698) (changeset 51070) + * #2282 Undefined index in install.php (merged from trunk, r50698) (changeset 51069) + * #2266 Fresh install of SilverStripe? doesn't let you upload or view images to insert, until you first go into Files and Images area (merged from trunk, r50695) (changeset 51068) + * Cleaned up ChangeLog (changeset 51064) + * updated changelog for 2.2.2 (changeset 51042) + * Added delete from stage button to CMS (changeset 50852) + * Added Translations for Danish (Denmark) - thanks to Jesper and Dennis (changeset 50824) + * Added Translations for Esperanto - thanks to Wojtek, Donald, Evan and Joop (changeset 50824) + * Added Translations for Finnish (Finland) - thanks to Elias, Vesa and Nina (changeset 50824) + * Added Translations for LOLCAT - thanks to Wojtek (changeset 50824) + * Added Translations for Sinhalese (Sri Lanka) - thanks to Nivanka, Himali and Lakshan (changeset 50824) + * Updated several translations in cms/auth_openid/sapphire (changeset 50824) + * Added package names for i18n files (changeset 50824) + * Reverted patch from r47694 which introduced conditional statements in lang-files (changeset 50824) + * Added Translations for Danish (Denmark) - thanks to Jesper and Dennis (changeset 50824) + * Added Translations for Esperanto - thanks to Wojtek, Donald, Evan and Joop (changeset 50824) + * Added Translations for Finnish (Finland) - thanks to Elias, Vesa and Nina (changeset 50824) + * Added Translations for LOLCAT - thanks to Wojtek (changeset 50824) + * Added Translations for Sinhalese (Sri Lanka) - thanks to Nivanka, Himali and Lakshan (changeset 50824) + * Updated several translations in cms/auth_openid/sapphire (changeset 50824) + * Added package names for i18n files (changeset 50824) + * Reverted patch from r47694 which introduced conditional statements in lang-files (changeset 50824) + * Added Translations for Danish (Denmark) - thanks to Jesper and Dennis (changeset 50824) + * Added Translations for Esperanto - thanks to Wojtek, Donald, Evan and Joop (changeset 50824) + * Added Translations for Finnish (Finland) - thanks to Elias, Vesa and Nina (changeset 50824) + * Added Translations for LOLCAT - thanks to Wojtek (changeset 50824) + * Added Translations for Sinhalese (Sri Lanka) - thanks to Nivanka, Himali and Lakshan (changeset 50824) + * Updated several translations in cms/auth_openid/sapphire (changeset 50824) + * Added package names for i18n files (changeset 50824) + * Reverted patch from r47694 which introduced conditional statements in lang-files (changeset 50824) + * #2283 Permissions are a bit broken - what happened to all the CMS permissions? (changeset 50957) + * #2310 MemberTableField Popup breaks after saving (changeset 50954) + * #2310 MemberTableField Popup breaks after saving (changeset 50954) + * BUGFIX fixed csv export in MemberTableField by checking for valid database columns when building SELECT statement (changeset 50952) + * FEATURE added hasDatabaseField() (changeset 50949) + * BUGFIX properly setting $childID in form for newly created items to avoid duplicates after subsequent saving (the form reloaded without the ID connection) (changeset 50947) + * Make RSS feed work with objects that don't support AbsoluteLink, such as the forum (changeset 50921) + * fixing typo in parameter name $validate --> $validator (changeset 50641) + * made $messageType parameter of Validator::validationError optional, and added API docs to explain what (apparently) is going on (changeset 50645) + * fixing bug with in-memory child objects not having their parent ID field updated via the ->add() method (changeset 50815) + * #2302 - Fixed double-escaping of CTF popup page-navigation links (changeset 50903) + * reverted r49775 (accidental removal of "add" feature, its actually not redundant functionality) (changeset 50854) + * fixed xhtml error (forgot closing `

`) (changeset 50849) + * updated en_US master entities (changeset 50844) + * updated en_US master entities (changeset 50844) + * updated en_US master entities (changeset 50844) + * fixed PHP notices (changeset 50840) + * fixed PHP notices (changeset 50838) + * formatting, fixed PHP notices (changeset 50836) + * fixed PHP notice (changeset 50829) + * documentation (changeset 50814) + * #2285 - Fixed widget editor (changeset 50812) + * added $searchable_fields in preparation for a more generic search implementation, currently limited to Member.php and MemberTableField.php (mainly to fix bugs caused by r49774 and r47856) (changeset 50805) + * fixed weird indentation formatting in Member.php (changeset 50805) + * Fixed default-setting for link anchor (changeset 50786) + * Added 'anchor' option to link inserter (changeset 50783) + * Fixed svn:externals (changeset 50776) + * Moved externals to used HTTP for 3rd-party friendliness (changeset 50764) + * fixed typo (changeset 50729) + * added database indexes for AuthorID and PublisherID (changeset 50723) + * #2265 Installer falsely claims modrewrite fails (mamp) (changeset 50697) + * #2295 - DataObjectSets cannot be iterated over multiple times concurrently (changeset 50683) + * #2280 - Fixed XML parsing errors in CTF (changeset 50488) + * #2287 - Removed notice-level error when geoip's not installed (changeset 50487) + * Fixed newlines in to-do report (changeset 50361) + * #2277 - Fixed notice-level error on controllers that are direct subclasses of controller (changeset 50352) + * Added support for password and old_password encryption mechanisms if you're using MySQL (changeset 50290) + * Small fix for session bugs on Lightspeed server (changeset 50245) + * A bit of a hack to fix double-escaped URLs in the CMS. (changeset 50214) + * Fixed CMS bottom-navigation after publish, when using the subsites module (or other alternateAbsoluteLink implementors) (changeset 50205) + * Fixed password emailing for edited members (changeset 50200) + * Allow use of on controller extensions (changeset 50180) + * Fixed 4.1-sort-by-group-aggregate query rewriter for sort functions containing columns, eg, ORDER BY if(A,B,C), X (changeset 50179) + * Fixed notice level error (changeset 50047) + * Fixed bug with BasicAuth enabled on an old database, it was preventing you from visiting db/build (changeset 50031) + * Fixed MySQL 4.1 support for situations where we are sorting by a group aggregation function (changeset 49999) + * Fixed notice level error (changeset 49999) + * fixed caching in getManyManyComponents (see r43848) (changeset 49946) + * removed redundant error strings (changeset 49922) + * Added a default exception handler. Any uncaught exceptions thrown from application code are now scooped up by the Debug::fatalHandler (changeset 49906) + * (changeset 49906) + * Still some small problems with displaying stack traces of exceptions because the context array from trigger_error looks quite different from that of Exception::getTrace (changeset 49906) + * (changeset 49906) + * Also fixed a couple of echo/print bugs in Debug::friendlyError. From the looks of the code there may be more bugs to cleanup here. (changeset 49906) + * Fixed Controller::allowed_actions documentation (changeset 49896) + * Added to main CMS controllers (changeset 49895) + * Removed warning in group admin (changeset 49894) + * Improved allowed_actions support for subclassed controllers, such as CMSMain extends LeftAndMain (changeset 49893) + * Removed use of deprecated setExtraClass (changeset 49892) + * Moved _ss_environment.php include to very top (changeset 49891) + * Added deprecation note to BulkLoaderAdmin (changeset 49890) + * added $casting for BaseHref() (changeset 49843) + * fixed sql-injection (changeset 49834) + * Updated AssetAdmin to use TreeTitle() in place of Title for tree generation (changeset 48425) + * > Updated TreeTitle() to allow use of alternateTreeTitle() in decorator (changeset 48425) + * > Updated File to allow the insertion of extra columns by decorator (changeset 48425) + * Updated subject line of warning/error emails (changeset 49732) + * Moved folder admin form to Folder::getCMSFields() to let you more easily manipulate the form with a decorator (changeset 49804) + * Disabled notice level error until more of the core is compliant (changeset 49803) + * Moved CMS page-disabled logic into SiteTree::CMSTreeClasses(), so that it can be more easily customised for specific sites (changeset 48376) + * Added Member->SetPassword, a field that lets you have a write-only password field (changeset 46525) + * Used Member->SetPassword to create a password column on the MemberTableField for SecurityAdmin (changeset 46525) + * Send 'changed password' emails when a user is first created as well as edited (changeset 46525) + * Fixed DataObjectSet::insertFirst() - it now uses a numeric key rather than null (changeset 45750) + * Create Group::canEdit(), which can be used to filter the SecurityAdmin group list (changeset 45748) + * Redirect to legislation section when there are only legislation pages (changeset 45654) + * Allow selection of folder when inserting files / images (changeset 45654) + * Minor bugfixes (changeset 43980) + * Added additional checks so that the email doesn't get sent to new members, or on the test site. (changeset 43384) + * Used Object::create() to create email instances sent by the system. (changeset 43342) + * Added BaseHref() to Member_ChangePasswordEmail so that the email shows the domain name of the current subsite. (changeset 43340) + * Tidied up lost password form. (changeset 43339) + * Added Member::$notify_password_change (changeset 43336) + * Added missing ChangePasswordEmail.ss (changeset 43335) + * Saving the member with a changed password now sends an email to the member. (changeset 43334) + * Updated AssetAdmin to use TreeTitle() in place of Title for tree generation (changeset 48425) + * > Updated TreeTitle() to allow use of alternateTreeTitle() in decorator (changeset 48425) + * > Updated File to allow the insertion of extra columns by decorator (changeset 48425) + * Updated core to allow for subsites restriction of filesystem: Folder::getCMSFields() is now responsible for generating the folder form. (changeset 48401) + * Folder::syncChildren() now exclusively uses DB::query() calls instead of DataObject::get(). (changeset 48401) + * Moved CMS page-disabled logic into SiteTree::CMSTreeClasses(), so that it can be more easily customised for specific sites (changeset 48376) + * Removed redundant Add Member button at the top-right (changeset 46526) + * Added Member->SetPassword, a field that lets you have a write-only password field (changeset 46525) + * Used Member->SetPassword to create a password column on the MemberTableField for SecurityAdmin (changeset 46525) + * Send 'changed password' emails when a user is first created as well as edited (changeset 46525) + * Changed call to ViewableData::castingHelperPair to fix sort not being set by getNewItem (changeset 43365) + * Added LeftAndMainSubsites->augmentNewSiteTreeItem that allows extensions of LeftAndMain to provide the current SubsiteID for the new item. (changeset 43321) + * CMSMain->getNewItem now calls $this->extend('augmentNewSiteTreeItem', $newItem); (changeset 43321) + * Changed DataObject to be a subclass of ViewableData instead of Controller, so that it can't be hacked by visiting Page/write. (changeset 49767) + * reverted accidental delete in r49761 (changeset 49766) + * e-This line, and those below, will be ignored-- (changeset 49766) + * (changeset 49766) + * A svn://svn.silverstripe.com/silverstripe/open/themes/blackcandy/trunk/blackcandy_blog (changeset 49766) + * reverted accidental delete in r49760 (changeset 49765) + * revert accidental commit in r49763 (changeset 49764) + * readding blackcandy (reverted r49761, r49762) (changeset 49763) + * Removed unused blackcandy blog (changeset 49762) + * Removed unused themes (changeset 49761) + * #2200 - Allowed subclasses in ComponentSet::add/remove (changeset 49715) + * #1878: wakeless: Supress disabled errors on live site (changeset 49709) + * Merged r49479 from branches/2.1.1-madebyme (changeset 49658) + * Merged r46528 from branches/2.1.1-madebyme (changeset 49657) + * Bypass debug handler for E_USER_NOTICE as well as E_NOTICE (changeset 49593) + * #2203 - ManifestBuilder regex (changeset 49448) + * fix caching in complex table field (changeset 49447) + * added setFields()/setActions() (changeset 49386) + * formatting (changeset 49386) + * reverted accidental commit (changeset 49352) + * added gwgtn theme files (changeset 49349) + * Added SS_DEFAULT_ADMIN_USERNAME/PASSWORD defines to conf/ConfigureFromEnv.php (changeset 49308) + * #177 - Don't let people create a page name the same as a class name (changeset 49193) + * Disabled unused files list, as it uses way too much memory (changeset 49192) + * #1921 - Make DataObject::write() call the recursive write on components, even when the dataobject itself hasn't changed (changeset 49187) + * #1956 - Show Title in RSSFeed (changeset 49184) + * simon_w: #1954 - Added object caching methods (changeset 49182) + * #1951 - Fix newsletter subscription form (changeset 49181) + * Removed clone behaviour from Form::Fields() (changeset 49180) + * Added SubscribeSubmission template to get subscribeforms to work (changeset 49177) + * Added default SubscribeForm.ss (changeset 49176) + * Fixed ManifestBuilder execution in restrictive openbasedir environments (changeset 49172) + * #1987 - Fixed sitename/?url=sitename bug (changeset 49151) + * #2016 - Added all the types of error pages (changeset 49150) + * #2137 - Changed email encoding from iso-8859-15 to utf-8, in compliance with other parts of SilverStripe and IMC recommendations (changeset 49149) + * fixed i18n::get_owner_module() calls on classes with _s (changeset 49148) + * Improvement to link-insertion logic when selecting text that doesn't have a link (changeset 49147) + * #1881 - Duplicated words in error message text (changeset 49066) + * documentation (changeset 49033) + * documentation (changeset 49032) + * fixed typo in doc comment (changeset 48972) + * fix sql error on comments section (changeset 48970) + * #2088 - Notice level error on compare versions (changeset 48969) + * #2005 - Fixed seamonkey browser recognition (changeset 48968) + * fix upload folder (changeset 48857) + * #2212 / #2201 - Fix notice-level errors in PageView updates (changeset 48941) + * mrickerby: #2201 - fixed PageView's recording of referrers. (changeset 48912) + * For some project we need server run some scheduled task yearly, such as upgrade high school students for GSO. (changeset 48906) + * updating form in ctf-popup after saving (including validation-errors and fields that have may changed on the serverside, e.g. ImageField) (changeset 48874) + * not all cms panel has sitetree, so better check if($('sitetree')) exsit, otherwise IE broken with all genericDataAdmin panel. (changeset 48869) + * adding "delete" class to DeleteImageForm (changeset 48865) + * compressed ImageField layout to fit in CTF-popup (removed "click here to remove" label) (changeset 48855) + * removed iframe-borders for IE (changeset 48855) + * fixed "object not found" error in ie6 (somehow Observable is not applied to sitetree at window-load) (changeset 48847) + * Polishing EducatorAdmin's Students Tab (changeset 48844) + * locking down URLs: image/iframe, image/flush, image/transferlegacycontent (changeset 48835) + * Recover ExportForm for genericDataAdmin Which is needed for CRM CreateCommunication (changeset 48792) + * Add ability to choose which file to upload to in a FileField (changeset 48785) + * Fixed illegal reference to this (changeset 48688) + * Put MenuTitle in the CMS LHS tree instead of Title (changeset 48462) + * (changeset 48451) + * Fix incorrect text boxes being set on an ajax request (changeset 48178) + * Allow many-many complex table fields to be used on the reverse side of the join (belongs many many) (changeset 48082) + * Removed ranking tools from DataObjectSet (changeset 47743) + * implemented equal values (changeset 47459) + * (changeset 47454) + * Added simple to-do list facility to SiteTree (changeset 47172) + * Added title attributes to the SilverStripeNavigator messages (changeset 47156) + * Fix bug when duplicating pages with reorganise enabled (changeset 48507) + * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47155) + * Added 'duplicate page and children' context-item in addition to 'duplicate just this page' (changeset 48503) + * Fixed context menus in CMS (changeset 48474) + * Fixed 404 on spacer.gif (changeset 47190) + * Fixed bug in todo list reprot (changeset 47174) + * Added simple to-do list facility to SiteTree (changeset 47172) + * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47157) + * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47155) + * #2005 - Fixed fatal error due to browscap.ini capitalisation error (changeset 48514) + * Updated windmill tests - sleeps and waits (changeset 48431) + * Added in_array_recursive() to ArrayLib, for recursively checking an array with nested arrays (changeset 48423) + * fix the bug that initialises with preloaded selected items with right hide/show (changeset 48419) + * Added sapphire/conf/ConfigureFromEnv.php for making use of _ss_environment.php (changeset 48359) + * Fixed formatting of code, and added some documentation on what the source for this field should be (changeset 48326) + * (changeset 48313) + * Fix sorting in complextablefield (changeset 48257) + * wakeless: #2144 - More memory-efficient version of admin/publishall (changeset 48242) + * #1736 - Make Security::get_encryption_algorithms() a dynamic function again. (changeset 48227) + * Fixed comment. (changeset 48200) + * Fixed bug: Page class wasn't shown in add-page dropdown (changeset 48176) + * Fixed admin credentials setting from 'make install' and 'make test' (changeset 48175) + * Added the contents of assets/ to svn:ignore (changeset 48175) + * Added Windmill test for editing content (changeset 48173) + * Re-enabled session_regenerate_id() (changeset 48172) + * renamed escapeFlagForField() to escapeTypeForField(), updated documentation (changeset 48168) + * Deprecated use of DBField 'Text' for saving HTML-Content (added check in HTMLEditorField->saveInto()) (changeset 48164) + * Added ViewableData->escapeFlagForField() to determine if the record-field needs escaping (currently only 'xml' supported) (changeset 48164) + * Refactored session_regenerate_id to make it easier to disable in some circumstances. (changeset 48161) + * Temporarily disabled session_regenerate_id so that Windmill can work. (changeset 48161) + * Removed notice level errors for better cli-script operation (changeset 48153) + * Better error for cli-install errors, uses exit(1) to stop make (changeset 48152) + * Added note about Makefile so that people don't think they should use that for normal installation. (changeset 48133) + * Allow calling of installer by running 'make install' from an environment with an _ss_environment.php file. This is important for continuous integration. (changeset 48132) + * formatting (changeset 48113) + * formatting (changeset 48112) + * removed dropDatalessFields() - needs serious refactoring before going into core again (changeset 48110) + * removed dropDatalessFields() - needs serious refactoring before going into core again (changeset 48109) + * renamed $wantDefaultAddRow to $showAddRow (changeset 48105) + * fixed escaping errors in default homepage content (changeset 48104) + * Added Makefile so that you can execute 'make test' in sapphire and it will run tests. (changeset 48100) + * Added support for array in _ss_environment.php for specifying URLs to use for cli-script.php (changeset 48100) + * Improved the Behaviour.addLoader() method to play more nicely with tools such as windmill (changeset 48086) + * fix bug: when no source items found, the table should still show and it should works as adding new records (changeset 48085) + * Fixed the $hide_ancestor static on SiteTree subclasses so that it actually works. (changeset 48056) + * Fixed login test (changeset 48049) + * Added initial windmill test (changeset 48042) + * Fix php notice (changeset 47985) + * FIx php notice (changeset 47982) + * Fix autocompletion in Security Admin (changeset 47956) + * #892 - Error attaching an existing folder to an ImageField (changeset 47948) + * Fix spelling mistake (changeset 47947) + * Remove having clause as it can't be used (changeset 47946) + * simon_w: #2122 - Bug in PageComments class (Security) (changeset 47937) + * #2058 - Installer does not escape passwords in _config files (changeset 47910) + * converted TODO into @todo for better PHPDocumentor support (changeset 47891) + * Fix i18n errors (changeset 47890) + * #2094: Make ContentNegotiator send XHTML to the W3C validator (changeset 47882) + * Fix externals (changeset 47881) + * Fix DataObjectSet constructor breaking with associative arrays (changeset 47880) + * simon_w: #2118 - When removing a value from an enum, set affected rows back to the default (changeset 47877) + * simon_w: #2098: Fixed notice level error (changeset 47876) + * #1874 - generated .htaccess lacks "Rewritebase" (changeset 47875) + * fix wrong warning info: Director -> Debug (changeset 47858) + * rbarreiros: 019 - Lost Locale when translatable string not found (changeset 47857) + * rbarreiros: #1907 - Patch for more i18n strings (changeset 47856) + * #1959 - You can't reorganise pages without creating pages (changeset 47855) + * Don't fail in i18n::include_by_class if the module isn't translatable (changeset 47854) + * Remove debug message (changeset 47847) + * Added $SecurityID for templates (changeset 47846) + * lperera: #1975 - Improvements to RestfulService (changeset 47844) + * #2003: Don't close img and br tags on HTMLText.Summary (changeset 47843) + * Fix syntax error (changeset 47842) + * Error checking in i18n::include_by_class shouldn't complain if mysite/lang doesn't exist - only if a module doesn't have internationalisation options. (changeset 47841) + * Reverted 47595, are it broke $defaults (changeset 47840) + * rbarreiros: #1918 Translate newsletter and other strings (changeset 47839) + * Fix building manifest before database is created (changeset 47838) + * #1352 - Better handling of memory limit (changeset 47836) + * #1212 - Show the saved value of EditableEmailField.SendCopy (changeset 47832) + * #1352 - Better handling of memory limit (changeset 47831) + * Allow insertion of `` tags that refer to external domains (changeset 47827) + * Add alt= to any images that don't have alt tags (changeset 47827) + * Improvements to API docs (changeset 47826) + * documentation (changeset 47815) + * allowing object-parameters in DataObjectSet and ArrayData, added ArrayData::object_to_array() (changeset 47808) + * added is_associative() (changeset 47807) + * added lc_XX locale for LOLCAT (changeset 47813) + * Improved API documentation (changeset 47806) + * Improved API documentation (changeset 47805) + * Moved test control files into sapphire/testing, so that sapphire/tests can be ignored by the documentor. (changeset 47804) + * Use lighter version of browscap.ini (changeset 47802) + * #1088 - attachments cannot be emailed from mac or windows systems (changeset 47800) + * #172 - Reorganise : new page (changeset 47797) + * Fix php notice (changeset 47792) + * API Documentation updates (changeset 47773) + * Added tests for DataObject (changeset 47767) + * Take orderby clause into account when caching in DataObject::get_one() (changeset 47756) + * Fix caching in DataObject::get_one() (changeset 47755) + * Remove HAVING clause from methods where it doesn't make sense to have them (changeset 47754) + * set $template and $itemClass to public (according to parent implementation) (changeset 47748) + * fixed formatting (changeset 47748) + * fixed getParentIdName() call in DetailForm() - paramter-order was wrong (changeset 47747) + * better checking in saveComplexTableField() to avoid PHP-notice (changeset 47747) + * Fix YAML many_many/has_many relationships (changeset 47746) + * YAML comma seperated => lists should work on has_meny relationships as well (changeset 47739) + * Added package tags and docblock info for API documentation (changeset 47733) + * Fixed whitespace (changeset 47733) + * Updated API documentation package tags (changeset 47732) + * Fixed some whitespace (changeset 47732) + * Removed unnecessary file CMSHelp (changeset 47729) + * Removed unnecessary class Staged (changeset 47725) + * Fix stack trace on objects that don't extend the Object class (changeset 47723) + * PDODatabase got the wrong end of the stick - Database::createDatabase() shouldn't need any arguments. Fixed this in the core class and MySQLDatabase, but PDODatabse still needs fixing. (changeset 47698) + * Fixed TestRunner (changeset 47699) + * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47155) + * Added paste plain text and paste from word buttons to the HtmlEditorField in the CMS (changeset 47155) + * wakeless: #1976 - DataObject queries the database for child elements when it hasn't been serialized (changeset 47695) + * #1666 - Interface translations don't show in footer (changeset 47694) + * Fix title and description in RSS feeds (changeset 47688) + * Update copyright to 2008 (changeset 47657) + * update copyright to 2008 (changeset 47654) + * Update copyright to 2008 (changeset 47653) + * Added release date (changeset 47430) + * Updated Changelog (changeset 47262) + * Updated ChangeLog (changeset 46870) + * add function fieldByName (changeset 47479) + * made breadcrumbs-delimiter configurable (changeset 47634) + * Reversed isset() change which was causing some side effects (changeset 47602) + * Fixed PHP notice undefined index - $messageSet['alreadyLoggedIn'] (changeset 47600) + * Fixed ID undefined PHP notice error (changeset 47595) + * removed DetailForm() (was just needed to set custom class which is now in $popupClass), updated saveComplexTableField() to reflect parent class code (changeset 47593) + * added $popupClass to avoid duplication, getting basedataclass for existing children in DetailForm() (in case we're dealing with different subclasses) (changeset 47592) + * more solid ID-detection in php() (changeset 47591) + * additional checks before foreach() loop (changeset 47589) + * fixed PHP notice in implementorsOf (changeset 47588) + * #2069 Locale file /lang/en_US.php should exist (Windows) (changeset 47587) diff --git a/docs/en/changelogs/2.2.3.md b/docs/en/changelogs/2.2.3.md new file mode 100644 index 000000000..b02ca6e60 --- /dev/null +++ b/docs/en/changelogs/2.2.3.md @@ -0,0 +1,36 @@ +* BUGFIX: Don't allow calling of magically added methods via URL unless explicitly listed in allowed_actions (changeset 64988) +* BUGFIX: Fixed HTTP/1.0 support (changeset 64722) +* Fix typo (changeset 64643) +* Fix accept button in CommentAdmin not working (changeset 64640) +* Fix CMS export (changeset 64639) +* MINOR: PHP notice fixes (changeset 64638) +* MINOR: fix php notice (changeset 64637) +* Allow default value to be set on CountryDropdownField (changeset 64636) +* Add ability to disable 'None' option and to choose the title field in TypeDropdown (changeset 64635) +* BUGFIX: Allow disabling of updateCMSFields() on SiteTree so subclasses that want decorators to have access to (changeset 64634) +* their added fields can call it themselves. (changeset 64634) +* MINOR: Fix PHP notices (changeset 64625) +* Show '(Choose)' text on TreeDropdownField when a non-existent object is selected, as can happen when related data is removed (changeset 64355) +* When calling Folder::findOrMake(), set the Title as well as the Name of new folders (changeset 64354) +* Allow updating of File detail CMS fields by defining updateCMSFields in a decorator (changeset 64353) +* Add macron about native name of maori (changeset 64130) +* Added ->itemWriteMethod parameter, to adjust the way that CTFs write (for instance, to save and publish instead of just save) (changeset 64128) +* BUGFIX: Form::sessionMessage() didn't set type (changeset 63966) +* Fixed sorting in TableListField and subclasses (changeset 63524) +* Removed hard-coded limits in ConfirmedPasswordField. This should be configured in a member password validator (changeset 63405) +* BUGFIX: Fixed tree.js to work with TreeMultiselectField (changeset 63343) +* ENHANCEMENT: Use get variable rather than session for Security::permissionFailure()'s BackURL, as it's more reliable (changeset 63030) +* BUGFIX Set ID of lostpassword page to -1 so we don't get top level pages (changeset 62107) +* as its children (changeset 62107) +* BUGFIX Revert r61631 for Translatable but kept SiteTree changes instact from that revision since they are still useful (changeset 61815) +* API CHANGE: Decorators on SiteTree can now define updateCMSActions (changeset 61625) +* API CHANGE: Decorators on SiteTree can now define updateCMSActions (changeset 61624) +* BUGFIX: Don't show publish button when editing translatable page, as it is broken (changeset 61624) +* BUGFIX: search is now html valid! (changeset 60980) +* merged from trunk (changeset 60651) +* BUGFIX: Fix typedropdown not working when there are no records of that (changeset 60240) +* dataobject. (changeset 60240) +* commented out line 121 that put line breaks (changeset 60194) +* add missing semicolon (changeset 60026) +* Fix null title value on tiny mce inserted images (changeset 60025) +* Overwriting Date.php to output US Date format (changeset 59710) \ No newline at end of file diff --git a/docs/en/changelogs/2.2.4.md b/docs/en/changelogs/2.2.4.md new file mode 100644 index 000000000..8ac7a6b66 --- /dev/null +++ b/docs/en/changelogs/2.2.4.md @@ -0,0 +1,43 @@ +# 2.2.4 (2009-03-20) + +## Features and Enhancements + + * ![rev:65263] Default permission failure message set can be changed + * ![rev:73365] Text->FirstParagraph?() now works for `

` containers in HTML, as you may not always have paragraph tags. + * ![rev:73272] Added Director::is_relative_url() and Director::is_site_url() + * ![rev:69634] After a javascript validation error from a form submission, focus on the first errored field + +## Bugfixes + + * ![rev:73367] Allow translation of front-end content into all languages, not just common ones (Merged from r64943) + * ![rev:73347] Removed canEdit() call that doesn't exist in SecurityAdmin::savemember() + * ![rev:73319] Added missing action 'DeleteImageForm' to Image::$allowed_actions + * ![rev:73305] Added missing action 'EditImageForm' to Image::$allowed_actions + * ![rev:73302] Fixed too strict permission checking on Image::$allowed_actions. Replaced broken * permission check with explicit method names + * ![rev:73298] Fixed array to string conversion caused by patch committed in r73272 + * ![rev:73295] Validating $_FILES in Image::loadUploadedImage() (Original patch was applied to Upload->validate() in trunk - r73254) + * ![rev:73294] Validating $_FILES in Folder::addUploadToFolder() (Original patch was applied to Upload->validate() in trunk - r73254) + * ![rev:73292] Fixed undefined variable $backURL that should've been $_REQUEST['BackURL'] + * ![rev:73282] Using $allowed_actions in ImageEditor (Merged from r73248) + * ![rev:73280] Using $allowed_actions in Image_Uploader (Merged from r73255) + * ![rev:73279] Validating $_FILES in File::loadUploaded (Original patch was applied to Upload->validate() in trunk - r73254) + * ![rev:73278] Existence check for Member autologin token (Merged from r73253) + * ![rev:73276] Checking for Director::is_site_url() before redirecting in Controller->redirectBack() and MemberLoginForm (Merged from r73252) + * ![rev:73273] Added isDev() and Permission::check() directives to DatabaseAdmin (Merged from r73251) + * ![rev:73272] Validating $_FILES array in Director::direct() + * ![rev:73271] Using auto-escaped get_by_id() in CommentAdmin and SecurityAdmin (Merged from r73247) + * ![rev:72220] changed target blank to only exist by default for files + * ![rev:69598] Corrected layout of Security/lostpassword and Secuirty/changepassword pages to not show a glitchy main menu, ie, matches Security/login + * ![rev:69138] Fix readonly checkbox fields always setting the field to true + * ![rev:65490] Fixed usability issue with CalendarDateField required field validation. Slightly over-coupled; resolve that in the jQuery validation rewrite. + * ![rev:65258] Fixed ComplexTableField showing export link correctly + * ![rev:65219] Fixed i18n entity problem with TableListField_Item.ss + * ![rev:69594] Corrected changed-password email layout + * ![rev:67482] Merged db/build fix for auto_increment + * ![rev:65473] Preserve BackURL get-variable on failed log-ins + * ![rev:65488] Removed 'Welcome back, FirstName', message that appears if you log-in, out, then in again + * ![rev:66552] Make sure only fields that exist can be autocompleted on MemberTableFields, and never autocomplete on password. (merged from branches/2.3) + * ![rev:69440] forced tinymce to keep iframes in html rather then deleting them + * ![rev:66769] Reverted r66440 - this was causing too many bugs + * ![rev:66479] Fixed error on CommentAdmin + * ![rev:66440] Merged r57599 from branches/roa diff --git a/docs/en/changelogs/2.3.0.md b/docs/en/changelogs/2.3.0.md new file mode 100644 index 000000000..c34ac607a --- /dev/null +++ b/docs/en/changelogs/2.3.0.md @@ -0,0 +1,2134 @@ +# 2.3.0 (2009-02-23) + +## Upgrading + +### Translatable Problems + +**Don't use Translatable for multilingual database content. Don't upgrade to 2.3.0 if you're already using +Translatable.** + +The [Translatable extension](/topics/translation) is currently marked as +unstable for the initial 2.3 release. **If your site uses more than one language for page content, don't upgrade to this +release.** We're working on bugfixes which will be contained in a minor 2.3.x release soon. Check our [releaseannouncements](http://groups.google.com/group/silverstripe-announce) for updates on Translatable bugfixes. + +### BasicAuth disabled on test sites by default + +Basic auth isn't enabled by default on test sites. If you need this, put this in your _config.php + + if(Director::isTest()) BasicAuth::enable(); + + +### /silverstripe and /cms no longer work as aliases to /admin + +Removed certain URL aliases for CMS interface to allow for common page URLs like "silverstripe" or "cms". Please use +/admin as the main URL to access the CMS. See http://open.silverstripe.com/ticket/3267 + +### SiteTree Access tab now lets you select multiple groups + +In order to do this, `SiteTree->ViewersGroup` and `SiteTree->EditorsGroup` have been changed from has_one relations +to many_many relations. + +Your group-assignements for "Who can view this page" and "Who can edit this page" should be automatically migrated upon +calling `dev/build`. See [#2847](http://open.silverstripe.com/ticket/2847) + +### Newsletter moved into new module + +Newsletter functionality has been moved into its own module called **[newsletter](modules/newsletter)**. If you were +previously using this as a feature out of the box with SilverStripe, then you will need to download the userforms module +to continue using it. + +If you **don't** require the functionality, it's safe to delete these database tables: + +* Newsletter +* NewsletterType +* SubscribeForm +* UnsubscribeRecord + +#### auth_openid removed from default installation + +The auth_openid module has been removed from default installation. Please install the module separately from +[silverstripe.org](http://silverstripe.org/auth-openid-module/) + +### GenericDataAdmin and RelatedDataEditor moved into new module + +GenericDataAdmin functionality has been moved into its own module called + +**[genericdataadmin](modules/genericdataadmin)**. If you were previously using this as a feature out of the box with +SilverStripe, then you will need to download this module to continue using it. + +### User Defined Form moved into new module + +User Defined Form has been moved into its own module called **[userforms](modules/userforms)**. If you were previously +using this as a feature out of the box with SilverStripe, then you will need to download the userforms module to +continue using it. + +//Important note: If you **do** have an existing page of User Defined Form type in your CMS site tree, it's best to +install the module first as shown above. If you run dev/build?flush=1 without installing userforms, you'll lose the User +Defined Form page type until you install it then run dev/build?flush=1.// + +If you **don't** require the User Defined Form functionality, it's safe to delete these database tables: + +* EditableCheckbox +* EditableCheckboxOption +* EditableDropdownOption +* EditableEmailField +* EditableFileField +* EditableFormField +* EditableMemberListField +* EditableRadioOption +* EditableTextField +* SubmittedFileField +* SubmittedForm +* SubmittedFormField +* UserDefinedForm +* UserDefinedForm_Live +* UserDefinedForm_versions + +### PostBackup + +PostBackup has been moved into a module. See [postbackup +module](http://open.silverstripe.com/browser/modules/postbackup/trunk). + +### /db/build/?flush=1 is now called /dev/build + +Flushing the manifest with `?flush=1` doesn't need to be explicitly added. + +### Core API Changes + +* Removed ViewableData->setVal(), use ViewableData->setValue() === +* Removed Director::isLiveMode(), use Director::isLive() === +* Removed DataObjectSet->append(), use DataObjectSet->push() or DataObjectSet->merge() +* Removed Controller->LinkTo(), use Controller->join_links() +* Removed DataObject->getLastWriteFields(), use DataObject->getChangedFields() +* Removed Convert::raw2attr(), use Convert::raw2att() +* Removed Member->isAdmin(), use Permission::check('ADMIN') +* Removed Debug::warning(), use user_error("your message", E_USER_WARNING) +* Removed SiteTree->canView_page(), Use instance-specific SiteTree->canView() instead by checking for `$this->ID`. +* Deprecated URL parameter ?buildmanifest=1 (please use ?flush=1) +* i18ntextcollector is executed from a new URL. Use http://mysite.com/dev/task/i18nTextCollectorTask instead of +http://mysite.com/i18ntextcollector + +### Director::addRules() + +If you have made your own custom director rules with `Director::addRules`, you will need to add a double-slash into +the rule, to separate the part of the URL that specifies "this is how I get to this controller" from the part that +specifies "these are arguments to the controller". + +In other words, change this: + + :::php + Director::addRules(50, array( + 'admin/ImageEditor/$Action' => 'ImageEditor', + )); + + +To this: + + :::php + Director::addRules(50, array( + 'admin/ImageEditor//$Action' => 'ImageEditor', + )); + + + +### Decorators + +* Renamed DataObjectDecorator->extraDBFields() to extraStatics() (see +[r65065](http://open.silverstripe.com/changeset/65065)) + +* DataObjectDecorator->updateCMSFields() is now called from DataObject->getCMSFields(), instead of only SiteTree +instances + +* Changed return values for DataObjectDecorator->updateCMSActions() to FieldSet, rather than an array. + +### Data Model + +* Removed Datetime class, use SSDatetime instead (it was conflicting with PHP 5.2 integrated classes) +* Removed Text->Att(), use Text->ATT_val() instead + +### Forms + +* Removed NoScriptField, use LiteralField +* Removed EncryptField, use PasswordField +* Removed NamedLabelField, use LabelField +* Removed NoScriptFormAction, use unobtrusive scripting +* Removed FormField->setExtraClass(), use FormField->addExtraClass() +* Removed deprecated ComplexRequiredFields, `RequiredFields` and custom javascript instead +* If you have created your own FormField classes, FormField::performReadonlyTransformation() and +FormField::performDisabledTransformation() must return new form fields, e.g., cloned instances, or unit tests will fail. + +### Templates + +* '''$Top''' in templates has changed its behaviour; if you call $Top from inside a template that is rendered +separately (eg, a Form template), it will point to the top element of that template execution (in this case, the Form +object) rather than the top element of the outermost template (which would presumably be the page in question). This +was a bug that we have fixed, but some people may rely on it. See http://open.silverstripe.com/ticket/2781 + +* A `` element has been added before any `
` in all SilverStripe forms. SearchForm.ss and Form.ss are +where it has been added. This now validates the form HTML for W3C compliance. Please verify that your forms visually +look okay after upgrading. Legend can be set by calling ''->setLegend('my legend here')'' on your Form object. + +### CMS menu API + +We have deprecated the LeftAndMain menu customisation API. + +* Don't set any menu-item static variables any more. +* For the most part, you won't need to add anything to _config.php to add CMS menu items; just define the static +variables `$menu_title` and `$url_segment` on your `LeftAndMain` subclasses. + +* If you want to add a menu item that's not a subclass of `LeftAndMain` (eg, help or a link to a webstats package), +use `CMSMenu::add_menu_item()` + +* To remove a menu item, use `CMSMenu::remove_menu_item()`. It identifies items by classname rather than arbitrary +$code value. + +### ContentNegotatior is now disabled by default, mostly + +The ContentNegotatior system was a bit of voodoo that confused a lot of people, so we have disabled it by default for +regular templates. It will still enabled by default for templates that include the `` header, because these +are the only templates that benefit from it significantly. + +If you want to enable it for your HTML4 templates, then you can do so by calling `ContentNegotiator::enable()`. Note +also that the DOCTYPE altering, which was a frequent cause of pain, only executes if your original template had the +`` header. + +### Other API Changes + +* Removed deprecated File::loadallcontent(), use Upload class +* Image->URL returns relative instead of absolute URL. Use Image->AbsoluteURL instead. +* Moved DataReport and SQLReport into the ecommerce module. If you're using these classes, please download the +[ecommerce module](modules/ecommerce). + +### Default mysite/_config.php + +The installer includes a default configuration file: *mysite/_config.php*. If you have already have your own + +*mysite/_config.php*, you can safely keep your own version and disregard the new file. + +### Default validators for Form instances (PHP and JavaScript) + +Enforcing usage of a Validator instance in Forms if its not explicitly passed to the Form constructor. By default a new +RequiredField instance is used without any fields marked as required. This was necessary because some FormField +implementations rely on their validate() method, sometimes as a wrongly placed processing hook, but mostly for security +reasons. One example are file extension checks in FileField subclasses. +In most cases this won't have any effect on existing forms, although you might get additional JavaScript dependencies +like Validator.js and behaviour.js. If you want to disable JavaScript validation across forms, add the following to your +_config.php: + + :::php + Validator::set_javascript_validation_handler('none'); + +See http://open.silverstripe.com/changeset/69688 + + +## New Features + + * ![rev:71761] Allow combined files to be disabled + * ![rev:70697] CRM Security with two levels: viewable and writeable. + * ![rev:70422] added silverstripe version number to meta generator tag + * ![rev:70142] add permission control for AddForm and EditForm + * ![rev:69687] added Smiliey support to BBCode / forum. Now BBCode supports :) :P :D :( 8-) and :^). Yays for icons. Should move from BBCodeParser to TextParser so its available in tinymce but this will do for the forum + * ![rev:66163] #1531 - Allow moving files in root assets file (hamish) + * ![rev:65904] #1614: Allow use of admin/addpage?ParentID=(ID)&PageType=(Class) url to quick-add pages + * ![rev:65690] #594: Added javascript-on-demand support + * ![rev:65689] #594: Added javascript-on-demand support + * ![rev:65688] #594: Added javascript-on-demand support + * ![rev:65555] #2767 wakeless: Allow popuplation of non-DataObject tables with YamlFixture + * ![rev:65351] merged back patch for image editor. Currently completely broken on trunk this patch does nothing to fix it sadly. I think its a prototype thing + * ![rev:65095] Added CMSMenu and CMSMenuItem and adjusted existing LeftAndMain subclasses to use new notation.See #2872 (thanks to hamish for the patch!) + * ![rev:64881] Making DataObject attributes translatable through i18n class, e.g. $db and all relation statics. Use DataObject->fieldLabels() to access translated attributes. + * ![rev:64877] Added JavaScript unit tests with jQuery QUnit. Can be viewed similiarly to PHPUnit tests through dev/jstests URL. Uses an `