-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decoupling Output #36
base: master
Are you sure you want to change the base?
Conversation
I have been waiting to hear more about this proposal - guess I will have to wait a bit more to hear about concrete ideas for this. In the absence of those these are some unfiltered thoughts that have gone through my head in recent days
Why Bother.Instead of solving the pain and following a non-disruptive mode of development this theoretical proposal actually does the opposite. Whereas I was able to update my j3 site with a custom template of my own to j4 with almost no effort (maybe I was lucky) the same would not be true here. I am not saying there is no problem to resolve. We absolutely can reduce to near zero the dependence of core with any frontend library. A good start was made for this with j4. Why wasn;t it done completely? Time, Time, Time and more time. |
@brianteeman couple of things:
This was impossible (or extremely hard) without CSS Variables, but that's not the case anymore! All you need is a design system and a set of defined global CSS Variables. Also everything regarding to the past cases are erased simply because the W3C Platform now has the APIs needed which wasn't the case for many years. On top of that, |
css variables has nothing to do with html markup |
Well, it has, in the sense that with |
Keep dreaming |
I prefer to keep myself educated on the current state of the platform, but also dreaming is a good option |
I support this RFC with a few buts:
The goal of this in the end is to not force site owners to do an extensive refactoring when we release a new major version, just because we switched (the version of) our CSS framework. |
Until someone can find a solution that does not break every single joomla 4 web site that is using even a single template override then this is just a pipedream. |
The technical solution isn't that difficult, I would even say "trivial". The problem is a lot more organisational. See your 1. and my 2. for the big issue. |
and I would say it is "impossible" rather than "trivial" |
We are moving all extension layouts into a template override folder and instead of loading from the extensions folder, our classes load from that folder. If a template has a layout override, that file takes precedence in the file search. All of that is pretty similar to what we have right now. Default to the BS5 layouts unless otherwise stated and you are done. Add a fallback to the extensions folder for legacy extensions and that part is covered as well. The minimum changes necessary for the core are probably 20 lines of code and existing extensions will keep on working the same way they did before. |
And that is what will break every existing template override |
Why should that break any existing template override? |
I mean, you aren't using absolute paths in your code, are you? Otherwise it is just one more path the respective method is searching for the right layout. |
As soon as you do that you have broken the connection between the existing override and the core. Resulting in at a minimum a failure for the override check to be useful. Anyway it is all mute as we have already shown that we do not have the capacity to maintain this in the long term. I see nothing in either the community or the code that would change that. All it will end up being will be a change in physical file location for no purpose or benefit. |
…ng-output # Conflicts: # proposed/decoupling-output-meta.md
Please continue discussions here: joomla/joomla-cms#39464 |
1. Summary
The separation of the visual preparation and presentation of the content from its management is what we call
decoupling of the output.
The aim of this specification is to decouple the output layer from the core of the CMS so that necessary changes to the
CMS code require as few changes as possible to the templates and their overrides.
2. Why Bother?
Every major version so far has stirred up resentment among users because not only programme code but also templates,
layouts and overrides had to be revised. If we succeed in reducing the points of contact between the CMS core and the
actual views to interfaces, not only will the adaptation effort for templates, layouts and overrides be considerably
less, it will even be possible to offer output layers with completely different frontend libraries than before.
The solution developed here is to be incorporated into Joomla 5.