List of usage examples for com.liferay.portal.kernel.xml Element attributeValue
public String attributeValue(String name, String defaultValue);
From source file:com.acs.DDMXSD.java
License:Open Source License
public String getHTML(PageContext pageContext, Element element, Fields fields, String namespace, String mode, boolean readOnly, Locale locale) throws Exception { StringBundler sb = new StringBundler(); HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); String portletId = PortalUtil.getPortletId(request); String portletNamespace = PortalUtil.getPortletNamespace(portletId); List<Element> dynamicElementElements = element.elements("dynamic-element"); for (Element dynamicElementElement : dynamicElementElements) { FreeMarkerContext freeMarkerContext = getFreeMarkerContext(dynamicElementElement, locale); freeMarkerContext.put("portletNamespace", portletNamespace); freeMarkerContext.put("namespace", namespace); if (fields != null) { freeMarkerContext.put("fields", fields); }//ww w . j a v a 2s. com Map<String, Object> field = (Map<String, Object>) freeMarkerContext.get("fieldStructure"); String childrenHTML = getHTML(pageContext, dynamicElementElement, fields, namespace, mode, readOnly, locale); field.put("children", childrenHTML); String fieldNamespace = dynamicElementElement.attributeValue("fieldNamespace", _DEFAULT_NAMESPACE); String url = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); url = url.substring(0, url.lastIndexOf('/')); String defaultResourcePath = url + "/" + _TPL_DEFAULT_PATH; boolean fieldReadOnly = GetterUtil.getBoolean(field.get("readOnly")); if ((fieldReadOnly && Validator.isNotNull(mode) && mode.equalsIgnoreCase(DDMTemplateConstants.TEMPLATE_MODE_EDIT)) || readOnly) { fieldNamespace = _DEFAULT_READ_ONLY_NAMESPACE; defaultResourcePath = _TPL_DEFAULT_READ_ONLY_PATH; } String type = dynamicElementElement.attributeValue("type"); String templateName = StringUtil.replaceFirst(type, fieldNamespace.concat(StringPool.DASH), StringPool.BLANK); StringBundler resourcePath = new StringBundler(5); resourcePath.append(_TPL_PATH); resourcePath.append(fieldNamespace.toLowerCase()); resourcePath.append(CharPool.SLASH); resourcePath.append(templateName); resourcePath.append(_TPL_EXT); sb.append(processFTL(pageContext, freeMarkerContext, resourcePath.toString(), defaultResourcePath)); } return sb.toString(); }
From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void checkStructureField(DDMFormField ddmFormField, Element contentElement) throws PortalException { String fieldName = ddmFormField.getName(); boolean hasField = false; for (Element childElement : contentElement.elements()) { if (fieldName.equals(childElement.attributeValue("name", StringPool.BLANK))) { hasField = true;//w w w. j av a 2 s. co m for (DDMFormField childDDMFormField : ddmFormField.getNestedDDMFormFields()) { checkStructureField(childDDMFormField, childElement); } break; } } if (!hasField) { String contentElementType = contentElement.attributeValue("type", StringPool.BLANK); if (!contentElementType.equals("list") && !contentElementType.equals("multi-list")) { throw new StructureDefinitionException(fieldName); } } }
From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected Map<String, LocalizedValue> createFieldsValuesMap(Element parentElement, Locale defaultLocale) { Map<String, LocalizedValue> fieldsValuesMap = new HashMap<>(); List<Element> dynamicElementElements = parentElement.elements("dynamic-element"); LocalizedValue fieldLocalizedValue = new LocalizedValue(defaultLocale); for (Element dynamicElementElement : dynamicElementElements) { String fieldName = dynamicElementElement.attributeValue("name", StringPool.BLANK); List<Element> dynamicContentElements = dynamicElementElement.elements("dynamic-content"); for (Element dynamicContentElement : dynamicContentElements) { String languageId = dynamicContentElement.attributeValue("language-id"); String value = dynamicContentElement.getText(); fieldLocalizedValue.addString(LocaleUtil.fromLanguageId(languageId), value); }//from w w w. ja va 2s . c om fieldsValuesMap.put(fieldName, fieldLocalizedValue); fieldsValuesMap.putAll(createFieldsValuesMap(dynamicElementElement, defaultLocale)); } return fieldsValuesMap; }
From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void format(User user, long groupId, JournalArticle article, Element root) throws PortalException { for (Element element : root.elements()) { String elType = element.attributeValue("type", StringPool.BLANK); if (elType.equals("document_library")) { addDocumentLibraryFileEntries(element); } else if (elType.equals("image")) { addImageFileEntries(article, element); } else if (elType.equals("text_area") || elType.equals("text") || elType.equals("text_box")) { List<Element> dynamicContentElements = element.elements("dynamic-content"); for (Element dynamicContentElement : dynamicContentElements) { String dynamicContent = dynamicContentElement.getText(); if (Validator.isNotNull(dynamicContent)) { String contentType = ContentTypes.TEXT_PLAIN; if (elType.equals("text_area")) { contentType = ContentTypes.TEXT_HTML; }// w w w . j a va 2 s. co m dynamicContent = SanitizerUtil.sanitize(user.getCompanyId(), groupId, user.getUserId(), JournalArticle.class.getName(), 0, contentType, dynamicContent); dynamicContentElement.clearContent(); dynamicContentElement.addCDATA(dynamicContent); } } } format(user, groupId, article, element); } }
From source file:com.liferay.journal.transformer.ContentTransformerListener.java
License:Open Source License
protected String getDynamicContent(Document document, String elementName) { String content = null;//w ww.ja v a2 s . c o m try { Element rootElement = document.getRootElement(); for (Element element : rootElement.elements()) { String curElementName = element.attributeValue("name", StringPool.BLANK); if (curElementName.equals(elementName)) { content = element.elementText("dynamic-content"); break; } } } catch (Exception e) { _log.error(e, e); } return GetterUtil.getString(content); }
From source file:com.liferay.journal.transformer.JournalTransformer.java
License:Open Source License
protected List<TemplateNode> getTemplateNodes(ThemeDisplay themeDisplay, Element element, long ddmStructureId) throws Exception { DDMStructure ddmStructure = DDMStructureLocalServiceUtil.getStructure(ddmStructureId); DDMForm ddmForm = ddmStructure.getDDMForm(); Map<String, DDMFormField> ddmFormFieldsMap = ddmForm.getDDMFormFieldsMap(true); List<TemplateNode> templateNodes = new ArrayList<>(); Map<String, TemplateNode> prototypeTemplateNodes = new HashMap<>(); List<Element> dynamicElementElements = element.elements("dynamic-element"); for (Element dynamicElementElement : dynamicElementElements) { Element dynamicContentElement = dynamicElementElement.element("dynamic-content"); String data = StringPool.BLANK; if (dynamicContentElement != null) { data = dynamicContentElement.getText(); }//from w ww.j a v a2 s .com String name = dynamicElementElement.attributeValue("name", StringPool.BLANK); if (name.length() == 0) { throw new TransformException("Element missing \"name\" attribute"); } String type = dynamicElementElement.attributeValue("type", StringPool.BLANK); Map<String, String> attributes = new HashMap<>(); if (type.equals("image")) { JSONObject dataJSONObject = JSONFactoryUtil.createJSONObject(data); Iterator<String> itr = dataJSONObject.keys(); while (itr.hasNext()) { String key = itr.next(); String value = dataJSONObject.getString(key); attributes.put(key, value); } } if (dynamicContentElement != null) { for (Attribute attribute : dynamicContentElement.attributes()) { attributes.put(attribute.getName(), attribute.getValue()); } } TemplateNode templateNode = new TemplateNode(themeDisplay, name, StringUtil.stripCDATA(data), type, attributes); if (dynamicElementElement.element("dynamic-element") != null) { templateNode.appendChildren(getTemplateNodes(themeDisplay, dynamicElementElement, ddmStructureId)); } else if ((dynamicContentElement != null) && (dynamicContentElement.element("option") != null)) { List<Element> optionElements = dynamicContentElement.elements("option"); for (Element optionElement : optionElements) { templateNode.appendOption(StringUtil.stripCDATA(optionElement.getText())); } } DDMFormField ddmFormField = ddmFormFieldsMap.get(name); if (ddmFormField != null) { DDMFormFieldOptions ddmFormFieldOptions = ddmFormField.getDDMFormFieldOptions(); Map<String, LocalizedValue> options = ddmFormFieldOptions.getOptions(); for (Entry<String, LocalizedValue> entry : options.entrySet()) { String optionValue = StringUtil.stripCDATA(entry.getKey()); LocalizedValue localizedLabel = entry.getValue(); String optionLabel = localizedLabel.getString(themeDisplay.getLocale()); templateNode.appendOptionMap(optionValue, optionLabel); } } TemplateNode prototypeTemplateNode = prototypeTemplateNodes.get(name); if (prototypeTemplateNode == null) { prototypeTemplateNode = templateNode; prototypeTemplateNodes.put(name, prototypeTemplateNode); templateNodes.add(templateNode); } prototypeTemplateNode.appendSibling(templateNode); } return templateNodes; }
From source file:com.liferay.journal.transformer.LocaleTransformerListener.java
License:Open Source License
protected void filterByLanguage(Document document, String languageId) { Element rootElement = document.getRootElement(); String defaultLanguageId = LocaleUtil.toLanguageId(LocaleUtil.getSiteDefault()); String articleDefaultLanguageId = rootElement.attributeValue("default-locale", defaultLanguageId); String[] availableLanguageIds = StringUtil .split(rootElement.attributeValue("available-locales", articleDefaultLanguageId)); if (!ArrayUtil.contains(availableLanguageIds, languageId, true)) { filterByLanguage(rootElement, articleDefaultLanguageId, articleDefaultLanguageId); } else {/* www. ja va 2 s . com*/ filterByLanguage(rootElement, languageId, articleDefaultLanguageId); } }
From source file:com.liferay.journal.transformer.LocaleTransformerListener.java
License:Open Source License
protected void filterByLanguage(Element root, String languageId, String defaultLanguageId) { Element defaultLanguageElement = null; boolean hasLanguageIdElement = false; for (Element element : root.elements()) { String tempLanguageId = element.attributeValue("language-id", languageId); if (StringUtil.equalsIgnoreCase(tempLanguageId, languageId)) { if (Validator.isNotNull(element.attributeValue("language-id", StringPool.BLANK))) { hasLanguageIdElement = true; }//w ww. j a v a 2 s. co m filterByLanguage(element, languageId, defaultLanguageId); } else { if (StringUtil.equalsIgnoreCase(tempLanguageId, defaultLanguageId)) { defaultLanguageElement = element; } root.remove(element); } } if (!hasLanguageIdElement && (defaultLanguageElement != null)) { root.add(defaultLanguageElement); filterByLanguage(defaultLanguageElement, languageId, defaultLanguageId); } }
From source file:com.liferay.journal.transformer.LocaleTransformerListener.java
License:Open Source License
protected void filterByLocalizability(Document document, Map<String, String> tokens) { try {/*from ww w.j a v a2s . c om*/ long ddmStructureId = GetterUtil.getLong(tokens.get("ddm_structure_id")); DDMStructure ddmStructure = _ddmStructureLocalService.fetchDDMStructure(ddmStructureId); if (ddmStructure == null) { if (_log.isWarnEnabled()) { _log.warn("Not checking localization because dynamic data " + "mapping structure is not available"); } return; } Element rootElement = document.getRootElement(); String defaultLanguageId = LocaleUtil.toLanguageId(LocaleUtil.getSiteDefault()); String articleDefaultLanguageId = rootElement.attributeValue("default-locale", defaultLanguageId); filterByLocalizability(rootElement, articleDefaultLanguageId, ddmStructure); } catch (PortalException pe) { _log.error(pe); } catch (NullPointerException npe) { _log.error(npe); } }
From source file:com.liferay.portlet.dynamicdatamapping.service.impl.DDMStructureLocalServiceImpl.java
License:Open Source License
protected void validate(List<Element> elements, Set<String> names) throws PortalException { for (Element element : elements) { String elementName = element.getName(); if (elementName.equals("meta-data")) { continue; }//from w ww. j av a2 s . co m String name = element.attributeValue("name", StringPool.BLANK); String type = element.attributeValue("type", StringPool.BLANK); if (Validator.isNull(name) || name.startsWith(DDMStructureConstants.XSD_NAME_RESERVED)) { throw new StructureXsdException(); } char[] charArray = name.toCharArray(); for (int i = 0; i < charArray.length; i++) { if (!Character.isLetterOrDigit(charArray[i]) && (charArray[i] != CharPool.DASH) && (charArray[i] != CharPool.UNDERLINE)) { throw new StructureXsdException(); } } String path = name; Element parentElement = element.getParent(); while (!parentElement.isRootElement()) { path = parentElement.attributeValue("name", StringPool.BLANK) + StringPool.SLASH + path; parentElement = parentElement.getParent(); } path = path.toLowerCase(); if (names.contains(path)) { throw new StructureDuplicateElementException(); } else { names.add(path); } if (Validator.isNull(type)) { throw new StructureXsdException(); } validate(element.elements(), names); } }