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, simon_w

Add custom function to .ss template


Reply


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