Author: sdumitriu
Date: 2007-11-26 17:15:24 +0100 (Mon, 26 Nov 2007)
New Revision: 6080
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/render/filter/XWikiHeadingFilter.java
Log:
XWIKI-1899: The #toc macro requires programming rights for numbering sections
Fixed (java part)
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/render/filter/XWikiHeadingFilter.java
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/render/filter/XWikiHeadingFilter.java
2007-11-26 15:46:57 UTC (rev 6079)
+++
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/render/filter/XWikiHeadingFilter.java
2007-11-26 16:15:24 UTC (rev 6080)
@@ -26,6 +26,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.velocity.VelocityContext;
import org.radeox.api.engine.context.InitialRenderContext;
import org.radeox.api.engine.context.RenderContext;
import org.radeox.filter.CacheFilter;
@@ -85,6 +86,7 @@
RenderContext rcontext = context.getRenderContext();
XWikiContext xcontext =
((XWikiRadeoxRenderEngine)
rcontext.getRenderEngine()).getXWikiContext();
+ VelocityContext vcontext = (VelocityContext)xcontext.get("vcontext");
XWikiDocument doc = xcontext.getDoc();
log.debug("Processing '" + text + "'");
@@ -104,13 +106,21 @@
log.debug("Generated heading id '" + id + "'");
// add numbering if the flag is set
+
if (xcontext.containsKey(TOC_NUMBERED)
&& ((Boolean) xcontext.get(TOC_NUMBERED)).booleanValue()) {
+ // This is the old place where the data was placed, but this
requires programming
+ // rights. Instead, we now use vcontext.
if (xcontext.containsKey(TOC_DATA)) {
Map tocEntry = (Map) ((Map) xcontext.get(TOC_DATA)).get(id);
if (tocEntry != null) {
numbering = (String)
tocEntry.get(TOCGenerator.TOC_DATA_NUMBERING) + " ";
}
+ } else if (vcontext != null && vcontext.containsKey(TOC_DATA)) {
+ Map tocEntry = (Map) ((Map) vcontext.get(TOC_DATA)).get(id);
+ if (tocEntry != null) {
+ numbering = (String)
tocEntry.get(TOCGenerator.TOC_DATA_NUMBERING) + " ";
+ }
}
}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications