如何在 liferay 中以编程方式创建“空”期刊文章

Posted

技术标签:

【中文标题】如何在 liferay 中以编程方式创建“空”期刊文章【英文标题】:How to create an 'empty' journal article programmatically in liferay 【发布时间】:2013-01-18 12:07:45 【问题描述】:

使用 Liferay 6.1 CE,有没有一种简单的方法可以根据已知的结构 ID 创建“空”期刊文章?

以下代码:

ja = JournalArticleLocalServiceUtil.addArticle(
    themeDisplay.getUserId(),
    themeDisplay.getScopeGroupId(), 
    0, 0, //classNameId, classPK, 
    "test-article", //articleId, 
    false, //autoArticleId, 
    JournalArticleConstants.VERSION_DEFAULT, 
    titleMap,
    null, //descriptionMap,
    content, 
    "general", // type, 
    BamboostConstants.SINGLE_CONTENT_STRUCTURE_ID,
    null, // templateId, 
    StringPool.BLANK, //layoutUuid,
    1, 1, 1970, 0, 0, // displayDateMonth, displayDateDay, displayDateYear, 
                      // displayDateHour, displayDateMinute, 
    0, 0, 0, 0, 0, true, // expirationDateMonth, expirationDateDay, 
                         // expirationDateYear, expirationDateHour, 
                         //expirationDateMinute, neverExpire, 
    0, 0, 0, 0, 0, true, // reviewDateMonth, reviewDateDay, reviewDateYear, 
                        //reviewDateHour, reviewDateMinute, neverReview, 
    true, // indexable, 
    false, StringPool.BLANK, null, // smallImage, smallImageURL, smallImageFile, 
    null, StringPool.BLANK, // images, articleURL, 
    serviceContext
    );

如果 content 是给定结构的有效 xml,则有效,但如果内容为 null 或空白,则无效。

是否有一种方法可以返回给定结构的“最小”xml,但找不到。

最好的问候, 阿兰

【问题讨论】:

你好 Alain,如果你可以解析你的结构并为每个动态元素设置一个有效值,它是结构 xml 中的元数据。据我所知,liferay 不这样做,而且,如果他们这样做,我会感到惊讶。 【参考方案1】:

我不知道有什么方法可以做到这一点,但是这个 xml 应该足够了

<?xml version="1.0"?>

<root available-locales="en_US" default-locale="en_US">
    <static-content language-id="en_US"><![CDATA[ ]]></static-content>
</root>

【讨论】:

感谢您的回复。这确实创建了一篇期刊文章,但没有结构。我需要那个结构。目前,我对 XML 进行了硬编码,但每当结构发生变化时都需要对其进行审查。我想避免的是后一种依赖。

以上是关于如何在 liferay 中以编程方式创建“空”期刊文章的主要内容,如果未能解决你的问题,请参考以下文章

在 liferay 中以编程方式创建站点(组)

如何以编程方式创建 Liferay 7 Web 内容模板?

在android中以编程方式创建视图时如何传递AttributeSet

如何在 iphone 中以编程方式创建 PLIST 文件

如何在 Android 中以编程方式创建 TabLayout

如何在 JSF 2 中以编程方式或动态创建复合组件