[ https://issues.apache.org/jira/browse/FREEMARKER-84?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16248529#comment-16248529 ]
zhouyanming commented on FREEMARKER-84: --------------------------------------- I prefer Proposal 1, variable is more expressive, and agreed ".last_include_found", just like "last_insert_id()" of mysql > Improve include directive to detect whether template exists > ----------------------------------------------------------- > > Key: FREEMARKER-84 > URL: https://issues.apache.org/jira/browse/FREEMARKER-84 > Project: Apache Freemarker > Issue Type: Improvement > Components: engine > Affects Versions: 2.3.27-incubating > Reporter: zhouyanming > > I requested feature `ignore_missing=true` of <#include> and freemarker have > implemented it, but it cannot handle fallback like > {code} > <#assign path="relative.ftl"> > <#if isTemplatePresent(path)> > <#include path> > <#else> > template "${path}" is not exists > </#if> > {code} > Proposal 1: > Introduce a new special variable like "template_included" similar to "$?" of > shell exit code > {code} > <#include path ignore_missing=true> > <#if !.template_included> > template "${path}" is not exists > </#if> > {code} > Proposal 2: > Add an argument like "template_included" for include directive > {code} > <#include path ignore_missing=true template_included="pathExists"> > <#if !pathExists> > template "${path}" is not exists > </#if> > {code} > Proposal 3: > Introduce a new special directive such as <#missing> similar to html > <noscript> tag > {code} > <#include path> > <#missing> > template "${path}" is not exists > </#missing> > </#include> > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)