I've been trying to think of a way to use the cached_content field. My
thinking is that I can stored the rendered output of the post content
($post->content_out) in here to avoid triggering all the formatting
plugins over and over again, ie. markdown, acronyms, etc..
The problem I'm having is in the implementation.
1. I could implement filter_post_content_out_0 (0 priority to run
first), check if there is cached content and return that. The problem
is, after returning the cached content, all the the other filters still
run, defeating the purpose.
2. I could implement filter_post_cached_content_out, and if there is
cached_content return it, otherwise return just content_out. The problem
here is that all themes need to call $post->cached_content_out, not
$post->content_out.
There is also an issue with "shorttags". I would prefer to still run the
shorttag stuff, as the content may be dynamic, and caching it's output
not ideal.
One idea I had was to modify Post::__get() so that when you called the
content_out, it would first see if there was cached_content_out
($cached_content = Plugins::filter('posts_content_out', null);) and
return that result without running filters (other than shorttag). If
there is no result proceed normally with filters. This way, if the
plugin doing the caching is deactivated, cached_content_out will return
null (even if cached_content field contains data) and go on normally
with running filters.
Second Idea was to allow plugins to stop a filter from running any more.
Something like Plugins::deregister('filter', 'post_content_out',
$priority);. But this has far greater implications.
Any thoughts?
Discuss...
--
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at http://groups.google.com/group/habari-dev
---
You received this message because you are subscribed to the Google Groups "habari-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.