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.

Template Questions /

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

A way to add a filter to rendered page just before sending to browser

Go to End

2 Posts   1930 Views


Community Member, 22 Posts

13 October 2012 at 3:01am

Edited: 13/10/2012 3:32am

Is there a way to add/hook into an [onbeforeOutputToBrowser] kind of filter in Silverstripe, like the onafter filters for writing to the database?

I'm trying to rewrite all references to into to prevent 3rd party cookies from being set. Most of these are oembeds, which are rendered from the SSViewer (I think), at least after the init() or index() functions are called. So I cannot do a str_replace in there. Maybe I could hook into the SSviewer in some way just before output?

Maybe some way to hook into RequestProcessor->setFilters() ?

[Got this filter idea from WP; see for example ]


Community Member, 288 Posts

13 October 2012 at 11:39am

I'm assuming here that you're trying to filter the "same part" of the page that you would be filtering with WordPress the_content filter.

So one way of doing this is simply writing a custom filter function and calling that in your template instead of $Content.

function FilteredContent() {
  $content = $this->Content;
  //Do your filtering here...
  return $content;

That goes into your page class or whatever other page type you want to do the filtering in.
Then in your template you simply write $FilteredContent instad of $Content and you should be good to go.