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