/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.vertical.adminweb.handlers.xmlbuilders; import java.util.StringTokenizer; import org.w3c.dom.Document; import org.w3c.dom.Element; import com.enonic.esl.containers.ExtendedMap; import com.enonic.esl.util.StringUtil; import com.enonic.esl.xml.XMLTool; import com.enonic.vertical.adminweb.AdminHandlerBaseServlet; import com.enonic.cms.core.security.user.User; public class ContentArticle3XMLBuilder extends ContentBaseXMLBuilder implements ContentXMLBuilder { public String getContentTitle( ExtendedMap formItems ) { return formItems.getString( "contentdata_heading" ); } public String getContentTitle( Element contentDataElem, int contentTypeKey ) { return XMLTool.getElementText( XMLTool.getElement( contentDataElem, "heading" ) ); } public void buildContentTypeXML( User user, Document doc, Element contentdata, ExtendedMap formItems ) { // Heading Element tempElement = XMLTool.createElement( doc, contentdata, "heading", formItems.getString( "contentdata_heading" ) ); // Teaser Element teaser = XMLTool.createElement( doc, contentdata, "teaser" ); tempElement = XMLTool.createElement( doc, teaser, "text1" ); XMLTool.createCDATASection( doc, tempElement, formItems.getString( "contentdata_teaser1", "" ) ); tempElement = XMLTool.createElement( doc, teaser, "text2" ); XMLTool.createCDATASection( doc, tempElement, formItems.getString( "contentdata_teaser2", "" ) ); Element teaserImage = XMLTool.createElement( doc, teaser, "image" ); if ( formItems.containsKey( "contentdata_teaser_image" ) ) { teaserImage.setAttribute( "key", formItems.getString( "contentdata_teaser_image" ) ); } // Body Element body = XMLTool.createElement( doc, contentdata, "body" ); tempElement = XMLTool.createElement( doc, body, "text" ); String docText = formItems.getString( "contentdata_body" ); docText = StringUtil.replaceECC( docText ); XMLTool.createCDATASection( doc, tempElement, docText ); if ( AdminHandlerBaseServlet.isArrayFormItem( formItems, "contentdata_body_image" ) ) { String[] images = (String[]) formItems.get( "contentdata_body_image" ); String[] text = (String[]) formItems.get( "contentdata_body_imagetext" ); for ( int i = 1; i < images.length; i++ ) { if ( images[i] == null || images[i].length() == 0 ) { continue; } Element bodyImage = XMLTool.createElement( doc, body, "image" ); bodyImage.setAttribute( "key", images[i] ); tempElement = XMLTool.createElement( doc, bodyImage, "text", text[i] ); } } // Keywords Element keywords = XMLTool.createElement( doc, contentdata, "keywords" ); if ( formItems.containsKey( "contentdata_keywords" ) ) { StringTokenizer stringTok = new StringTokenizer( formItems.getString( "contentdata_keywords" ), " " ); while ( stringTok.hasMoreElements() ) { tempElement = XMLTool.createElement( doc, keywords, "keyword", (String) stringTok.nextElement() ); } } // Authors Element authors = XMLTool.createElement( doc, contentdata, "authors" ); if ( AdminHandlerBaseServlet.isArrayFormItem( formItems, "contentdata_author" ) ) { String[] authorsArray = (String[]) formItems.get( "contentdata_author" ); for ( int i = 0; i < authorsArray.length; i++ ) { if ( authorsArray[i] != null && authorsArray[i].trim().length() != 0 ) { tempElement = XMLTool.createElement( doc, authors, "author", authorsArray[i] ); } } } else { if ( formItems.containsKey( "contentdata_author" ) ) { tempElement = XMLTool.createElement( doc, authors, "author", formItems.getString( "contentdata_author" ) ); } } // Relatedlinks Element relatedlinks = XMLTool.createElement( doc, contentdata, "relatedlinks" ); if ( AdminHandlerBaseServlet.isArrayFormItem( formItems, "contentdata_relatedlinks_url" ) ) { String[] relatedURL = (String[]) formItems.get( "contentdata_relatedlinks_url" ); String[] relatedDescription = (String[]) formItems.get( "contentdata_relatedlinks_description" ); for ( int i = 0; i < relatedURL.length; i++ ) { if ( relatedURL[i] != null && relatedURL[i].trim().length() != 0 ) { Element realtedlink = XMLTool.createElement( doc, relatedlinks, "relatedlink" ); tempElement = XMLTool.createElement( doc, realtedlink, "url", relatedURL[i] ); tempElement = XMLTool.createElement( doc, realtedlink, "description", relatedDescription[i] ); } } } else { if ( formItems.containsKey( "contentdata_relatedlinks_url" ) ) { Element realtedlink = XMLTool.createElement( doc, relatedlinks, "relatedlink" ); tempElement = XMLTool.createElement( doc, realtedlink, "url", formItems.getString( "contentdata_relatedlinks_url" ) ); tempElement = XMLTool.createElement( doc, realtedlink, "description", formItems.getString( "contentdata_relatedlinks_description", "" ) ); } } // Files: Element filesElement = XMLTool.createElement( doc, contentdata, "files" ); if ( AdminHandlerBaseServlet.isArrayFormItem( formItems, "contentdata_file" ) ) { String[] files = (String[]) formItems.get( "contentdata_file" ); for ( int i = 0; i < files.length; i++ ) { if ( files[i] != null && files[i].length() > 0 ) { Element file = XMLTool.createElement( doc, filesElement, "file" ); file.setAttribute( "key", files[i] ); } } } else { String filekey = formItems.getString( "contentdata_file", null ); if ( filekey != null && filekey.length() > 0 ) { Element file = XMLTool.createElement( doc, filesElement, "file" ); file.setAttribute( "key", filekey ); } } } public int[] getRelatedContentKeys( ExtendedMap formItems ) { return AdminHandlerBaseServlet.getIntArrayFormItems( formItems, new String[]{"contentdata_file", "contentdata_body_image", "contentdata_teaser_image"} ); } }