package org.openedit.entermedia.modules; import java.io.ByteArrayOutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.Iterator; import org.entermedia.upload.FileUpload; import org.entermedia.upload.FileUploadItem; import org.entermedia.upload.UploadRequest; import org.openedit.Data; import org.openedit.data.Searcher; import org.openedit.data.SearcherManager; import org.openedit.entermedia.Asset; import org.openedit.entermedia.MediaArchive; import org.openedit.entermedia.modules.BaseMediaModule; import org.openedit.entermedia.search.AssetSearcher; import org.openedit.repository.filesystem.StringItem; import com.openedit.WebPageRequest; import com.openedit.generators.Output; import com.openedit.hittracker.SearchQuery; import com.openedit.page.Page; import com.openedit.page.PageRequestKeys; import com.openedit.users.User; import com.openedit.util.RequestUtils; import com.openedit.util.URLUtilities; import org.apache.commons.lang.math.NumberUtils; public class TemplateModule extends BaseMediaModule { protected RequestUtils fieldRequestUtils; protected SearcherManager fieldSearcherManager; public RequestUtils getRequestUtils() { return fieldRequestUtils; } public void setRequestUtils(RequestUtils inRequestUtils) { fieldRequestUtils = inRequestUtils; } // public void loadPortfolio(WebPageRequest inReq){ // String catalogid = inReq.findValue("catalogid"); // Searcher searcher = getSearcherManager().getSearcher(get, inFieldName); // } // public void saveCSS(WebPageRequest inReq) throws Exception { String inputfile = inReq.findValue("templatecss"); String outputfile = inReq.findValue("outputcss"); Page page = getPageManager().getPage(inputfile); URLUtilities urlUtil = (URLUtilities) inReq .getPageValue(PageRequestKeys.URL_UTILITIES); // WebPageRequest req = // getRequestUtils().createVirtualPageRequest(page.getPath(), // inReq.getUser(), urlUtil); WebPageRequest req = getRequestUtils().createPageRequest( page, inReq.getRequest(), inReq.getResponse(), inReq.getUser(), (URLUtilities) inReq .getPageValue(PageRequestKeys.URL_UTILITIES)); Page outputpage = getPageManager().getPage(outputfile); getPageManager().putPage(outputpage); loadTheme(req); loadTemplate(req); MediaArchive archive = getMediaArchive(inReq); req.putPageValue("mediaarchive", archive); req.putPageValue("numberutils", new NumberUtils()); req.putProtectedPageValue(PageRequestKeys.HOME, urlUtil.relativeHomePrefix()); ByteArrayOutputStream scapture = new ByteArrayOutputStream(); Writer capture = null; capture = new OutputStreamWriter(scapture, page.getCharacterEncoding()); Output out = new Output(capture, outputpage.getContentItem() .getOutputStream()); page.generate(req, out); String output = scapture.toString(); StringItem revision = new StringItem(outputpage.getPath(), output, outputpage.getCharacterEncoding()); revision.setAuthor(inReq.getUserName()); revision.setMessage("updated by user"); outputpage.setContentItem(revision); getPageManager().putPage(outputpage); getPageManager().clearCache(outputpage); } public void saveTemplate(WebPageRequest inReq) { String catalogid = inReq.findValue("catalogid"); Searcher templateSearcher = getSearcherManager().getSearcher(catalogid, "template"); String owner = inReq.findValue("applicationid"); if (owner != null) { Data template = (Data) templateSearcher.searchById(owner + "template"); if (template == null) { template = templateSearcher.createNewData(); template.setId(owner + "template"); template.setSourcePath("templates" ); } String[] fields = inReq.getRequestParameters("field"); templateSearcher.updateData(inReq, fields, template); template.setId(owner + "template"); templateSearcher.saveData(template, inReq.getUser()); inReq.putPageValue("template", template); } } public void loadTemplate(WebPageRequest inReq) { String catalogid = inReq.findValue("catalogid"); Searcher templateSearcher = getSearcherManager().getSearcher(catalogid, "portfolio"); String owner = inReq.findValue("owner"); if (owner != null) { Data template = (Data) templateSearcher.searchById(owner); if (template != null) { inReq.putPageValue("portfolio", template); } } } public void loadTheme(WebPageRequest inReq) { String catalogid = inReq.findValue("catalogid"); Searcher templateSearcher = getSearcherManager().getSearcher(catalogid, "theme"); String themeid = inReq.findValue("themeid"); if(themeid == null){ themeid = "theme"; } Data template = (Data) templateSearcher.searchById(themeid); if (template != null) { inReq.putPageValue("theme", template); } } }