diff options
| author | Chris McDonough <chrism@plope.com> | 2010-12-26 01:13:26 -0500 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2010-12-26 01:13:26 -0500 |
| commit | e1a7e0679759da628676f3c73c34875e9b2b6a43 (patch) | |
| tree | 24fde2f1d7315c457a5a02094a684e762307a1d6 /docs/narr/declarative.rst | |
| parent | f5bafd1da8da405936bae032d20dba545922860e (diff) | |
| download | pyramid-e1a7e0679759da628676f3c73c34875e9b2b6a43.tar.gz pyramid-e1a7e0679759da628676f3c73c34875e9b2b6a43.tar.bz2 pyramid-e1a7e0679759da628676f3c73c34875e9b2b6a43.zip | |
- Move ZCML usage in Hooks chapter to Declarative Configuration chapter.
Diffstat (limited to 'docs/narr/declarative.rst')
| -rw-r--r-- | docs/narr/declarative.rst | 140 |
1 files changed, 137 insertions, 3 deletions
diff --git a/docs/narr/declarative.rst b/docs/narr/declarative.rst index deccb6c48..12deb90e7 100644 --- a/docs/narr/declarative.rst +++ b/docs/narr/declarative.rst @@ -1266,9 +1266,143 @@ which we assume lives in a ``subscribers.py`` module within your application: See also :ref:`subscriber_directive` and :ref:`events_chapter`. +.. index:: + single: not found view + +.. _notfound_zcml: + +Configuring a Not Found View via ZCML +------------------------------------- + +If your application uses :term:`ZCML`, you can replace the Not Found view by +placing something like the following ZCML in your ``configure.zcml`` file. + +.. code-block:: xml + :linenos: + + <view + view="helloworld.views.notfound_view" + context="pyramid.exceptions.NotFound" + /> + +Replace ``helloworld.views.notfound_view`` with the Python dotted name to the +notfound view you want to use. + +See :ref:`changing_the_notfound_view` for more information. + +.. index:: + single: forbidden view + +.. _forbidden_zcml: + +Configuring a Forbidden View via ZCML +------------------------------------- + +If your application uses :term:`ZCML`, you can replace the Forbidden view by +placing something like the following ZCML in your ``configure.zcml`` file. + +.. code-block:: xml + :linenos: + + <view + view="helloworld.views.notfound_view" + context="pyramid.exceptions.Forbidden" + /> + +Replace ``helloworld.views.forbidden_view`` with the Python dotted name to +the forbidden view you want to use. + +See :ref:`changing_the_forbidden_view` for more information. + +.. _changing_traverser_zcml: + +Configuring an Alternate Traverser via ZCML +------------------------------------------- + +Use an ``adapter`` stanza in your application's ``configure.zcml`` to +change the default traverser: + +.. code-block:: xml + :linenos: + + <adapter + factory="myapp.traversal.Traverser" + provides="pyramid.interfaces.ITraverser" + for="*" + /> + +Or to register a traverser for a specific resource type: -.. Todo -.. ---- +.. code-block:: xml + :linenos: + + <adapter + factory="myapp.traversal.Traverser" + provides="pyramid.interfaces.ITraverser" + for="myapp.resources.MyRoot" + /> + +See :ref:`changing_the_traverser` for more information. + +.. index:: + single: url generator + +.. _changing_resource_url_zcml: + +Changing ``resource_url`` URL Generation via ZCML +------------------------------------------------- + +You can change how :func:`pyramid.url.resource_url` generates a URL for a +specific type of resource by adding an adapter statement to your +``configure.zcml``. + +.. code-block:: xml + :linenos: + + <adapter + factory="myapp.traversal.URLGenerator" + provides="pyramid.interfaces.IContextURL" + for="myapp.resources.MyRoot *" + /> + +See :ref:`changing_resource_url` for more information. + +.. _changing_request_factory_zcml: + +Changing the Request Factory via ZCML +------------------------------------- + +A ``MyRequest`` class can be registered via ZCML as a request factory through +the use of the ZCML ``utility`` directive. In the below, we assume it lives +in a package named ``mypackage.mymodule``. + +.. code-block:: xml + :linenos: + + <utility + component="mypackage.mymodule.MyRequest" + provides="pyramid.interfaces.IRequestFactory" + /> + +See :ref:`changing_request_factory` for more information. + +.. _adding_renderer_globals_zcml: + +Changing the Renderer Globals Factory via ZCML +---------------------------------------------- + +A renderer globals factory can be registered via ZCML as a through the use of +the ZCML ``utility`` directive. In the below, we assume a +``renderers_globals_factory`` function lives in a package named +``mypackage.mymodule``. + +.. code-block:: xml + :linenos: + + <utility + component="mypackage.mymodule.renderer_globals_factory" + provides="pyramid.interfaces.IRendererGlobalsFactory" + /> -.. - hooks chapter still has topics for ZCML +See :ref:`adding_renderer_globals` for more information. |
