- using server side includes in the sample website, both from jsp and xsl.

- using the form data functions from the press release xsl rather than the document() function
- adding lots of comments to the sample website code
- removing the company_footer subdirectory.  we can lump press release and company-footer xmls in the same content directory.



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4186 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ariel Backenroth
2006-10-22 05:52:07 +00:00
parent d1d378eac0
commit 0045372d4d
13 changed files with 361 additions and 322 deletions

View File

@@ -23,6 +23,8 @@ import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.web.bean.wcm.AVMConstants; import org.alfresco.web.bean.wcm.AVMConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.jsf.FacesContextUtils; import org.springframework.web.jsf.FacesContextUtils;
@@ -34,6 +36,8 @@ import org.springframework.web.jsf.FacesContextUtils;
public abstract class AbstractRenderingEngine public abstract class AbstractRenderingEngine
implements RenderingEngine implements RenderingEngine
{ {
private static final Log LOGGER = LogFactory.getLog(AbstractRenderingEngine.class);
protected static final String ALFRESCO_NS = "http://www.alfresco.org/alfresco"; protected static final String ALFRESCO_NS = "http://www.alfresco.org/alfresco";
protected static final String ALFRESCO_NS_PREFIX = "alfresco"; protected static final String ALFRESCO_NS_PREFIX = "alfresco";
@@ -76,16 +80,25 @@ public abstract class AbstractRenderingEngine
return new FormDataFunctions(AbstractRenderingEngine.getAVMRemote()); return new FormDataFunctions(AbstractRenderingEngine.getAVMRemote());
} }
protected static String toAVMPath(String parentAVMPath, String path) protected static String toAVMPath(final String parentAVMPath, final String path)
{ {
String parent = parentAVMPath;
if (path != null && path.length() != 0 && path.charAt(0) == '/') if (path != null && path.length() != 0 && path.charAt(0) == '/')
{ {
parentAVMPath = parentAVMPath.substring(0, parent = parentAVMPath.substring(0,
parentAVMPath.indexOf(':') + parentAVMPath.indexOf(':') +
('/' + AVMConstants.DIR_APPBASE + ('/' + AVMConstants.DIR_APPBASE +
'/' + AVMConstants.DIR_WEBAPPS).length() + 1); '/' + AVMConstants.DIR_WEBAPPS).length() + 1);
} }
return parentAVMPath + (parentAVMPath.endsWith("/") ? path : '/' + path); if (parent.endsWith("/"))
{
parent = parent.substring(0, parent.length() - 1);
}
final String result = parent + '/' + path;
LOGGER.debug("built full avmPath " + result +
" for parent " + parentAVMPath +
" and request path " + path);
return result;
} }
} }

View File

@@ -21,47 +21,72 @@ import javax.servlet.jsp.PageContext;
import org.w3c.dom.*; import org.w3c.dom.*;
import org.alfresco.web.forms.*; import org.alfresco.web.forms.*;
/**
* Bean for getting data for company footers which are included within press release forms.
* It's used by /media/releases/get_company_footer_simple_type.jsp to aggregate all
* forms created by company-footer.xsd in /media/releases/content and generate an
* xsd simpleType enumeration which is used within the press release form (press-release.xsd).
* press-release.xsl then uses the selected company footers and loads the xml assets and
* includes their content within the generated press release renditions.
*/
public class CompanyFooterBean public class CompanyFooterBean
{ {
public static List<CompanyFooterBean> getCompanyFooters(final PageContext pageContext) /**
throws Exception * Loads all xml files generated by company-footer.xsd in /media/releases/content
{ * populates CompanyFooterBeans with their contents. This function is exposed to the
final FormDataFunctions ef = * jsp by /WEB-INF/pr.tld.
new ServletContextFormDataFunctionsAdapter(pageContext.getServletContext()); *
* @param pageContext the page context from the jsp, needed for accessing the
* servlet context for the ServletContextFormDataFunctionsAdapter class.
*
* @return a list of populated CompanyFooterBeans.
*/
public static List<CompanyFooterBean> getCompanyFooters(final PageContext pageContext)
throws Exception
{
final FormDataFunctions ef =
new ServletContextFormDataFunctionsAdapter(pageContext.getServletContext());
final Map<String, Document> entries = ef.getXMLDocuments("company-footer", final Map<String, Document> entries = ef.getXMLDocuments("company-footer",
"/media/releases/content/company_footers"); "/media/releases/content");
final List<CompanyFooterBean> result = new ArrayList<CompanyFooterBean>(entries.size()); final List<CompanyFooterBean> result = new ArrayList<CompanyFooterBean>(entries.size());
for (Map.Entry<String, Document> entry : entries.entrySet()) for (Map.Entry<String, Document> entry : entries.entrySet())
{ {
final String fileName = entry.getKey(); final String fileName = entry.getKey();
final Document d = entry.getValue(); final Document d = entry.getValue();
final Element n = (Element)d.getElementsByTagName("alfresco:name").item(0); final Element n = (Element)d.getElementsByTagName("alfresco:name").item(0);
final String href = "/media/releases/content/company_footers/" + fileName; result.add(new CompanyFooterBean(n.getFirstChild().getNodeValue(),
result.add(new CompanyFooterBean(n.getFirstChild().getNodeValue(), fileName));
href)); }
} return result;
return result; }
}
private final String name; private final String name;
private final String href; private final String fileName;
public CompanyFooterBean(final String name, public CompanyFooterBean(final String name,
final String href) final String fileName)
{ {
this.name = name; this.name = name;
this.href = href; this.fileName = fileName;
} }
public String getName() /**
{ * Returns the name of the company.
return this.name; */
} public String getName()
{
return this.name;
}
public String getHref() /**
{ * Returns the fileName of the xml file describing this company footer
return this.href; *
} * @return the fileName of the xml file.
*/
public String getFileName()
{
return this.fileName;
}
} }

View File

@@ -22,8 +22,22 @@ import javax.servlet.jsp.PageContext;
import org.w3c.dom.*; import org.w3c.dom.*;
import org.alfresco.web.forms.*; import org.alfresco.web.forms.*;
/**
* Bean for getting data for press releases.
* It's used by /media/releases/index.jsp to aggregate all forms created by press-release.xsd in
* /media/releases/content and generate an index page for them.
*/
public class PressReleaseBean public class PressReleaseBean
{ {
/**
* Loads all xml assets created by press-release.xsd in /media/releases/content and populates
* PressReleaseBeans with their contents.
*
* @param pageContext the page context from the jsp, needed for accessing the
* servlet context for the ServletContextFormDataFunctionsAdapter class.
*
* @return a list of populated PressReleaseBeans.
*/
public static List<PressReleaseBean> getPressReleases(final PageContext pageContext) public static List<PressReleaseBean> getPressReleases(final PageContext pageContext)
throws Exception throws Exception
{ {
@@ -41,7 +55,7 @@ public class PressReleaseBean
final Element dateEl = (Element)d.getElementsByTagName("alfresco:launch_date").item(0); final Element dateEl = (Element)d.getElementsByTagName("alfresco:launch_date").item(0);
final Date date = new SimpleDateFormat("yyyy-MM-dd").parse(dateEl.getFirstChild().getNodeValue()); final Date date = new SimpleDateFormat("yyyy-MM-dd").parse(dateEl.getFirstChild().getNodeValue());
String href = "/media/releases/content/" + fileName; String href = "/media/releases/content/" + fileName;
href = href.replaceAll(".xml$", ".shtml"); href = href.replaceAll(".xml$", ".html");
result.add(new PressReleaseBean(t.getFirstChild().getNodeValue(), result.add(new PressReleaseBean(t.getFirstChild().getNodeValue(),
a.getFirstChild().getNodeValue(), a.getFirstChild().getNodeValue(),
date, date,
@@ -66,23 +80,37 @@ public class PressReleaseBean
this.href = href; this.href = href;
} }
/**
* The title of the press release as defined in the xml asset.
*/
public String getTitle() public String getTitle()
{ {
return this.title; return this.title;
} }
/**
* The abstract of the press release as defined in the xml asset.
*/
public String getAbstract() public String getAbstract()
{ {
return this.theAbstract; return this.theAbstract;
} }
/**
* The launch date of the press release as defined in the xml asset.
*/
public Date getLaunchDate() public Date getLaunchDate()
{ {
return this.launchDate; return this.launchDate;
} }
public String getHref() /**
{ * Returns the url within the webapp to the xml file describing this press release
return this.href; *
} * @return the url to the xml file which will be something like /media/releases/content/[filename].xml
*/
public String getHref()
{
return this.href;
}
} }

View File

@@ -8,12 +8,42 @@
<display-name>Alfresco Website</display-name> <display-name>Alfresco Website</display-name>
<description>Alfresco Website</description> <description>Alfresco Website</description>
<!-- Faces Servlet --> <!-- enable server side includes for this website -->
<filter>
<filter-name>ssi</filter-name>
<filter-class>
org.apache.catalina.ssi.SSIFilter
</filter-class>
<init-param>
<param-name>contentType</param-name>
<param-value>text/.*html.*</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>1</param-value>
</init-param>
<init-param>
<param-name>expires</param-name>
<param-value>666</param-value>
</init-param>
<init-param>
<param-name>isVirtualWebappRelative</param-name>
<param-value>1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ssi</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- register the pr tag library -->
<taglib> <taglib>
<taglib-uri>http://www.alfresco.org/pr</taglib-uri> <taglib-uri>http://www.alfresco.org/pr</taglib-uri>
<taglib-location>/WEB-INF/pr.tld</taglib-location> <taglib-location>/WEB-INF/pr.tld</taglib-location>
</taglib> </taglib>
<!-- welcome file list precedence order is index.jsp, then index.html -->
<welcome-file-list> <welcome-file-list>
<welcome-file>index.jsp</welcome-file> <welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file> <welcome-file>index.html</welcome-file>

View File

@@ -0,0 +1,7 @@
<div id="outer">
<div id="inner">
<div id="sabout">
<p><a href="/about/">Company</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/about/contact/">Contact</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/media/releases/">News</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/about/events/">Events</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="/about/people/">People</a></p>
</div>
</div>
</div>

View File

@@ -1,40 +0,0 @@
<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>&#160;&#160;|&#160;&#160;<a href="/about/contact/">Contact</a>&#160;&#160;|&#160;&#160;<a href="/about/news/">News</a>&#160;&#160;|&#160;&#160;<a href="/about/events/">Events</a>&#160;&#160;|&#160;&#160;<a href="/about/people/">People</a></p>
</div>
</div>
</div>

View File

@@ -0,0 +1,6 @@
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="keywords" lang="en" content="open source ecms, enterprise content management system, cms, document management system, dms, documentum" />
<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" />
<script language="JavaScript" type="text/javascript" src="/assets/js/controls.js">&amp;nbsp;</script>
<script language="JavaScript" type="text/javascript" src="/assets/js/search.js">&amp;nbsp;</script>

View File

@@ -0,0 +1,40 @@
<div id="masthead">
<!-- Search -->
<div id="top_links">
<ul>
<li><a href="/accessibility/index.html">Accessibility</a> |</li>
<li><a href="/sitemap/index.html">Site Map</a> |</li>
<li><a href="/about/contact/index.html">Contact Us</a> |</li>
<li><a href="/store/index.html">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="/index.jsp" accesskey="h" ><span>Home</span></a></li>
<li id="products"><a href="/products/index.html" accesskey="p" ><span>Products</span></a></li>
<li id="services"><a href="/services/support/index.html" accesskey="s" ><span>Services</span></a></li>
<li id="customers"><a href="/customers/index.html" accesskey="c" ><span>Customers</span></a></li>
<li id="partners"><a href="/partners/index.html" accesskey="r" ><span>Partners</span></a></li>
<li id="about"><a href="/about/index.html" 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/index.html">Company</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/contact/index.html">Contact</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/media/releases/index.jsp">News</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/events/index.html">Events</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/people/index.html">People</a></p>
</div>
</div>
</div>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0"?>
<alfresco:company-footer 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:company-footer>

View File

@@ -1,7 +1,53 @@
<%--
Copyright (C) 2005 Alfresco, Inc.
Licensed under the Mozilla Public License version 1.1
with a permitted attribution clause. You may obtain a
copy of the License at
http://www.alfresco.org/legal/license.txt
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific
language governing permissions and limitations under the
License.
--%>
<%--
Produces an xml schema simpleType definition which lists all company footers in /media/releases/content
as an enumerated type. This is intended to be included within a schema (such as press-release.xsd)
which wants to update the list of available company footers dynamically.
The expected output is in the form:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:alfresco="http://www.alfresco.org/alfresco"
elementFormDefault="qualified">
<xs:simpleType name="company-footer">
<xs:restriction base="xs:string">
<xs:enumeration value="company_footer_1.xml">
<xs:annotation>
<xs:appinfo>
<alfresco:label>Company Footer 1 Name</alfresco:label>
</xs:appinfo>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="company_footer_2.xml">
<xs:annotation>
<xs:appinfo>
<alfresco:label>Company Footer 2 Name</alfresco:label>
</xs:appinfo>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:schema>
--%>
<jsp:root version="1.2" <jsp:root version="1.2"
xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:pr="http://www.alfresco.org/pr"> xmlns:pr="http://www.alfresco.org/pr">
<%-- xmlns:pr is mapped to /WEB-INF/pr.tld by web.xml --%>
<jsp:directive.page language="java" contentType="text/html; charset=UTF-8"/> <jsp:directive.page language="java" contentType="text/html; charset=UTF-8"/>
<jsp:directive.page isELIgnored="false"/> <jsp:directive.page isELIgnored="false"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
@@ -9,12 +55,15 @@
elementFormDefault="qualified"> elementFormDefault="qualified">
<xs:simpleType name="company-footer"> <xs:simpleType name="company-footer">
<xs:restriction base="xs:string"> <xs:restriction base="xs:string">
<%-- call into CompanyFooterBean to retrieve all company footers --%>
<c:forEach items="${pr:getCompanyFooters(pageContext)}" var="companyFooter"> <c:forEach items="${pr:getCompanyFooters(pageContext)}" var="companyFooter">
<jsp:element name="xs:enumeration"> <jsp:element name="xs:enumeration">
<jsp:attribute name="value"><c:out value="${companyFooter.href}"/></jsp:attribute> <%-- this is the file name of the company footer --%>
<jsp:attribute name="value"><c:out value="${companyFooter.fileName}"/></jsp:attribute>
<jsp:body> <jsp:body>
<xs:annotation> <xs:annotation>
<xs:appinfo> <xs:appinfo>
<%-- this produces the label displayed in the combobox within the press release form --%>
<alfresco:label><c:out value="${companyFooter.name}"/></alfresco:label> <alfresco:label><c:out value="${companyFooter.name}"/></alfresco:label>
</xs:appinfo> </xs:appinfo>
</xs:annotation> </xs:annotation>
@@ -24,4 +73,4 @@
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
</xs:schema> </xs:schema>
</jsp:root> </jsp:root>

View File

@@ -1,153 +1,100 @@
<%--
Copyright (C) 2005 Alfresco, Inc.
Licensed under the Mozilla Public License version 1.1
with a permitted attribution clause. You may obtain a
copy of the License at
http://www.alfresco.org/legal/license.txt
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific
language governing permissions and limitations under the
License.
--%>
<%--
Produces the index page for the press release page.
--%>
<jsp:root version="1.2" <jsp:root version="1.2"
xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:pr="http://www.alfresco.org/pr" xmlns:pr="http://www.alfresco.org/pr"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"> xmlns:fmt="http://java.sun.com/jsp/jstl/fmt">
<%-- xmlns:pr is mapped to /WEB-INF/pr.tld by web.xml --%>
<jsp:output doctype-root-element="html" <jsp:output doctype-root-element="html"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<jsp:directive.page language="java" contentType="text/html; charset=UTF-8"/> <jsp:directive.page language="java" contentType="text/html; charset=UTF-8"/>
<jsp:directive.page isELIgnored="false"/> <jsp:directive.page isELIgnored="false"/>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
<title>Alfresco Press Releases - Open Source Content Management</title> <%-- include common navigation components using the jsp compile time include directive --%>
<meta name="description" lang="en" content="News and press releases about Alfresco's enterprise content management system and document management software." /> <jsp:directive.include file="/assets/include_in_head.html"/>
<meta name="keywords" lang="en" content="open source ecms, enterprise content management system, cms, document management system, dms, documentum" /> <title>Alfresco Press Releases - Open Source Content Management</title>
<link href="/assets/css/screen.css" rel="stylesheet" type="text/css" media="screen" /> <meta name="description" lang="en" content="News and press releases about Alfresco's enterprise content management system and document management software." />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.nooked.com/news/feed/alfresco" /> <style type="text/css">
<style type="text/css"> #main_content .headline {
#main_content .headline { font-size: 1.2em;
font-size: 1.2em; border-bottom: none;
border-bottom: none; margin-bottom: 0.25em;
margin-bottom: 0.25em; }
} #main_content .date {
#main_content .date { color: #666666;
color: #666666; font-size: 0.9em;
font-size: 0.9em; margin-top: 0;
margin-top: 0; margin-bottom: 0.25em;
margin-bottom: 0.25em; }
} #main_content .abstract {
#main_content .abstract { margin-top: 0;
margin-top: 0; }
} </style>
</style> </head>
</head> <body>
<body> <div id="container">
<script language="JavaScript" type="text/javascript" src="/assets/js/controls.js">&amp;nbsp;</script> <jsp:directive.include file="/assets/include_main_navigation.html"/>
<script language="JavaScript" type="text/javascript" src="/assets/js/search.js">&amp;nbsp;</script> <jsp:directive.include file="/about/navigation.html"/>
<div id="container"> <div id="content">&#160;</div>
<div id="masthead"> <!-- Main Content -->
<!-- Search --> <div id="main_content">
<div id="top_links">
<ul> <!-- BEGIN MAIN CONTENT -->
<li><a href="/accessibility/index.html">Accessibility</a> |</li>
<li><a href="/sitemap/index.html">Site Map</a> |</li> <h1>Alfresco Press Releases</h1>
<li><a href="/about/contact/index.html">Contact Us</a> |</li>
<li><a href="/store/index.html">Store</a> |</li> <%-- load all PressReleaseBeans by using the function defined in /WEB-INF/pr.tld --%>
<li><a href="/rss/?feed=all">RSS</a> <img src="/assets/images/icons/feedicon10.gif" alt="RSS" title="RSS" width="10" height="10" /></li> <c:forEach items="${pr:getPressReleases(pageContext)}" var="pressRelease">
</ul> <h2 class="headline">
<form action="http://www.google.com/search" method="get"><br /> <jsp:element name="a">
<input type="hidden" name="sitesearch" value="www.alfresco.com" /> <jsp:attribute name="href"><c:out value="${pressRelease.href}"/></jsp:attribute>
<input type="hidden" name="ie" value="UTF-8" /> <jsp:body><c:out value="${pressRelease.title}"/></jsp:body>
<input type="hidden" name="oe" value="UTF-8" /> </jsp:element>
<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...';" /> </h2>
<input class="searchbutton" type="submit" name="" value="Go" /> <p class="date"><fmt:formatDate value="${pressRelease.launchDate}" dateStyle="long"/></p>
</form> <p class="abstract"><c:out value="${pressRelease.abstract}"/></p>
</div> </c:forEach>
<!-- End Search -->
</div>
<div id="topnav">
<ul id="nav">
<li id="home"><a href="/index.jsp" accesskey="h" ><span>Home</span></a></li>
<li id="products"><a href="/products/index.html" accesskey="p" ><span>Products</span></a></li>
<li id="services"><a href="/services/support/index.html" accesskey="s" ><span>Services</span></a></li>
<li id="customers"><a href="/customers/index.html" accesskey="c" ><span>Customers</span></a></li>
<li id="partners"><a href="/partners/index.html" accesskey="r" ><span>Partners</span></a></li>
<li id="about"><a href="/about/index.html" 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/index.html">Company</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/contact/index.html">Contact</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/media/releases/index.jsp">News</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/events/index.html">Events</a>&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;<a href="/about/people/index.html">People</a></p>
</div>
</div>
</div>
<div id="content"></div>
<!-- Main Content -->
<div id="main_content">
<!-- BEGIN MAIN CONTENT -->
<h1>Alfresco Press Releases</h1>
<c:forEach items="${pr:getPressReleases(pageContext)}" var="pressRelease">
<h2 class="headline">
<jsp:element name="a">
<jsp:attribute name="href"><c:out value="${pressRelease.href}"/></jsp:attribute>
<jsp:body><c:out value="${pressRelease.title}"/></jsp:body>
</jsp:element>
</h2>
<p class="date"><fmt:formatDate value="${pressRelease.launchDate}" dateStyle="long"/></p>
<p class="abstract"><c:out value="${pressRelease.abstract}"/></p>
</c:forEach>
<!-- END MAIN CONTENT --> <!-- END MAIN CONTENT -->
</div> </div>
<!-- Feature Content --> <!-- Feature Content -->
<div id="right_content"> <div id="right_content">
<div class="box_blue"> <div class="box_blue">
<h2>Press Release Archive</h2> <h2>Press Release Archive</h2>
<ul> <ul>
<li><a href="/media/releases/archives/index.html">View Archived Releases</a></li> <li><a href="/media/releases/archives/index.html">View Archived Releases</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="clear">&#160;</div> <div id="clear">&#160;</div>
</div> </div>
<!--All Three End --> <!--All Three End -->
<!-- Footer --> <jsp:directive.include file="/assets/footer.html"/>
<div id="footer"> </body>
<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="/index.jsp">Home</a> |
<a href="/legal/index.html">Legal</a> |
<a href="/privacy/index.html">Privacy</a> |
<a href="/accessibility/index.html">Accessibility</a> |
<a href="/sitemap/index.html">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/index.html">Open Source ECMS</a> |
<a href="/products/index.html">CMS Products</a> |
<a href="/services/support/index.html">Management Services</a> |
<a href="/resources/index.html">EMS Resources</a>
</p>
<p>&amp;copy; 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;">&#160;</div>
</div>
<div style="clear:both; padding-bottom: 20px;">&#160;</div>
<!-- End Footer -->
</body>
</html> </html>
</jsp:root> </jsp:root>

View File

@@ -6,7 +6,6 @@
<xsl:output method="text" encoding="UTF-8" indent="no" omit-xml-declaration="no" media-type="text/plain"/> <xsl:output method="text" encoding="UTF-8" indent="no" omit-xml-declaration="no" media-type="text/plain"/>
<xsl:preserve-space elements="*"/> <xsl:preserve-space elements="*"/>
<xsl:param name="avm_store_url" select="'not_specified'"/>
<xsl:template match="/"> <xsl:template match="/">
--- <xsl:value-of select="/alfresco:press-release/alfresco:title"/> --- --- <xsl:value-of select="/alfresco:press-release/alfresco:title"/> ---

View File

@@ -1,3 +1,20 @@
<!--
Copyright (C) 2005 Alfresco, Inc.
Licensed under the Mozilla Public License version 1.1
with a permitted attribution clause. You may obtain a
copy of the License at
http://www.alfresco.org/legal/license.txt
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific
language governing permissions and limitations under the
License.
-->
<!-- Produces an html rendition of a press release -->
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" <xsl:stylesheet version="1.0"
xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml"
@@ -10,19 +27,16 @@
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:preserve-space elements="*"/> <xsl:preserve-space elements="*"/>
<xsl:param name="avm_store_url" select="'not_specified'"/>
<xsl:param name="derived_from_file_name" select="'not_specified'"/>
<xsl:template match="/"> <xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <!-- include common navigation components using SSIs (see web.xml for more information) -->
<xsl:comment>#include virtual="/assets/include_in_head.html"</xsl:comment>
<title><xsl:value-of select="/alfresco:press-release/alfresco:title"/></title> <title><xsl:value-of select="/alfresco:press-release/alfresco:title"/></title>
<meta name="description" lang="en" > <meta name="description" lang="en" >
<xsl:attribute name="content"><xsl:value-of select="/alfresco:press-release/alfresco:title"/></xsl:attribute> <xsl:attribute name="content"><xsl:value-of select="/alfresco:press-release/alfresco:title"/></xsl:attribute>
</meta> </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"> <style type="text/css">
p.leader { p.leader {
font-weight: 700; font-weight: 700;
@@ -30,50 +44,9 @@
</style> </style>
</head> </head>
<body> <body>
<script language="JavaScript" type="text/javascript" src="/assets/js/controls.js">&amp;nbsp;</script>
<script language="JavaScript" type="text/javascript" src="/assets/js/search.js">&amp;nbsp;</script>
<div id="container"> <div id="container">
<div id="masthead"> <xsl:comment>#include virtual="/assets/include_main_navigation.html"</xsl:comment>
<!-- Search --> <xsl:comment>#include virtual="/about/navigation.html"</xsl:comment>
<div id="top_links">
<ul>
<li><a href="/accessibility/index.html">Accessibility</a> |</li>
<li><a href="/sitemap/index.html">Site Map</a> |</li>
<li><a href="/about/contact/index.html">Contact Us</a> |</li>
<li><a href="/store/index.html">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="/index.jsp" accesskey="h" ><span>Home</span></a></li>
<li id="products"><a href="/products/index.html" accesskey="p" ><span>Products</span></a></li>
<li id="services"><a href="/services/support/index.html" accesskey="s" ><span>Services</span></a></li>
<li id="customers"><a href="/customers/index.html" accesskey="c" ><span>Customers</span></a></li>
<li id="partners"><a href="/partners/index.html" accesskey="r" ><span>Partners</span></a></li>
<li id="about"><a href="/about/index.html" 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/index.html">Company</a>&#160;&#160;|&#160;&#160;<a href="/about/contact/index.html">Contact</a>&#160;&#160;|&#160;&#160;<a href="/media/releases/index.jsp">News</a>&#160;&#160;|&#160;&#160;<a href="/about/events/index.html">Events</a>&#160;&#160;|&#160;&#160;<a href="/about/people/index.html">People</a></p>
</div>
</div>
</div>
<div id="content">&#160;</div> <div id="content">&#160;</div>
<!-- Main Content --> <!-- Main Content -->
<div id="main_content"> <div id="main_content">
@@ -89,8 +62,10 @@
</xsl:for-each> </xsl:for-each>
<xsl:for-each select="/alfresco:press-release/alfresco:include_company_footer"> <xsl:for-each select="/alfresco:press-release/alfresco:include_company_footer">
<xsl:variable name="cf-id"><xsl:value-of select="."/></xsl:variable> <xsl:variable name="cf-id"><xsl:value-of select="."/></xsl:variable>
<h2>About <xsl:value-of select="document($cf-id)/alfresco:company-footer/alfresco:name"/></h2> <!-- load the xml document for the company footer using a built in FormDataFunction -->
<xsl:for-each select="document($cf-id)/alfresco:company-footer/alfresco:body"> <xsl:variable name="cf" select="alfresco:getXMLDocument($cf-id)"/>
<h2>About <xsl:value-of select="$cf/alfresco:company-footer/alfresco:name"/></h2>
<xsl:for-each select="$cf/alfresco:company-footer/alfresco:body">
<p><xsl:value-of select="." disable-output-escaping="yes"/></p> <p><xsl:value-of select="." disable-output-escaping="yes"/></p>
</xsl:for-each> </xsl:for-each>
</xsl:for-each> </xsl:for-each>
@@ -110,42 +85,7 @@
<div id="clear">&#160;</div> <div id="clear">&#160;</div>
</div> </div>
<!--All Three End --> <!--All Three End -->
<!-- Footer --> <xsl:comment>#include virtual="/assets/footer.html"</xsl:comment>
<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="/index.jsp">Home</a> |
<a href="/legal/index.html">Legal</a> |
<a href="/privacy/index.html">Privacy</a> |
<a href="/accessibility/index.html">Accessibility</a> |
<a href="/sitemap/index.html">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/index.html">Open Source ECMS</a> |
<a href="/products/index.html">CMS Products</a> |
<a href="/services/support/index.html">Management Services</a> |
<a href="/resources/index.html">EMS Resources</a>
</p>
<p>&#169; 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;">&#160;</div>
</div>
<div style="clear:both; padding-bottom: 20px;">&#160;</div>
<!-- End Footer -->
</body> </body>
</html> </html>
</xsl:template> </xsl:template>