[英]How to change persistence property of cq:inplaceEditing
我希望使用cq:inplaceEditing來修改我的JCR上的屬性,只要AEM作者使用它。 不幸的是,我不知道如何修改它在JCR中實際修改的屬性的名稱 。 它似乎默認只修改屬性“text”的值。
出於我的目的,我想對我定義名稱的屬性使用富文本編輯,而不僅僅是默認名稱“text”。
此鏈接中的圖像顯示包含cq:inplaceEditing的樹(由CRXDE提供):
這些是cq:editConfig的屬性:
這些是cq:inplaceEditing的屬性:
...當我使用inplaceEditor時,這就是我的JCR的內容節點。 出於潛在的安全原因,我已經將某些屬性的名稱塗抹了。 請注意,當我使用inplaceEditor時,下面的“text”屬性已更改。 另請注意,我希望能夠定義inplaceEditor更改的屬性名稱,而不僅僅是“text”屬性:
有沒有辦法使用不同的屬性名稱而不是“文本”?
- - - - - -編輯 - - - - -
將屬性“textPropertyName”更改為我正在搜索的屬性后,它似乎仍然不會實際修改inplaceEditor的行為。 它仍然只修改我的JCR節點的“text”屬性,而不是我在“textPropertyName”屬性中放置的屬性。
這張圖片包含我的cq:InplaceEditingConfig的屬性:
下圖包含上圖中“configPath”變量中指定的路徑上JCR節點的屬性。 請注意,我在此節點中設置了textPropertyName屬性,文本組件仍然會修改默認屬性“text”而不是指定的屬性:
最后,下圖顯示了文本組件內部的JCR樹的內容。
-----------另一個編輯----------
我發現在切換到經典UI之后,內聯文本編輯器保持了正確的屬性。 出於某種原因,它無法與觸摸UI一起正常工作。
就地編輯功能由CQ.ipe.InplaceEditing
函數的子類定義。 只需通過CRXDE工具搜索editorType
,即可輕松找到它。
搜索CQ.ipe.InplaceEditing
返回多個結果,例如CQ.ipe.TextEditor
,它在腳本的最末端注冊所需的editorType
即: CQ.ipe.InplaceEditing.register("text", CQ.ipe.TextEditor);
閱讀編輯器代碼,您可以找到第一個名為textPropertyName
可配置屬性,根據它的文檔,您可以找到它。 將它與inplace配置節點(請參閱Adobe的文檔 )結合使用,它就是您的案例解決方案。
您可以在Geometrixx組件的實例上自行嘗試。
/apps/geometrixx-gov/components/text
。 /apps/geometrixx-gov/components/text/cq:editConfig/cq:inplaceEditing@configPath
屬性值。 /apps/geometrixx-gov/components/text/dialog/items/tab1/items/text
resource並添加新屬性: textPropertyName=myPropertyName
。 在TouchUI澄清之后編輯
如果你想為TouchUI界面實現相同的功能,那么不幸的是它並不那么容易。 TouchUI的text
inplace編輯器由/libs/cq/gui/components/authoring/clientlibs/editor/js/editors/InlineTextEditor.js
定義。
搜索"text"
可以概覽此屬性的硬編碼方式。 對於AEM 6.1(我正在測試它),您可以在ns.persistence.readParagraphContent
函數中找到它,其中initialContent
是從資源JSON映射中提取的。 可以在finishInlineEdit
和addHistoryStep
方法中找到另一個出現的情況。 將"text"
所有三個出現更改為您的值會帶來預期的結果。
這顯然是不可接受的 - 這是一個平台范圍的更改,並將影響其他可能無法預料的組件(包括ootb)。 最簡單的方法是將整個編輯器復制粘貼到clientlib中並將編輯器注冊為新名稱 - 請參閱最后幾行: ns.editor.register
。 如果您對JS感到滿意,那么擴展此編輯器並更改僅受影響的三種方法可能是值得的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.