AW: [opencms-dev] how to include a link content ??
M Butcher
mbutcher at grcomputing.net
Fri Aug 8 22:07:01 CEST 2003
Marianne,
I did something similar, though it is pretty rudimentary. To call the
page, I did something like
<cms:include ...>
<cms:parameter name="download_dir">/my/downloads/</cms:parameter>
</cms:include>
Feel free to use whatever you can from the code here.
Matt
-------------------------------
<%@ page import="java.util.*,
com.opencms.flex.jsp.*,com.opencms.file.CmsObject,
com.opencms.file.CmsFile" %>
<%-- Downloads Table --%>
<table width="100%" class="downloads-table">
<tr class="downloads-header">
<th class="downloads-th">Name</th>
<th class="downloads-th">File Type</th>
<th class="downloads-th">File Size</th>
</tr>
<%
/*
* @author mbutcher at grcomputing
* @license GPL v2
*
* This script provides a listing of downloads in a particular
directory. Any file with read
* permissions will be considered "downloadable".
*
* PARAMETERS:
* download_dir: the directory in which the files are stored
*/
CmsJspActionElement cms = new CmsJspActionElement(pageContext, request,
response);
String download_dir = request.getParameter("download_dir");
String DEF_FILE_TYPE = "Downloadable File";
//out.println(download_dir);
if (download_dir != null && !"".equals(download_dir)) {
CmsObject cmso = cms.getCmsObject();
try {
// We have to use Cms* objects to get files that are not Pages.
Iterator i = cmso.getFilesInFolder(download_dir).iterator();
int lines = 0;
while (i.hasNext()) {
CmsFile f = (CmsFile)i.next();
if(lines % 2 == 0) out.println("<tr
class=\"download-row1\">");
else out.println("<tr class=\"download-row2\">");
// There is probably a built-in source for this....
HashMap fTypes = new HashMap(35);
fTypes.put(".txt","Text File");
fTypes.put(".doc","MS Word Doc");
fTypes.put(".htm","Web (HTML) Document");
fTypes.put(".html","Web (HTML) Document");
fTypes.put(".jpg","JPEG Image File");
fTypes.put(".jpeg","JPEG Image File");
fTypes.put(".gif","GIF Image File");
fTypes.put(".pdf","Adobe PDF (Acrobat™) Document");
fTypes.put(".zip","ZIP Compressed File");
fTypes.put(".tar","UNIX Archive File");
fTypes.put(".tgz","GZip Compressed Archive File");
fTypes.put(".gz","GZip Compressed File");
fTypes.put(".gzip","GZip Compressed File");
fTypes.put(".xls","MS Excel Spreadsheet");
fTypes.put(".ppt","MS PowerPoint Slideshow");
fTypes.put(".exe","Windows/DOS Executable");
fTypes.put(".wmf","Windows Media File");
fTypes.put(".ram","Real Media File");
fTypes.put(".rpm","Real Media File");
fTypes.put(".mp3","MP3 Audio File");
fTypes.put(".mpg","MPEG Video File");
fTypes.put(".mpeg","MPEG Video File");
fTypes.put(".avi","AVI Video File");
String fName = f.getName();
String ext = f.getExtension();
int fLength = f.getLength();
String unit = "Kb";
if(fLength < 1024) unit = "bytes";
else fLength /= 1024;
//out.println("Extension from CMS: "+ext+"<br>");//DEBUG
String fileType;
if("".equals(ext)) fileType = DEF_FILE_TYPE;
else fileType = (fTypes.get(ext) !=
null)?fTypes.get(ext).toString():DEF_FILE_TYPE;
out.println("<td class=\"download-cell\"><a href=\"" +
cms.link(f.getAbsolutePath()));
out.println("\" class=\"download-link\">" + fName +
"</a></td>");
out.println("<td class=\"download-cell\">" + fileType +
"</td>");
out.print("<td class=\"download-cell\">");
out.print(fLength);
out.println(" "+unit+"</td>");
++lines;
}
} catch (Exception e) {
out.println(e.toString());
}
}
%>
</table>
On Fri, 2003-08-08 at 07:47, Prestel Marianne wrote:
> Hi M and Guillaume, Hi all,
>
> I followed your exchange of ideas.
> I'm developing a jsp that displays all documents of a download-gallery
> (including links and files: *.pdf, *.doc, ...).
>
> Can I get the navigation of a named folder (not the current folder)?
>
> Thanks for any help.
>
> Regards Marianne
>
>
> -----Ursprüngliche Nachricht-----
> Von: Apostoly Guillaume [mailto:ApostolyG at mail.europcar.com]
> Gesendet: Freitag, 25. Juli 2003 16:39
> An: opencms-dev at opencms.org
> Betreff: [opencms-dev] how to include a link content ??
>
>
> Hi all,
>
> I've developed a peace of JSP that display all documents (to be shown in
> navigation from a directory) by using cms.include.
> This is basically the code.
>
> com.opencms.flex.jsp.CmsJspNavElement rootNe
> while (rootI.hasNext())
> {
> rootNe = (com.opencms.flex.jsp.CmsJspNavElement)rootI.next();
> cms.include(rootNe.getResourceName());
> }
>
> This works, but if i put in my folder a link to another document, instead of
> a page, this doesn't work anymore.
> So how can I :
> - test if the current "rootNe" is a link or a page ?
> - gain access to the linked page to include it ?
>
> Thanks by advance for your help,
>
> Regards,
>
> Guillaume.
>
> _______________________________________
> Guillaume APOSTOLY
> Business-Analyst EIS-BSD
> Tél: +33 (0)1.30.44.95.22
> Fax: +33 (0)1.30.44.98.08
> ApostolyG at mail.europcar.com <mailto:ApostolyG at mail.europcar.com>
> _______________________________________
>
>
>
>
>
>
>
> _______________________________________________
> This mail is send to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://mail.opencms.org/mailman/listinfo/opencms-dev
> _______________________________________________
> This mail is send to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://mail.opencms.org/mailman/listinfo/opencms-dev
--
M Butcher <mbutcher at grcomputing.net>
More information about the opencms-dev
mailing list