0 Comments // Reading Time: 3 min.
Today we released version 2.0.0 of our TypoScript plugin. This update brings some great new features and improves the stability a lot. The most important features are described below. Thanks to all of you who are reporting bugs in our Gitlab issue tracker!
To improve the user experience for new and regulars we uploaded the commercial TypoScript plugin to the Jetbrains Plugin Repository. So in the future all users can update the plugin directly in the PhpStorm and getting informed if an update was released. So you will never have outdated plugins anymore, if you've a valid license of this plugin, but even if you don't have a license key, you can test some features with the integrated demo version. Once you bought a key, you can use all versions of this plugin, until your chosen subscription period ends. So you don't need to buy a new license key every year. Just if you want the newest features and improvements.
In this update, we directly implemented the new syntax of TYPO3 9. One of these is the new @import syntax to include files. This will replace the opaque INCLUDE_TYPOSCRIPT syntax, currently both are integrated, so that you can slowly change to the new way. A video for this can be found at the end of this blog article.
Furthermore, the file extensions .typoscript and .tsconfig have been added, which will hopefully replace all other file extensions and names in the future.
Last but not least, we are supporting the symfony expression syntax for the TypoScript conditions with basic functionality. More features, such as auto completion, will be added in further updates. Here is a little code sample for this new feature:
[page["uid"] in 18..45] # This condition matches if current page uid is between 18 and 45 [END] [userId in [1,5,7]] # This condition matches if current logged in user has the uid 1, 5 or 7 [END] [not ("foo" matches "/bar/")] # This condition does match if "foo" **not** matches the regExp: `/bar/` [END] [applicationContext == "Production"] && [userId == 15] && [globalVar('TSFE:id') == 125] # This condition match if application context is "Production" AND logged in user has the uid 15 AND current page is 125 # This condition could also be combined in one condition: # [applicationContext("Production") && userId == 15 && globalVar('TSFE:id') == 125] [END] [request.getNormalizedParams().getHttpHost() == 'typo3.org'] # This condition matches if current hostname is typo3.org [END] [like(request.getNormalizedParams().getHttpHost(), "*.devbox.local")] # This condition matches if current hostname is any subdomain of devbox.local [END] [request.getNormalizedParams().isHttps() == false] # This condition matches if current request is **not** https [END]
- [FEATURE] It's possible to jump directly to the PHP class, if a valid namespace is used, also working for user functions.
- [FEATURE] Allows the usage of relative file paths in the TypoScript Include syntax.
- [FEATURE] Improvement of the auto completion of the TypoScript Include syntax.
- [FEATURE] Adds the new TYPO3 9 syntax, like @import and the Symfony Expression Syntax.
- [FEATURE] Improvement of the overall performance.
- [TASK] Update of the tsref.xml.
- [TASK] Improvement of the license dialog for more usability and easier updating.
- [TASK] Improvement of the MAC user experience for older versions.
- [TASK] Better messages and dialogs.
- [BUGFIX] The auto documentation wasn't working in some cases.
- [BUGFIX] Resolvement of some exceptions, which occur during the indexing and while the auto completion.
- [BUGFIX] Sometimes an exception is thrown, if two or more projects do indexing at the same time.