src/source/dev_guide/howto-template.rst
branchdoc-dc
changeset 111 097b0c025eec
parent 109 31b3d00edb8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/source/dev_guide/howto-template.rst	Tue Dec 11 17:00:42 2018 +0100
@@ -0,0 +1,63 @@
+.. _templatehowto:
+
+
+How to define or change a template for a specific skin?
+=======================================================
+
+Override the default template for a renderer
+--------------------------------------------
+
+If you want to modify the template for a particular rendering mode, you can use the function :py:func:`override_template`
+
+.. code-block:: python
+
+	from pyams_template.template import override_template
+
+	from my_website.skin.public.layer import ICustomLayer
+	from pyams_default_theme.component.keynumber.portlet import KeyNumberPortletHorizontalRenderer
+
+
+	override_template(context=KeyNumberPortletHorizontalRenderer,
+					template="templates/keynumber-horizontal.pt",
+					layer=ICustomLayer
+					)
+
+
+This new template can be applied to a particular :ref:`Skin <skinhowto>` by specifying on which layer to use this renderer
+*(ex: layer=IMyWebsiteLayer)*
+
+
+
+Redefine the default template for a renderer
+--------------------------------------------
+
+You must redefine an adapter to add new variables or static resources for your new template,
+
+.. code-block:: python
+
+	# import interfaces
+	from my_website.skin.public.layer import ICustomLayer
+
+	from pyams_content.component.keynumber.portlet.interfaces import IKeyNumberPortletSettings
+	from pyams_portal.interfaces import IPortletRenderer, IPortalContext
+
+	# import packages
+	from my_website.skin.public import my_carousel_init ,my_carousel_animation
+
+	from pyams_default_theme.component.keynumber.portlet import KeyNumberPortletHorizontalRenderer
+	from pyams_template.template import template_config
+	from pyams_utils.adapter import adapter_config
+	from zope.interface import Interface
+
+
+	@adapter_config(context=(IPortalContext, IBaseLayer, Interface, IKeyNumberPortletSettings),
+	                provides=IPortletRenderer)
+	@template_config(template='templates/keynumber-horizontal.pt', layer=ICustomLayer)
+	class MyCustomKeyNumberPortletHorizontalRenderer(KeyNumberPortletHorizontalRenderer):
+		"""Key numbers portlet horizontal renderer"""
+
+		resources = (my_carousel_init, my_carousel_animation)
+
+
+The attribute :py:attr:`resources` is used to load in the template static resources. The application will automatically
+integrate resource content when the template is calling.