簡體   English   中英

Magnolia CMS中的節點創建

[英]Node Creation in Magnolia CMS

我正在一個已經啟動的Magnolia CMS項目中。 在開始的時候,我閱讀了文檔並遵循了他們在網絡上開設的學術課程。 之后,我被委托構建一個新模塊。 最簡單的方法是復制一個現有的。 我做到了,但是沒有按預期工作。 我修改了路徑,但仍無法按預期工作。 因此,我發現必須創建一個新模塊必須指向的節點。 我不知道如何創建[mgnl:content] 有人對此有經驗並可以幫我嗎? 提前謝謝!

要創建節點,您只需調用MgnlContext.getJCRSession("workspace name").getRootNode().addNode("path/to/my/node", "mgnl:content")但這不是您想要在此處執行的操作。

您在這里需要做的就是正確編寫模塊描述符,並將其放置在模塊結構中的正確位置。 文檔中閱讀有關它的更多信息。

您的帖子中的另一個誤解是認為復制模塊是最簡單的制作方法。 那是完全錯誤的。 制作模塊的最佳方法是使用maven原型mvn archetype:generate -DarchetypeCatalog=https://nexus.magnolia-cms.com/content/groups/public/ ,在文檔中也有關於它的更多解釋。

您可以通過添加以下代碼來創建新的Node類型:

<?xml version="1.0" encoding="UTF-8"?>
<nodeTypes xmlns:mgnl="http://www.magnolia.info/jcr/mgnl">

  <nodeType name="mgnl:navitem" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
    <supertypes>
      <supertype>mgnl:content</supertype>
    </supertypes>
  </nodeType>
</nodeTypes>

這應該放在下面:

{mgnl-root}/{mgnl-module-name}/resources/mgnl-nodetypes/navitem.xml

那是我對節點類型的定義:

<nodeTypes
    xmlns:rep="internal"
    xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
    xmlns:mix="http://www.jcp.org/jcr/mix/1.0"
    xmlns:mgnl="http://www.magnolia.info/jcr/mgnl"
    xmlns:jcr="http://www.jcp.org/jcr/1.0">
  <!-- custom node types -->
  <nodeType name="mgnl:(YOUR NODETYPE´S NAME)" isMixin="false" hasOrderableChildNodes="true" primaryItemName="">
    <supertypes>
      <supertype>mgnl:content</supertype>
    </supertypes>
  </nodeType>
</nodeTypes>

您文件夾中的此定義:\\ src \\ main \\ resources \\ mgnl-nodetypes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM