List of usage examples for com.liferay.portal.kernel.xml Element attributeValue
public String attributeValue(String name);
From source file:com.liferay.journal.internal.upgrade.v1_1_0.UpgradeImageTypeContent.java
License:Open Source License
protected String convertTypeImageElements(long userId, long groupId, String content, long resourcePrimKey) throws Exception { Document contentDocument = SAXReaderUtil.read(content); contentDocument = contentDocument.clone(); XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='image']"); List<Node> imageNodes = xPath.selectNodes(contentDocument); for (Node imageNode : imageNodes) { Element imageEl = (Element) imageNode; List<Element> dynamicContentEls = imageEl.elements("dynamic-content"); for (Element dynamicContentEl : dynamicContentEls) { String id = dynamicContentEl.attributeValue("id"); if (Validator.isNull(id)) { continue; }// w w w. j a va 2s . co m long folderId = getFolderId(userId, groupId, resourcePrimKey); FileEntry fileEntry = getFileEntry(groupId, folderId, id); if (fileEntry == null) { continue; } JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); jsonObject.put("alt", StringPool.BLANK); jsonObject.put("groupId", fileEntry.getGroupId()); jsonObject.put("name", fileEntry.getFileName()); jsonObject.put("resourcePrimKey", resourcePrimKey); jsonObject.put("title", fileEntry.getTitle()); jsonObject.put("type", "journal"); jsonObject.put("uuid", fileEntry.getUuid()); dynamicContentEl.clearContent(); dynamicContentEl.addCDATA(jsonObject.toString()); } } return contentDocument.formattedString(); }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
@Override public Fields getDDMFields(DDMStructure ddmStructure, Document document) throws PortalException { Field fieldsDisplayField = new Field(ddmStructure.getStructureId(), DDM.FIELDS_DISPLAY_NAME, StringPool.BLANK);/*from w ww.ja va2 s . c om*/ Fields ddmFields = new Fields(); ddmFields.put(fieldsDisplayField); Element rootElement = document.getRootElement(); String[] availableLanguageIds = StringUtil.split(rootElement.attributeValue("available-locales")); String defaultLanguageId = rootElement.attributeValue("default-locale"); List<Element> dynamicElementElements = rootElement.elements("dynamic-element"); for (Element dynamicElementElement : dynamicElementElements) { addDDMFields(dynamicElementElement, ddmStructure, ddmFields, availableLanguageIds, defaultLanguageId); } return ddmFields; }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
/** * @deprecated As of 4.0.0, with no direct replacement *//*from w w w .j av a 2 s .com*/ @Deprecated @Override public String getJournalXSD(String ddmXSD) throws Exception { Document document = SAXReaderUtil.read(ddmXSD); Element rootElement = document.getRootElement(); String defaultLanguageId = rootElement.attributeValue("default-locale"); removeAttribute(rootElement, "available-locales"); removeAttribute(rootElement, "default-locale"); List<Element> dynamicElementElements = rootElement.elements("dynamic-element"); for (Element dynamicElementElement : dynamicElementElements) { updateDDMXSDDynamicElement(dynamicElementElement, defaultLanguageId); } return XMLUtil.formatXML(document); }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void addDDMFields(Element dynamicElementElement, DDMStructure ddmStructure, Fields ddmFields, String[] availableLanguageIds, String defaultLanguageId) throws PortalException { String name = dynamicElementElement.attributeValue("name"); String instanceId = dynamicElementElement.attributeValue("instance-id"); if (!ddmStructure.hasField(name)) { return;/* w ww . j a va 2 s .com*/ } if (!ddmStructure.isFieldTransient(name)) { Field ddmField = getField(dynamicElementElement, ddmStructure, availableLanguageIds, defaultLanguageId); String fieldName = ddmField.getName(); Field existingDDMField = ddmFields.get(fieldName); if (existingDDMField != null) { for (Locale locale : ddmField.getAvailableLocales()) { existingDDMField.addValues(locale, ddmField.getValues(locale)); } } else { ddmFields.put(ddmField); } } updateFieldsDisplay(ddmFields, name, instanceId); List<Element> childrenDynamicElementElements = dynamicElementElement.elements("dynamic-element"); for (Element childrenDynamicElementElement : childrenDynamicElementElements) { addDDMFields(childrenDynamicElementElement, ddmStructure, ddmFields, availableLanguageIds, defaultLanguageId); } }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected Field getField(Element dynamicElementElement, DDMStructure ddmStructure, String[] availableLanguageIds, String defaultLanguageId) throws PortalException { Field ddmField = new Field(); ddmField.setDDMStructureId(ddmStructure.getStructureId()); Locale defaultLocale = null;//from w ww. j av a 2 s. c om if (defaultLanguageId == null) { defaultLocale = LocaleUtil.getSiteDefault(); } else { defaultLocale = LocaleUtil.fromLanguageId(defaultLanguageId); } ddmField.setDefaultLocale(defaultLocale); String name = dynamicElementElement.attributeValue("name"); ddmField.setName(name); String dataType = ddmStructure.getFieldDataType(name); String type = ddmStructure.getFieldType(name); Set<String> missingLanguageIds = SetUtil.fromArray(availableLanguageIds); missingLanguageIds.remove(defaultLanguageId); List<Element> dynamicContentElements = dynamicElementElement.elements("dynamic-content"); for (Element dynamicContentElement : dynamicContentElements) { Locale locale = defaultLocale; String languageId = dynamicContentElement.attributeValue("language-id"); if (Validator.isNotNull(languageId)) { locale = LocaleUtil.fromLanguageId(languageId); missingLanguageIds.remove(languageId); } Serializable serializable = getFieldValue(dataType, type, dynamicContentElement); ddmField.addValue(locale, serializable); } addMissingFieldValues(ddmField, defaultLanguageId, missingLanguageIds); return ddmField; }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void getJournalMetadataElement(Element metadataElement) { removeAttribute(metadataElement, "locale"); Element dynamicElementElement = metadataElement.getParent(); // Required/* ww w .j a v a2 s .co m*/ boolean required = GetterUtil.getBoolean(dynamicElementElement.attributeValue("required")); addMetadataEntry(metadataElement, "required", String.valueOf(required)); // Tooltip Element tipElement = fetchMetadataEntry(metadataElement, "name", "tip"); if (tipElement != null) { tipElement.addAttribute("name", "instructions"); addMetadataEntry(metadataElement, "displayAsTooltip", "true"); } }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void updateContentDynamicElement(Element dynamicElementElement, DDMStructure ddmStructure, Fields ddmFields, DDMFieldsCounter ddmFieldsCounter) throws Exception { String fieldName = dynamicElementElement.attributeValue("name"); for (String childFieldName : ddmStructure.getChildrenFieldNames(fieldName)) { int count = ddmFieldsCounter.get(fieldName); int repetitions = countFieldRepetition(ddmFields, childFieldName, fieldName, count); for (int i = 0; i < repetitions; i++) { Element childDynamicElementElement = dynamicElementElement.addElement("dynamic-element"); childDynamicElementElement.addAttribute("name", childFieldName); String instanceId = getFieldInstanceId(ddmFields, fieldName, count + i); childDynamicElementElement.addAttribute("instance-id", instanceId); updateContentDynamicElement(childDynamicElementElement, ddmStructure, ddmFields, ddmFieldsCounter); }/*from w ww .j a v a 2 s. c o m*/ } updateContentDynamicElement(dynamicElementElement, ddmStructure, ddmFields, fieldName, ddmFieldsCounter); }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void updateDDMXSDDynamicElement(Element dynamicElementElement, String defaultLanguageId) { // Metadata/*www. j a v a2 s .com*/ List<Element> metadataElements = dynamicElementElement.elements("meta-data"); for (Element metadataElement : metadataElements) { String languageId = metadataElement.attributeValue("locale"); if (languageId.equals(defaultLanguageId)) { getJournalMetadataElement(metadataElement); } else { dynamicElementElement.remove(metadataElement); } } Element parentElement = dynamicElementElement.getParent(); String parentType = parentElement.attributeValue("type"); if (Objects.equals(parentType, "list") || Objects.equals(parentType, "multi-list")) { Element metadataElement = dynamicElementElement.element("meta-data"); Element labelElement = fetchMetadataEntry(metadataElement, "name", "label"); dynamicElementElement.addAttribute("name", labelElement.getText()); String repeatable = parentElement.attributeValue("repeatable"); dynamicElementElement.addAttribute("repeatable", repeatable); String value = dynamicElementElement.attributeValue("value"); dynamicElementElement.addAttribute("type", value); removeAttribute(dynamicElementElement, "value"); dynamicElementElement.remove(metadataElement); return; } // Index type String indexType = GetterUtil.getString(dynamicElementElement.attributeValue("indexType")); removeAttribute(dynamicElementElement, "indexType"); dynamicElementElement.addAttribute("index-type", indexType); // Type String type = dynamicElementElement.attributeValue("type"); boolean multiple = GetterUtil.getBoolean(dynamicElementElement.attributeValue("multiple")); String newType = _ddmTypesToJournalTypes.get(type); if (newType.equals("list") && multiple) { newType = "multi-list"; } dynamicElementElement.addAttribute("type", newType); // Removable attributes String[] removableAttributeNames = new String[] { "dataType", "fieldNamespace", "multiple", "readOnly", "required", "showLabel", "width" }; for (String removableAttributeName : removableAttributeNames) { removeAttribute(dynamicElementElement, removableAttributeName); } List<Element> childrenDynamicElementElements = dynamicElementElement.elements("dynamic-element"); for (Element childrenDynamicElementElement : childrenDynamicElementElements) { updateDDMXSDDynamicElement(childrenDynamicElementElement, defaultLanguageId); } }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void updateJournalXSDDynamicElement(Element element, String defaultLanguageId) { String name = element.attributeValue("name"); String type = element.attributeValue("type"); Element metadataElement = element.element("meta-data"); if (metadataElement == null) { metadataElement = element.addElement("meta-data"); }/*from ww w . j a va 2 s. c o m*/ if (type.equals("multi-list")) { element.addAttribute("multiple", "true"); } else { Element parentElement = element.getParent(); String parentType = parentElement.attributeValue("type"); if ((parentType != null) && parentType.equals("select")) { metadataElement.addAttribute("locale", defaultLanguageId); addMetadataEntry(metadataElement, "label", decodeURL(name)); removeAttribute(element, "index-type"); element.addAttribute("name", "option" + parentElement.attributeValue("name") + StringUtil.randomString(8)); element.addAttribute("type", "option"); element.addAttribute("value", decodeURL(type)); return; } } String indexType = StringPool.BLANK; Attribute indexTypeAttribute = element.attribute("index-type"); if (indexTypeAttribute != null) { indexType = indexTypeAttribute.getValue(); element.remove(indexTypeAttribute); } element.remove(element.attribute("type")); if (!type.equals("selection_break")) { String dataType = _ddmDataTypes.get(type); if (dataType == null) { dataType = "string"; } element.addAttribute("dataType", dataType); } element.addAttribute("indexType", indexType); String required = "false"; Element requiredElement = fetchMetadataEntry(metadataElement, "name", "required"); if (requiredElement != null) { required = requiredElement.getText(); } element.addAttribute("required", required); element.addAttribute("showLabel", "true"); String newType = _journalTypesToDDMTypes.get(type); if (newType == null) { newType = type; } element.addAttribute("type", newType); if (newType.startsWith("ddm")) { element.addAttribute("fieldNamespace", "ddm"); } metadataElement.addAttribute("locale", defaultLanguageId); List<Element> entryElements = metadataElement.elements(); if (entryElements.isEmpty()) { addMetadataEntry(metadataElement, "label", name); } else { for (Element entryElement : entryElements) { String oldEntryName = entryElement.attributeValue("name"); String newEntryName = _ddmMetadataAttributes.get(oldEntryName); if (newEntryName == null) { metadataElement.remove(entryElement); } else { entryElement.addAttribute("name", newEntryName); } } } if (newType.equals("ddm-date") || newType.equals("ddm-decimal") || newType.equals("ddm-integer") || newType.equals("ddm-link-to-page") || newType.equals("ddm-number") || newType.equals("ddm-text-html") || newType.equals("text") || newType.equals("textarea")) { element.addAttribute("width", "25"); } else if (newType.equals("ddm-image")) { element.addAttribute("fieldNamespace", "ddm"); element.addAttribute("readOnly", "false"); } element.add(metadataElement.detach()); List<Element> dynamicElementElements = element.elements("dynamic-element"); for (Element dynamicElementElement : dynamicElementElements) { updateJournalXSDDynamicElement(dynamicElementElement, defaultLanguageId); } }
From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void copyArticleImages(JournalArticle oldArticle, JournalArticle newArticle) throws Exception { Folder folder = newArticle.addImagesFolder(); for (FileEntry fileEntry : oldArticle.getImagesFileEntries()) { PortletFileRepositoryUtil.addPortletFileEntry(oldArticle.getGroupId(), newArticle.getUserId(), JournalArticle.class.getName(), newArticle.getResourcePrimKey(), JournalConstants.SERVICE_NAME, folder.getFolderId(), fileEntry.getContentStream(), fileEntry.getFileName(), fileEntry.getMimeType(), false); }/* www . j a va 2 s . com*/ Document contentDocument = oldArticle.getDocument(); contentDocument = contentDocument.clone(); XPath xPathSelector = SAXReaderUtil.createXPath("//dynamic-element[@type='image']"); List<Node> imageNodes = xPathSelector.selectNodes(contentDocument); for (Node imageNode : imageNodes) { Element imageEl = (Element) imageNode; List<Element> dynamicContentEls = imageEl.elements("dynamic-content"); for (Element dynamicContentEl : dynamicContentEls) { String fileName = dynamicContentEl.attributeValue("name"); FileEntry fileEntry = PortletFileRepositoryUtil.getPortletFileEntry(newArticle.getGroupId(), folder.getFolderId(), fileName); String previewURL = DLUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, StringPool.BLANK, false, true); dynamicContentEl.addAttribute("resourcePrimKey", String.valueOf(newArticle.getResourcePrimKey())); dynamicContentEl.clearContent(); dynamicContentEl.addCDATA(previewURL); } } newArticle.setContent(contentDocument.formattedString()); }