* (Optional) recaptcha-django r6 <http://code.google.com/p/recaptcha-django/>
* (Optional) south 0.7.2+ <http://south.aeracode.org/>
-To contribute, please visit the project website <http://philo.ithinksw.org/>.
+To contribute, please visit the project website <http://philo.ithinksw.org/>. Feel free to join us on IRC at irc://irc.oftc.net/#philo.
====
Using philo
--- /dev/null
+Philo is a foundation for developing web content management systems.
+
+Prerequisites:
+
+ * [Python 2.5.4+ <http://www.python.org>](http://www.python.org/)
+ * [Django 1.2+ <http://www.djangoproject.com/>](http://www.djangoproject.com/)
+ * [django-mptt 0.4+ <https://github.com/django-mptt/django-mptt/>](https://github.com/django-mptt/django-mptt/)
+ * (Optional) [django-grappelli 2.0+ <http://code.google.com/p/django-grappelli/>](http://code.google.com/p/django-grappelli/)
+ * (Optional) [south 0.7.2+ <http://south.aeracode.org/)](http://south.aeracode.org/)
+ * (Optional) [recaptcha-django r6 <http://code.google.com/p/recaptcha-django/>](http://code.google.com/p/recaptcha-django/)
+
+To contribute, please visit the [project website](http://philo.ithinksw.org/). Feel free to join us on IRC at [irc://irc.oftc.net/#philo](irc://irc.oftc.net/#philo>).
+
+Using philo
+===========
+
+After installing philo and mptt on your python path, make sure to complete the following steps:
+
+1. add 'philo.middleware.RequestNodeMiddleware' to settings.MIDDLEWARE_CLASSES.
+2. add 'philo' and 'mptt' to settings.INSTALLED_APPS.
+3. include 'philo.urls' somewhere in your urls.py file.
+4. Optionally add a root node to your current Site.
+
+Philo should be ready to go!
\ No newline at end of file
view_about_to_render = Signal(providing_args=['request', 'extra_context'])
view_finished_rendering = Signal(providing_args=['response'])
page_about_to_render_to_string = Signal(providing_args=['request', 'extra_context'])
-page_finished_rendering_to_string = Signal(providing_args=['string'])
-
-
-def replace_sender_response(sender, response):
- """Helper function to swap in a new response."""
- def render_to_response(self, *args, **kwargs):
- return response
- sender.actually_render_to_response = render_to_response
\ No newline at end of file
+page_finished_rendering_to_string = Signal(providing_args=['string'])
\ No newline at end of file