List of usage examples for com.liferay.portal.kernel.xml Element clearContent
public void clearContent();
From source file:com.liferay.adaptive.media.journal.web.internal.exportimport.content.processor.AMJournalArticleContentHTMLReplacer.java
License:Open Source License
public String replace(String content, Replace replace) throws Exception { try {/*from ww w . j a v a 2s . co m*/ Document document = SAXReaderUtil.read(content); XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='text_area']"); 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 replacedHtml = replace.apply(dynamicContentElement.getStringValue()); dynamicContentElement.clearContent(); dynamicContentElement.addCDATA(replacedHtml); } } return document.asXML(); } catch (DocumentException de) { if (_log.isDebugEnabled()) { _log.debug("Invalid content:\n" + content); } return content; } }
From source file:com.liferay.dynamic.data.mapping.internal.util.DDMXMLImpl.java
License:Open Source License
protected void updateField(Element dynamicContentElement, Serializable fieldValue) { dynamicContentElement.clearContent(); if (fieldValue instanceof Date) { Date valueDate = (Date) fieldValue; fieldValue = valueDate.getTime(); }/*www. ja v a 2 s . c o m*/ String valueString = String.valueOf(fieldValue); dynamicContentElement.addCDATA(valueString.trim()); }
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; }/* w w w .ja va 2 s . c om*/ 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();/*ww w .j a 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 void transformDateFieldValue(Element dynamicContentElement) { String value = dynamicContentElement.getText(); if (!Validator.isNumber(value)) { return;/* ww w. j a v a 2 s . c om*/ } 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); }//from w w w . j a v a 2 s .c om } 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; }//from www. j a v a2 s . c o 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.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void addImageFileEntries(JournalArticle article, Element dynamicElementElement) throws PortalException { if (ExportImportThreadLocal.isImportInProcess()) { return;/*from w w w . j a va2 s . co m*/ } 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); }//from w w w . j a va 2 s .co 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()); }
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; }/*from www . j a va 2s.c o 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); } }