FormItem now work as IndexItems (Issue #2064)

git-svn-id: https://svn.libreccm.org/ccm/trunk@2609 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2014-04-09 10:00:26 +00:00
parent e3f40b4e7f
commit 09214ccb3d
1 changed files with 14 additions and 5 deletions

View File

@ -32,6 +32,7 @@ import com.arsdigita.cms.ExtraXMLGenerator;
import com.arsdigita.cms.SecurityManager; import com.arsdigita.cms.SecurityManager;
import com.arsdigita.cms.dispatcher.ItemResolver; import com.arsdigita.cms.dispatcher.ItemResolver;
import com.arsdigita.cms.dispatcher.SimpleXMLGenerator; import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.cms.dispatcher.XMLGenerator;
import com.arsdigita.globalization.GlobalizationHelper; import com.arsdigita.globalization.GlobalizationHelper;
import com.arsdigita.kernel.Kernel; import com.arsdigita.kernel.Kernel;
import com.arsdigita.kernel.Party; import com.arsdigita.kernel.Party;
@ -108,7 +109,7 @@ public class GreetingItem extends AbstractComponent {
throw new LoginSignal(request); throw new LoginSignal(request);
} }
ContentBundle bundle = (ContentBundle) item; final ContentBundle bundle = (ContentBundle) item;
/* Fix by Jens Pelzetter, 2009-08-28 /* Fix by Jens Pelzetter, 2009-08-28
* bundle.getPrimaryInstance() does not care about the preferred * bundle.getPrimaryInstance() does not care about the preferred
@ -127,7 +128,13 @@ public class GreetingItem extends AbstractComponent {
// get the primary instance instead (fallback) // get the primary instance instead (fallback)
baseItem = bundle.getPrimaryInstance(); baseItem = bundle.getPrimaryInstance();
} }
Element itemEl = content.newChildElement("cms:item",
if (baseItem instanceof XMLGenerator) {
final XMLGenerator generator = (XMLGenerator) baseItem;
generator.generateXML(PageState.getPageState(), content, "");
} else {
final Element itemEl = content.newChildElement("cms:item",
CMS.CMS_XML_NS); CMS.CMS_XML_NS);
//Moved to seperate method generateGreetingItemXml to make to //Moved to seperate method generateGreetingItemXml to make to
@ -143,6 +150,7 @@ public class GreetingItem extends AbstractComponent {
generateGreetingItemXml(itemEl, baseItem); generateGreetingItemXml(itemEl, baseItem);
for (ExtraXMLGenerator generator : baseItem.getExtraXMLGenerators()) { for (ExtraXMLGenerator generator : baseItem.getExtraXMLGenerators()) {
try { try {
generator.generateXML(baseItem, itemEl, new PageState(null, generator.generateXML(baseItem, itemEl, new PageState(null,
@ -153,6 +161,7 @@ public class GreetingItem extends AbstractComponent {
} }
} }
if (PermissionService.checkPermission(edit)) { if (PermissionService.checkPermission(edit)) {
final ItemResolver resolver = baseItem.getContentSection().getItemResolver(); final ItemResolver resolver = baseItem.getContentSection().getItemResolver();
final Element editLinkElem = itemEl.newChildElement("editLink"); final Element editLinkElem = itemEl.newChildElement("editLink");
@ -162,7 +171,7 @@ public class GreetingItem extends AbstractComponent {
baseItem.getContentSection(), baseItem.getContentSection(),
draftItem.getVersion())); draftItem.getVersion()));
} }
}
return content; return content;
} }
@ -172,8 +181,8 @@ public class GreetingItem extends AbstractComponent {
* @param parent The parent element * @param parent The parent element
* @param item The item to render * @param item The item to render
*/ */
protected void generateGreetingItemXml(Element parent, ContentItem item) { protected void generateGreetingItemXml(final Element parent, final ContentItem item) {
ContentItemXMLRenderer renderer = new ContentItemXMLRenderer(parent); final ContentItemXMLRenderer renderer = new ContentItemXMLRenderer(parent);
renderer.setWrapAttributes(true); renderer.setWrapAttributes(true);
renderer.setWrapRoot(false); renderer.setWrapRoot(false);
renderer.setWrapObjects(false); renderer.setWrapObjects(false);