-
❗ No more testing for PHP 5.4
-
❗ Support of TYPO3 6.2 dropped
- For TYPO3 6.2 based projects there will be a legacy branch
-
❗ #829 'allowMoveToFooter' attribute became deprecated in asset ViewHelpers
- use 'movable' instead
-
❗ #856 'pageUid' attribute removed from v:render.request
- In fact it was never used, so shouldn't break your code, unless you explicitly defined it
- v:render.request
-
#906 #907 #908 #909 #910 #911 #912 #913 All the condition (v:condition.*) ViewHelpers are static compilable
- Makes these ViewHelpers compatible with TYPO3 7.3+
- Improves Fluid rendering speed
- Discover Static compilable
-
#875 Responsive images support added
- v:media.image got 'srcset' attribute, which contains CSV or Traversable with image widths
- v:media.image got 'srcsetDefault' attribute, expected to contain default width, which should be used as fallback for non-srcset aware browsers
- v:media.picture - fully-functional implementation of picturefill
-
#825 v:page.resources.fal got 'slide', 'slideCollect' and 'slideCollectReverse' attributes, which enables page media to slide
- v:page.resources.fal
- As a bonus, SlideViewHelperTrait introduced
-
#884 v:media.gravatar and v:uri.gravatar ViewHelpers added
-
#945 v:variable.extensionConfiguration can fetch a subpart of extension configuration
- 'path' attribute introduced, which is responsible for this; contains TS-dotted path, like 'bar.baz'
- ❗ 'name' attribute became optional and deprecated
- 'name' and 'path' are both optional, but at least one of them must be set
- v:variable.extensionConfiguration
-
#883 v:resource.image returns an img-tag instead of an array, when no 'as' attribute provided
-
#861 All the menu ViewHelpers got 'forceAbsoluteUrl' attribute
- Forces menu items to contain absolute URLs
- Default:
FALSE
-
v:page.resources.fal respects overrides in page localizations
-
#921 v:page.header.canonical respects RealURL configuration
- ❗ Due to internal changes, attribute 'normalWhenNoLanguage' is not used anymore and deprecated
- v:page.header.canonical
-
v:format.tidy got 'encoding' attribute
- Sets string encoding for Tidy
- Default:
utf8
- v:format.tidy
- Source commit with more info
-
v:format.replace got 'caseSensitve' attribute
- Makes replacements case sensitive
- Default:
TRUE
- v:format.replace
-
#847 All the menu ViewHelpers got rid of hardcoded backup values
- This allows to use any variable names in 'as' and 'rootLineAs' attributes
-
#879 All the menu ViewHelpers respect empty values in page translations
-
#763 All the menu ViewHelpers respect moved pages in workspaces
-
#854 v:page.languageMenu correctly detects TYPO3 version and provides appropriate path to flag-images
-
#871 v:page.languageMenu applies both: 'inactive' and 'current' classes, when this is a case
-
#858 Force closing tag (instead of self-closing), when no file specified (or found) for asset
-
#922 v:page.resources.fal loads resources of current page by default
-
#865 v:resource.image respects fully qualified URIs
- This VH can be used with external storages from now
- v:resource.image
-
#905 v:page.menu correctly calculates number of translated sub-pages
-
#915 v:media.image correctly define paths to images, when
config.absRefPrefix
contains sub-folder in path -
#939 v:resource.record.fal handles workspaces better
-
#898 All the menu ViewHelpers are aware of possible anonymous users, when checking access rights against pages, links to which they generate
- anonymous users are those, who doesn't have a concrete user object, but have group only, like is done in EXT:sfpipauth
-
#925 v:media.audio correctly handles audio-files with non-lowercase file extension
-
#934
PageSelectService
is instantiated viaGeneralUtility::makeInstance()
instead ofnew()
, making it possible to Xclass -
Bugfix to respect 'preload' argument of v:media.audio
-
#826 v:format.wordWrap added - breaks a 'subject' into strings with maximum size of 'limit' (default = 80) characters, breaking with 'break' (default = PHP_EOL) and concatenating them with 'glue' (default = PHP_EOL)
-
#819 v:format.eliminate got 'whitespaceBetweenHtmlTags' attribute, which makes VH to remove all spaces between HTML tags
-
#798 v:page.header.meta got 'property' attribute - used for open graph metadata
-
#799 v:iterator.filter got 'nullFilter' attribute - allows to filter NULL or empty values
-
v:or 'arguments' array also applies on 'alternative' text
- No important changes
-
❗ Legacy namespace support completely removed
- It is no longer possible to use any of VHS classes by their legacy names. Switch to the proper vendor and namespace.
-
Reusable Traits implemented to extend ViewHelper capabilities, as a replacement for ViewHelperUtility:
-
❗ Support of TYPO3 6.0 and 6.1 was dropped
-
❗ Minimum PHP requirement is now 5.4.0 due to the use of Traits
-
#734 ❗ v:format.url.sanitizeString changed
- Became deprecated - use v:format.sanitizeString instead
- Got 'customMap' attribute - allows to override built-in replacement mapping with custom one
- v:format.sanitizeString
-
❗ CompilableAsset concept removed
-
#735 Context ViewHelpers added: v:condition.context.isDevelopment, v:condition.context.isProduction, v:condition.context.isTesting and v:context.get
- v:condition.context.isDevelopment - returns TRUE if application context is 'Development' or a sub-context of it
- v:condition.context.isProduction - returns TRUE if application context is 'Production' or a sub-context of it
- v:condition.context.isTesting - returns TRUE if application context is 'Testing' or a sub-context of it
- v:context.get - returns the current application context which may include possible sub-contexts
- Note: these ViewHelpers will work on TYPO3 >= 6.2 only. Read more about contexts in TYPO3
-
#771 v:variable.extensionConfiguration added - reads extensions settings located in ext_conf_template.txt
-
#746 v:resource.language added - reads a language file and returns all the translations from it
-
#770 #773 v:media.youtube got more control attributes:
- 'hideControl' - hide player's control bar
- 'hideInfo' - hide player's info bar
- 'playlist' - comma separated list of video IDs to be played
- 'loop' - play the video in a loop
- 'start' - start playing after seconds
- 'end' - stop playing after seconds
- 'lightTheme' - use the player's light theme
- 'videoQuality' - set the player's video quality (hd1080,hd720,highres,large,medium,small)
- 'windowMode' - Set the Window-Mode of the player (transparent,opaque). This is necessary for z-index handling in IE10/11.
- v:media.youtube
-
#751 v:iterator.filter also accepts an array as 'filter' attribute; in case of array provided as filter, each value of 'subject' is compared with each value of 'filter'
-
#757 v:iterator.merge can be used in a chain
- suggested usage:
{abc -> v:iterator.merge(b: def)}
- v:iterator.merge
- suggested usage:
-
Contents of Fluid assets (asset's attribute fluid="TRUE") can be stored (or overridden) with TS 'content' property
- See commit message
- Check asset TS settings
-
#740 v:page.languageMenu got 'excludeQueryVars' attribute - set to comma-separate list of GET variables to exclude from generated link
-
v:debug got more intelligence in debugging ObjectAccessors - shows properties only accessible in Fluid
- Added support of TYPO3 7.x
-
#710 ❗ Asset's 'arguments' property is removed - use 'variables' instead
-
❗ MenuViewHelpers attribute 'useShortcutUid' default value was changed from TRUE to FALSE
-
#688 v:condition.type.isBoolean added
-
#697 v:format.removeXss added - accepts 'string' as argument and cleans it out from possible XSS
- Not included in VH reference, so please check commit
- #684 v:page.languageMenu got 'configuration' attribute - holds additional typoLink configuration
- No important changes
-
#681 v:tag added - generate dynamic HTML tag names without breaking XHTML validation and with nice features, like disabling empty attributes
- Check release notes to find out more about this VH
- v:tag
-
v:iterator.filter got 'invert' attribute - inverts the behavior of the ViewHelper, so the filtered element is removed from the array
-
❗ Asset's 'arguments' property is deprecated - use 'variables' instead
-
v:iterator.extract got 'single' attribute - returns the first value instead of always returning all values
- No important changes
-
#545 ❗ PHP namespaces support
- VHS now uses the FluidTYPO3\Vhs namespace which means you are advised to change all your Fluid namespace inclusions.
{namespace v=Tx_Vhs_ViewHelpers}
->{namespace v=FluidTYPO3\Vhs\ViewHelpers}
xmlns:v="http://fedext.net/ns/vhs/ViewHelpers"
->xmlns:v="http://typo3.org/ns/FluidTYPO3/Vhs/ViewHelpers"
- More info
-
#540 ❗ Deprecated ViewHelpers removed
- v:var namespace is now v:variable
- v:if namespace is now v:condition
- v:condition ViewHelper is removed (use v:if)
- all the ViewHelpers from v:condition namespace were reworked - check VHS reference page
- v:form.hasValidator is now v:condition.form.hasValidator
- v:form.required is now v:condition.form.isRequired
- all the client-information ViewHelpers: ..client.isBrowser, ..client.isMobile, ..client.isSystem removed
- v:if.condition - use v:if, it can do the same
- v:if.condition.extend - use v:if, it can do the same
- v:iterator.contains is now v:condition.iterator.contains
- v:page.content.footer is now v:page.footer
- v:page.content.get is now v:content.get
- v:page.content.render is now v:content.render
- v:page.siteUrl is now v:site.url
- v:var.isset is now v:condition.variable.isset
-
#643 ❗ ImageInfoViewHelpers attribute path renamed to src
-
❗ 'allowMoveToFooter' property renamed to 'movable' in asset definitions through TypoScript
- Check commit message for details
-
❗ 'showHidden' property is deprecated in MenuViewHelpers
-
Workspaces support in menus added
-
#534 v:content.info added - ViewHelper to access data of the current content element record
-
v:variable.register.get and v:variable.register.set added - allow to work with TSFE registers
-
v:media.audio added - renders HTML code to embed a HTML5 audio player
-
v:iterator.keys added - gets keys from an iterator
-
#578 v:resource.collection added - returns a TYPO3 collection (records or files)
-
#538 ImageViewHelpers got 'format' and 'quality' attributes
-
#629 ImageViewHelpers got 'maxW', 'maxH', 'minW', 'minH' attributes
-
#626 v:iterator.sort can now combine sort flags in 'sortFlags'
-
#634 ImageInfoViewHelpers support FAL now via new attributes: 'treatIdAsUid' and 'treatIdAsReference'
-
#635 v:iterator.chunk fills up missing chunks/elements with NULLs, when 'fixed' is TRUE
-
#641 v:iterator.chunk got 'preserveKeys' attribute
-
v:page.menu.browse got 'pageUid' attribute
-
#660 v:page.menu.browse got 'currentPageUid' attribute
-
#620 v:page.languageMenu got 'pageUid' attribute
-
ContentViewHelpers got 'sectionIndexOnly' attribute - allows to include content elements which are indicated as "Include in section index" in content attributes
-
#552 Mount points are supported in menus
-
vhs_main
andvhs_markdown
caching configurations added, so you may configure to use your own caching backend (e.g. Redis) instead of DB