Hi Wil, You have the freemarker built in '?parent' and you have the object 'page' which reflects the page node when you're operating on a paragraph level. So (on a page node) content?parent should directly lead you to your ancestor.
On a paragraph you could do 'page?parent' - C On Feb 25, 2011, at 10:44 AM, Will Scheidegger wrote: > Thanks for the feedback, everyone! > > I'm glad that my code seems to be acceptable. However I guess I should open a > JIRA issue asking for a "getAncestor" method in STKUtils... > > -will > > On 25.02.2011, at 10:31, Unger, Richard wrote: > >> Hi Will! >> >> I can confirm that we are doing similar „tricks“ to handle things like >> sidebar content. >> >> It doesn’t seem like such a bad solution to me, and the code does not seem >> so “dirty” to me either. >> >> On a similar note, I also wrote some macro/model code to do the function >> “inherit first” à since stk.inheritContent() is an “inherit all” type >> function, where all the content named “iconLinks” (to use your example) from >> all ancestor nodes of content is gathered in a collection. >> We found we wanted to walk up the tree to find the first instance of >> “iconLinks” and then stop there, effectively allowing us to make settings at >> top level pages, but ‘override’ them at deeper level pages if needed. >> >> Regards from Vienna, >> >> Richard >> >> >> Von: [email protected] >> [mailto:[email protected]] Im Auftrag von Will Scheidegger >> Gesendet: Donnerstag, 24. Februar 2011 23:26 >> An: Magnolia User-List >> Betreff: Re: [magnolia-user] STK question: inherited singelton link list >> like meta nav? >> >> Answering my own question... something like this below did the job. But I >> don't think it would win a price in a code beauty contest... >> >> [#assign cms=JspTaglibs["cms-taglib"]] >> >> <ul id="icon_links"> >> [#assign iconLinksModel = stk.inheritContent(content, "iconLinks") /] >> [#if iconLinksModel.exists] >> [@cms.contentNodeIterator contentNode=iconLinksModel.content!] >> [@cms.includeTemplate /] >> [/@cms.contentNodeIterator] >> [/#if] >> [#if mgnl.editMode && content.@level == 1] >> <li class="icon_link">[@cms.newBar >> contentNodeCollectionName="iconLinks" newLabel="Neues Icon-Link" >> paragraph="schweizmobilcardExternalImageLink,schweizmobilcardInternalImageLink" >> /]</li> >> [/#if] >> </ul> >> >> On 24.02.2011, at 18:16, Will Scheidegger wrote: >> >> >> >> Dear Magnolians >> >> We need to add a list of "sponsor" (icon, link, name) on each page. It >> pretty much boils down to the same functionality the meta navigation offers. >> But the meta navigation uses special methods the model provides. >> >> Now of course I could extend STKTemplateModel and copy the meta navigation >> methods. But can I do the same without modifying the model? >> >> Whatever I have tried so far has failed miserably. I've done this in JSP >> templates, but somehow Freemarker is giving me a hard time... for instance: >> How can I get the ancestor node at level 1? ${content.getAncestor(1)} does >> not work because of the Magnolia Freemarker "features"... >> >> Thanks for any pointers! >> >> -will >> >> >> ---------------------------------------------------------------- >> For list details see >> http://www.magnolia-cms.com/home/community/mailing-lists.html >> To unsubscribe, E-mail to: <[email protected]> >> ---------------------------------------------------------------- >> >> >> >> >> ---------------------------------------------------------------- >> For list details see >> http://www.magnolia-cms.com/home/community/mailing-lists.html >> To unsubscribe, E-mail to: <[email protected]> >> ---------------------------------------------------------------- >> >> >> ---------------------------------------------------------------- >> For list details see >> http://www.magnolia-cms.com/home/community/mailing-lists.html >> To unsubscribe, E-mail to: <[email protected]> >> ---------------------------------------------------------------- > > > > ---------------------------------------------------------------- > For list details see > http://www.magnolia-cms.com/home/community/mailing-lists.html > To unsubscribe, E-mail to: <[email protected]> > ---------------------------------------------------------------- Best regards, Christian Ringele Magnolia International Ltd. Magnolia® - Simple Open Source Content Management ---------------------------------------------------------------- For list details see http://www.magnolia-cms.com/home/community/mailing-lists.html To unsubscribe, E-mail to: <[email protected]> ----------------------------------------------------------------
