From: <fg...@us...> - 2011-08-08 10:49:24
|
Revision: 3588 http://openutils.svn.sourceforge.net/openutils/?rev=3588&view=rev Author: fgiust Date: 2011-08-08 10:49:18 +0000 (Mon, 08 Aug 2011) Log Message: ----------- a couple of useful EL functions Modified Paths: -------------- trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctions.java trunk/openutils-mgnlutils/src/main/resources/META-INF/tld/mgnlutils.tld Modified: trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctions.java =================================================================== --- trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctions.java 2011-08-08 10:42:46 UTC (rev 3587) +++ trunk/openutils-mgnlutils/src/main/java/it/openutils/mgnlutils/el/MgnlUtilsElFunctions.java 2011-08-08 10:49:18 UTC (rev 3588) @@ -935,4 +935,51 @@ return null; } + /** + * Returns the value of a page property, by iterating on active page ancestor till a value is found + * @param property property name + * @return property value + */ + public static String pagePropertyInherited(String property) + { + Content content = MgnlContext.getAggregationState().getMainContent(); + + try + { + while (content.getLevel() >= 1) + { + String value = content.getNodeData(property).getString(); + + if (!StringUtils.isEmpty(value)) + { + return value; + } + + content = content.getParent(); + } + } + catch (RepositoryException e) + { + log.warn(e.getClass().getName() + + " caught while reading property " + + property + + " from " + + MgnlContext.getAggregationState().getMainContent().getHandle()); + } + + return null; + } + + /** + * Sets the given content as the active page, calling MgnlContext.getAggregationState().setCurrentContent) + * @param content current content to set + */ + public static void setActivePage(Content content) + { + if (content != null) + { + MgnlContext.getAggregationState().setCurrentContent(content); + } + } + } Modified: trunk/openutils-mgnlutils/src/main/resources/META-INF/tld/mgnlutils.tld =================================================================== --- trunk/openutils-mgnlutils/src/main/resources/META-INF/tld/mgnlutils.tld 2011-08-08 10:42:46 UTC (rev 3587) +++ trunk/openutils-mgnlutils/src/main/resources/META-INF/tld/mgnlutils.tld 2011-08-08 10:49:18 UTC (rev 3588) @@ -326,6 +326,17 @@ <function-class>it.openutils.mgnlutils.el.MgnlUtilsElFunctions</function-class> <function-signature>java.util.Map userProperties()</function-signature> </function> - + <function> + <name>pagePropertyInherited</name> + <description>Returns the value of a page property, by iterating on active page ancestor till a value is found</description> + <function-class>it.openutils.mgnlutils.el.MgnlUtilsElFunctions</function-class> + <function-signature>java.lang.String pagePropertyInherited( java.lang.String)</function-signature> + </function> + <function> + <name>setActivePage</name> + <description>Sets the given content as the active page, calling MgnlContext.getAggregationState().setCurrentContent)</description> + <function-class>it.openutils.mgnlutils.el.MgnlUtilsElFunctions</function-class> + <function-signature>void setActivePage(info.magnolia.cms.core.Content)</function-signature> + </function> <!-- please don't add new funtions without a meaningfull <description> --> </taglib> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |