Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Widgets /

Discuss SilverStripe Widgets.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Widget theming - new & improved in version 2.3

Go to End

2 Posts   2173 Views


Community Member, 712 Posts

17 December 2008 at 8:28am

Edited: 17/12/2008 8:29am

Hi all,

A new innovation in version 2.3 (in RC2 now) has particular benefits to Widget developers.

You can now set themed CSS requirements from within a template with the tag:

<% require themedCSS(MyCssFile) %>

Why is this so great?

To style your widget in previous versions you had to call Requirements::themedCSS. This had to happen from somewhere in the Widget class when a piece of viewable data was requested. Since you never know if some designer is going to modify your widget template, you really should have been calling this for every field.

Now you can just place that tag at the beginning of your Widget template (.SS) file and let SilverStripe do the hard work! It saves you time and should execute quicker.



Community Member, 473 Posts

17 December 2008 at 5:55pm

You could put the Requirements call in WidgetHolder, then return parent::WidgetHolder() (return nothing from the method and the widget wont display, handy for admin only widgets), which would get called when it gets rendered.

But this is far better, and less confusing, way to add in Requirements. If I recall correctly, you can do the same with <% require javascript(file) %>, thus ensuring that all your JS is included in the correct order, without overriding WidgetHolder().