Jump to:

3392 Posts in 976 Topics by 852 members

Template Questions

SilverStripe Forums » Template Questions » Custom text functions for content

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

Page: 1
Go to End
Author Topic: 1660 Views
  • mmh
    Avatar
    Community Member
    24 Posts

    Custom text functions for content Link to this post

    Hi there,

    I just wan't to know if it's possible to extend Silverstripe in one way:

    In every Silverstripe installation you've the opporturnity to change the text e.g. in this way:

    $Content.FirstSentence


    or

    $Content.LimitWordCountXML(10, read more)

    Now, I need a custom function like

    $Content.MyFancyFunction

    I know this was possible if I will hack "sapphire/core/model/fieldtypes/Text.php" but this is not the way i wan't to go.
    I've tried to "extend" with the Object::add_extension() method but in this case I will lose "$this->value" in my custom class because it has to extend from "Extension" and can not extend from the "Text"-Class.

    Is there a way to do this without hacking the Silverstripe core?

  • Willr
    Avatar
    Forum Moderator
    5462 Posts

    Re: Custom text functions for content Link to this post

    You should be able to use the Extension class. You would then refer to your "$this->value" as you would in a subclass as $this->owner->value. $this->owner gives you the class the extension has been applied to.

    The other option is to make a FirstSentence function in your Page.php and instead of using $Content use $FirstSentence in the template.

    function FirstSentence() {
    $content = $this->Content;

    // do whatever you want
    $text = ....;

    return $text;

  • mmh
    Avatar
    Community Member
    24 Posts

    Re: Custom text functions for content Link to this post

    Thanks, Willr that's it.

    I know your second option but I need in my case the "extension".

    1660 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.