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.

Widgets

Discuss SilverStripe Widgets.

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

Widgets on a Page


Reply

2 Posts   618 Views

Avatar
merrick_sd

5 February 2013 at 1:55am (Last edited: 5 February 2013 1:58am), Community Member, 95 Posts

How can i tell if a Page has 'any' widgets?

If a page has a widget the page will need a sidebar.

page.php

   public static $has_one = array(
   "MyWidgets" => "WidgetArea"      
   );

Layout >Page.ss

<% if MyWidgets %>
<!-- Widgets -->
$MyWidgets   
<!-- endWidgets -->
<% else %>
<!-- NO Widgets -->
$MyWidgets   

<% end_if %>

result
On pages without widgets, no widgets show up as expected ...however the "if MyWidgets" isn't actually working! as the comment <!-- Widgets --> Always get rendered.

maybe i need a fuction on Page.phpto do some kind of check.

i want to do something like
if widges show a menu <span class="span3"> ..etc

Avatar
merrick_sd

5 February 2013 at 2:42am (Last edited: 5 February 2013 2:42am), Community Member, 95 Posts

Page_Controller ...
//check if this page has widgets assigned to it!
   public function WidgetCheck() {
   $widgetid = $this->MyWidgetsID;
   $widgetdata = Widget::get()->filter(array('ParentID' => $widgetid));
   
      return $widgetdata;
   
   }


this works