Developer forum

Forum » Development » Custom Output Replacer - how?

Custom Output Replacer - how?

Kevin Steffer
Kevin Steffer
Reply

I've been looking into how I can create an Email Address obfuscator, but I can't really find any notification subscriber that provides a decent way of returning my modified content.

Is this even possible?


Replies

 
Nicolai Pedersen
Reply

The Standard.Page.OnOutput notification will give you just that. It contains the rendered markup of the entire pageview. Just replace the markup on the template instance on the arguments. This is the args: https://doc.dynamicweb.com/api/html/9f6bf1dc-c3fd-5e89-992d-12e6af4b3faf.htm

Email obfuscation? That is from good old days :-). Remember to check performance.

 
Kevin Steffer
Kevin Steffer
Reply

I thought so too, but maybe I'm getting old and blind, but I can't seem to find the rendered markup except for on PageViewTemplate.Output() and that doesn't give me the power to replace anything I can return back to the PageViewTemplate instance.

 
Nicolai Pedersen
Reply
This post has been marked as an answer

It is me who is getting old. And does not read well anymore...!!

You need to use the Standard.Page.AfterOutput and the AfterOutputArgs. It also has the PageViewTemplate property - and you replace the content of the html property on that one.

Snippets has not been handled at that point though.

Alternatively you can implement a .net IHttpModule and intercept the response.

But really you do not have to do this - it will not help. Emails will be picked up in so many other places...

Votes for this answer: 1
 
Kevin Steffer
Kevin Steffer
Reply

Thank God it's not only me :)

I have tried to convince the customer that this is not worth the effort, but they want it anyway. So I'll build it anyway... customer is king.

Thanks for looking into it!

 

You must be logged in to post in the forum