Collect data in a form, which can appear on several pages of the website. Display the results of the user request on one page in the navigation. For example, integration of a search form on several pages of the website and displaying of the search results on one page in the navigation. Since OpenCms 8.0.3 you can use function detail page to define such result pages.
Function detail pages are a detail page mechanism for dynamic functions. Here we describe how to create and configure a detail page for a dynamic function.
Following steps are required to create dynamic function and its function detail page:
- Create dynamic function element inside the module.
- Create and configure the function detail page for the created dynamic function.
- Drop the dynamic function to container pages.
- Drop the function detail page to the website structure using the sitemap editor.
As only users with the role TEMPLATE_DEVELOPER
can edit the dynamic function elements, the function should be created inside the module folder: /system/modules/[module name]/functions/
. To hide the function element from "Add content" Dialog set following property:
The drag & drop option is enabled for user with the role WORKPLACE_USERS
.
- Implement the JSP with a form, which should be used on several container pages of the website. Use the value
${cms.functionDetail['Name of the function detail page']}
for the attributeaction
of the<form>
tag.
<%@page buffer="none" session="false" taglibs="c,fn,cms" %>
<div class="box box_schema1">
<form action="${cms.functionDetail['simplecalculator']}" method="post">
<%-- ... --%>
</form>
</div>
- Implement another JSP, which evaluates the form data and generates the HTML output for the detail view.
- In explorer view create two dynamic function elements in folder
/system/modules/[module name]/functions/
of the module. One of the dynamic functions should point to the form JSP and another to the detail page JSP. - Edit the module configuration file
/system/modules/[module name]/.config
and configure the function detail page in the tab "Functions". Add new field "Named function". Define a unique name for the function detail. This should be the same name, which is used in the form JSP as action parameter. After this configuration the function detail page appears in the tab "Function pages" of the "Create page" dialog in the sitemap editor. - Edit the property
container.info
on the template JSP. Set the property valuefunctionDetail=[container name attribute]
. As value, use thename
attribute of the container, in which the function results should be displayed.