- 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.NodeService;
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.jsf.FacesContextUtils;
@@ -34,6 +36,8 @@ import org.springframework.web.jsf.FacesContextUtils;
public abstract class AbstractRenderingEngine
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_PREFIX = "alfresco";
@@ -76,16 +80,25 @@ public abstract class AbstractRenderingEngine
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) == '/')
{
parentAVMPath = parentAVMPath.substring(0,
parentAVMPath.indexOf(':') +
('/' + AVMConstants.DIR_APPBASE +
'/' + AVMConstants.DIR_WEBAPPS).length() + 1);
parent = parentAVMPath.substring(0,
parentAVMPath.indexOf(':') +
('/' + AVMConstants.DIR_APPBASE +
'/' + 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.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 static List<CompanyFooterBean> getCompanyFooters(final PageContext pageContext)
throws Exception
{
final FormDataFunctions ef =
new ServletContextFormDataFunctionsAdapter(pageContext.getServletContext());
/**
* Loads all xml files generated by company-footer.xsd in /media/releases/content
* populates CompanyFooterBeans with their contents. This function is exposed to the
* jsp by /WEB-INF/pr.tld.
*
* @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",
"/media/releases/content/company_footers");
final List<CompanyFooterBean> result = new ArrayList<CompanyFooterBean>(entries.size());
for (Map.Entry<String, Document> entry : entries.entrySet())
{
final String fileName = entry.getKey();
final Document d = entry.getValue();
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(),
href));
}
return result;
}
final Map<String, Document> entries = ef.getXMLDocuments("company-footer",
"/media/releases/content");
final List<CompanyFooterBean> result = new ArrayList<CompanyFooterBean>(entries.size());
for (Map.Entry<String, Document> entry : entries.entrySet())
{
final String fileName = entry.getKey();
final Document d = entry.getValue();
final Element n = (Element)d.getElementsByTagName("alfresco:name").item(0);
result.add(new CompanyFooterBean(n.getFirstChild().getNodeValue(),
fileName));
}
return result;
}
private final String name;
private final String href;
private final String name;
private final String fileName;
public CompanyFooterBean(final String name,
final String href)
{
this.name = name;
this.href = href;
}
public CompanyFooterBean(final String name,
final String fileName)
{
this.name = name;
this.fileName = fileName;
}
public String getName()
{
return this.name;
}
/**
* Returns the name of the company.
*/
public String getName()
{
return this.name;
}
public String getHref()
{
return this.href;
}
/**
* Returns the fileName of the xml file describing this company footer
*
* @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.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
{
/**
* 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)
throws Exception
{
@@ -41,7 +55,7 @@ public class PressReleaseBean
final Element dateEl = (Element)d.getElementsByTagName("alfresco:launch_date").item(0);
final Date date = new SimpleDateFormat("yyyy-MM-dd").parse(dateEl.getFirstChild().getNodeValue());
String href = "/media/releases/content/" + fileName;
href = href.replaceAll(".xml$", ".shtml");
href = href.replaceAll(".xml$", ".html");
result.add(new PressReleaseBean(t.getFirstChild().getNodeValue(),
a.getFirstChild().getNodeValue(),
date,
@@ -66,23 +80,37 @@ public class PressReleaseBean
this.href = href;
}
/**
* The title of the press release as defined in the xml asset.
*/
public String getTitle()
{
return this.title;
}
/**
* The abstract of the press release as defined in the xml asset.
*/
public String getAbstract()
{
return this.theAbstract;
}
/**
* The launch date of the press release as defined in the xml asset.
*/
public Date getLaunchDate()
{
return this.launchDate;
}
public String getHref()
{
return this.href;
}
/**
* Returns the url within the webapp to the xml file describing this press release
*
* @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>
<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-uri>http://www.alfresco.org/pr</taglib-uri>
<taglib-location>/WEB-INF/pr.tld</taglib-location>
</taglib>
<!-- welcome file list precedence order is index.jsp, then index.html -->
<welcome-file-list>
<welcome-file>index.jsp</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"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
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 isELIgnored="false"/>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
@@ -9,12 +55,15 @@
elementFormDefault="qualified">
<xs:simpleType name="company-footer">
<xs:restriction base="xs:string">
<%-- call into CompanyFooterBean to retrieve all company footers --%>
<c:forEach items="${pr:getCompanyFooters(pageContext)}" var="companyFooter">
<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>
<xs:annotation>
<xs:appinfo>
<%-- this produces the label displayed in the combobox within the press release form --%>
<alfresco:label><c:out value="${companyFooter.name}"/></alfresco:label>
</xs:appinfo>
</xs:annotation>

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"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:pr="http://www.alfresco.org/pr"
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"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<jsp:output doctype-root-element="html"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
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 isELIgnored="false"/>
<jsp:directive.page isELIgnored="false"/>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Alfresco Press Releases - Open Source Content Management</title>
<meta name="description" lang="en" content="News and press releases about Alfresco's enterprise content management system and document management software." />
<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" />
<style type="text/css">
#main_content .headline {
font-size: 1.2em;
border-bottom: none;
margin-bottom: 0.25em;
}
#main_content .date {
color: #666666;
font-size: 0.9em;
margin-top: 0;
margin-bottom: 0.25em;
}
#main_content .abstract {
margin-top: 0;
}
</style>
</head>
<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="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>
<div id="content"></div>
<!-- Main Content -->
<div id="main_content">
<head>
<%-- include common navigation components using the jsp compile time include directive --%>
<jsp:directive.include file="/assets/include_in_head.html"/>
<title>Alfresco Press Releases - Open Source Content Management</title>
<meta name="description" lang="en" content="News and press releases about Alfresco's enterprise content management system and document management software." />
<style type="text/css">
#main_content .headline {
font-size: 1.2em;
border-bottom: none;
margin-bottom: 0.25em;
}
#main_content .date {
color: #666666;
font-size: 0.9em;
margin-top: 0;
margin-bottom: 0.25em;
}
#main_content .abstract {
margin-top: 0;
}
</style>
</head>
<body>
<div id="container">
<jsp:directive.include file="/assets/include_main_navigation.html"/>
<jsp:directive.include file="/about/navigation.html"/>
<div id="content">&#160;</div>
<!-- Main Content -->
<div id="main_content">
<!-- BEGIN MAIN CONTENT -->
<!-- BEGIN MAIN CONTENT -->
<h1>Alfresco Press Releases</h1>
<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>
<%-- load all PressReleaseBeans by using the function defined in /WEB-INF/pr.tld --%>
<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>
<!-- Feature Content -->
<div id="right_content">
<div class="box_blue">
<h2>Press Release Archive</h2>
<ul>
<li><a href="/media/releases/archives/index.html">View Archived Releases</a></li>
</ul>
</div>
</div>
<div id="clear">&#160;</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>
<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>
</div>
<!-- Feature Content -->
<div id="right_content">
<div class="box_blue">
<h2>Press Release Archive</h2>
<ul>
<li><a href="/media/releases/archives/index.html">View Archived Releases</a></li>
</ul>
</div>
</div>
<div id="clear">&#160;</div>
</div>
<!--All Three End -->
<jsp:directive.include file="/assets/footer.html"/>
</body>
</html>
</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:preserve-space elements="*"/>
<xsl:param name="avm_store_url" select="'not_specified'"/>
<xsl:template match="/">
--- <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"?>
<xsl:stylesheet version="1.0"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
@@ -10,19 +27,16 @@
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:param name="derived_from_file_name" 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" />
<!-- 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>
<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;
@@ -30,50 +44,9 @@
</style>
</head>
<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="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>&#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>
<xsl:comment>#include virtual="/assets/include_main_navigation.html"</xsl:comment>
<xsl:comment>#include virtual="/about/navigation.html"</xsl:comment>
<div id="content">&#160;</div>
<!-- Main Content -->
<div id="main_content">
@@ -89,8 +62,10 @@
</xsl:for-each>
<xsl:for-each select="/alfresco:press-release/alfresco:include_company_footer">
<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>
<xsl:for-each select="document($cf-id)/alfresco:company-footer/alfresco:body">
<!-- load the xml document for the company footer using a built in FormDataFunction -->
<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>
</xsl:for-each>
</xsl:for-each>
@@ -110,42 +85,7 @@
<div id="clear">&#160;</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>
<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 -->
<xsl:comment>#include virtual="/assets/footer.html"</xsl:comment>
</body>
</html>
</xsl:template>