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've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Content Editor Discussions /

Forum for content editors and CMS users.

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

Demo CMS template layout


Go to End


3 Posts   2671 Views

Avatar
Mavic

Community Member, 5 Posts

3 May 2010 at 1:34pm

Edited: 03/05/2010 2:00pm

Hi Guys,

How do I set up a page in the CMS like the CMS demo home page with four separate content areas each one editable in the CMS?

There will obviously need to be some template changes to accommodate this too.

Cheers Jeff

Avatar
Willr

Forum Moderator, 5523 Posts

3 May 2010 at 9:04pm

Have a read of tutorial 2 for an explanation on how to add fields to the cms and templates. The PHP code for demo looks something like this for reference

<?php

class HomePage extends Page {
	static $db = array(
		"LeftBoxTxt" => "HTMLText",
		"MiddleBoxTxt" => "HTMLText",		
		"RightBoxTxt" => "HTMLText"
);

	static $has_one = array(
		'LeftBoxImg' => 'Image',
		'MiddleBoxImg' => 'Image',
		'RightBoxImg' => 'Image'
);
	
	function getCMSFields() {
		$fields = parent::getCMSFields();
		
		$fields->addFieldToTab("Root.Content.Main", new HTMLEditorField("LeftBoxTxt","Left box text"));
		$fields->addFieldToTab("Root.Content.Main", new ImageField('LeftBoxImg', 'Left Image'));
		
		$fields->addFieldToTab("Root.Content.Main", new HTMLEditorField('MiddleBoxTxt','Middle box text'));
		$fields->addFieldToTab("Root.Content.Main", new ImageField('MiddleBoxImg', 'Middle Image'));
		
		$fields->addFieldToTab("Root.Content.Main", new HTMLEditorField('RightBoxTxt','Right box text'));
		$fields->addFieldToTab("Root.Content.Main", new ImageField('RightBoxImg', 'Right Image'));
		
		return $fields;
	}

	// ....

And then in the template just standard $RightBoxTxt etc for each element. If your new to SilverStripe that above code will look overwhelming so I encourage you read the tutorial first.

Avatar
Mavic

Community Member, 5 Posts

4 May 2010 at 6:32am

Edited: 04/05/2010 7:01am

Hey Willr,

Thanks very much for this, I'm OK with the PHP, but I am new to SilverStripe and keen to develop some templates.

This info is perfect and will get me going in the right direction.

Cheers Jeff