mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
implementing a urlresolver for xsl so that we can include documents properly using the document function.
updates to press release xsds - it's now basically working. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3926 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -27,6 +27,7 @@ import org.alfresco.service.cmr.repository.ContentService;
|
||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.web.bean.wcm.AVMConstants;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.w3c.dom.Document;
|
||||
@@ -39,8 +40,6 @@ import org.w3c.dom.Document;
|
||||
public class OutputUtil
|
||||
{
|
||||
private static final Log LOGGER = LogFactory.getLog(OutputUtil.class);
|
||||
private static final String PARENT_AVM_PATH =
|
||||
"repo-1:/repo-1/alice/appBase/avm_webapps/ROOT";
|
||||
|
||||
private static String stripExtension(String s)
|
||||
{
|
||||
@@ -65,13 +64,16 @@ public class OutputUtil
|
||||
|
||||
String fullAvmPath = parentPath + '/' + generatedFileName;
|
||||
|
||||
String avmStore = parentPath.substring(0, parentPath.indexOf(":/"));
|
||||
String sandBoxUrl = AVMConstants.buildAVMStoreUrl(avmStore);
|
||||
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("Created file node for file: " +
|
||||
fullAvmPath);
|
||||
|
||||
TemplateOutputMethod tom = tt.getOutputMethods().get(0);
|
||||
OutputStreamWriter out = new OutputStreamWriter(fileOut);
|
||||
tom.generate(xml, tt, out);
|
||||
tom.generate(xml, tt, sandBoxUrl, out);
|
||||
out.close();
|
||||
|
||||
NodeRef outputNodeRef = AVMNodeConverter.ToNodeRef(-1, fullAvmPath);
|
||||
@@ -117,11 +119,15 @@ public class OutputUtil
|
||||
String generatedFileName = (String)
|
||||
nodeService.getProperty(generatedNodeRef,
|
||||
ContentModel.PROP_NAME);
|
||||
String avmPath = (String)AVMNodeConverter.ToAVMVersionPath(nodeRef)[1];
|
||||
String avmStore = avmPath.substring(0, avmPath.indexOf(":/"));
|
||||
String sandBoxUrl = AVMConstants.buildAVMStoreUrl(avmStore);
|
||||
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("regenerating file node for : " + fileName + " (" +
|
||||
nodeRef.toString() + ") to " + generatedNodeRef.toString());
|
||||
|
||||
|
||||
// get a writer for the content and put the file
|
||||
ContentWriter writer = contentService.getWriter(generatedNodeRef,
|
||||
ContentModel.PROP_CONTENT,
|
||||
@@ -132,7 +138,7 @@ public class OutputUtil
|
||||
// put a loop to generate all output methods
|
||||
TemplateOutputMethod tom = tt.getOutputMethods().get(0);
|
||||
OutputStreamWriter out = new OutputStreamWriter(writer.getContentOutputStream());
|
||||
tom.generate(xml, tt, out);
|
||||
tom.generate(xml, tt, sandBoxUrl, out);
|
||||
out.close();
|
||||
|
||||
LOGGER.debug("generated " + fileName + " using " + tom);
|
||||
|
@@ -32,10 +32,12 @@ public interface TemplateOutputMethod
|
||||
*
|
||||
* @param xmlContent the xml content to serialize
|
||||
* @param tt the template type that collected the xml content.
|
||||
* @param sandBoxUrl the url of the current sandbox
|
||||
* @param out the writer to serialize to.
|
||||
*/
|
||||
public void generate(final Document xmlContent,
|
||||
final TemplateType tt,
|
||||
final String sandBoxUrl,
|
||||
final Writer out)
|
||||
throws Exception;
|
||||
}
|
||||
|
@@ -33,6 +33,7 @@ public class FreeMarkerOutputMethod
|
||||
|
||||
public void generate(final Document xmlContent,
|
||||
final TemplateType tt,
|
||||
final String sandBoxUrl,
|
||||
final Writer out)
|
||||
{
|
||||
}
|
||||
|
@@ -17,6 +17,8 @@
|
||||
package org.alfresco.web.templating.xforms;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import org.alfresco.web.templating.*;
|
||||
import org.chiba.xml.util.DOMUtil;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
@@ -30,7 +32,10 @@ import javax.xml.transform.URIResolver;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.sax.SAXTransformerFactory;
|
||||
import javax.xml.transform.sax.TransformerHandler;
|
||||
import javax.xml.transform.stream.StreamSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
@@ -41,6 +46,8 @@ public class XSLTOutputMethod
|
||||
implements TemplateOutputMethod
|
||||
{
|
||||
|
||||
private static final Log LOGGER = LogFactory.getLog(XSLTOutputMethod.class);
|
||||
|
||||
private final NodeRef nodeRef;
|
||||
|
||||
public XSLTOutputMethod(final NodeRef nodeRef)
|
||||
@@ -50,6 +57,7 @@ public class XSLTOutputMethod
|
||||
|
||||
public void generate(final Document xmlContent,
|
||||
final TemplateType tt,
|
||||
final String sandBoxUrl,
|
||||
final Writer out)
|
||||
throws ParserConfigurationException,
|
||||
TransformerConfigurationException,
|
||||
@@ -58,11 +66,49 @@ public class XSLTOutputMethod
|
||||
IOException
|
||||
{
|
||||
TransformerFactory tf = TransformerFactory.newInstance();
|
||||
TemplatingService ts = TemplatingService.getInstance();
|
||||
final TemplatingService ts = TemplatingService.getInstance();
|
||||
DOMSource source = new DOMSource(ts.parseXML(this.nodeRef));
|
||||
final Templates templates = tf.newTemplates(source);
|
||||
final Transformer t = templates.newTransformer();
|
||||
t.setURIResolver(new URIResolver()
|
||||
{
|
||||
public Source resolve(final String href, final String base)
|
||||
throws TransformerException
|
||||
{
|
||||
URI uri = null;
|
||||
try
|
||||
{
|
||||
uri = new URI(sandBoxUrl + href);
|
||||
}
|
||||
catch (URISyntaxException e)
|
||||
{
|
||||
throw new TransformerException("unable to create uri " + sandBoxUrl + href, e);
|
||||
}
|
||||
try
|
||||
{
|
||||
LOGGER.debug("loading " + uri);
|
||||
final Document d = ts.parseXML(uri.toURL().openStream());
|
||||
LOGGER.debug("loaded " + ts.writeXMLToString(d));
|
||||
return new DOMSource(d);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.warn(e);
|
||||
throw new TransformerException("unable to load " + uri, e);
|
||||
}
|
||||
}
|
||||
});
|
||||
t.setParameter("avm_store_url", sandBoxUrl);
|
||||
LOGGER.debug("setting parameter avm_store_url=" + sandBoxUrl);
|
||||
final StreamResult result = new StreamResult(out);
|
||||
try
|
||||
{
|
||||
t.transform(new DOMSource(xmlContent), result);
|
||||
}
|
||||
catch (TransformerException e)
|
||||
{
|
||||
LOGGER.error(e.getMessageAndLocation());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
@@ -0,0 +1,36 @@
|
||||
<!-- Footer -->
|
||||
<div id="footer">
|
||||
<div id="site">
|
||||
<div id="footer-logos">
|
||||
<a href="http://www.mysql.com/"><img src="/assets/images/footer/mysql.gif" alt="MySQL" title="MySQL" border="0" /></a>
|
||||
<a href="http://www.jboss.org"><img src="/assets/images/footer/jboss.gif" alt="JBoss Certified Partner" title="JBoss Certified Partner" border="0" width="74" height="34" /></a>
|
||||
<a href="http://www.springframework.org/"><img src="/assets/images/footer/spring.gif" alt="Spring Framework" title="Spring Framework" border="0" width="67" height="34" /></a>
|
||||
<a href="http://www.hibernate.org/"><img src="/assets/images/footer/hibernate.gif" alt="Hibernate" title="Hibernate" border="0" width="111" height="34" /></a>
|
||||
<a href="http://tomcat.apache.org"><img src="/assets/images/footer/tomcat.gif" alt="Tomcat" title="Tomcat" border="0" width="44" height="34" /></a>
|
||||
<a href="http://lucene.apache.org/"><img src="/assets/images/footer/lucene.gif" alt="Lucene" title="Lucene" border="0" width="143" height="34" /></a>
|
||||
<a href="http://myfaces.apache.org/"><img src="/assets/images/footer/myfaces.gif" alt="My Faces" title="My Faces" border="0" width="37" height="34" /></a>
|
||||
</div>
|
||||
<div id="footer-links">
|
||||
<p>
|
||||
<a href="/">Home</a> |
|
||||
<a href="/legal/">Legal</a> |
|
||||
<a href="/privacy/">Privacy</a> |
|
||||
<a href="/accessibility/">Accessibility</a> |
|
||||
<a href="/sitemap/">Site Map</a> |
|
||||
<a href="/rss/?feed=all/">RSS</a>
|
||||
<img src="/assets/images/icons/feedicon12.gif" alt="RSS" title="RSS" width="12" height="12" />
|
||||
</p>
|
||||
<p>
|
||||
<a href="/about/">Open Source ECMS</a> |
|
||||
<a href="/products/">CMS Products</a> |
|
||||
<a href="/services/support/">Management Services</a> |
|
||||
<a href="/resources/">EMS Resources</a>
|
||||
</p>
|
||||
<p>© 2005-2006 Alfresco Software, Inc., All Rights Reserved</p>
|
||||
<p><img src="/assets/images/icons/powered_by_alfresco.gif" alt="Powered by Alfresco" width="88" height="32" /></p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear:both; padding-bottom: 10px;"></div>
|
||||
</div>
|
||||
<div style="clear:both; padding-bottom: 20px;"></div>
|
||||
<!-- End Footer -->
|
@@ -0,0 +1,40 @@
|
||||
<div id="masthead">
|
||||
<!-- Search -->
|
||||
<div id="top_links">
|
||||
<ul>
|
||||
<li><a href="/accessibility/">Accessibility</a> |</li>
|
||||
<li><a href="/sitemap/">Site Map</a> |</li>
|
||||
<li><a href="/about/contact/">Contact Us</a> |</li>
|
||||
<li><a href="/store/">Store</a> |</li>
|
||||
<li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li>
|
||||
</ul>
|
||||
<form action="http://www.google.com/search" method="get"><br />
|
||||
<input type="hidden" name="sitesearch" value="www.alfresco.com" />
|
||||
<input type="hidden" name="ie" value="UTF-8" />
|
||||
<input type="hidden" name="oe" value="UTF-8" />
|
||||
<input class="searchbox" type="text" size="20" value="Search..." name="query" onfocus="if (this.value == 'Search...') this.value = ''; " onblur="if (this.value == '') this.value = 'Search...';" />
|
||||
<input class="searchbutton" type="submit" name="" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
<!-- End Search -->
|
||||
</div>
|
||||
<div id="topnav">
|
||||
<ul id="nav">
|
||||
<li id="home"><a href="/" accesskey="h" ><span>Home</span></a></li>
|
||||
<li id="products"><a href="/products/" accesskey="p" ><span>Products</span></a></li>
|
||||
<li id="services"><a href="/services/support/" accesskey="s" ><span>Services</span></a></li>
|
||||
<li id="customers"><a href="/customers/" accesskey="c" ><span>Customers</span></a></li>
|
||||
<li id="partners"><a href="/partners/" accesskey="r" ><span>Partners</span></a></li>
|
||||
<li id="about"><a href="/about/" accesskey="a" class="selected" ><span>About us</span></a></li>
|
||||
<li id="developers"><a href="http://dev.alfresco.com/" accesskey="v" ><span>Developers</span></a></li>
|
||||
<li id="blogs"><a href="http://blogs.alfresco.com/" accesskey="b" ><span>Blogs</span></a></li>
|
||||
<li id="end"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="outer">
|
||||
<div id="inner">
|
||||
<div id="sabout">
|
||||
<p><a href="/about/">Company</a>  |  <a href="/about/contact/">Contact</a>  |  <a href="/about/news/">News</a>  |  <a href="/about/events/">Events</a>  |  <a href="/about/people/">People</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<alfresco:about-blurb xmlns:alfresco="http://www.alfresco.org/alfresco">
|
||||
<alfresco:name>Activiti</alfresco:name>
|
||||
<alfresco:body>Alfresco used to be called Activiti. See About Alfresco.</alfresco:body>
|
||||
</alfresco:about-blurb>
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
||||
targetNamespace="http://www.alfresco.org/aflresco"
|
||||
targetNamespace="http://www.alfresco.org/alfresco"
|
||||
elementFormDefault="qualified">
|
||||
<xs:element name="about-blurb">
|
||||
<xs:complexType>
|
||||
|
@@ -4,18 +4,12 @@
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
||||
exclude-result-prefixes="xhtml">
|
||||
<!--
|
||||
<xsl:character-map name="htmlentities">
|
||||
<xsl:output-character character=" " string="&nbsp;" />
|
||||
<xsl:output-character character="—" string="&mdash;" />
|
||||
<xsl:output-character character="©" string="&copy;" />
|
||||
</xsl:character-map>
|
||||
-->
|
||||
<xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes"
|
||||
use-character-maps="htmlentities"
|
||||
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
|
||||
<xsl:preserve-space elements="*"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
this template produces no output. the xml is used by press-release.xsl
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
||||
targetNamespace="http://www.alfresco.org/aflresco"
|
||||
targetNamespace="http://www.alfresco.org/alfresco"
|
||||
elementFormDefault="qualified">
|
||||
<xs:simpleType name="category">
|
||||
<xs:restriction base="xs:string">
|
||||
@@ -14,6 +14,7 @@
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="about-blurb">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="Activiti"/>
|
||||
<xs:enumeration value="Alfresco"/>
|
||||
<xs:enumeration value="Kofax"/>
|
||||
<xs:enumeration value="Aarden Ringcroft"/>
|
||||
|
@@ -4,62 +4,55 @@
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:alfresco="http://www.alfresco.org/alfresco"
|
||||
exclude-result-prefixes="xhtml">
|
||||
<!--
|
||||
<xsl:character-map name="htmlentities">
|
||||
<xsl:output-character character=" " string="&nbsp;" />
|
||||
<xsl:output-character character="—" string="&mdash;" />
|
||||
<xsl:output-character character="©" string="&copy;" />
|
||||
</xsl:character-map>
|
||||
-->
|
||||
<xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes"
|
||||
use-character-maps="htmlentities"
|
||||
<xsl:output method="html" encoding="UTF-8" indent="yes"
|
||||
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
|
||||
|
||||
<xsl:preserve-space elements="*"/>
|
||||
<xsl:param name="avm_store_url" select="'not_specified'"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<title><xsl:value-of select="/alfresco:press-release/alfresco:title"/></title>
|
||||
<meta name="description" lang="en">
|
||||
<xsl:attribute name="content">
|
||||
<xsl:value-of select="/alfresco:press-release/alfresco:abstract"/>
|
||||
</xsl:attribute>
|
||||
</meta>
|
||||
<link href="/assets/css/screen.css" rel="stylesheet" type="text/css" media="screen" />
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.nooked.com/news/feed/alfresco" />
|
||||
<style type="text/css">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<title><xsl:value-of select="/alfresco:press-release/alfresco:title"/></title>
|
||||
<meta name="description" lang="en" >
|
||||
<xsl:attribute name="content"><xsl:value-of select="/alfresco:press-release/alfresco:title"/></xsl:attribute>
|
||||
</meta>
|
||||
<link href="/assets/css/screen.css" rel="stylesheet" type="text/css" media="screen"></link>
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.nooked.com/news/feed/alfresco"></link>
|
||||
<style type="text/css">
|
||||
p.leader {
|
||||
font-weight: 700;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script language="JavaScript" type="text/javascript" src="/assets/js/controls.js"></script>
|
||||
<script language="JavaScript" type="text/javascript" src="/assets/js/search.js" ></script>
|
||||
<div id="container">
|
||||
<div id="masthead">
|
||||
<!-- Search -->
|
||||
<div id="top_links">
|
||||
<ul>
|
||||
<li><a href="/accessibility/">Accessibility</a> |</li>
|
||||
<li><a href="/sitemap/">Site Map</a> |</li>
|
||||
<li><a href="/about/contact/">Contact Us</a> |</li>
|
||||
<li><a href="/store/">Store</a> |</li>
|
||||
<li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li>
|
||||
</ul>
|
||||
<form action="http://www.google.com/search" method="get"><br />
|
||||
<input type="hidden" name="sitesearch" value="www.alfresco.com" />
|
||||
<input type="hidden" name="ie" value="UTF-8" />
|
||||
<input type="hidden" name="oe" value="UTF-8" />
|
||||
<input class="searchbox" type="text" size="20" value="Search..." name="query" onfocus="if (this.value == 'Search...') this.value = ''; " onblur="if (this.value == '') this.value = 'Search...';" />
|
||||
<input class="searchbutton" type="submit" name="" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
<!-- End Search -->
|
||||
</div>
|
||||
<div id="topnav">
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script language="JavaScript" type="text/javascript" src="/assets/js/controls.js"></script>
|
||||
<script language="JavaScript" type="text/javascript" src="/assets/js/search.js" ></script>
|
||||
|
||||
<div id="container">
|
||||
<div id="masthead">
|
||||
<!-- Search -->
|
||||
<div id="top_links">
|
||||
<ul>
|
||||
<li><a href="/accessibility/">Accessibility</a> |</li>
|
||||
<li><a href="/sitemap/">Site Map</a> |</li>
|
||||
<li><a href="/about/contact/">Contact Us</a> |</li>
|
||||
<li><a href="/store/">Store</a> |</li>
|
||||
<li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li>
|
||||
</ul>
|
||||
<form action="http://www.google.com/search" method="get"><br />
|
||||
<input type="hidden" name="sitesearch" value="www.alfresco.com" />
|
||||
<input type="hidden" name="ie" value="UTF-8" />
|
||||
<input type="hidden" name="oe" value="UTF-8" />
|
||||
<input class="searchbox" type="text" size="20" value="Search..." name="query" onfocus="if (this.value == 'Search...') this.value = ''; " onblur="if (this.value == '') this.value = 'Search...';" />
|
||||
<input class="searchbutton" type="submit" name="" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
<!-- End Search -->
|
||||
</div>
|
||||
<div id="topnav">
|
||||
<ul id="nav">
|
||||
<li id="home"><a href="/" accesskey="h" ><span>Home</span></a></li>
|
||||
<li id="products"><a href="/products/" accesskey="p" ><span>Products</span></a></li>
|
||||
@@ -71,49 +64,45 @@
|
||||
<li id="blogs"><a href="http://blogs.alfresco.com/" accesskey="b" ><span>Blogs</span></a></li>
|
||||
<li id="end"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="outer">
|
||||
</div>
|
||||
<div id="outer">
|
||||
<div id="inner">
|
||||
<div id="sabout">
|
||||
<p><a href="/about/">Company</a>  |  <a href="/about/contact/">Contact</a>  |  <a href="/about/news/">News</a>  |  <a href="/about/events/">Events</a>  |  <a href="/about/people/">People</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content"></div>
|
||||
<!-- Main Content -->
|
||||
<div id="main_content">
|
||||
|
||||
<!-- BEGIN MAIN CONTENT -->
|
||||
<div id="sabout">
|
||||
<p><a href="/about/">Company</a>  |  <a href="/about/contact/">Contact</a>  |  <a href="/about/news/">News</a>  |  <a href="/about/events/">Events</a>  |  <a href="/about/people/">People</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content"> </div>
|
||||
<!-- Main Content -->
|
||||
<div id="main_content">
|
||||
|
||||
<!-- BEGIN MAIN CONTENT -->
|
||||
<h1><xsl:value-of select="/alfresco:press-release/alfresco:title"/></h1>
|
||||
<p><strong><xsl:value-of select="/alfresco:press-release/alfresco:abstract"/></strong></p>
|
||||
<p><xsl:value-of select="/alfresco:press-release/alfresco:location"/>—<xsl:value-of select="/alfresco:press-release/alfresco:launch_date"/>—</p>
|
||||
<xsl:for-each select="/alfresco:press-release/alfresco:body">
|
||||
<p><xsl:value-of select="."/></p>
|
||||
<p><xsl:value-of select="." disable-output-escaping="yes"/></p>
|
||||
</xsl:for-each>
|
||||
<xsl:for-each select="/alfresco:press-release/alfresco:include_about_blurb">
|
||||
<xsl:variable name="blurb-id"><xsl:value-of select="."/></xsl:variable>
|
||||
<h2><xsl:value-of select="document(concat($blurb-id, '.xml'))/alfresco:about-blurb/alfresco:name"/></h2>
|
||||
<xsl:for-each select="document(concat($blurb-id, '.xml'))/alfresco:about-blurb/alfresco:body">
|
||||
<p><xsl:value-of select="."/></p>
|
||||
<xsl:variable name="blurb-url"><xsl:value-of select="concat('/media/releases/content/about_blurbs/', concat($blurb-id, '.xml'))"/></xsl:variable>
|
||||
<h2><xsl:value-of select="document($blurb-url)/alfresco:about-blurb/alfresco:name"/></h2>
|
||||
<xsl:for-each select="document($blurb-url)/alfresco:about-blurb/alfresco:body">
|
||||
<p><xsl:value-of select="." disable-output-escaping="yes"/></p>
|
||||
</xsl:for-each>
|
||||
</xsl:for-each>
|
||||
<xsl:if test="/alfresco:press-release/alfresco:include_media_contacts = true">
|
||||
<h2>Media Contacts</h2>
|
||||
<div><p>John Newton<br />Alfresco Software Inc.<br />+44 1628 860639<br />press@alfresco.com</p></div>
|
||||
<div><p>Chuck Tanowitz<br />Schwartz Communications<br />+1 781 684-0770<br />alfresco@schwartz-pr.com</p></div>
|
||||
</xsl:if>
|
||||
<!-- END MAIN CONTENT -->
|
||||
|
||||
</div>
|
||||
<!-- Feature Content -->
|
||||
<div id="right_content">
|
||||
</div>
|
||||
<div id="clear"></div>
|
||||
</div>
|
||||
<!--All Three End -->
|
||||
<!-- Footer -->
|
||||
<div id="footer">
|
||||
<!-- END MAIN CONTENT -->
|
||||
</div>
|
||||
<!-- Feature Content -->
|
||||
<div id="right_content"> </div>
|
||||
<div id="clear"></div>
|
||||
</div>
|
||||
<!--All Three End -->
|
||||
<!-- Footer -->
|
||||
<div id="footer">
|
||||
<div id="site">
|
||||
<div id="footer-logos">
|
||||
<a href="http://www.mysql.com/"><img src="/assets/images/footer/mysql.gif" alt="MySQL" title="MySQL" border="0" /></a>
|
||||
@@ -144,10 +133,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear:both; padding-bottom: 10px;"></div>
|
||||
</div>
|
||||
<div style="clear:both; padding-bottom: 20px;"></div>
|
||||
<!-- End Footer -->
|
||||
</body>
|
||||
</html>
|
||||
</div>
|
||||
<div style="clear:both; padding-bottom: 20px;"></div>
|
||||
<!-- End Footer -->
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
||||
|
Reference in New Issue
Block a user