[opencms-dev] function detail page

laurent.druart laurent.druart at ldict.be
Tue Aug 18 10:45:41 CEST 2026


Hi Daniel,

Thanks for your answer.

Best regards,

Laurent

> Le 18 août 2026 à 09:48, Daniel Seidel via opencms-dev <opencms-dev at opencms.org> a écrit :
> 
> Hi Laurent,
> 
> your workaround was the best way. You may also work with permissions to allow only certain users to add the function to a page instead of excluding it from search.
> 
> The mechanism with container.info will not work for nested containers. I assume your maincontainer is a nested one. So I'd suggest to view the function detail page just as a kind of "named page" that you can link to by the name.
> 
> Best, Daniel.
> 
> Am 11.08.26 um 17:09 schrieb laurent.druart via opencms-dev:
>> Hello,
>> 
>> I’ve an issue with function detail page in OpenCMS 21.
>> 
>> I’ve a dynamic function rendering a list of dynamic content from a db. On each row I’ve a link to a function detail page like this:
>> 
>> <a href="${cms.functionDetail['raceDetail']}?idRace=${race.nrRace}">
>> 
>> I created a second dynamic function, the function associated with the function detail page. Let’s name this function raceDetail
>> 
>> To hide this function in the wizard in put property search.exclude to all
>> 
>> In .config of my module I added a « named function » named raceDetail  and in « Function » the path to the xml configuration of the function
>> 
>> I added on my page template a property container.info <http://container.info/> with value functionDetail=maincontainer
>> 
>> maincontainer is the main container in my template.
>> 
>> In app Sitemap I tried to drag and drop the detail page « raceDetail function detail page » in my « technical » folder detail_pages and I got the error you can find bellow
>> 
>> 
>> Function detail container not found for "/sites/mysite/.content/.templates/blank.html".
>> 
>> Ticket Id: 1786458784909
>> org.opencms.main.CmsException: Function detail container not found for "/sites/mysite/.content/.templates/blank.html".
>> org.opencms.ade.sitemap.CmsVfsSitemapService.createNewEntry(CmsVfsSitemapService.java:2003)
>> org.opencms.ade.sitemap.CmsVfsSitemapService.applyChange(CmsVfsSitemapService.java:1479)
>> org.opencms.ade.sitemap.CmsVfsSitemapService.saveInternal(CmsVfsSitemapService.java:1373)
>> org.opencms.ade.sitemap.CmsVfsSitemapService.save(CmsVfsSitemapService.java:1154)
>> jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>> java.lang.reflect.Method.invoke(Method.java:580)
>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587)
>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:349)
>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:319)
>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:389)
>> com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
>> org.opencms.gwt.CmsGwtService.service(CmsGwtService.java:215)
>> org.opencms.main.OpenCmsCore.invokeGwtService(OpenCmsCore.java:2238)
>> org.opencms.main.OpenCmsServlet.doGet(OpenCmsServlet.java:360)
>> org.opencms.main.OpenCmsServlet.doPost(OpenCmsServlet.java:381)
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
>> javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
>> org.opencms.jsp.jsonpart.CmsJsonPartFilter.doFilter(CmsJsonPartFilter.java:298)
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
>> org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:63)
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:619)
>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:399)
>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:338)
>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:283)
>> org.opencms.main.OpenCmsUrlServletFilter.doFilter(OpenCmsUrlServletFilter.java:145)
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
>> org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:70)
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:764)
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)
>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1309)
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1854)
>> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
>> org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
>> org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
>> java.lang.Thread.run(Thread.java:1583)
>> 
>> I found a workaround:
>> drag and drop of a normal page in my detail_pages folder
>> in sitemap config in tab « detail pages » add a detail page for type function at raceDetail associated to the new page in detail_pages folder
>> remove search.exclude=all from the detail function
>> drag and drop of this function  to the new page in detail_pages folder
>> add search.exclude=all to the detail function
>> 
>> It works but is it the best way to achieve it?
>> 
>> Thanks for your help
>> 
>> Best regards,
>> 
>> Laurent
>> 
>> 
>> 
>> _______________________________________________
>> This mail is sent to you from the opencms-dev mailing list
>> To change your list options, or to unsubscribe from the list, please visit
>> https://lists.opencms.org/mailman/listinfo/opencms-dev
>> 
>> 
>> 
> -- 
> Kind Regards
> 
> Daniel.
> 
> -------------------
> 
> Daniel Seidel
> Alkacon Software GmbH & Co. KG - The OpenCms Experts
> https://www.alkacon.com <https://www.alkacon.com/> - http://www.opencms.org <http://www.opencms.org/>_______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> https://lists.opencms.org/mailman/listinfo/opencms-dev
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opencms.org/pipermail/opencms-dev/attachments/20260818/b1a6cd56/attachment.htm>


More information about the opencms-dev mailing list