[TASK] Update changelog and version to 6.1.0
[Packages/TYPO3.CMS.git] / typo3 / sysext / fluid / ChangeLog.txt
1 ChangeLog for Fluid
2 ===================
3
4 Changes for 6.1.0
5 =================
6
7 [!!!][FEATURE] Allow Fluid arrays only in ViewHelper arguments
8 --------------------------------------------------------------
9
10 This change greatly enhances the JavaScript compatibility of Fluid.
11
12 Fluid Arrays are a subset of the JavaScript object syntax, making it
13 hard to work with them in mixed HTML/JavaScript documents. For example
14 before this change, the following JavaScript Object was parsed by Fluid::
15
16         var uris = {
17           endPoint1: '{f:uri.action(.)}',
18           endPoint2: '{f:uri.action(.)}',
19         };
20
21 Before this change, the above snippet resulted in the following template,
22 as the generated array was casted to a string:
23
24         var uris = Array
25
26 With this change, Fluid only parses arrays which are used inside
27 ViewHelper arguments, such that an array inside normal text is not
28 converted anymore.
29
30 Breaking Change
31 ===============
32
33 This change is only breaking in very rare cases where one relied on
34 the inner contents of the ViewHelper being an array, f.e. if one used
35 the debug ViewHelper as follows::
36
37         <f:debug>{key1: 'value1', key2: 'value2'}</f:debug>
38
39 . or if anybody wrote custom ViewHelpers which use this convention.
40
41 Relying on that would be very fragile anyways, as the insertion of a
42 single space character before the opening curly bracket or after the
43 closing one would cast the array back to a string.
44
45 ViewHelpers which were written like this should be re-written to take
46 the array as ViewHelper argument::
47
48         <f:debug value="{key1: 'value1', key2: 'value2'}" />
49
50 Full Changes for 6.1.0
51 ======================
52
53 [BUGFIX] Fluid must not use legacy flash message handling
54 [BUGFIX] Don't use folders as templates, partials and layouts
55 [TASK] Use __DIR__ instead of dirname(__FILE__)
56 [TASK] Add namespaing to ConfigurationManagerInterface
57 [TASK] Remove further t3lib mentions
58 [TASK] Update t3lib mentions
59 [TASK] Adjust Comments to describe string comparison
60 [CLEANUP] Drop incomplete tests
61 [BUGFIX] Add needed setting to handle file_references correctly
62 [BUGFIX] Add needed setting to handle file_references correctly
63 [TASK] Remove not maintained md5 in ext_emconf
64 [BUGFIX] Incomplete mock reset in StandaloneViewTest
65 [BUGFIX] FormViewHelper creates inline styling
66 [BUGFIX] PHP 5.4 E_STRICT warning in HtmlViewHelper
67 [TASK] Cleanup fluid
68 [FEATURE] Adjustable decimals for view helper format.currency
69 [TASK] Update examples in ValidationResults ViewHelper
70 [TASK] Sync TYPO3 CMS Fluid with Flow Fluid 1.1 (part3)
71 [TASK] Sync CMS Fluid with Flow Fluid 1.1 (part2)
72 [TASK] Add test for GroupedForViewHelper to support DateTime Objects
73 [TASK] Replace ObjectManager create with get
74 [BUGFIX] Apply arguments to the default string
75 [TASK] Clean up Unit tests in fluid
76 [FEATURE] Complete the Property Mapper whitelist change for fluid
77 [BUGFIX] Follow-up typo to #45316
78 [TASK] Sync CMS Fluid with Flow Fluid 1.1 (part1)
79 [FEATURE] Support literal strings in boolean arguments
80 [TASK] Add dataproviders for 2 tests in DateViewHelperTest
81 [BUGFIX] Skip a SelectViewHelperTest on Mac
82 [BUGFIX] Unit test fails with broken timezone
83 [BUGFIX] Wrong numbers in BE paginage widget
84 [BUGFIX] Remove superfluous newline
85 [BUGFIX] Date ViewHelper not using configured Timezones
86 [BUGFIX] Fix typo and improve backup of system settings
87 [FEATURE] Introduce prepend option for Select ViewHelper
88 [BUGFIX] Remove PHP Error caused by setlocale call
89 [BUGFIX] Incomplete locale backup in unit test
90 [BUGFIX] selectViewHelper sorting should respect locales
91 Revert "[TASK] Adjust failing test"
92 [TASK] Adjust failing test
93 [BUGFIX] Image viewhelper clears $GLOBALS['TSFE'] in backend context
94 [TASK] Update version to 6.1.0-dev
95
96 Changes for 1.4.0:
97 ==================
98 included in TYPO3 4.6.0
99
100 This change features numerous cleanups, and the following new features:
101
102 Compilation of Fluid Templates to PHP files
103 -------------------------------------------
104
105 This adds a compile step to the parsing process of templates, layouts and
106 partials.
107 If no compiled cache file exists, Fluid will create it while parsing the
108 respective Fluid template.
109 The cache file is invalidated as soon as the template/layout/partial
110 has been modified (or if caches are flushed).
111 This speeds up the rendering process by factor 2-5, and reduces memory
112 consumption drastically.
113
114 !!! $this->arguments->hasArgument() removed
115 -------------------------------------------
116
117 AbstractViewHelper::$arguments are no longer an object but an array.
118
119 If you used $this->arguments->hasArgument() in your custom ViewHelpers,
120 you'll have to replace this with $this->hasArgument().
121
122 THIS IS A BREAKING CHANGE.
123
124 !!! Introduction of {_all} Variable
125 -----------------------------------
126
127 You can now use {_all} inside your template to access all variables available
128 right now. This is especially helpful for debugging:
129
130     {_all -> f:debug()}
131
132 or for passing all currently available variables to a partial:
133
134     <f:render partial="..." arguments="{_all}" />
135
136 This is only a breaking change if you used a variable _all inside your own
137 templates.
138
139 Widgets: Allow overriding templateRootPath
140 ------------------------------------------
141 It is now possible to override the widget template root path via the framework
142 configuration, for example:
143
144     plugin.tx_extension.view {
145       widget.<WidgetViewHelperClassName>.templateRootPath=...
146     }
147
148 Full Changes from 1.4.0 beta1 to 1.4.0:
149 =======================================
150 [TASK] Update version to 1.4.0-rc1
151 [TASK] Increase version number
152 [BUGFIX] Create new CObject in CObject ViewHelper
153 [BUGFIX] Fix Doc comment in format.padding ViewHelper
154 [BUGFIX] ViewHelper: Make SelectViewHelper use property paths as arguments
155 [FEATURE] Add parameter to RenderViewHelper for optional sections
156 [BUGFIX] Sanitize identifier when compiling templates
157 [BUGFIX] use $for only when not empty and not NULL
158 [+BUGFIX] disable cache when displaying FlashMessages in frontend
159 [+FEATURE] Comment ViewHelper
160 [TASK] Remove fluid autoloader
161 [+TASK] Marking Fluid as "stable" instead of "beta"
162 [+BUGFIX] Incorrect type of Error thrown (FLOW3 Error)
163 [BUGFIX] Make textfield view helper handle zero (not empty) values
164
165 Full Changes for 1.4.0 beta1:
166 =============================
167
168 [!!!][FEATURE] Compilation of Fluid templates to PHP files. Resolves: #28545
169 [TASK] Minor cleanups
170 [TASK] Tweak inline comment in TemplateView
171 [!!!][+FEATURE] Add a reserved variable {_all} returning all template variables
172 [BUGFIX] Deactivate EscapeInterceptor for certain ViewHelpers. Related: #27678
173 [TASK] Split escape ViewHelper into dedicated format ViewHelpers. Related: #27628
174 [BUGFIX] Whitespace fixes
175 [FEATURE] IconViewHelper (BE) should support CSS-sprites. Resolves: #9957
176 [TASK] Code Cleanup in TemplateView
177 [+BUGFIX] Use of depreciated function debug in debugViewHelper. Fixes: #27970
178 [BUGFIX] Fix Widget support. Resolves: #27783
179 [TASK] Recreate ext_autoload.php. Related: #27680
180 [+FEATURE] (ViewHelpers): Adjust Fluid to new Property Mapper. Related: #27656
181 [+TASK] Fluid: Make use of newly introduced Extension Service. Related: #13864
182 [+BUGFIX] Fix unit tests
183 [TASK] Fluid: Use strpos() instead of strstr() where possible
184 [TASK] Make TextboxViewHelper a subclass of TextFieldViewHelper
185 [TASK] (ViewHelper): Code Cleanup to AbstractFormField ViewHelper
186 [TASK] (Core): Code Cleanup in AbstractTagBasedViewHelper
187 [+BUGFIX] (Core): Condition improvements. Resolves: #27557
188 [TASK] Cleanup and small improvements to Interceptors
189 [TASK] Comment and non-functional changes
190 [+BUGFIX] Empty a tag ends with /> instead of </a>. Resolves: #27556
191 [BUGFIX] Better error message for "unknown section" exception
192 [+BUGFIX] Fluid (Core): Simplify debugging of exceptions thrown during render
193 [+BUGFIX] Fluid: Fix CObjViewHelper. Fixes: #26138
194 [+FEATURE] Widgets: Allow overriding templateRootPath. Thanks to Peter B├╝cker. Resolves: #10823
195 [FEATURE] PaddingViewHelper: allow padding-type right/left/both. Resolves: #9283
196 [BUGFIX] Fix documentation for BE-ViewHelpers. Resolves: #9942
197 [~TASK] Update jQuery versions
198 [+BUGFIX] CObjViewHelper: fixed using numeric values as data argument. Fixes: #12891
199 [+BUGFIX] ActionMenuItemViewHelper: XHTML compliance in "selected" attribute value. Fixes: #8744
200 [+BUGFIX] Fluid: CObjViewHelper fix deprecated call "getAccessibleProperties". Fixes: #26138
201 [!!!][+TASK] Fluid v4 (Core): Make layout UpperCamelCase (with fallback)
202 [~TASK] Fluid: Raising version from 1.3.0 to 1.4.0-devel
203 [+FEATURE] Fluid (ViewHelpers): Add RawViewHelper
204 [+FEATURE] Fluid v4 (Core): Set layoutName by variable
205
206
207
208 Changes for 1.3.0:
209 ==================
210 included in TYPO3 4.5.0 LTS.
211
212 Here, only smaller bugs and inconsistencies have been fixed. For a description of bigger features, see below to the versions where they were introduced.
213
214 Full Changes for 1.3.0:
215 =======================
216
217 [+TASK] Fluid (ViewHelpers): fixed typo in doc comment examples of emailViewhelper
218 [+BUGFIX] Fluid (Tests): Fixed CropViewHelper unit test
219 [+BUGFIX] Fixed comparison of Objects
220         Objects in comparison expressions were compared lazily
221         with == before this change. Now, they are compared with
222         ===, which is the expected behavior on objects.
223 [+TASK] Fluid (ViewHelpers): Extended inline documentation of FlashMessages ViewHelper
224 [+BUGFIX] Fluid (Tests): Fixed Fluid unit tests!
225
226 Changes for 1.3.0 RC1:
227 ======================
228 included in TYPO3 4.5.0 RC1.
229
230 This change contains numerous bugfixes, most notably fixes the Widget
231 Bootstrap and the Standalone View (which is used in "FLUIDTEMPLATE").
232
233 Full Changes for 1.3.0 RC1:
234 ===========================
235
236 [+BUGFIX] Fluid (View): Fix StandaloneView
237         Since implementation of Dependency Injection the Fluid
238         Standalone view was broken in some cases, cause it did not
239         properly initialize all needed objects.
240         Fixes: #11520
241 [+BUGFIX] Fluid (Core): Allow ViewHelpers to be placed in t3lib and tslib
242         The Fluid template parser does now recognize ViewHelpers inside t3lib/
243         or sysext/cms/tslib/, so Fluid can now be used inside the TYPO3 core.
244         Thanks to Andreas Wolf for the patch!
245         Resolves: #12061
246 [+BUGFIX] Fluid (Widget): Adopt Widget Bootstrap to Extbase Bootstrap changes
247         Problem: The configureObjectManager method in Tx_Fluid_Core_Widget_Bootstrap
248         uses a call on a static method Tx_Extbase_Object_Container_Container::getContainer()
249         which doesn't exist anymore. The Container has become a t3lib_Singleton.
250         This patch changes the behavior, and makes it work again.
251         Thanks to Thomas Maroschik for the patch!
252         Resolves: #11991
253
254 Changes for 1.3.0 Beta 4:
255 =========================
256 included in TYPO3 4.5.0 Beta 4.
257
258 This change contains numerous bugfixes.
259
260 Full Changes for 1.3.0 Beta 4:
261 ==============================
262
263 [~TASK] Fluid (Tests): Fixed some testcase class names
264 [+FEATURE] Fluid (ViewHelpers): prepend URIs with scheme if it's not specified in link.external / uri.external ViewHelpers. Resolves #10401
265 [+TASK] Fluid (ViewHelpers): Fix, cleanup and extend inline documentation of ViewHelpers
266 [+BUGFIX] Fluid (View): Fixed deprecation message about lowercase template files names
267
268 Changes for 1.3.0 Beta 2:
269 =========================
270 included in TYPO3 4.5.0 Beta 2.
271
272 The main change is the updating of the FlashMessage ViewHelper and concept:
273
274 Since r3062 Extbase uses the t3lib_FlashMessageQueue to store flashmessages.
275 Now you can output them including title and severity, making it possible
276 to render flashmessages just like the ones from the core in BE mode.
277 To keep backwards compatibility, the default rendering still outputs
278 only the message bodies in an unordered list. Set the renderMode argument
279 to "div" in order to display the new style:
280 <f:flashMessages renderMode="div" />
281
282 **********************************************************************************************
283 *Extbase / Fluid 1.3.0 can now ONLY BE USED WITH TYPO3 4.5, as the older versions do not have*
284 *the FlashMessageQueue available!                                                            *
285 **********************************************************************************************
286
287 Full Changes for 1.3.0 Beta 2:
288 ==============================
289 [+BUGFIX] Fluid (ViewHelpers/Widget): widget.link and widget.uri no create relative URLs
290 [+FEATURE] Fluid (ViewHelpers): Add render mode to FlashMessage ViewHelper
291 [-TASK] Fluid: Removed all @scope annotations as they are not used in v4
292 [+TASK] Fluid (View): Added additional check for deprecated lower case template filenames that works on case insensitive file systems (Windows) too. Watch your deprecation log in typo3conf and fix your template filenames if they're still lower case.
293 [+BUGFIX]: explicitly cast offset to integer to avoid exceptions in paginate view helper
294
295
296 Changes for 1.3.0 Beta 1a:
297 ==========================
298 included in TYPO3 4.5.0 Beta 1.
299
300 This Fluid Release contains the following main features, along with the usual bunch of bugfixes:
301
302 * Fluid Widgets (see below)
303 * Fluid Standalone View (in Fluid 1.3.0 Alpha 3, but has not been inside a TYPO3 Release yet)
304         In order to be able to use Fluid templates beyond the Extbase plugin context
305         (e.g. to render E-Mail templates or to use the new FLUIDTEMPLATE content object)
306         we created a new template view, that encapsulates inner workings and provides
307         an easy-to-use API:
308
309         $view = t3lib_div::makeInstance('Tx_Fluid_View_StandaloneView');
310         $view->setTemplatePathAndFilename('foo/Bar.html');
311         print $view->render();
312
313 Fluid Widgets
314 -------------
315
316 Widgets are special ViewHelpers which encapsulate complex functionality. It can be best understood
317 what widgets are by giving some examples:
318 * <f:widget.paginate> renders a Paginator, i.e. can be used to display large amounts of objects. This
319   is best known from search engines.
320 * <f:widget.autocomplete> adds autocompletion functionality to a text field.
321 * More widgets could include a Google Maps widget, a sortable grid, ...
322
323 Internally, widgets consist of an own Controller and View part.
324
325 Using widgets inside your templates is really simple: Just use them like standard ViewHelpers,
326 and consult their documentation for usage examples. An example for the <f:widget.paginate> follows below:
327
328 <f:widget.paginate itemsPerPage="10" objects="{blogs}" as="paginatedBlogs">
329         // use {paginatedBlogs} as you used {blogs} before, most certainly inside
330         // a <f:for> loop.
331 </f:widget.paginate>
332
333 In the above example, it looks like {blogs} contains all Blog objects, thus you might wonder if all
334 objects were fetched from the database. However, the blogs are NOT fetched from the database until
335 you actually use them, so the paginate ViewHelper will adjust the query sent to the database and
336 receive only the small subset of objects. So, there is no negative performance overhead in using
337 the Paginate Widget.
338
339 For more details on how to write widgets, consult the Fluid manual, section "Fluid Widgets".
340
341 Full Changes for 1.3.0 Beta 1a:
342 ===============================
343 [+FEATURE] Fluid (ViewHelpers): the subject argument of the count ViewHelper is now optional so you can use it like {objects -> f:count()}
344 [+BUGFIX] Fluid (ViewHelpers): Fixed inline documentation of widget.autocomplete ViewHelper. This fixes #10882
345 [+TASK] Fluid (ViewHelpers): Added some more inline documentation for cObject, widget.paginate, widget.autocomplete & count ViewHelpers
346 [+BUGFIX] Fluid (ViewHelpers): replaced two occurrences of Tx_Extbase_Dispatcher::*() by using the injected ConfigurationManager
347 [+TASK] Fluid (ViewHelpers): uri.image now works in BE mode too
348 [+BUGFIX] Fluid (ViewHelpers): Adjustment to skinning api change
349 [+FEATURE] Fluid (ViewHelpers/Widget): Slightly improved paginate widget: The link to the first page now skips the currentPage argument resulting in nicer URLs and less cHashes
350 [+FEATURE] Fluid (ViewHelpers): excluding obsolete widget arguments & cHash from widget links if they're not explicitly set
351 [+BUGFIX] Fluid (Core/Widget): AjaxWidgetContextHolder now uses a unique id for the Ajax WidgetContext. This makes sure, that the ajax response gets the right context, even if you open multiple browser windows in the same session
352 [+BUGFIX] Fluid (Core): The Fluid Widget Bootstrap now initializes the object manager in order to respect "config.tx_extbase.object" configuration.. TODO: this should be somehow refactored to avoid code duplication
353 [+BUGFIX] Fluid: Reduced the typeNum for the fluidAjaxWidgetResponse page. Apparently 7076857368 was too large ;) TODO: the typeNum should be somehow configurable
354 [~TASK] Fluid (ViewHelpers/Widget): removed $GLOBALS['TSFE']->additionalHeaderData call from AutocompleteViewHelper as this is not configurable like this. Moved the jQuery includes to Configuration/TypoScript/setup.txt which can be included in your main TS template
355 [+BUGFIX] Fluid (ViewHelpers): Fixed Widget URI generation in widget.link/widget.uri ViewHelpers/Link/WidgetViewHelpers
356 [~TASK] Fluid (ViewHelpers/Widget): Tweaked PaginateViewHelper: Minor refactoring of controller & template
357 [-TASK] Fluid (Compatibility): Forgot to remove obsolete Tx_Fluid_Compatibility_ObjectManager in previous commit
358 [+FEATURE] Fluid (Core/Widget): Added Tx_Fluid_Core_Widget_Bootstrap that is used to dispatch Ajax requests (see ext_typoscript_setup.txt).
359 [~TASK] Fluid (Compatibility): Removed Tx_Fluid_Compatibility_ObjectManager and replaced instances by Tx_Extbase_Object_ObjectManagerInterface instances
360 [~TASK] Fluid (Core/Widget): AbstractWidgetController has to be a singleton so it can be injected in the WidgetViewHelper.. To be discussed!
361 [+TASK] Fluid (Core/Widget): AjaxWidgetContextHolder is now correctly stored in the BE/FE Users session if the ajaxWidget of the corresponding Widget is TRUE.
362 [+TASK] Fluid (Core/Widget): The WidgetContext now contains a reference to the parent extension & plugin name. That's needed for the widgetAjaxResponse.
363 [+BUGFIX] Fluid (Core/Widget): WidgetRequestBuilder now correctly interprets GET parameters and dispatches Ajax requests
364 [+BUGFIX] Fluid (ViewHelpers): Modified ViewHelpers cObject, format.crop, format.html, image, uri.image so that they use dependency injection in order to retrieve the current cObject instance from the configurationManager
365 [+BUGFIX] Fluid (ViewHelpers): Fixed form ViewHelper to respect configured pluginNamespace in field name prefixes
366 [+BUGFIX] Fluid (ViewHelpers): link.widget/uri.widget ViewHelpers now create correct URIs
367 [+BUGFIX] Fluid (ViewHelpers): replaced @inject annotation by injectController method in AutocompleteViewHelper.
368 [+FEATURE] First step of "Fluid widget" backport
369         This is the first step of the Widget backport (#8773). This contains all the core classes that are required for the widget implementation and two exemplary Widget ViewHelpers "widget.paginate" and "widget.autocomplete".
370         Note: Ajax widgets are not yet working!!
371         Relates to: #8773
372         Relates to: #10568
373 [!!!][+BUGFIX] Fluid (View): Adjust fluid to recent resolveView() backport
374         Tx_Fluid_View_AbstractTemplateView now implements the Tx_Extbase_MVC_View_ViewInterface that was changed in r2675.
375         NOTE: This is a breaking change because the API method Tx_Fluid_View_TemplateView::hasTemplate was renamed to canRender(). Besides I deleted the TemplateViewInterface that is no longer needed. Implement Tx_Extbase_MVC_View_ViewInterface or simply extend Tx_Fluid_View_AbstractTemplateView if you want to write your own view implementation
376         Relates to: #8990
377 [+BUGFIX] Fluid: Adjust Fluid to Dependency Injection changes. Relates to: #9062
378
379 Changes for 1.3.0 Alpha 3:
380 ==========================
381 [+BUGFIX] Fluid (ViewHelpers): ImageViewHelper supports additionalAttributes argument
382         The image view helper did not call the parent constructor, which registeres the "additionalAttributes" argument. Thanks to Michael Knoll.
383 [+FEATURE] Fluid (View): Fluid Standalone view (#10473)
384 [+TASK] Fluid (ViewHelpers): Minor tweak in CObject ViewHelper
385         Make sure, that the configurationManager is initialized.
386         This is just a preliminary solution that will be replaced as soon
387         as the Extbase dispatcher refactoring (#7153) is done.
388
389 Changes for 1.3.0 Alpha 2:
390 ==========================
391 included in TYPO3 4.5.0 Alpha 2.
392
393 In this release, mostly small bugfixes have been made in Fluid. Highlights are:
394
395  * {settings} is now automatically in partials. (#6289)
396
397  * You can now use <f:security.ifAuthenticated> and <f:security.ifHasRole role="foo"> (#9143)
398    in your Fluid templates to check whether an FE user is currently logged in / belongs to the
399    specified usergroup.
400    Note: if "role" is a numeric value the uid of the usergroup is compared, otherwise the title
401    of the usergroup.
402    To deal with BE users you can use the respective be.security.* view helpers
403
404  * Boolean expressions can now contain negative numbers. Resolves #9434.
405
406 Full Changes:
407 -------------
408
409 [+FEATURE] Fluid (Core): {settings} is available in Partials
410 Now, the {settings} are automatically available in partials and sections.
411 Before, they had to be passed explicitely, i.e. by calling
412 <f:render section="..." arguments="{settings: settings}" />.
413 If somebody defined his own "settings"-argument, this still takes precedence:
414 <f:render section="..." arguments="{settings: some.different.settings}" />
415 This means that this change is completely backwards compatible.
416 NOTE: The settings are NOT merged together, like it has been suggested in #6289,
417 as this will lead to un-obvious behavior for the user.
418
419 [-API] Fluid (Core): Remove getTemplateParser() method.
420 This method has accidentally gotten an @api annotation,
421 and was only needed for the Viewhelpertest package.
422 Now, this package is cleaned up, and this method can be
423 completely thrown away.
424
425 [+BUGFIX] Fluid (ViewHelpers): Fix bug in Form ViewHelper
426 Since #6521 you can use the "objectName" argument to specify the name of a bound object rather then using the "name" attribute.
427 But if you do so, the rendered hidden identity field is not correct anymore. This behavior is fixed with this commit.
428 Resolves: #9515
429
430 * Documentation Cleanup
431
432 [+FEATURE] Fluid (ViewHelpers): Backported ifAuthenticated & ifHasRole security ViewHelpers
433 you can now use <f:security.ifAuthenticated> and <f:security.ifHasRole role="foo">
434 in your Fluid templates to check whether an FE user is currently logged in / belongs to the
435 specified usergroup.
436 Note: if role is a numeric value the uid of the usergroup is compared, otherwise the title
437 of the usergroup.
438 to deal with BE users you can use the respective be.security.* view helpers
439 Resolves #9143
440
441 [TASK] Fluid (Core): Regular Expression performance improvements
442 In rare cases, on some systems (like mine), the
443 PCRE parser reproducably crashes if one passes very
444 long argument strings into it, or very complex ones.
445 With this patch, the parser is slightly modified
446 to decrease the use of backtracking; which then avoids
447 the crashes mostly.
448
449 [TASK] Fluid (Core): Formatted Regular Expressions more nicely
450 There were some undocumented regular expressions
451 in the parser, which needed to be formatted nicely.
452
453 [+BUGFIX] Fluid (Core): Boolean expressions can now contain negative numbers. Resolves #9434.
454 Boolean expressions with negative numbers did not work so far.
455 Now, they work as expected. Example from Viewhelpertest which displayed
456 a wrong result before, and now displays the correct result:
457 <f:if condition="{testVariables.number.minusOne} < -1.1">
458         <f:then>Then part!</f:then>
459         <f:else>Else part!</f:else>
460 </f:if>
461 Issue: #9434
462
463
464
465 Changes for 1.3.0 Alpha 1
466 =========================
467 included in TYPO3 4.5.0 Alpha 1.
468
469 In this release, numerous bugs have been fixed, making Fluid more stable than ever. Below are some nice features which have been introduced:
470
471 * Instead of <f:form name="...">, you should now write write <f:form objectName="...">, to create an XHTML compliant form (#6521)
472
473 * The <f:for>-ViewHelper has now Iteration Information available, if you want that:
474   <f:for each="{objects}" as="object" iteration="iteration">
475      {iteration.index} is a counter which starts at 0
476      {iteration.cycle} is a counter which starts at 1
477      {iteration.isEven} / {iteration.isOdd} is a boolean variable which is true if the index is even/odd
478      {iteration.isFirst} / {iteration.isLast} is a boolean variable which is true if it is the first or last element in the list.
479   </f:for>
480
481 !!! Refactored all Condition-ViewHelpers like f:if, f:security.if* to use a newly created base class F3\Fluid\Core\ViewHelper\ConditionViewHelper. This greatly simplifies the implementation of custom conditions.
482   THIS IS A BREAKING CHANGE in case you copied the f:if ViewHelper to create a custom condition ViewHelper, as the internal workings changed. Please check the new f:if ViewHelper to see how to adjust your ViewHelper -- you basically just have to throw away a lot of code. Resolves #8824.
483
484 * Fixed section, partial and layout rendering to function in all cases as expected now, and tested this behavior also.
485   !!! Removed renderSection() and renderWithLayout() from public API in Tx_Fluid_View_TemplateView, as this should only be called from inside Fluid.
486
487 * Fixing checkbox, radio and select-ViewHelpers, but this task is not finished yet.
488   !!! The value argument is required again in form.checkbox and form.radio ViewHelpers. This is a breaking change, as the value argument has not been mandatory for a while. But it probably won't break existing templates as omitting the value makes no sense at all.
489
490 * Fixed BE support of ViewHelpers (cObject, format.crop, uri.resource, format.html, image)
491
492 * Negative numeric values are now properly converted to FALSE when used in boolean ViewHelper arguments.
493
494 * added f:uri.image ViewHelper, working just like f:image, but returning the URL and not the full image tag.
495
496 Full Changes:
497 -------------
498 [~TASK] Fluid: Changed version of Extbase dependency from '1.2.0-1.2.999' to '1.3.0.devel' to reflect the version scheme defined in the wiki. Relates to #9152.
499 [+BUGFIX] Fluid (View): AbstractTemplateView now correctly implements F3\FLOW3\MVC\View\ViewInterface and assign() and assignMultiple() will return an instance of $this to allow chaining again like $this->view->assign()->assign()... This fixes #9090 (backported from Fluid package r4931)
500 [~TASK] Fluid (Tests): committing modified AbstractFormFieldViewHelperTest that I forgot to add in previous commit
501 [+TASK] Fluid (ViewHelpers): Small performance improvement in ForViewHelper: Objects will only be converted to arrays if reverse is TRUE. Relates to #8732 (backported from Fluid package r4907)
502 [+TASK] Fluid (View): Added getter for template parser to AbstractTemplateView. This is useful if you want to use the parser from within your custom ViewHelper (creating a new instance would skip interceptor registration) (backported from Fluid package r4907)
503 [~TASK] Fluid (ViewHelpers): Added argument "objectName" to form ViewHelper. This is now the recommended way to specify the name of the object that is bound to a form! If objectName is not specified, the name attribute will be used as object name for backwards-compatibility reasons. This resolves #6521 (backported from Fluid package r4905)
504 * Raised Fluid version in trunk to 1.3.0-devel
505 [+BUGFIX] Fluid (ViewHelpers): Fixed a possible security issue where the content inside the Fluid a is not properly HTML escaped.
506 [+FEATURE] Fluid (ViewHelpers): Added iteration information to for ViewHelper. Thanks to all the contributors for your input and patches! This resolves #6149 (backported from Fluid package r4904)
507 [~TASK] Fluid (ViewHelpers): Fresh backport from Fluid package r4899 (Mostly fixed typos. slightly improved count ViewHelper)
508 [~TASK] Fluid (ViewHelpers): Replaced custom convertToArray() method by PHPs iterator_to_array() function in cycle, for and groupedFor ViewHelpers. This resolves #8732. (backport from Fluid package r4898)
509 [+BUGFIX] Fluid (ViewHelpers): Now, it is possible to "unselect" checkboxes and multiselect fields in editing forms. This fixes #5638. This fixes #8535. This fixes #6897 (improved forward-backport from Fluid package r4874)
510 [+TASK] Fluid (Tests): Backported FormViewHelperTest from Fluid package
511 [+BUGFIX] Fluid (ViewHelpers): FormViewHelper wraps hidden fields with a div tag to create XHTML valid output. This fixes #5512 (backported from Fluid package)
512 [~TASK] Fluid (ViewHelpers): Fixed BE support of the ViewHelpers cObject, format.crop, uri.resource. Relates to #8947
513 [~TASK] Fluid (ViewHelpers): Added BE support in the ViewHelpers format.html and image. Relates to #8947
514 [!!!][+TASK] Fluid (ViewHelpers): The value argument is required again in form.checkbox and form.radio ViewHelpers. This is a breaking change, as the value argument has not been mandatory for a while. But it probably won't break existing templates as omitting the value makes no sense at all. Relates to #8852 (backported from Fluid package r4864)
515 [+FEATURE] Fluid (Core): implemented overrideArgument() method in AbstractViewHelper to be able to override previously registered arguments in subclasses. This resolves #8852 (backported from Fluid package r4864)
516 [+BUGFIX] Fluid (Core): Negative numeric values are properly converted to FALSE when used in boolean ViewHelper arguments. This resolves #8893 (backported from Fluid package r4864)
517 [+BUGFIX] Fluid (ViewHelpers): Reversed the rendering order of header and childNodes in be.container ViewHelper to enable child nodes to modify the pageRenderer. This resolves #8880 (thanks to Andreas Wolf)
518 [+BUGFIX] Fluid: Removed leading slash from @var annotations that were backported by mistake
519 [+BUGFIX] Fluid: Replaced SplObjectStorage by Tx_Extbase_Persistence_ObjectStorage to be PHP 5.2-compatible (which ships with a broken implementation of SplObjectStorage)
520 [!!!][~TASK] Fluid (Core): Renamed ConditionViewHelper and TagBasedViewHelper to Abstract*ViewHelper as per CGL. (backported from Fluid package r4840). To be backwards-compatible, TagBasedViewHelper.php still exists and will write an entry to TYPO3s deprecation log if used. Please adapt your custom ViewHelpers and inherit from AbstractTagBasedViewHelper instead of TagBasedViewHelper. This resolves #8834
521 [~TASK] Fluid: Marked vfs unit tests to be skipped, as vfs is not part of v4 (yet)
522 [-TASK] Fluid: Removed @package/@subpackage annotations from all Fluid classes. They have already been removed in FLOW3 packages in r2813.
523 [-TASK] Fluid: Removed @version annotation from all Fluid classes to ease the backporting process. Relates to #8835 (backported from Fluid package)
524 [+BUGFIX] Fluid (View): fixed method signature of AbstractTemplateView:getTemplateSource() that was different from the concrete implementation (backported from Fluid package)
525 Fluid in v5 and v4 are now synchronized again!
526 [+FEATURE] Fluid: The TemplateVariableContainer now provides a method to retrieve all variables.
527 [~TASK] Fluid (Core): Introduced a RenderingContextInterface to more cleanly decouple Fluid's rendering context from the TypoScript rendering context. Note that view helpers (and other code) should now refer to that interface instead of the concrete Fluid implementation!
528 [!!!][+BUGFIX] Fluid (Core): Refactored all Condition-ViewHelpers like f:if, f:security.if* to use a newly created base class F3\Fluid\Core\ViewHelper\ConditionViewHelper. This greatly simplifies the implementation of custom conditions. However, THIS IS A BREAKING CHANGE in case you copied the f:if ViewHelper to create a custom condition ViewHelper, as the internal workings changed. Please check the new f:if ViewHelper to see how to adjust your ViewHelper -- you basically just have to throw away a lot of code. Resolves #8824.
529 [!!!][-API] Fluid (TemplateView): Removed renderSection() and renderWithLayout() from public API in Tx_Fluid_View_TemplateView, as this should only be called from inside Fluid.
530 [!!!][TASK] Fluid (ViewHelpers): the <f:section />-ViewHelper now does NOT render itself anymore when encountered in a normal template. Example: Before the change, the template "before <f:section name='...'> middle </f:section> after" was rendered as "before middle after", but now it is only rendered as "before after". Although this is a breaking change, it is quite unlikely that anybody relied on this behavior, as it was inconsistent beforehand.
531 [TASK] Fluid (TemplateView): Major refactoring of the layout, partial and section rendering mechanism. This also induces a speedup as retundant rendering is eliminated.
532 [+FEATURE] Fluid (ViewHelpers): The <f:render>-ViewHelper can be now used to render sections in the same partial and template. In these cases, all arguments need to be specified explicitely. Additionally, it can now be used to render a section recursively.
533 [~TASK] Fluid (Core): Removed some non-API-methods which were never called.
534 [+FEATURE] Fluid (ViewHelpers): format.crop ViewHelper now supports all features in Backend mode. Relates to #8648
535 [+TASK] Fluid: Set dependency to Extbase 1.2.x in ext_emconf.php to avoid confusions when working with different versions
536 [+TASK] Fluid: Backported recent changes from Fluid package:
537 [+FEATURE] Fluid (ViewHelpers): added "selectAllByDefault" argument to form.select ViewHelper. Resolves #4984
538 ~TASK] Fluid (Parser): Got rid of the constructor in Parser\Configuration.
539 [+FEATURE] Fluid (ViewHelpers): Added uri.image ViewHelper. This resolves #8233
540 [+FEATURE] Fluid (ViewHelpers): Added URI options noCache, noCacheHash, section, format, additionalParams, absolute, addQueryString & argumentsToBeExcludedFromQueryString to FormViewHelper. Resolves #8247 [+BUGFIX] Fluid: Removed a leading backslash in ViewHelperBaseTestcase that led to an error with PHP < 5.3
541 [+TASK] Fluid: Backported some recent Fluid changes (Note: this is not a complete backport, there are still changes in Fluid Package that are not backported yet):
542 [+BUGFIX] Fluid (ViewHelpers): form.select ViewHelper did only check whether "multiple" attribute was set and not whether it was empty or not. Resolves #5879
543 [+FEATURE] Fluid (ViewHelpers): GroupedForViewHelper can now group by object. Resolves #7389
544
545
546 HOW TO CREATE THE CHANGELOG
547 ===========================
548 git log [startRevision]..HEAD --pretty=format:"%s%n%b%n" | grep -v "^$" | grep -v "git-svn-id"