Studio Hours - CMS - Recap - Community

Hey there! :wave:

On Wednesday 18th September, we were joined by the CMS team for a discussion about what they’re working on and their upcoming plans.

We also had the opportunity to put our questions to the community.

Here’s how things went :slight_smile:


We kicked things off with a preview into some of the upcoming features the CMS team are working on, along with their future plans.


First up, Auto Redirects for Dynamic Item Pages has begun rolling out. Previously, if you changed a URL Slug, the link would break unless you manually added a redirect. Now, when editing the slug of a dynamic item page, an automatic redirect will be created, ensuring that links shared via email, social media, or other platforms will remain functional. This feature currently works for new collections.


Permissions per Collection is also coming up - giving you the option to assign specific permissions to different roles when accessing the CMS. Previously, anyone with access to the CMS could view and edit any collection. With this new feature, you’ll be able to control who can read, edit or manage specific collections. This is particularly useful when dealing with sensitive information or when certain collections are irrelevant to specific users. Permissions are planned to be based on roles, and by default, all collections will be accessible to collaborators unless restricted manually.


Color binding is in the works which will allow you to bind colors from the CMS to elements like text, buttons, vector images and section backgrounds. You’ll be able to choose from a site’s theme colors or select custom colors.


And finally, the team’s future plans include integrating the CMS with Automations providing you more options to streamline CMS content. If you have a use case, we’d love to hear it! And AI content creation is also planned to speed up content generation - similar to what’s available in the Editor.


And now time for the questions and answers from the session :sunglasses:


How can I display CMS items in a random order?
It’s not currently supported out of the box, but can be achieved with custom code. That being said, the team is exploring the option and would love to hear about any cases you’ve need this before.


Is there a way to implement multi-level dynamic pages?
It’s possible to build this structure with ‘categories’ and ‘subcategories’. For example - ‘/animals’> ‘/animals/dogs’> ‘/animals/dogs/labrador’


How can I hide elements when CMS fields are empty?
At present, this requires code - often with a simple “if” statement.


Can I use Google Maps with CMS content, such as dynamic addresses?
Yes, you can connect Google Maps to CMS. It’s worth taking into consideration that Addresses need to be formatted in the correct Address Object format. The best way to achieve this is using one of the auto-suggested addresses when inputting your address in a CMS address field.


Are there options for scheduling content to appear at specific times, such as weekly recurring schedules?
Current options are more linear, with the option to schedule the day it is published, rather than a recurring schedule.


Is it possible to customize layouts for specific dynamic pages in the CMS?
A workaround for this would be to create different categories and types of content for each layout and then ‘route’ users to the correct page according to the layout you want to show.


How can I manage tooltips or alt text on CMS images that don’t have content?
One method is to bind the tooltip to a blank field in the CMS, which will prevent any text from appearing. Alternatively, you can use this line of code and swap your imageID to hide the tooltip entirely:

$w(“#imageID”).tooltip = “”


If you have any questions about CMS, ask them here. And keep an eye out for our next Studio Hours on the Studio Events page.

5 Likes

This is LIT! How did I miss this @noahlovell

1 Like

For the CMS team some feed back.

Firstly really looking forward to the granular control over the CMS.

@noahlovell Please let me know if I should post these use cases elsewhere.

I have a slideshow gallery linked to listed to a set of images in a CMS.
The gallery acts as a background for section.
The images change with a fade out and fade in as expected but they are always in the same order. It would be much better if they were random and never repeating the same image straight after it just displayed.

I have written code to randomise a version of this. It works well but is a hack where I have to do a lot of showing and hiding with black overlays etc to get it to look right.
It is can still be glitchy when doing a transition.

Ideally, we would be able to randomise the images linked to the gallery from the CMS.
This would allow the slide show to just deal with its job of fading in and out images but in a random order. in the CMS we would have a new sort option random.

This leads me to my other use case which would possible tie into how the random sort would work.

At the moment, when changes are made to in a CMS that is link. The only people who see the updates are people freshly loading the page or reloading the page.

To get live changes to the currently loaded page, we have to use web hooks.
The coding is simple enough once you have it setup but this really should be part of the CMS framework behind the scenes and not for the developer to write any code, unless it is to override the live update with custom code and behaviours.

Again for CMS.
It would be great to have an entry to have a start showing date/time and a expiry date where it is removed or archived and is not show in the linked element on the page.

Use case:
I have a CMS that lists special events (not wix events) that are linked to a repeater.

I only want an event to show in the repeater if it is within the current date and through to future dates. Any stale dates should not show.

I also have the current days event if there is one show a highlighted text ‘On Today’

There is no current way to test a start date or expiry date in the CMS.

To achieve this, I have to used code to check an extra date field in the CMS against the current date. move stale entries to a backup CMS and update a ‘Today’ field to Today if and entry is today and fire this with cron jobs, this is also then linked to web hooks to watch for changes etc.

A lot of coding all over the place.

1 Like