/** * Turn on macro resolving for the wrapped value.<p> * * Macro resolving is turned off by default. * When turned on, a macro resolver is initialized with * the current OpenCms user context and the URI of the current resource. * This means known macros contained in the wrapped value will be resolved when the output String is generated. * For example, a <code>%(property.Title)</code> in the value would be replaced with the * value of the title property. Macros that can not be resolved will be kept.<p> * * Usage example on a JSP with the JSTL:<pre> * <cms:contentload ... > * <cms:contentaccess var="content" /> * The text with macros resolved: ${content.value['Text'].resolveMacros} * </cms:contentload></pre> * * @return a value wrapper with macro resolving turned on * * @see CmsMacroResolver */ public CmsJspContentAccessValueWrapper getResolveMacros() { if (m_macroResolver == null) { CmsMacroResolver macroResolver = CmsMacroResolver.newInstance(); macroResolver.setCmsObject(m_cms); macroResolver.setKeepEmptyMacros(true); return new CmsJspContentAccessValueWrapper(this, macroResolver); } // macro resolving is already turned on return this; }
/** * Turn on macro resolving for the wrapped value.<p> * * Macro resolving is turned off by default. * When turned on, a macro resolver is initialized with * the current OpenCms user context and the URI of the current resource. * This means known macros contained in the wrapped value will be resolved when the output String is generated. * For example, a <code>%(property.Title)</code> in the value would be replaced with the * value of the title property. Macros that can not be resolved will be kept.<p> * * Usage example on a JSP with the JSTL:<pre> * <cms:contentload ... > * <cms:contentaccess var="content" /> * The text with macros resolved: ${content.value['Text'].resolveMacros} * </cms:contentload></pre> * * @return a value wrapper with macro resolving turned on * * @see CmsMacroResolver */ public CmsJspContentAccessValueWrapper getResolveMacros() { if (m_macroResolver == null) { CmsMacroResolver macroResolver = CmsMacroResolver.newInstance(); macroResolver.setCmsObject(m_cms); macroResolver.setKeepEmptyMacros(true); return new CmsJspContentAccessValueWrapper(this, macroResolver); } // macro resolving is already turned on return this; }
/** * Returns the parameters of the collector with resolved macros.<p> * * @return the parameters of the collector with resolved macros */ public String getParameter() { Locale locale = getRequestContext().getLocale(); String params = m_content.getStringValue(getCmsObject(), NODE_PARAMETER, locale); List links = m_content.getValues(NODE_LINKS, locale); CmsMacroResolver macroResolver = CmsMacroResolver.newInstance(); macroResolver.setKeepEmptyMacros(true); for (int i = 0; i < links.size(); i++) { I_CmsXmlContentValue xmlValue = (I_CmsXmlContentValue)links.get(i); String value = xmlValue.getStringValue(getCmsObject()); if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(value)) { StringBuffer macro = new StringBuffer(10); macro.append(MACRO_LINK_PREFIX).append(i + 1); macroResolver.addMacro(macro.toString(), getRequestContext().removeSiteRoot(value)); } } return macroResolver.resolveMacros(params); }
/** * Returns the parameters of the collector with resolved macros.<p> * * @return the parameters of the collector with resolved macros */ public String getParameter() { Locale locale = getRequestContext().getLocale(); String params = m_content.getStringValue(getCmsObject(), NODE_PARAMETER, locale); List<I_CmsXmlContentValue> links = m_content.getValues(NODE_LINKS, locale); CmsMacroResolver macroResolver = CmsMacroResolver.newInstance().setCmsObject(getCmsObject()); macroResolver.setKeepEmptyMacros(true); for (int i = 0; i < links.size(); i++) { I_CmsXmlContentValue xmlValue = links.get(i); String value = xmlValue.getStringValue(getCmsObject()); if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(value)) { StringBuffer macro = new StringBuffer(10); macro.append(MACRO_LINK_PREFIX).append(i + 1); macroResolver.addMacro(macro.toString(), getRequestContext().removeSiteRoot(value)); } } return macroResolver.resolveMacros(params); }
/** Returns a new macro resolver that loads message keys from the workplace bundle in the user setting's language. * @param cms the CmsObject. * @return a new macro resolver with messages from the workplace bundle in the current users locale. */ public static I_CmsMacroResolver newWorkplaceLocaleResolver(final CmsObject cms) { // Resolve macros in the property configuration CmsMacroResolver resolver = new CmsMacroResolver(); resolver.setCmsObject(cms); CmsUserSettings userSettings = new CmsUserSettings(cms.getRequestContext().getCurrentUser()); CmsMultiMessages multimessages = new CmsMultiMessages(userSettings.getLocale()); multimessages.addMessages(OpenCms.getWorkplaceManager().getMessages(userSettings.getLocale())); resolver.setMessages(multimessages); resolver.setKeepEmptyMacros(true); return resolver; }
m_macroResolver = new CmsMacroResolver(); m_macroResolver.setCmsObject(m_macroCmsObject); m_macroResolver.setKeepEmptyMacros(true);
resourcename).setKeepEmptyMacros(true);
context).setResourceName(resourcename).setKeepEmptyMacros(true);
multimessages.addMessages(OpenCms.getWorkplaceManager().getMessages(settings.getLocale())); resolver.setMessages(multimessages); resolver.setKeepEmptyMacros(true); return resolver;
pageContext).setResourceName(resourcename).setKeepEmptyMacros(true);
resourcename).setKeepEmptyMacros(true);
pageContext).setResourceName(resourcename).setKeepEmptyMacros(true);