Fanstatic integration for Zope.
Project description
Zope integration for fanstatic
This package provides Zope integration for fanstatic. This means it’s taking care of two things:
provide access to the needed resources throughout the request/response cycle.
provide the base URL for the resources to be rendered.
This library fulfills these conditions for a Zope Toolkit/Grok setup.
We’ll run through a few tests to demonstrate it. Note that the real code being tested is not in this document itself, but in the views described in ftesting.zcml.
We need to be in a request to make this work, so let’s up a request to a page we have set up in ftesting.zcml that should cause the inclusion of a single resource in its header:
>>> from zope.app.wsgi.testlayer import Browser >>> browser = Browser() >>> browser.handleErrors = False >>> browser.open('http://localhost/zope.fanstatic.test_single') >>> print browser.contents <html> <head> <script type="text/javascript" src="http://localhost/fanstatic/foo/a.js"></script> <BLANKLINE> </head> <body> <p>the widget HTML itself</p> </body> </html>
If a resource happens to need another resource, this resource is also automatically included:
>>> browser.open('http://localhost/zope.fanstatic.test_multiple') >>> print browser.contents <html> <head> <script type="text/javascript" src="http://localhost/fanstatic/foo/a.js"></script> <script type="text/javascript" src="http://localhost/fanstatic/foo/b.js"></script> <BLANKLINE> </head> <body> <p>the widget HTML itself</p> </body> </html>
Let’s force all javascript resources to be forced to be included at the bottom now, just before the </body> tag:
>>> browser.open('http://localhost/zope.fanstatic.test_bottom') >>> print browser.contents <html> <head> </head> <body> <p>the widget HTML itself</p> <script type="text/javascript" src="http://localhost/fanstatic/foo/a.js"></script> <script type="text/javascript" src="http://localhost/fanstatic/foo/b.js"></script></body> </html>
In-template resources
zope.fanstatic provides support for rendering resource publisher aware URLs to in-template resources:
>>> browser.open('http://localhost/zope.fanstatic.test_inline_resource') >>> print browser.contents <html> <head> </head> <body> <img src="http://localhost/fanstatic/foo/evencaveman.jpg" /> <img src="http://localhost/fanstatic/foo/sub/evencaveman.jpg" /> </body> </html>
CHANGES
0.9b (2011-01-06)
Zope.fanstatic version 0.9 is a fundamental rewrite of hurry.zoperesource, as a result of the rewrite of hurry.resource into fanstatic.
Here’s a list of essential changes since version 0.7 of hurry.zoperesource:
Compliance with the Fanstatic API.
++resource++foo/bar/baz.jpg expressions in Page Templates are still supported by way registering a traversable component for all available resource libraries. There are no zope.browserresource components involved anymore in zope.fanstatic.
Download
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.