[MAGNOLIA-2144] Modify NodeMapWrapper to handle Content children Created: 22/May/08  Updated: 23/Jan/13  Resolved: 22/Jan/10

Status: Closed
Project: Magnolia
Component/s: taglibs
Affects Version/s: 3.5.4
Fix Version/s: 4.3

Type: Improvement Priority: Major
Reporter: Dallas Vaughan Assignee: Fabrizio Giustina
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
dependency
depends upon MAGNOLIA-3020 content API cleanup: improve the base... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Date of First Response:

 Description   

Modify the class info.magnolia.cms.taglibs.SetNode$NodeMapWrapper to handle EL expressions such as "${content.childContent}" so that usages such as...

<cms:setNode var="content" />
<cms:setNode var="myContent" contentNode="${content.myChildContent}">

...can set a child node to a variable. Currently, only "built-in" properties (such as title) and child NodeData objects are supported. This would also be helpful in other tags that are based on the BaseContentTag (i.e., any tag that can has a "contentNode" attribute).

It should be easy to implement: in addition to handling child NodeData nodes when calling "containsKey" and "get", handle child Content nodes as well. Of course, the "size()" method currently returns the size of the NodeDataCollection, so I don't know how to handle that.



 Comments   
Comment by Ralf Hirning [ 22/May/08 ]

You can use the "path" attribute for that:

<cms:setNode var="content" />
<cms:setNode var="myContent" path="${content.handle}/myChildContent">

Comment by Philipp Bärfuss [ 22/Jan/10 ]

All returned children are now wrapped too.

Generated at Mon Feb 12 03:33:50 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.