From: <fg...@us...> - 2010-05-11 19:51:04
|
Revision: 2392 http://openutils.svn.sourceforge.net/openutils/?rev=2392&view=rev Author: fgiust Date: 2010-05-11 19:50:55 +0000 (Tue, 11 May 2010) Log Message: ----------- MEDIA-142 playlist xml view (spf) Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java Added Paths: ----------- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-xml.html Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java 2010-05-11 19:45:29 UTC (rev 2391) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView.java 2010-05-11 19:50:55 UTC (rev 2392) @@ -1,3 +1,4 @@ +// MEDIA-142 da portare su media /** * * Magnolia SimpleMedia Module (http://www.openmindlab.com/lab/products/media.html) @@ -23,10 +24,14 @@ import info.magnolia.cms.i18n.I18nContentSupportFactory; import info.magnolia.cms.util.ContentUtil; import info.magnolia.cms.util.NodeDataUtil; +import info.magnolia.context.MgnlContext; +import java.io.IOException; import java.util.ArrayList; +import java.util.Calendar; import java.util.Collection; import java.util.List; +import java.util.Locale; import javax.jcr.RepositoryException; import javax.servlet.http.HttpServletRequest; @@ -61,6 +66,14 @@ private String description; + private static final String VIEW_RESULTS_XML = "-xml"; + + private String locale; + + private List<Content> mediaContentList; + + private Calendar dateRequest; + /** * */ @@ -184,4 +197,96 @@ } return null; } + + public String xmlView() throws IOException + { + this.show(); + if (this.getPlaylist() == null) + { + this.response.sendError(404); + return this.show(); + } + else + { + // Set mediaContent + mediaContentList = new ArrayList<Content>(); + for (PlaylistEntryBean plb : this.getPlaylist().getEntries()) + { + try + { + mediaContentList.add(MgnlContext.getHierarchyManager("media").getContentByUUID(plb.getMedia())); + } + catch (RepositoryException e) + { + log.error("Error retrieving media {}", e); + } + } + + // Set date + this.dateRequest = Calendar.getInstance(); + + // Get locale + if (StringUtils.isEmpty(locale)) + { + locale = Locale.getDefault().toString(); + } + + this.response.setContentType("text/xml"); + } + return VIEW_RESULTS_XML; + } + + /** + * Returns the locale. + * @return the locale + */ + public String getLocale() + { + return locale; + } + + /** + * Sets the locale. + * @param locale the locale to set + */ + public void setLocale(String locale) + { + this.locale = locale; + } + + /** + * Returns the mediaContentList. + * @return the mediaContentList + */ + public List<Content> getMediaContentList() + { + return mediaContentList; + } + + /** + * Sets the mediaContentList. + * @param mediaContentList the mediaContentList to set + */ + public void setMediaContentList(List<Content> mediaContentList) + { + this.mediaContentList = mediaContentList; + } + + /** + * Returns the dateRequest. + * @return the dateRequest + */ + public Calendar getDateRequest() + { + return dateRequest; + } + + /** + * Sets the dateRequest. + * @param dateRequest the dateRequest to set + */ + public void setDateRequest(Calendar dateRequest) + { + this.dateRequest = dateRequest; + } } Added: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-xml.html =================================================================== --- trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-xml.html (rev 0) +++ trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-xml.html 2010-05-11 19:50:55 UTC (rev 2392) @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:media="http://www.openmindlab.com/media"> + [#assign mgnlEl = this.getStatic("it.openutils.mgnlutils.el.MgnlUtilsElFunctions")] + [#assign systemProperty = this.getStatic("info.magnolia.cms.core.SystemProperty")] + [#assign dateUtils = this.getStatic("net.sourceforge.openutils.elfunctions.DateElUtils")] + [#assign mediaEl = this.getStatic("net.sourceforge.openutils.mgnlmedia.media.tags.el.MediaEl")] + <title><![CDATA[${this.playlist.title}]]></title> + <meta rel="media:locale">${this.locale}</meta> + <meta rel="media:playlist-id">${this.playlist.uuid}</meta> + <location><![CDATA[${mgnlEl.baseUrl()}/playlists${this.playlist.handle}.xml?locale=${this.locale}]]></location> + <date>${dateUtils.getXsdDate(this.dateRequest)}</date> + <trackList> + [#list this.mediaContentList as mediaDetail] + [#assign mediaNode = mediaEl.node(mediaDetail.@uuid)] + <track> + <location><![CDATA[${mgnlEl.toAbsoluteUrl(mediaEl.url(mediaNode))}]]></location> + <identifier>media:${mediaDetail.@uuid}</identifier> + [#if (mediaDetail['title_' + this.locale])?exists]<title><![CDATA[${mediaDetail['title_' + this.locale]}]]></title>[/#if] + [#assign resolution = systemProperty.getProperty("thumbresolution") ] + [#if mediaEl.type(mediaNode) == 'image'] + <image>${mgnlEl.baseUrl()}${mediaEl.urlres(mediaNode, resolution)}</image> + [#else] + [#if (mediaDetail.image)?exists]<image>${mgnlEl.baseUrl()}${mediaEl.urlres(mediaDetail, resolution)}</image>[/#if] + [/#if] + [#if (mediaDetail['description_' + this.locale])?exists]<annotation><![CDATA[${mediaDetail['description_' + this.locale]}]]></annotation>[/#if] + [#if (mediaDetail.media_duration)?exists]<duration>${(mediaDetail.media_duration * 1000)?string.computer}</duration>[/#if] + <extension application="http://www.openmindlab.com/media"> + <media:locale code="${this.locale}" /> + <media:type>${mediaDetail.type}</media:type> + </extension> + </track> + [/#list] + </trackList> +</playlist> \ No newline at end of file Property changes on: trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/playlist/pages/PlaylistView-xml.html ___________________________________________________________________ Added: svn:mime-type + text/html Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |