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