List of usage examples for com.liferay.portal.kernel.xml Element addCDATA
public Element addCDATA(String cdata);
From source file:com.liferay.journal.internal.exportimport.content.processor.ImageImportDDMFormFieldValueTransformer.java
License:Open Source License
@Override public void transform(DDMFormFieldValue ddmFormFieldValue) throws PortalException { Value value = ddmFormFieldValue.getValue(); for (Locale locale : value.getAvailableLocales()) { String valueString = value.getString(locale); JSONObject jsonObject = JSONFactoryUtil.createJSONObject(valueString); String alt = jsonObject.getString("alt"); long oldClassPK = jsonObject.getLong("fileEntryId"); String type = jsonObject.getString("type"); FileEntry importedFileEntry = fetchImportedFileEntry(_portletDataContext, oldClassPK); if (importedFileEntry == null) { continue; }/*from w w w.j a v a 2 s . c o m*/ String fileEntryJSON = toJSON(importedFileEntry, type, alt); value.addString(locale, fileEntryJSON); StringBundler sb = new StringBundler(4); sb.append("//dynamic-element[@type='image']"); sb.append("/dynamic-content[contains(text(),'"); sb.append(valueString); sb.append("')]"); XPath xPath = SAXReaderUtil.createXPath(sb.toString()); List<Node> imageNodes = xPath.selectNodes(_document); for (Node imageNode : imageNodes) { Element imageElement = (Element) imageNode; imageElement.clearContent(); imageElement.addCDATA(fileEntryJSON); } } }
From source file:com.liferay.journal.internal.exportimport.content.processor.JournalArticleExportImportContentProcessor.java
License:Open Source License
protected String replaceExportJournalArticleReferences(PortletDataContext portletDataContext, StagedModel stagedModel, String content, boolean exportReferencedContent) throws Exception { Group group = _groupLocalService.fetchGroup(portletDataContext.getGroupId()); if (group.isStagingGroup()) { group = group.getLiveGroup();//from ww w .ja v a2 s . c om } if (group.isStaged() && !group.isStagedRemotely() && !group.isStagedPortlet(JournalPortletKeys.JOURNAL)) { return content; } Document document = SAXReaderUtil.read(content); XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='ddm-journal-article']"); List<Node> ddmJournalArticleNodes = xPath.selectNodes(document); for (Node ddmJournalArticleNode : ddmJournalArticleNodes) { Element ddmJournalArticleElement = (Element) ddmJournalArticleNode; List<Element> dynamicContentElements = ddmJournalArticleElement.elements("dynamic-content"); for (Element dynamicContentElement : dynamicContentElements) { String jsonData = dynamicContentElement.getStringValue(); JSONObject jsonObject = _jsonFactory.createJSONObject(jsonData); long classPK = GetterUtil.getLong(jsonObject.get("classPK")); JournalArticle journalArticle = _journalArticleLocalService.fetchLatestArticle(classPK); if (journalArticle == null) { if (_log.isInfoEnabled()) { StringBundler messageSB = new StringBundler(); messageSB.append("Staged model with class name "); messageSB.append(stagedModel.getModelClassName()); messageSB.append(" and primary key "); messageSB.append(stagedModel.getPrimaryKeyObj()); messageSB.append(" references missing journal "); messageSB.append("article with class primary key "); messageSB.append(classPK); _log.info(messageSB.toString()); } continue; } String journalArticleReference = "[$journal-article-reference=" + journalArticle.getPrimaryKey() + "$]"; if (_log.isDebugEnabled()) { _log.debug("Replacing " + jsonData + " with " + journalArticleReference); } dynamicContentElement.clearContent(); dynamicContentElement.addCDATA(journalArticleReference); if (exportReferencedContent) { StagedModelDataHandlerUtil.exportReferenceStagedModel(portletDataContext, stagedModel, journalArticle, PortletDataContext.REFERENCE_TYPE_DEPENDENCY); } else { Element entityElement = portletDataContext.getExportDataElement(stagedModel); portletDataContext.addReferenceElement(stagedModel, entityElement, journalArticle, PortletDataContext.REFERENCE_TYPE_DEPENDENCY, true); } } } return document.asXML(); }
From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java
License:Open Source License
protected String convertStaticContentToDynamic(String content) throws Exception { Document document = SAXReaderUtil.read(content); Document newDocument = SAXReaderUtil.createDocument(); Element rootElement = document.getRootElement(); String availableLocales = GetterUtil.getString(rootElement.attributeValue("available-locales"), _getDefaultLanguageId());//from w ww . java 2 s . co m String defaultLocale = GetterUtil.getString(rootElement.attributeValue("default-locale"), _getDefaultLanguageId()); Element newRootElement = SAXReaderUtil.createElement("root"); newRootElement.addAttribute("available-locales", availableLocales); newRootElement.addAttribute("default-locale", defaultLocale); newDocument.add(newRootElement); Element dynamicElementElement = SAXReaderUtil.createElement("dynamic-element"); dynamicElementElement.addAttribute("name", "content"); dynamicElementElement.addAttribute("type", "text_area"); dynamicElementElement.addAttribute("index-type", "text"); dynamicElementElement.addAttribute("index", String.valueOf(0)); newRootElement.add(dynamicElementElement); List<Element> staticContentElements = rootElement.elements("static-content"); for (Element staticContentElement : staticContentElements) { String languageId = GetterUtil.getString(staticContentElement.attributeValue("language-id"), _getDefaultLanguageId()); String text = staticContentElement.getText(); Element dynamicContentElement = SAXReaderUtil.createElement("dynamic-content"); dynamicContentElement.addAttribute("language-id", languageId); dynamicContentElement.addCDATA(text); dynamicElementElement.add(dynamicContentElement); } return XMLUtil.formatXML(newDocument); }
From source file:com.liferay.journal.internal.upgrade.v0_0_5.UpgradeJournal.java
License:Open Source License
protected void transformDateFieldValue(Element dynamicContentElement) { String value = dynamicContentElement.getText(); if (!Validator.isNumber(value)) { return;/* w w w.j a v a 2 s .co m*/ } Date date = new Date(GetterUtil.getLong(value)); dynamicContentElement.clearContent(); dynamicContentElement.addCDATA(_dateFormat.format(date)); }
From source file:com.liferay.journal.internal.upgrade.v1_1_0.UpgradeDocumentLibraryTypeContent.java
License:Open Source License
protected String convertContent(String content) throws Exception { Document contentDocument = SAXReaderUtil.read(content); contentDocument = contentDocument.clone(); XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='document_library']"); 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 data = getDocumentLibraryValue(dynamicContentEl.getText()); dynamicContentEl.clearContent(); dynamicContentEl.addCDATA(data); }/* w w w . jav a 2s .c o m*/ } return contentDocument.formattedString(); }
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 v a 2 s.c om*/ 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
protected void addMetadataEntry(Element metadataElement, String name, String value) { Element entryElement = metadataElement.addElement("entry"); entryElement.addAttribute("name", name); entryElement.addCDATA(value); }
From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java
License:Open Source License
protected void updateDynamicContentValue(Element dynamicContentElement, String fieldType, boolean multiple, String fieldValue) throws Exception { if (DDMFormFieldType.CHECKBOX.equals(fieldType)) { if (fieldValue.equals(Boolean.FALSE.toString())) { fieldValue = StringPool.BLANK; }// ww w .j a v a 2s.c om dynamicContentElement.addCDATA(fieldValue); } else if (DDMFormFieldType.LINK_TO_PAGE.equals(fieldType) && Validator.isNotNull(fieldValue)) { JSONObject jsonObject = JSONFactoryUtil.createJSONObject(fieldValue); long groupId = jsonObject.getLong("groupId"); long layoutId = jsonObject.getLong("layoutId"); boolean privateLayout = jsonObject.getBoolean("privateLayout"); StringBundler sb = new StringBundler((groupId > 0) ? 5 : 3); sb.append(layoutId); sb.append(StringPool.AT); if (privateLayout) { Group group = _groupLocalService.fetchGroup(groupId); if (group == null) { sb.append("private"); } else if (group.isUser()) { sb.append("private-user"); } else { sb.append("private-group"); } } else { sb.append("public"); } if (groupId > 0) { sb.append(StringPool.AT); sb.append(groupId); } dynamicContentElement.addCDATA(sb.toString()); } else if (DDMFormFieldType.SELECT.equals(fieldType) && Validator.isNotNull(fieldValue)) { JSONArray jsonArray = null; try { jsonArray = JSONFactoryUtil.createJSONArray(fieldValue); } catch (JSONException jsone) { return; } if (multiple) { for (int i = 0; i < jsonArray.length(); i++) { Element optionElement = dynamicContentElement.addElement("option"); optionElement.addCDATA(jsonArray.getString(i)); } } else { dynamicContentElement.addCDATA(jsonArray.getString(0)); } } else { dynamicContentElement.addCDATA(fieldValue); } }
From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void addImageFileEntries(JournalArticle article, Element dynamicElementElement) throws PortalException { if (ExportImportThreadLocal.isImportInProcess()) { return;/* w w w. j a v a2s . c om*/ } for (Element dynamicContentElement : dynamicElementElement.elements("dynamic-content")) { String value = dynamicContentElement.getText(); if (Validator.isNull(value)) { continue; } JSONObject jsonObject = JSONFactoryUtil.createJSONObject(value); String uuid = jsonObject.getString("uuid"); long groupId = jsonObject.getLong("groupId"); FileEntry fileEntry = dlAppLocalService.getFileEntryByUuidAndGroupId(uuid, groupId); boolean tempFile = fileEntry.isRepositoryCapabilityProvided(TemporaryFileEntriesCapability.class); if (tempFile) { FileEntry tempFileEntry = fileEntry; Folder folder = article.addImagesFolder(); String fileEntryName = DLUtil.getUniqueFileName(fileEntry.getGroupId(), folder.getFolderId(), fileEntry.getFileName()); fileEntry = PortletFileRepositoryUtil.addPortletFileEntry(groupId, fileEntry.getUserId(), JournalArticle.class.getName(), article.getResourcePrimKey(), JournalConstants.SERVICE_NAME, folder.getFolderId(), fileEntry.getContentStream(), fileEntryName, fileEntry.getMimeType(), false); dlAppLocalService.deleteFileEntry(tempFileEntry.getFileEntryId()); } JSONObject cdata = JSONFactoryUtil.createJSONObject(dynamicContentElement.getText()); cdata.put("resourcePrimKey", article.getResourcePrimKey()); cdata.put("uuid", fileEntry.getUuid()); dynamicContentElement.clearContent(); dynamicContentElement.addCDATA(cdata.toString()); } }
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); }/*w w w . ja v a 2 s . c o m*/ 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()); }