Jump to:

17452 Posts in 4473 Topics by 1971 members


SilverStripe Forums » Archive » dataobjectdecorator in _config.php

Our old forums are still available as a read-only archive.

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

Page: 1
Go to End
Author Topic: 1592 Views
  • g
    Community Member
    22 Posts

    dataobjectdecorator in _config.php Link to this post

    I added a dataobjectdecorator to the member object basically copying the ForumRole decorator example in the forum. My decorator is called ClubRole. So to use this decorator I need to include this line in the _config.php:

    DataObject::add_extension('Member', 'ClubRole');

    As I am using the Forum infrastructure there is the ForumRole decorator in the _config.php too:

    DataObject::add_extension('Member', 'ForumRole');

    So in the _config.php I have these two lines in this order:

    DataObject::add_extension('Member', 'ClubRole');
    DataObject::add_extension('Member', 'ForumRole');

    So the problem I experienced is that $Link in the template returns the Link method defined in the ForumRole decorator instead of the one defined in the ClubRole decorator which is the intended one. How do I fix it? Commenting out the ForumRole decorator does the job but I feel that this is not the only way to do it.

    Can't you have more than one decorator per object that you would like to decorate.

    EG. I would like another member decorator called EmployeeRole.

  • JGC
    Community Member
    25 Posts

    Re: dataobjectdecorator in _config.php Link to this post

    You can probably do it by changing the order you add the extensions. If you have the Club first, it will be overwritten by the Forum (I'm guessing). Try them front to back, and see if it's any good

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.