CMS河马属性从.yaml文件中读取

时间:2018-02-23 14:14:32

标签: hippocms

我需要阅读.yaml文件中所述的属性(例如banner.yaml)。应该在java类中读取这些属性,以便可以访问它们并明智地执行操作。

  1. 这是我的label.yaml文件

    /content/documents/administration/labels:
    jcr:primaryType: hippostd:folder
    jcr:mixinTypes: ['mix:referenceable']
    jcr:uuid: 7ec0e757-373b-465a-9886-d072bb813f58
    hippostd:foldertype: [new-resource-bundle, new-untranslated-folder]
    /global:
    jcr:primaryType: hippo:handle
    jcr:mixinTypes: ['hippo:named', 'mix:referenceable']
    jcr:uuid: 31e4796a-4025-48a5-9a6e-c31ba1fb387e
    hippo:name: Global
    
  2. 如何在一个java类中访问hippo:name属性,该属性应该将Global作为值返回?

    任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您无法从应用程序中读取yaml文件。 yaml文件在存储库中引导。您显示的数据代表资源包。您可以使用实用程序类ResourceBundleUtils #getBundle

以编程方式访问它

或者在模板上使用。然后你可以正常使用键。

我强烈建议您在继续之前按照我们的教程进行操作。

这里有更多细节: https://www.onehippo.org/library/concepts/translations/hst-2-dynamic-resource-bundles-support.html

答案 1 :(得分:1)

创建一个扩展BaseHstComponent的类,它允许您使用HST Content Bean的

创建会话对象,为此您需要拥有存储库的有效凭据。

Session session = repository.login("admin", "admin".toCharArray());

现在,创建javax.jcr.Node的对象,为此需要relPath到.yaml文件。 在您的情况下,它将是/content/documents/administration/labels/global

Node node = session.getRootNode().getNode("content/articles/myarticle");

现在,通过使用getProperty方法,您可以访问该属性。

node.getProperty("hippotranslation:locale");

您可以参考链接https://www.onehippo.org/library/concepts/content-repository/jcr-interface.html