Author: jonesde
Date: Sat Mar 10 01:38:03 2007
New Revision: 516669
URL: http://svn.apache.org/viewvc?view=rev&rev=516669
Log:
Various cleanups in the cmsssite templates and data; implemented a change to
support rendering the Content instead of the DataResource when it is decorated,
which is necessary in order for the thisContent object to exist and function,
which is necessary for including sub-content and such; also implemented the
content map facade link element to get a link out of the context that the cms
event puts in it
Modified:
ofbiz/trunk/applications/content/src/org/ofbiz/content/cms/CmsEvents.java
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java
ofbiz/trunk/applications/content/src/org/ofbiz/content/webapp/ftl/TraverseSubContentTransform.java
ofbiz/trunk/specialpurpose/cmssite/data/CmsSiteDemoData.xml
ofbiz/trunk/specialpurpose/cmssite/template/cms/MainDecorator.ftl
ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoFooter.ftl
ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHeader.ftl
ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHome.ftl
Modified:
ofbiz/trunk/applications/content/src/org/ofbiz/content/cms/CmsEvents.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/cms/CmsEvents.java?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
--- ofbiz/trunk/applications/content/src/org/ofbiz/content/cms/CmsEvents.java
(original)
+++ ofbiz/trunk/applications/content/src/org/ofbiz/content/cms/CmsEvents.java
Sat Mar 10 01:38:03 2007
@@ -26,6 +26,7 @@
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.util.EntityUtil;
+import org.ofbiz.webapp.control.RequestHandler;
import org.ofbiz.widget.screen.ScreenRenderer;
import org.ofbiz.widget.html.HtmlFormRenderer;
import org.ofbiz.service.LocalDispatcher;
@@ -187,6 +188,12 @@
MapStack templateMap = MapStack.create();
ScreenRenderer.populateContextForRequest(templateMap, null,
request, response, servletContext);
templateMap.put("formStringRenderer", new
HtmlFormRenderer(request, response));
+
+ // make the link prefix
+ ServletContext ctx = (ServletContext)
request.getAttribute("servletContext");
+ RequestHandler rh = (RequestHandler)
ctx.getAttribute("_REQUEST_HANDLER_");
+ String contextLinkPrefix = rh.makeLink(request, response, "",
true, false, true);
+ templateMap.put("_CONTEXT_LINK_PREFIX_", contextLinkPrefix);
Writer writer;
try {
Modified:
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
---
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java
(original)
+++
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentMapFacade.java
Sat Mar 10 01:38:03 2007
@@ -27,6 +27,7 @@
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.GeneralException;
+import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.content.data.DataResourceWorker;
import java.util.*;
@@ -52,6 +53,7 @@
protected final String mimeType;
protected final boolean cache;
protected boolean allowRender = true;
+ protected boolean isDecorated = false;
// internal objects
private DataResource dataResource;
@@ -104,6 +106,10 @@
public void setRenderFlag(boolean render) {
this.allowRender = render;
}
+
+ public void setIsDecorated(boolean isDecorated) {
+ this.isDecorated = isDecorated;
+ }
// interface methods
public int size() {
@@ -191,7 +197,19 @@
} else if ("link".equalsIgnoreCase(name)) {
// link to this content
- return "";
+ // TODO: make more intelligent to use a link alias if exists
+ String contextLinkPrefix = (String)
this.context.get("_CONTEXT_LINK_PREFIX_");
+ if (UtilValidate.isNotEmpty(contextLinkPrefix)) {
+ StringBuffer linkBuf = new StringBuffer();
+ linkBuf.append(contextLinkPrefix);
+ if (!contextLinkPrefix.endsWith("/")) {
+ linkBuf.append("/");
+ }
+ linkBuf.append(this.contentId);
+ return linkBuf.toString();
+ } else {
+ return this.contentId;
+ }
} else if ("data".equalsIgnoreCase(name) ||
"dataresource".equalsIgnoreCase(name)) {
// data (resource) object
return dataResource;
@@ -236,13 +254,19 @@
}
protected String renderThis() {
- Map renderCtx = FastMap.newInstance();
- renderCtx.putAll(context);
- if (!allowRender) {
+ if (!this.allowRender && !this.isDecorated) {
String errorMsg = "WARNING: Cannot render content being rendered!
(Infinite Recursion NOT allowed!)";
Debug.logWarning(errorMsg, module);
return "=========> " + errorMsg + " <=========";
}
+ // TODO: change to use the MapStack instead of a cloned Map
+ Map renderCtx = FastMap.newInstance();
+ renderCtx.putAll(context);
+
+ if (this.isDecorated) {
+ renderCtx.put("_IS_DECORATED_", Boolean.TRUE);
+ }
+
try {
return ContentWorker.renderContentAsText(dispatcher, delegator,
contentId, renderCtx, locale, mimeType, cache);
} catch (GeneralException e) {
Modified:
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
---
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java
(original)
+++
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java
Sat Mar 10 01:38:03 2007
@@ -188,7 +188,9 @@
// look for a content decorator
String contentDecoratorId = content.getString("decoratorContentId");
- if (UtilValidate.isNotEmpty(contentDecoratorId)) {
+ // check to see if the decorator has already been run
+ boolean isDecorated =
Boolean.TRUE.equals(templateContext.get("_IS_DECORATED_"));
+ if (!isDecorated && UtilValidate.isNotEmpty(contentDecoratorId)) {
// if there is a decorator content; do not render this content;
// instead render the decorator
GenericValue decorator;
@@ -203,6 +205,7 @@
// render the decorator
ContentMapFacade decFacade = new ContentMapFacade(dispatcher,
decorator, templateContext, locale, mimeTypeId, cache);
+ facade.setIsDecorated(true);
templateContext.put("decoratedContent", facade); // decorated
content
templateContext.put("thisContent", decFacade); // decorator content
ContentWorker.renderContentAsText(dispatcher, delegator,
contentDecoratorId, out, templateContext, locale, mimeTypeId, cache);
Modified:
ofbiz/trunk/applications/content/src/org/ofbiz/content/webapp/ftl/TraverseSubContentTransform.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/webapp/ftl/TraverseSubContentTransform.java?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
---
ofbiz/trunk/applications/content/src/org/ofbiz/content/webapp/ftl/TraverseSubContentTransform.java
(original)
+++
ofbiz/trunk/applications/content/src/org/ofbiz/content/webapp/ftl/TraverseSubContentTransform.java
Sat Mar 10 01:38:03 2007
@@ -250,7 +250,7 @@
if (locale == null)
locale = Locale.getDefault();
try {
- ContentWorker.renderContentAsText(dispatcher,
delegator, wrapTemplateId, out, templateRoot, locale, mimeTypeId, false);
+ ContentWorker.renderContentAsText(dispatcher,
delegator, wrapTemplateId, out, templateRoot, locale, mimeTypeId, true);
} catch (GeneralException e) {
Debug.logError(e, "Error rendering content", module);
throw new IOException("Error rendering content" +
e.toString());
Modified: ofbiz/trunk/specialpurpose/cmssite/data/CmsSiteDemoData.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/cmssite/data/CmsSiteDemoData.xml?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
--- ofbiz/trunk/specialpurpose/cmssite/data/CmsSiteDemoData.xml (original)
+++ ofbiz/trunk/specialpurpose/cmssite/data/CmsSiteDemoData.xml Sat Mar 10
01:38:03 2007
@@ -60,10 +60,10 @@
</ElectronicText>
<Content contentId="CMSS_DEMO_PAGE1" contentTypeId="DOCUMENT"
decoratorContentId="CMSS_DEC" contentName="CMS Site Demo Page 1"
dataResourceId="CMSS_DEMO_PAGE1"/>
<ContentAssoc contentId="CMSS_PPOINT" contentIdTo="CMSS_DEMO_PAGE1"
contentAssocTypeId="SUB_CONTENT" fromDate="2001-01-01 00:00:00"/>
- <DataResource dataResourceId="CMSS_DEMO_PAGE1_1"
dataResourceTypeId="SHORT_TEXT" objectInfo="Sub-content 1 of Sub-content 1"/>
+ <DataResource dataResourceId="CMSS_DEMO_PAGE1_1"
dataResourceTypeId="SHORT_TEXT" objectInfo="Sub-content 1"/>
<Content contentId="CMSS_DEMO_PAGE1_1" contentTypeId="DOCUMENT"
contentName="CMS Site Demo Page 1_1" dataResourceId="CMSS_DEMO_PAGE1_1"/>
<ContentAssoc contentId="CMSS_DEMO_PAGE1" contentIdTo="CMSS_DEMO_PAGE1_1"
contentAssocTypeId="SUB_CONTENT" mapKey="sub1" fromDate="2001-01-01 00:00:00"/>
- <DataResource dataResourceId="CMSS_DEMO_PAGE1_2"
dataResourceTypeId="SHORT_TEXT" objectInfo="Sub-content 2 of Sub-content 1"/>
+ <DataResource dataResourceId="CMSS_DEMO_PAGE1_2"
dataResourceTypeId="SHORT_TEXT" objectInfo="Sub-content 2"/>
<Content contentId="CMSS_DEMO_PAGE1_2" contentTypeId="DOCUMENT"
contentName="CMS Site Demo Page 1_2" dataResourceId="CMSS_DEMO_PAGE1_2"/>
<ContentAssoc contentId="CMSS_DEMO_PAGE1" contentIdTo="CMSS_DEMO_PAGE1_2"
contentAssocTypeId="SUB_CONTENT" mapKey="sub2" fromDate="2001-01-01 00:00:00"/>
</entity-engine-xml>
Modified: ofbiz/trunk/specialpurpose/cmssite/template/cms/MainDecorator.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/cmssite/template/cms/MainDecorator.ftl?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
--- ofbiz/trunk/specialpurpose/cmssite/template/cms/MainDecorator.ftl (original)
+++ ofbiz/trunk/specialpurpose/cmssite/template/cms/MainDecorator.ftl Sat Mar
10 01:38:03 2007
@@ -25,11 +25,10 @@
</head>
<body>
-${(thisContent.subcontent.header.render)?if_exists}
+${(thisContent.subcontent.header)?if_exists}
-${decoratedContent.data.render}
+${decoratedContent}
-${(thisContent.subcontent.footer.render)?if_exists}
+${(thisContent.subcontent.footer)?if_exists}
</body>
-
</html>
Modified: ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoFooter.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoFooter.ftl?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
--- ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoFooter.ftl (original)
+++ ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoFooter.ftl Sat Mar 10
01:38:03 2007
@@ -16,7 +16,7 @@
specific language governing permissions and limitations
under the License.
-->
-<div>
-This is the footer!
-</div>
+<div id="footer">
<hr/>
+<div>This is the footer!</div>
+</div>
Modified: ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHeader.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHeader.ftl?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
--- ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHeader.ftl (original)
+++ ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHeader.ftl Sat Mar 10
01:38:03 2007
@@ -16,7 +16,7 @@
specific language governing permissions and limitations
under the License.
-->
-<div>
-This is the header!
-</div>
+<div id="header">
+<div>This is the header!</div>
<hr/>
+</div>
Modified: ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHome.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHome.ftl?view=diff&rev=516669&r1=516668&r2=516669
==============================================================================
--- ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHome.ftl (original)
+++ ofbiz/trunk/specialpurpose/cmssite/webapp/cmssite/DemoHome.ftl Sat Mar 10
01:38:03 2007
@@ -18,7 +18,7 @@
-->
<div>
<h1>Welcome to the Home page.</h1>
-<div><a href="/cmssite/cms/CMSS_DEMO_PAGE1">Demo Page 1</a></div>
-<div><a href="${thisContent.content.CMSS_DEMO_PAGE1.link}">Demo Page
1</a></div>
+<div><a href="/cmssite/cms/CMSS_DEMO_PAGE1">Demo Page 1 - Hard Coded
Link</a></div>
+<div><a href="${thisContent.content.CMSS_DEMO_PAGE1.link}">Demo Page 1 -
Dynamic Link</a></div>
</div>
<hr/>