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.

Customising the CMS

Batch OnBeforeWrite


Reply

3 Posts   1458 Views

Avatar
rs82uk

2 February 2010 at 12:16am Community Member, 3 Posts

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
banal

2 February 2010 at 1:29am Community Member, 901 Posts

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

26 May 2011 at 2:14am Community Member, 245 Posts

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