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.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Customising the CMS /

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

Batch OnBeforeWrite


Go to End


3 Posts   2187 Views

Avatar
rs82uk

Community Member, 3 Posts

2 February 2010 at 12:16am

Hi there, I am using OnBeforeWrite to populate my meta data and this is working great, however can anyone tell me if there is a way that I can tie this into the batch publish in Silverstripe?
Thanks in advance

Rohan

Avatar
bummzack

Community Member, 904 Posts

2 February 2010 at 1:29am

Hi Rohan

I never did this, but I guess you could subclass SiteTreeDecorator, override the onBeforePublish method in your new class and use it as decorator for SiteTree. The decorator can be applied using the $extensions array or by calling DataObject::add_extension() in your _config.php.

The onBeforePublish method of the decorator will be called every time the page is being published, that probably includes batch publishing as well.

Avatar
Garrett

Community Member, 245 Posts

26 May 2011 at 2:14am

Hi,

I also need to use onBeforePublish() on a BlogEntry to populate a hidden field I need. I've added the method to BlogEntry.php thinking this would overload it from SiteTreeDecorator but I not so:

500 Error: "Uncaught Exception: Object->__call(): the method 'onbeforepublish' does not exist on 'BlogEntry'"

What do I have to do to overload this method and capture the onBeforePublish event in when BlogEntry is published? Seems odd I would have to create a new file for this.

Thanks in advance,
Garrett