List of usage examples for com.liferay.portal.kernel.xml Element attributeValue
public String attributeValue(String name);
From source file:com.liferay.portlet.journal.lar.JournalPortletDataHandlerImpl.java
License:Open Source License
public static void importStructure(PortletDataContext portletDataContext, Element structureElement) throws Exception { String path = structureElement.attributeValue("path"); if (!portletDataContext.isPathNotProcessed(path)) { return;//w w w . j a va 2s . c o m } JournalStructure structure = (JournalStructure) portletDataContext.getZipEntryAsObject(path); long userId = portletDataContext.getUserId(structure.getUserUuid()); JournalCreationStrategy creationStrategy = JournalCreationStrategyFactory.getInstance(); long authorId = creationStrategy.getAuthorUserId(portletDataContext, structure); if (authorId != JournalCreationStrategy.USE_DEFAULT_USER_ID_STRATEGY) { userId = authorId; } String structureId = structure.getStructureId(); boolean autoStructureId = false; if (Validator.isNumber(structureId) || (JournalStructureUtil.fetchByG_S(portletDataContext.getScopeGroupId(), structureId) != null)) { autoStructureId = true; } Map<String, String> structureIds = (Map<String, String>) portletDataContext .getNewPrimaryKeysMap(JournalStructure.class + ".structureId"); String parentStructureId = MapUtil.getString(structureIds, structure.getParentStructureId(), structure.getParentStructureId()); Document document = structureElement.getDocument(); Element rootElement = document.getRootElement(); Element parentStructureElement = (Element) rootElement .selectSingleNode("./structures/structure[@structure-id='" + parentStructureId + "']"); String parentStructureUuid = GetterUtil.getString(structureElement.attributeValue("parent-structure-uuid")); if ((parentStructureElement != null) && Validator.isNotNull(parentStructureId)) { importStructure(portletDataContext, parentStructureElement); parentStructureId = structureIds.get(parentStructureId); } else if (Validator.isNotNull(parentStructureUuid)) { JournalStructure parentStructure = JournalStructureLocalServiceUtil .getJournalStructureByUuidAndGroupId(parentStructureUuid, portletDataContext.getGroupId()); parentStructureId = parentStructure.getStructureId(); } boolean addGroupPermissions = creationStrategy.addGroupPermissions(portletDataContext, structure); boolean addGuestPermissions = creationStrategy.addGuestPermissions(portletDataContext, structure); ServiceContext serviceContext = portletDataContext.createServiceContext(structureElement, structure, _NAMESPACE); serviceContext.setAddGroupPermissions(addGroupPermissions); serviceContext.setAddGuestPermissions(addGuestPermissions); JournalStructure importedStructure = null; if (portletDataContext.isDataStrategyMirror()) { JournalStructure existingStructure = JournalStructureUtil.fetchByUUID_G(structure.getUuid(), portletDataContext.getScopeGroupId()); if (existingStructure == null) { Group companyGroup = GroupLocalServiceUtil.getCompanyGroup(portletDataContext.getCompanyId()); long companyGroupId = companyGroup.getGroupId(); existingStructure = JournalStructureUtil.fetchByUUID_G(structure.getUuid(), companyGroupId); } if (existingStructure == null) { serviceContext.setUuid(structure.getUuid()); importedStructure = JournalStructureLocalServiceUtil.addStructure(userId, portletDataContext.getScopeGroupId(), structureId, autoStructureId, parentStructureId, structure.getNameMap(), structure.getDescriptionMap(), structure.getXsd(), serviceContext); } else { importedStructure = JournalStructureLocalServiceUtil.updateStructure(existingStructure.getGroupId(), existingStructure.getStructureId(), parentStructureId, structure.getNameMap(), structure.getDescriptionMap(), structure.getXsd(), serviceContext); } } else { importedStructure = JournalStructureLocalServiceUtil.addStructure(userId, portletDataContext.getScopeGroupId(), structureId, autoStructureId, parentStructureId, structure.getNameMap(), structure.getDescriptionMap(), structure.getXsd(), serviceContext); } portletDataContext.importClassedModel(structure, importedStructure, _NAMESPACE); structureIds.put(structureId, importedStructure.getStructureId()); if (!structureId.equals(importedStructure.getStructureId())) { if (_log.isWarnEnabled()) { _log.warn("A structure with the ID " + structureId + " already " + "exists. The new generated ID is " + importedStructure.getStructureId()); } } }
From source file:com.liferay.portlet.journal.lar.JournalPortletDataHandlerImpl.java
License:Open Source License
public static void importTemplate(PortletDataContext portletDataContext, Element templateElement) throws Exception { String path = templateElement.attributeValue("path"); if (!portletDataContext.isPathNotProcessed(path)) { return;/*from w w w . j av a 2 s . co m*/ } JournalTemplate template = (JournalTemplate) portletDataContext.getZipEntryAsObject(path); long userId = portletDataContext.getUserId(template.getUserUuid()); JournalCreationStrategy creationStrategy = JournalCreationStrategyFactory.getInstance(); long authorId = creationStrategy.getAuthorUserId(portletDataContext, template); if (authorId != JournalCreationStrategy.USE_DEFAULT_USER_ID_STRATEGY) { userId = authorId; } String templateId = template.getTemplateId(); boolean autoTemplateId = false; if (Validator.isNumber(templateId) || (JournalTemplateUtil.fetchByG_T(portletDataContext.getScopeGroupId(), templateId) != null)) { autoTemplateId = true; } Map<String, String> structureIds = (Map<String, String>) portletDataContext .getNewPrimaryKeysMap(JournalStructure.class + ".structureId"); String parentStructureId = MapUtil.getString(structureIds, template.getStructureId(), template.getStructureId()); String xsl = template.getXsl(); xsl = importDLFileEntries(portletDataContext, templateElement, xsl); Group group = GroupLocalServiceUtil.getGroup(portletDataContext.getScopeGroupId()); xsl = StringUtil.replace(xsl, "@data_handler_group_friendly_url@", group.getFriendlyURL()); template.setXsl(xsl); boolean formatXsl = false; boolean addGroupPermissions = creationStrategy.addGroupPermissions(portletDataContext, template); boolean addGuestPermissions = creationStrategy.addGuestPermissions(portletDataContext, template); ServiceContext serviceContext = portletDataContext.createServiceContext(templateElement, template, _NAMESPACE); serviceContext.setAddGroupPermissions(addGroupPermissions); serviceContext.setAddGuestPermissions(addGuestPermissions); File smallFile = null; String smallImagePath = templateElement.attributeValue("small-image-path"); if (template.isSmallImage() && Validator.isNotNull(smallImagePath)) { if (smallImagePath.endsWith(StringPool.PERIOD)) { smallImagePath += template.getSmallImageType(); } byte[] bytes = portletDataContext.getZipEntryAsByteArray(smallImagePath); if (bytes != null) { smallFile = FileUtil.createTempFile(template.getSmallImageType()); FileUtil.write(smallFile, bytes); } } JournalTemplate importedTemplate = null; if (portletDataContext.isDataStrategyMirror()) { JournalTemplate existingTemplate = JournalTemplateUtil.fetchByUUID_G(template.getUuid(), portletDataContext.getScopeGroupId()); if (existingTemplate == null) { Group companyGroup = GroupLocalServiceUtil.getCompanyGroup(portletDataContext.getCompanyId()); long companyGroupId = companyGroup.getGroupId(); existingTemplate = JournalTemplateUtil.fetchByUUID_G(template.getUuid(), companyGroupId); } if (existingTemplate == null) { serviceContext.setUuid(template.getUuid()); importedTemplate = JournalTemplateLocalServiceUtil.addTemplate(userId, portletDataContext.getScopeGroupId(), templateId, autoTemplateId, parentStructureId, template.getNameMap(), template.getDescriptionMap(), template.getXsl(), formatXsl, template.getLangType(), template.getCacheable(), template.isSmallImage(), template.getSmallImageURL(), smallFile, serviceContext); } else { String structureId = existingTemplate.getStructureId(); if (Validator.isNull(structureId) && Validator.isNotNull(template.getStructureId())) { JournalStructure structure = JournalStructureUtil.fetchByG_S(template.getGroupId(), template.getStructureId()); if (structure == null) { structureId = template.getStructureId(); } else { JournalStructure existingStructure = JournalStructureUtil.findByUUID_G(structure.getUuid(), portletDataContext.getScopeGroupId()); structureId = existingStructure.getStructureId(); } } importedTemplate = JournalTemplateLocalServiceUtil.updateTemplate(existingTemplate.getGroupId(), existingTemplate.getTemplateId(), structureId, template.getNameMap(), template.getDescriptionMap(), template.getXsl(), formatXsl, template.getLangType(), template.getCacheable(), template.isSmallImage(), template.getSmallImageURL(), smallFile, serviceContext); } } else { importedTemplate = JournalTemplateLocalServiceUtil.addTemplate(userId, portletDataContext.getScopeGroupId(), templateId, autoTemplateId, parentStructureId, template.getNameMap(), template.getDescriptionMap(), template.getXsl(), formatXsl, template.getLangType(), template.getCacheable(), template.isSmallImage(), template.getSmallImageURL(), smallFile, serviceContext); } if (smallFile != null) { smallFile.delete(); } portletDataContext.importClassedModel(template, importedTemplate, _NAMESPACE); Map<String, String> templateIds = (Map<String, String>) portletDataContext .getNewPrimaryKeysMap(JournalTemplate.class + ".templateId"); templateIds.put(template.getTemplateId(), importedTemplate.getTemplateId()); if (!templateId.equals(importedTemplate.getTemplateId())) { if (_log.isWarnEnabled()) { _log.warn("A template with the ID " + templateId + " already " + "exists. The new generated ID is " + importedTemplate.getTemplateId()); } } }
From source file:com.liferay.portlet.journal.lar.JournalPortletDataHandlerImpl.java
License:Open Source License
protected static String importDLFileEntries(PortletDataContext portletDataContext, Element parentElement, String content) throws Exception { List<Element> dlReferenceElements = parentElement.elements("dl-reference"); for (Element dlReferenceElement : dlReferenceElements) { String dlReferencePath = dlReferenceElement.attributeValue("path"); String fileEntryUUID = null; try {//from w ww . j av a 2s .c om Object zipEntryObject = portletDataContext.getZipEntryAsObject(dlReferencePath); if (zipEntryObject == null) { if (_log.isWarnEnabled()) { _log.warn("Unable to reference " + dlReferencePath); } continue; } boolean defaultRepository = GetterUtil .getBoolean(dlReferenceElement.attributeValue("default-repository")); if (defaultRepository) { FileEntry fileEntry = (FileEntry) zipEntryObject; fileEntryUUID = fileEntry.getUuid(); } else { RepositoryEntry repositoryEntry = (RepositoryEntry) zipEntryObject; fileEntryUUID = repositoryEntry.getUuid(); } } catch (Exception e) { if (_log.isDebugEnabled()) { _log.debug(e, e); } else if (_log.isWarnEnabled()) { _log.warn(e.getMessage()); } } if (fileEntryUUID == null) { continue; } FileEntry fileEntry = DLAppLocalServiceUtil.getFileEntryByUuidAndGroupId(fileEntryUUID, portletDataContext.getGroupId()); if (fileEntry == null) { continue; } String dlReference = "[$dl-reference=" + dlReferencePath + "$]"; String url = DLUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null, StringPool.BLANK, false, false); content = StringUtil.replace(content, dlReference, url); } return content; }
From source file:com.liferay.portlet.journal.lar.JournalPortletDataHandlerImpl.java
License:Open Source License
@Override protected PortletPreferences doImportData(PortletDataContext portletDataContext, String portletId, PortletPreferences portletPreferences, String data) throws Exception { portletDataContext.importPermissions("com.liferay.portlet.journal", portletDataContext.getSourceGroupId(), portletDataContext.getScopeGroupId()); Document document = SAXReaderUtil.read(data); Element rootElement = document.getRootElement(); importReferencedData(portletDataContext, rootElement); Element structuresElement = rootElement.element("structures"); List<Element> structureElements = structuresElement.elements("structure"); //Modification start long processedItems = 0, itemsToprocess = 0; itemsToprocess += structureElements.size(); Element templatesElement = rootElement.element("templates"); List<Element> templateElements = templatesElement.elements("template"); itemsToprocess += templateElements.size(); Element feedsElement = rootElement.element("feeds"); List<Element> feedElements = feedsElement.elements("feed"); itemsToprocess += feedElements.size(); List<Element> articleElements = new ArrayList<Element>(); if (portletDataContext.getBooleanParameter(_NAMESPACE, "web-content")) { Element articlesElement = rootElement.element("articles"); articleElements = articlesElement.elements("article"); itemsToprocess += articleElements.size(); }//from w ww . j a va 2 s .co m StagingProgressUpdaterThreadLocal.getMonitor().getComponent(PublishProcessProgressMonitor.COMPONENT_JOURNAL) .setItemsCount(itemsToprocess); for (Element structureElement : structureElements) { StagingProgressUpdaterThreadLocal.getMonitor() .getComponent(PublishProcessProgressMonitor.COMPONENT_JOURNAL) .setItemsProcessed(processedItems++); importStructure(portletDataContext, structureElement); } for (Element templateElement : templateElements) { StagingProgressUpdaterThreadLocal.getMonitor() .getComponent(PublishProcessProgressMonitor.COMPONENT_JOURNAL) .setItemsProcessed(processedItems++); importTemplate(portletDataContext, templateElement); } for (Element feedElement : feedElements) { StagingProgressUpdaterThreadLocal.getMonitor() .getComponent(PublishProcessProgressMonitor.COMPONENT_JOURNAL) .setItemsProcessed(processedItems++); importFeed(portletDataContext, feedElement); } for (Element articleElement : articleElements) { StagingProgressUpdaterThreadLocal.getMonitor() .getComponent(PublishProcessProgressMonitor.COMPONENT_JOURNAL) .setItemsProcessed(processedItems++); try { importArticle(portletDataContext, articleElement); } catch (ArticleContentException ace) { if (_log.isWarnEnabled()) { String path = articleElement.attributeValue("path"); _log.warn("Skipping article with path " + path + " because of invalid content"); } } } //Modification end return portletPreferences; }
From source file:com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void checkStructureField(Element el, Document contentDoc) throws PortalException { StringBuilder elPath = new StringBuilder(); elPath.append(el.attributeValue("name")); Element elParent = el.getParent(); for (;;) {/* w ww . j a v a 2s .c o m*/ if ((elParent == null) || (elParent.getName().equals("root"))) { break; } elPath.insert(0, elParent.attributeValue("name") + StringPool.COMMA); elParent = elParent.getParent(); } String[] elPathNames = StringUtil.split(elPath.toString()); Element contentEl = contentDoc.getRootElement(); for (String _elPathName : elPathNames) { boolean foundEl = false; for (Element tempEl : contentEl.elements()) { if (_elPathName.equals(tempEl.attributeValue("name", StringPool.BLANK))) { contentEl = tempEl; foundEl = true; break; } } if (!foundEl) { String elType = contentEl.attributeValue("type", StringPool.BLANK); if (!elType.equals("list") && !elType.equals("multi-list")) { throw new StructureXsdException(elPath.toString()); } break; } } }
From source file:com.liferay.portlet.journal.service.impl.JournalArticleLocalServiceImpl.java
License:Open Source License
protected void copyArticleImages(JournalArticle oldArticle, JournalArticle newArticle) throws Exception { Document contentDoc = SAXReaderUtil.read(oldArticle.getContent()); XPath xPathSelector = SAXReaderUtil.createXPath("//dynamic-element[@type='image']"); List<Node> imageNodes = xPathSelector.selectNodes(contentDoc); for (Node imageNode : imageNodes) { Element imageEl = (Element) imageNode; String instanceId = imageEl.attributeValue("instance-id"); String name = imageEl.attributeValue("name"); List<Element> dynamicContentEls = imageEl.elements("dynamic-content"); for (Element dynamicContentEl : dynamicContentEls) { long imageId = GetterUtil.getLong(dynamicContentEl.attributeValue("id")); String languageId = dynamicContentEl.attributeValue("language-id"); Image oldImage = null; try { oldImage = imageLocalService.getImage(imageId); } catch (NoSuchImageException nsie) { continue; }/*w ww. ja v a2 s .com*/ imageId = journalArticleImageLocalService.getArticleImageId(newArticle.getGroupId(), newArticle.getArticleId(), newArticle.getVersion(), instanceId, name, languageId); imageLocalService.updateImage(imageId, oldImage.getTextObj()); String elContent = "/image/journal/article?img_id=" + imageId + "&t=" + WebServerServletTokenUtil.getToken(imageId); dynamicContentEl.setText(elContent); dynamicContentEl.addAttribute("id", String.valueOf(imageId)); } } newArticle.setContent(contentDoc.formattedString()); }
From source file:com.liferay.portlet.journal.util.ContentTransformerListener.java
License:Open Source License
protected String injectEditInPlace(String xml, String script) { try {/*from w w w . j a v a 2 s .c o m*/ Document document = SAXReaderUtil.read(xml); List<Node> nodes = document.selectNodes("//dynamic-element"); for (Node node : nodes) { Element element = (Element) node; String name = GetterUtil.getString(element.attributeValue("name")); String type = GetterUtil.getString(element.attributeValue("type")); if ((!name.startsWith("reserved-")) && (type.equals("text") || type.equals("text_area") || type.equals("text_box"))) { script = wrapEditInPlaceField(script, name, type, "data"); script = wrapEditInPlaceField(script, name, type, "getData()"); } } } catch (Exception e) { _log.warn(e.getMessage()); } return script; }
From source file:com.liferay.portlet.journal.util.JournalConverterImpl.java
License:Open Source License
@Override public Fields getDDMFields(DDMStructure ddmStructure, String content) throws Exception { Document document = SAXReaderUtil.read(content); Field fieldsDisplayField = new Field(ddmStructure.getStructureId(), DDMImpl.FIELDS_DISPLAY_NAME, StringPool.BLANK);/*w w w .ja va 2 s.c o m*/ Fields ddmFields = new Fields(); ddmFields.put(fieldsDisplayField); Element rootElement = document.getRootElement(); String defaultLocale = rootElement.attributeValue("default-locale"); List<Element> dynamicElementElements = rootElement.elements("dynamic-element"); for (Element dynamicElementElement : dynamicElementElements) { addDDMFields(dynamicElementElement, ddmStructure, ddmFields, defaultLocale); } return ddmFields; }
From source file:com.liferay.portlet.journal.util.JournalConverterImpl.java
License:Open Source License
@Override public String getJournalXSD(String ddmXSD) throws Exception { Document document = SAXReaderUtil.read(ddmXSD); Element rootElement = document.getRootElement(); String defaultLocale = 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, defaultLocale); }//from ww w . j av a 2s . co m return DDMXMLUtil.formatXML(document); }
From source file:com.liferay.portlet.journal.util.JournalConverterImpl.java
License:Open Source License
protected void addDDMFields(Element dynamicElementElement, DDMStructure ddmStructure, Fields ddmFields, String defaultLocale) throws Exception { String name = dynamicElementElement.attributeValue("name"); if (!ddmStructure.hasField(name)) { return;/* w w w . j a v a2 s .c om*/ } Field ddmField = getField(dynamicElementElement, ddmStructure, defaultLocale); 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, fieldName); List<Element> childrenDynamicElementElements = dynamicElementElement.elements("dynamic-element"); for (Element childrenDynamicElementElement : childrenDynamicElementElements) { addDDMFields(childrenDynamicElementElement, ddmStructure, ddmFields, defaultLocale); } }