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

Add custom function to .ss template


Go to End


2 Posts   3004 Views

Avatar
DeklinKelly

Community Member, 197 Posts

13 May 2009 at 10:00pm

How can I add a custom function to my template?

This gives me an error: Parse error: syntax error, unexpected $end

<?php
// PortfolioIndex.php
class PortfolioIndex extends Page {
   static $db = array(
      'Heading' => 'Text'
   );

   static $has_one = array(
   );

   function getCMSFields() {
      $fields = parent::getCMSFields();
      $fields->addFieldToTab("Root.Content.Content", new TextField('Heading','Heading'));
      return $fields;
   }
}

class PortfolioIndex_Controller extends Page_Controller {
	function CustomStuff () {
		return '<h1>CustomStuff</h1>';
	}
}
?>

And here is my template (PortfolioIndex.ss) :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>$MetaTitle</title>
<% base_tag %>
</head>
<body>
<% control CustomStuff %>
</body>
</html>

Avatar
Carbon Crayon

Community Member, 598 Posts

13 May 2009 at 10:04pm

Edited: 13/05/2009 10:04pm

Hi Hkight

Because your function returns a string you need to use the $FunctionName in your template not a <% control %> block which is for returning DataObjectSets (e.g. sets of pages).

So you just need to call $CustomStuff and it will place the returned value into your template :)