Calendar Module: Include Header and Footer Section/Templates (and/or Allow Nesting of Widgets in Embedded Module)


#1

Introduction

The Calendar module allows you to put HTML code in templates that gets displayed for each calendar item. I also need to add HTML elements that get displayed once on the whole widget.

User Story

I’ve been using XIbo for years to display the current day’s courses and which classroom(s) the course is in at our Training Center. We have just changed where our scheduling information resides, from an MSSQL-based application to a calendar on Exchange. So I’ve published the calendar via WebDAV and have tapped into it with a calendar widget. That part is working successfully.

We like to have one list of all of today’s courses in the region, with a site map to one side, and possibly some heading content. However, I can’t split this into two regions, because other content in this region needs to span the entire width of the display. Essentially, I could really use the ability to have the region display some HTML in a format like this:
[Header Code - displays once in the region]
[Calendar Entry Code - displays once per calendar entry]
[Footer Code - displays once in the region]

I’d like to define and open a table with two columns: In the first, I’d put my map image. I’d nest a table in the second column, and have the repeating HTML code that currently is in the Main template be just a <tr> section. Currently the entire table code repeats for each calendar entry.

I tried to see if there was a way to nest a widget inside an embedded widget, but didn’t find any directions or examples.

Is there currently some way to do this? I’ve worked myself close to blind searching for how this would be done.

It doesn’t matter to me if this is done within the Calendar module, adding some kind of header and footer sections for non-repeating HTML, or if this is accomplished with an embedded widget that could have some code to reference the calendar widget or a playlist with the calendar widget in it.


For the dev team to fill in:

Status

The current status and the username of the:

  • Reporter
  • Drafter
  • Implementer

Implementation

A broad description of the changes required.

Effected Software

Which parts of Xibo are effected

DB Schema Changes

Any necessary DB Schema Changes


#2

Is there a reason you can’t have a layout with the multiple regions you want to hold your header content, map and calendar content, and then another layout with your full screen content?

You can either schedule both layouts to run at the same time, and they’ll be shown in fair rotation, or you can put both layouts in to a campaign and schedule that as you would any other layout.


#3

Thank you for your reply, @alex. That may be a possible work-around.

Here are some reasons I consider it a work-around and not ideal:

  • The regions I described above comprise the top ~70% of the layout. I have six other regions in the bottom ~30%, with widely varying timing. This top section has four parts to its timing: A 21-second welcome flash sequence, 40 seconds on the calendar, a picture that displays for 5 seconds, and then 40 more seconds on the calendar. One of the other regions, for example, consists of a 90-second RSS ticker. Am I correct in thinking that a layout would have to entirely play out before switching to the next layout? If so, requiring this time sequence to dictate the timing of the other regions would be quite limiting.

  • Since there are four elements to this sequence, alternating as combined, split, combined, split, for the top region(s), I would be managing four layouts and possibly a campaign in a schedule, as opposed to simply having one default layout for the display. This significantly increases the complexity.

If I am running off of some misconceptions, I apologize and ask for your help in better understanding my present options.

Thanks again.


#4

You’re right that each layout would have to play out completely before switching to the next, but you can composite layouts on top of eachother with overlays, so if your ticker is the issue, you can put that on an overlay layout, and have the two layouts below switch without interrupting the ticker.

You categorically should not be using the default layout to show your content. The default layout is what is shown in an error condition, or if there’s nothing else to show. If you use it for your content, then you leave the Player nothing else to show.

The default layout should be a simple layout, perhaps just a logo. Your content should always be scheduled.

In the worst case, you’d have a campaign with your two layouts in it, and an Always schedule putting that on the display.