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.

Customising the CMS /

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

Multiple Sidebar and Footer


Go to End
Reply


3 Posts   1070 Views

Avatar
hunman

Community Member, 18 Posts

27 September 2010 at 1:12am

Hi,

I need two sidebars, one on left and other on right in my template , also a footer bar in the bottom. I want to populate content in these sidebars and footer from the back-end only but not manually.

Which is the best way to achieve this functionality ??? Please Help

Regards,

Kumar

Avatar
Martijn

Community Member, 271 Posts

27 September 2010 at 2:38am

Edited: 27/09/2010 2:39am

Have you tried this?

http://www.ssbits.com/create-a-static-sidebar/

This method describes how to use a PageType to manage a single Sidebar thats the same across all pages..

You can also use widgets to populate sidebars with pieces of custom content.

An other way is to create a DataObject subclass and manage these with ModelAdmin. You can give these DataObjects a position field to decide where the DataObjects need to be shown.

Simple example (not tested):

class ContentBlock extends DataObject{
  static $db = array(
    'Title' = 'Varchar(255)',
    'Content' = 'HTMLText'
    'Position' = "'Left, Right, Top', 'Top'"
  );
}

in Page.php you create a method to get the ContentBlocks:

function ContentBlocks($position = ''){
  if($position){
    return DataObject::get('ContentBlock', "Position='".$position."'");
  }
}

In your template:

<% if ContentBlocks(Left) %>
  <div id="ContentLeft">
  <% control ContentBlocks(Left) %>
    <div class="contentblock">
      <h3>$Title</h3>
      $Content
    </div>
  <% end_control%>
  </div>
<% end_if %>

This does not cover the ordering of the contentblocks, but this should get you started.
You can use DataObjectManager for example, to manage the ContentBlock DataObjects and add $sortable_class to the DataObject.

Further reading:
http://doc.silverstripe.org/dataobject
http://doc.silverstripe.org/modeladmin
http://doc.silverstripe.org/modules:dataobjectmanager

BTW: You don't need double posting here ;)
http://silverstripe.org/template-questions/show/292757#post292757

Hope this helps.

Avatar
hunman

Community Member, 18 Posts

27 September 2010 at 4:18pm

Hi Martijn,

Thank you for your post, I think this will help me to achieve my task.

Also I think the content order can be achieved by including another field say "order" and fetching the records based on this order.