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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

Problem with displaying multiple content blocks


Go to End


2 Posts   2018 Views

Avatar
MartinM

Community Member, 6 Posts

14 May 2009 at 1:57am

Edited: 14/05/2009 1:57am

Hi,

I love to use Silverstripe for small projects. This backend is so easy to use, that none of my customers had ever any problems using it. :)

But now I´m working on a bigger website with multiple content blocks. So I followed the Extending a basic site tutorial, but something doesn´t work properly.

Since I want pages with content blocks, I made a new file under /mysite/code named BlockPage.php:

<?php

class BlockPage extends Page {
	
	static $db = array(
   '2ndRowLeft' => 'HTMLText',
   '2ndRowRight' => 'HTMLText'
);
	
	static $has_one = array(
	);
	
		/**
	* Additional Content Blocks
	*/
	function getCMSFields() {
   $fields = parent::getCMSFields(); 
   
   $fields->addFieldToTab('Root.Content.Main', new HTMLEditorField('2ndRowLeft'), 'Content');
   $fields->addFieldToTab('Root.Content.Main', new HTMLEditorField('2ndRowRight'), 'Content');
   
   return $fields;
}
	
}

class BlockPage_Controller extends Page_Controller {
	
}

?>

Of course I ran "/dev/build"

It works very good. I have two new editor fields, PhpMyAdmin shows the new tables and I can insert HTML into the DB (however, I don´t know how to put them AFTER "Content". Do I have to combine "addFieldToTab" with "insertAfter"? - But this is not the worst problem)

To display this two blocks on my BlockPage-type pages I made a copy of .../templates/Layout/Page.ss, called it BlockPage.ss and inserted $2ndRowLeft and $2ndRowRight:

<div class="typography">
	<% if Menu(2) %>
		<% include SideBar %>
		<div id="Content">
	<% end_if %>
			
	<% if Level(2) %>
	  	<% include BreadCrumbs %>
	<% end_if %>
	
		<h2>$Title</h2>
	
		$Content
		$Form
		<div class="2ndRowLeft">$2ndRowLeft</div>
		<div class="2ndRowRight">$2ndRowRight</div>
	
		
	<% if Menu(2) %>
		</div>
	<% end_if %>
</div>

But Silverstripe doesn´t display the HTML I inserted using my new editor fields. All I can see on the page are the variables "$2ndRowLeft" and "$2ndRowRight".

Did I miss anything?

/edit: Oh yes, I flushed it ;)

Avatar
MartinM

Community Member, 6 Posts

14 May 2009 at 4:30am

OK, I think I found it.

It seems that SS had a problem with my "$2ndRow..." variables. Changed everything to "$SecondRow..." and it works.