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.

General Questions /

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

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

Add custom function to .ss template


Go to End
Reply


2 Posts   2058 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 :)