/** * Creates a new A_CmsNotification.<p> * * @param cms the cms object to use * @param receiver the receiver of the notification */ public A_CmsNotification(CmsObject cms, CmsUser receiver) { m_cms = cms; m_receiver = receiver; m_macroResolver = new CmsMacroResolver(); m_macroResolver.setCmsObject(cms); }
/** * @see org.opencms.xml.content.I_CmsXmlContentHandler#getPreview(org.opencms.file.CmsObject, org.opencms.xml.content.CmsXmlContent, java.lang.String) */ public String getPreview(CmsObject cms, CmsXmlContent content, String resourcename) { CmsMacroResolver resolver = CmsMacroResolver.newInstance().setCmsObject(cms); resolver.addMacro(MACRO_PREVIEW_TEMPFILE, resourcename); return resolver.resolveMacros(m_previewLocation); }
/** * @see org.opencms.xml.content.I_CmsXmlContentHandler#getPreview(org.opencms.file.CmsObject, org.opencms.xml.content.CmsXmlContent, java.lang.String) */ public String getPreview(CmsObject cms, CmsXmlContent content, String resourcename) { CmsMacroResolver resolver = CmsMacroResolver.newInstance().setCmsObject(cms); resolver.addMacro(MACRO_PREVIEW_TEMPFILE, resourcename); return resolver.resolveMacros(m_previewLocation); }
/** * 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; }
resolver.setCmsObject(wp.getCms()); resolver.setJspPageContext(wp.getJsp().getJspContext()); resolver.setMessages(wp.getMessages());
resolver.setCmsObject(wp.getCms()); resolver.setJspPageContext(wp.getJsp().getJspContext()); resolver.setMessages(wp.getMessages());
/** * Returns the current used macro resolver instance.<p> * * @return the macro resolver */ public CmsMacroResolver getMacroResolver() { if (m_macroResolver == null) { // create a new macro resolver "with everything we got" m_macroResolver = CmsMacroResolver.newInstance() // initialize resolver with the objects available .setCmsObject(m_cms).setMessages(getMessages()).setJspPageContext( (m_jsp == null) ? null : m_jsp.getJspContext()); } return m_macroResolver; }
/** * 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 the current used macro resolver instance.<p> * * @return the macro resolver */ public CmsMacroResolver getMacroResolver() { if (m_macroResolver == null) { // create a new macro resolver "with everything we got" m_macroResolver = CmsMacroResolver.newInstance() // initialize resolver with the objects available .setCmsObject(m_cms).setMessages(getMessages()).setJspPageContext( (m_jsp == null) ? null : m_jsp.getJspContext()); m_macroResolver.setParameterMap(m_parameterMap); } return m_macroResolver; }
/** * Creates a comparator that will resolve the {@link CmsResource} related values with the given macro * expression. * <p> * * @param cms will be cloned and used for macro - resolution * @param comparatorMacro the macro to use to find the resource related strings to compare. * * @throws CmsException if something goes wrong * * @see CmsMacroResolver */ CmsResourceSelectWidgetOptionComparator(CmsObject cms, String comparatorMacro) throws CmsException { if (CmsStringUtil.isEmpty(comparatorMacro)) { m_comparatorMacro = I_CmsMacroResolver.MACRO_DELIMITER + "" + I_CmsMacroResolver.MACRO_START + "opencms.filename)"; } else { m_comparatorMacro = comparatorMacro; } m_macroCmsObjectInner = OpenCms.initCmsObject(cms); m_macroCmsObjectInner.getRequestContext().setSiteRoot("/"); m_macroResolverInner = new CmsMacroResolver(); m_macroResolverInner.setCmsObject(m_macroCmsObjectInner); }
/** * @see org.opencms.xml.content.I_CmsXmlContentHandler#getModelFolder(org.opencms.file.CmsObject, java.lang.String) */ public String getModelFolder(CmsObject cms, String currentFolder) { String result = m_modelFolder; // store the original URI String uri = cms.getRequestContext().getUri(); try { // set URI to current folder cms.getRequestContext().setUri(currentFolder); CmsMacroResolver resolver = CmsMacroResolver.newInstance().setCmsObject(cms); // resolve eventual macros result = resolver.resolveMacros(m_modelFolder); } finally { // switch back to stored uri cms.getRequestContext().setUri(uri); } return result; }
CmsMacroResolver resolver = CmsMacroResolver.newInstance().setCmsObject(newCms).setMessages( getMessages(locale)); result = resolver.resolveMacros(defaultValue);
/** 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; }
/** * Creates a macro resolver based on the current users OpenCms context and the provided resource name.<p> * * @param cms the current OpenCms user context * @param resourcename the resource name for macros like {@link A_CmsResourceType#MACRO_RESOURCE_FOLDER_PATH} * * @return a macro resolver based on the current users OpenCms context and the provided resource name */ protected CmsMacroResolver getMacroResolver(CmsObject cms, String resourcename) { CmsMacroResolver result = CmsMacroResolver.newInstance().setCmsObject(cms); if (isFolder() && (!CmsResource.isFolder(resourcename))) { // ensure folder ends with "/" so resourcename = resourcename.concat("/"); } // add special mappings for macros in default properties result.addMacro(MACRO_RESOURCE_ROOT_PATH, cms.getRequestContext().addSiteRoot(resourcename)); result.addMacro(MACRO_RESOURCE_SITE_PATH, resourcename); result.addMacro(MACRO_RESOURCE_FOLDER_PATH, CmsResource.getFolderPath(resourcename)); result.addMacro(MACRO_RESOURCE_FOLDER_PATH_TOUCH, CmsResource.getFolderPath(resourcename)); result.addMacro(MACRO_RESOURCE_PARENT_PATH, CmsResource.getParentFolder(resourcename)); result.addMacro(MACRO_RESOURCE_NAME, CmsResource.getName(resourcename)); return result; }
/** * Creates a macro resolver based on the current users OpenCms context and the provided resource name.<p> * * @param cms the current OpenCms user context * @param resourcename the resource name for macros like {@link A_CmsResourceType#MACRO_RESOURCE_FOLDER_PATH} * * @return a macro resolver based on the current users OpenCms context and the provided resource name */ protected CmsMacroResolver getMacroResolver(CmsObject cms, String resourcename) { CmsMacroResolver result = CmsMacroResolver.newInstance().setCmsObject(cms); if (isFolder() && (!CmsResource.isFolder(resourcename))) { // ensure folder ends with "/" so resourcename = resourcename.concat("/"); } // add special mappings for macros in default properties result.addMacro(MACRO_RESOURCE_ROOT_PATH, cms.getRequestContext().addSiteRoot(resourcename)); result.addMacro(MACRO_RESOURCE_SITE_PATH, resourcename); result.addMacro(MACRO_RESOURCE_FOLDER_PATH, CmsResource.getFolderPath(resourcename)); result.addMacro(MACRO_RESOURCE_FOLDER_PATH_TOUCH, CmsResource.getFolderPath(resourcename)); result.addMacro(MACRO_RESOURCE_PARENT_PATH, CmsResource.getParentFolder(resourcename)); result.addMacro(MACRO_RESOURCE_NAME, CmsResource.getName(resourcename)); return result; }
CmsMacroResolver macroResolver = CmsMacroResolver.newInstance().setCmsObject(cms);
CmsMacroResolver macroResolver = CmsMacroResolver.newInstance().setCmsObject(cms);
CmsMacroResolver macroResolver = CmsMacroResolver.newInstance().setCmsObject(cms);
CmsMacroResolver resolver = CmsMacroResolver.newInstance().setCmsObject(newCms).setMessages( getMessages(locale)); return resolver.resolveMacros(defaultValue);