Quote:
Originally Posted by Carly
This didn't work for me in 3.8.2 -- it wasn't retroactive and it appears that it worked backwards. It seems that if Member A had the censor on and Member B did not, if Member A posted a censored word, it appeared censored to Member B (even though Member B didn't want the censor). If Member B posted a censored word, Member A would view it in its full glory (even though Member A *wanted* the censor). Totally backwards.
|
The reason that happens is because of how caching works and the way censored posts are added to the DB. If Member A has the censor turned on and creates a post, then the post is actually censored before it is written to the DB. Same for the cached part of the post that goes into the postparsed table in the DB. So in the same respect, if Member B has the censor disabled and creates a thread, then the uncensored thread will go into the cache as well, which I don't believe is censored again when it is retrieved (defeats the purpose of the cache, eh?), which means that Member A will not get the text censored if it is retrieved from cache.
The only way I've found to get around such behavior and make a user based censorship mod work is to globally disable the censor so all text is written to the DB uncensored and then selectively enable the censor (via hooks) when they view certain pages. This requires a lot of plugins in various spots to catch things that should be censored.
A real solution for user based censorship is going to need a rethinking of the way censorship is done in general and how it works with caching.