YOOtheme Pro Dynamic Content, and our Advanced Sources, are one of the most flexible and powerful features available when building a project. But as soon as you start using them more, you quickly realize that they are still limited in several ways.
For example, as we often hear our customers say: "It's not possible to conditionally filter a list based on another dynamic value, e.g. the Current User or the Current Date". We had to implement our own solutions for the CSV and Database sources, but what about Articles, Posts, or any other 3rd party source... This should be part of the dynamic workflow!
Another example is how each "node" (the section, the elements, etc) can be bound to just one content source. Wouldn't it be cool if each field could be bound to different sources, or even inherit a source present in a "parent" node?
We have been working on an Advanced Dynamic Content workflow for some time now to solve all the mentioned limitations, and we are so excited to share it with you all. Introducing our new addon, Dynamic!
It is one of the most complex Addons we have worked on since Forms and Sources and we believe it will bring even more value to the YOOtheme Pro ecosystem. It's simply beautiful and it is safe to try, as it enhances the workflow without making any permanent change, it can be disabled at any given time.
Displaying content from different sources into a single element is a very common need, and the current limitations force many to create custom elements or use other workarounds. The Advanced Dynamic Content solves that by taking a per-field source approach where each field can set its own source. Instead of setting a global source Site in the element and limiting its scope to it, you would simply set the source in the field without affecting the rest of the workflow.
In the case of a multi-item query set on a field, you will be able to choose if the results will be joined with a glue string before or after the field filters, or leave the value raw and allow the underlying element or workflow to take over.
Yet, having a per-node source option, the one set on an element scope, is useful and necessary for multi-item content where an instance of the element is repeated for each item. In such case the Advanced Dynamic workflow allows the field to set its custom source or inherit the node one instead. It's the best of both worlds!
With the inheritance workflow in place, we went a step further and made it possible for a field to not only inherit the source from the current node but also the closest one. By closest, we mean either the parent node, the parent transient node (in a multi-item configuration, like a list or a gallery), or the closest source set in a column or section.
So far, our Access and Sources addons had a unique feature that allowed them to use Dynamic Content in their evaluation. This is an amazing feature but limited by the per-node source approach. For example, you could have set a condition for an element to be displayed on a specific date range, but you could not set the evaluation value to be the item's created date.
With Dynamic Addon and the per-field inheritance feature, this limitation is gone, and best of all, this applies to all systems: core, custom, or 3rd party sources. It's the Dynamic Conditions we were all hoping for!
We hope you are following so far, as there is more! Introducing: Global Queries.
Global Queries are preset queries available on a global scale that you could set on a field or node; the query is evaluated on the fly which would make immediately effective any change you made on all layouts.
For example, you could create a custom query to list the "Top Selling Books", and reuse this query in several different layouts, without the need to reconfigure each time. Need to change that query slightly for all the pages? No problem! Just change the global query once, and you're done!
Additions worth mentioning from Essentials v1.6 last releases.
If you are already an Essential subscriber and/or if you want to know more about Dynamic, check it out. We cannot wait to see what you are going to make with it!