Open Source developer, expert PHP freelancer, founder of the Fluid Powered TYPO3 extension suite, admirer of logic and reason - and death metal aficionado.
Hello
#TYPO3
!
@busynoggin
and I have something special for you today - heavily inspired Fluid 3.0's ability to declare parameters (arguments) for any Fluid template or section, I present to you a little package that lets you do that in any current project:
@DarshunKendrick
Urgh... if you apply that "logic" to your work as an attorney I am seriously afraid for your clients' well being. "If you have to tell people you're NOT guilty, changes are... you're guilty".
This "logic" is so faulty that it's hard to believe any sane person would attempt it.
@LeoKearse
Reaching. And failing. It’s a stuffed octopus, and you’re clearly imagining something that just isn’t there. Time to get off Twitter for a bit?
Hello
#TYPO3
. Just wanted to say I finished my proof of concept for this part as well, core-native "grid elements" feature, minus FE implementation which I hope to complete tomorrow (will likely be a DataProcessor and a delegate for use in controllers). Some illustrations:
And when I'm done with that I'm making it possible to resolve a nested BackendLayout by passing a content record. If all goes well this becomes a nested content grids feature for next TYPO3 version - fully capable of supporting third party solutions, with a clean API.
Here you go,
#TYPO3
- a much improved debug for Fluid:
* Debug with JS console, no output
* Pass-through variables, can be wrapped/chained anywhere
* Has xdebug breakpoint support
* Dumps also virtual getter-accessible values
* App Context sensitive
Hello
#TYPO3
. I’ll be in charge of merging fixes and features for your Fluid, performance and caching needs. Basically this means I’ll be the main person helping you if you make contributions to those areas.
Proud to join this team of dedicated people!
Update:
#TYPO3
Fluid 3.0 is very nearly done. It is more or less a redesign from the ground up. The code base is significantly smaller - 11,000 lines of code have been removed. Another 6,500 lines have been changed. Ditching PCRE has very much revolutionised it.
Hello
#TYPO3
. Just wanted to say I finished my proof of concept for this part as well, core-native "grid elements" feature, minus FE implementation which I hope to complete tomorrow (will likely be a DataProcessor and a delegate for use in controllers). Some illustrations:
@NHJespersen
Overså du den ret væsentlige detalje, at standard influenza hvert år slår flere ihjel, uden det får os til at lukke hele samfundet ned i panik? Eller er dit ærinde blot at forsvare den absurd skadelige og totalt uproportionelle panik-nedlukning, som din kære leder påførte os?
Time flies when you're having fun.
It has been almost 5 years since I extracted
#TYPO3
Fluid to a library shared by both
#TYPO3
and
#NeosCMS
/Flow, as well as used independently. I hope everyone is happy with the progress :)
With thanks to my co-maintaners and all contributors!
Excellent news,
#TYPO3
! The three 2019 budget applications I submitted have all been approved. This means that:
* There will be a Fluid 3.0 workshop in DK! Yay!
* And an attempt that TER becoming a Packagist/composer proxy.
* And some days for TYPO3 experiments. I have PLANS!
That's all, folks! Hard work, coming up with 24 unique tips, and making sure one was ready each day - but I'm glad I did it. Not sure I'll be doing it again next year though, but you never know! Have a merry Christmas and safe new year and thank you for reading!
#TYPO3
#Fluid24
@jordanbpeterson
Lack of anonymity does not prevent sadism. While removing anonymity *may* (and I stress MAY) reduce sadism, it also punishes every non-sadistic user who requires anonymity to avoid repercussions (including human rights abuses from governments).
#TYPO3
#Fluid24
Day 10: In TYPO3
#CMS
, a global array of default Fluid namespaces exists and can be used to make your namespace available in any template without importing it; or to change/extend the Fluid namespaces the TYPO3 core adds.
It is decided. I'll be tweeting a Christmas calendar of
#TYPO3
Fluid (and CMS) pro-tips. Tweets will use
#TYPO3
and
#Fluid24
hash tags. Take one per day and jingle all the way - stay tuned from tomorrow!
#TYPO3
#Fluid24
Day 1: Starting with a small and easy example - Fluid can assign variables in a couple of handy ways. Useful among other things to reduce duplicate identical ViewHelper calls or defining variables before passing to f:render.
Thanks to the following ppl in
#TYPO3
for their work in 2017:
@bennimack
and
@lolli42
for being tirelessly active in development.
Riccardo De Contardi for being the forge issue terminator.
@mattLefaux
for doing more than I realised to move TYPO3 forward.
And *everyone* else!
72 commits, 27k changed lines, 10k fewer lines total and zero items left on TODO list -
#TYPO3
Fluid 3.0 is ready for beta. A small demonstration repository will be created next.
#TYPO3
#Fluid24
Day 15: I've been looking forward to sharing this one most of them all. You can use "contentAs" on f:render to render the tag content and pass it as a variable. You can even nest f:render inside f:render to make both wrap and body render from partials/sections.
#TYPO3
#Fluid24
Day 3: Fluid has a parsing modifier which can disable Fluid's parser in one template file, even if you use f:render to render the template. Useful when including for example Mustache or namespaced XML template chunks.
Currently tearing the 2069 lines internal-API
#TYPO3
PageLayoutView into bits and pieces, then welding the pieces back together into smaller, purpose-specific units with BackendLayout as the public API for it all.
This ancient thing is terribly dusty and need to be cleaned.
Oh right! It's that time of year again.
If I counted it right, this month marks my 11th year of involvement with
#TYPO3
. No regrets!
11 years of making things better. 11 years of making a living doing free software. 11 years full of great people.
Achievement unlocked: replace
#TYPO3
Fluid's regular expressions with ASCII sequencing voodoo that has no stack recursion, doesn't care about escaping of inline syntax and correctly ignores JS/CSS.
And is smaller and faster than the regular expressions. Productive week so far.
@stillgray
Four of those five died by wand, two were killed because of a wand, and the last one killed(?) at least two baddies with one. Loving the irony, it couldn't be more complete.
#TYPO3
#Fluid24
Day 2: Fluid can do simple math operations, making it easier to create things like progress status (or bars) based on raw input numbers.
#TYPO3
#Fluid24
Day 14: Fluid has "if" and "else" behaviors, but it also does "else-if" which can be used to add a condition to an "else" node, making Fluid continue evaluating until an "else" is matched or a final "else" without condition is found.
#TYPO3
#Fluid24
Day 24: Merry Christmas! By popular demand, the final tip is a strategy that combines several other tips, with the goal of avoiding escaping of quotes in Fluid. I’ll write a bit in this thread about the benefits of using that kind of strategy in your templates.
#TYPO3
#Fluid24
Day 4: There are two main ways you can render default output when an optional section or partial (or section in partial) is not found. Particularly useful when you render sections with a dynamic name coming from a variable.
Hey
#TYPO3
- it finally happened:
Flux v10.0.0 is released!
It features TYPO3v12 compatibility, drops support for TYPO3v8 and v9 - and contains an absolute heap of bug fixes.
This version is a breaking major release, including removals of code/features. An info thread.
Ahoy
#TYPO3
! The VHS extension has been updated to version 6.0.0. Being a new major version, it contains a couple of breaking changes - namely the removal of some deprecated classes (for which core-native alternatives now exist). Changelog can be found at
Hello
#TYPO3
developers! Fluid 3.0 is coming closer and we are having a workshop in Denmark to focus on type strictness, parameterised templates and more. If you’d like to help, and learn and influence how Fluid works in the next version, then apply now!
That's all, folks! Shut down, work-wise, until 2019. Time to recharge the battery that's been running overtime. Maybe even leave Twitter alone for a week.
From me to all of you: have a merry Christmas and a happy new year! See you on the other side :)
On a final note, the current state of Fluid 3.0 has no cache - the new engine performs so well that (at least with my use cases) caching is no longer required. The engine is so optimised that it even outperforms unserialize() - parsing is faster than unserializing a stored tree.
Sneak peek at the
#TYPO3
Fluid 3.0 demo repository - it’s complete, but may be subject to some changes. Thinking about doing a ~30min live stream on Monday to go through the new features! Feedback is welcome, as it always is.
#TYPO3
#Fluid24
Day 13: It makes sense to use f:section and render it instead to reduce duplication. But it can also make sense to assign the output to a variable and use the variable instead, when the output is always the same. Combine this with previous f:render tips for bonus!
PSA: Flux, VHS and indeed all FluidTYPO3
#TYPO3
extensions will continue to be free, as in free beer and free speech. Your donations are not required but are of course always appreciated (and may help to push development and releases to happen quicker)!
10.4 LTS relases pending.
#TYPO3
#Fluid24
Day 9: You can render sections and partials with dynamic names and make it optional, to create different representations for objects that can have multiple types. When used with partials it is a lot easier to customise than a big template with switch/conditions!
Hey there
#TYPO3
! I’ve released three new versions for you:
* VHS version 5.2.0
* Flux version 9.2.0
* Fluidpages version 5.0.0
100% guaranteed April’s fool joke free.
#TYPO3
#Fluid24
Day 22: There are several ways you can import and ignore namespaces in Fluid, each one has different meaning. Ignoring is particularly useful when your template is XML, or when embedding SVG. Not shown: also possible in PHP via RenderingContext/ViewHelperResolver.
The next major version of
#TYPO3
Fluid is a serious improvement for syntax handling, away from regular expressions. Here's a sample of syntax that will be completely valid (pass array as inline child, array improvements, and much more). Will keep updating:
#TYPO3
#Fluid24
Day 12: ViewHelper namespaces can be overlaid by importing to the same namespace alias multiple times. This can be used to merge namespaces or to select ViewHelper overrides from another package; on a per-template or global basis. See also Day 10, works the same!
#TYPO3
Fluid workshop is in the bag. Lots of work done to replace regular expressions, add type strictness, clean up legacy code and doc comments, create a documentation entry point and structure - and share all the good ideas about Fluid. More to do still, but there always is :)
#TYPO3
#Fluid24
Day 17: Tag-based ViewHelpers can support two ways of passing "data-" prefixed attributes. One is ideal for receiving such attributes from an external array. The other is much easier to write. Both can be combined, making one behave like fallbacks/defaults.
I've released version 2.6.0 of the
#TYPO3
Fluid rendering engine. It contains some pretty significant new features:
* Pipe instead of -> as in {var | v:h()}
* Inline arguments can be written 100% same as tag attributes
* Inline VH: {fluid -> f:inline()}
#TYPO3
#Fluid24
Day 11: You can use f:or to assign default/fallback values for variables. This can save you from having conditions in the template parts that contain the actual output of variables. Note that a fallback value is only assigned if the variable is precisely NULL!
#TYPO3
#Fluid24
Day 6: Fluid supports ternary conditions using variables and simple numbers; but only using variables and simple numbers - e.g. no inline syntax or text. For that, use a normal condition instead.
I didn't forget about
#t3kudos
!
* 2x Patreon for
@cedricziel
because I use his PHPStorm plugin literally every day.
* 2x Patreon for
@ervaude
because his blog is still under-appreciated.
* But waiting for
@helhum
to post amazon Christmas wish list... ;)
I’ve sent three
#TYPO3
budget ideas that I hope all get picked up:
1. A small “Fluid 3.0” dev workshop here in Denmark
2. Funds for server team to put TER to sleep and find a new, shiny, git-tag-based way.
3. “Mad Scientist Week Fund” so I can do/continue some crazy experiments.
Are we an open source community or a company which sells access to documentation and promotion materials and requires you to pay in order to be listed?
You can all see how I can get confused about this, right?
Version 5.1.1 of the VHS extension for
#TYPO3
has been released with fixes mainly for TYPO3 9.5 compatibility. Thumbs up to contributors old and new who did almost all the work, I only created a single patch for this version :)
Milestone for
#TYPO3
VHS extension - 250,000 downloads reached, from Packagist (166,000) and TER (85,000).
Big thanks for those 100+ people who have helped improve it over the years!
…and it makes me very happy that so many people find it useful :)
All of the three budget ideas I sent to
#TYPO3
have reached enough approval to be included in budget decisions. Thank you everyone who voted!
Now I just have to find who did the "Content Strategy/Builder Tool in TYPO3" because I've half done that one already.
First: escaping quotes in inline syntax is no longer necessary. There are no restrictions on how many sets of quoted strings you can nest without a single escape. No more counting backslashes!
Here you go,
#TYPO3
! I’m slightly inebriated and it’s Friday 19:35. Perfect time to release an extension: meet “progressor”. Progress bars for slow/long tasks, shown in the backend header. Supports QueryBuilder for “pending” records to monitor DB queues.
#TYPO3
#Fluid24
Day 8: You can disable HTML entity escaping for an entire file, when you've sanitised all values beforehand or you render formats where potentially unsafe HTML tags is not a concern. Use it to avoid spamming f:format.raw but be careful about when/where you use it!
Alright, let me get in on this home-office exhibitionism trend in
#VisMigDitHjemmekontor
. Debugging tools on screen, heavy-duty debugging tools on wall, heavier-duty death metal on speakers. For debugging.