Jump to:

23453 Posts in 18904 Topics by 2877 members

General Questions

SilverStripe Forums » General Questions » Add custom function to .ss template

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

Page: 1
Go to End
Author Topic: 1634 Views
  • DeklinKelly
    Avatar
    Community Member
    197 Posts

    Add custom function to .ss template Link to this post

    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>

  • Aram
    Avatar
    Community Member
    598 Posts

    Re: Add custom function to .ss template Link to this post

    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

    1634 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.