📄 cmsdownloadbrowser.java
字号:
String downloadPath = servletPath + cms.getSitePath(res);
filelistTemplate.setData("fullpath", downloadPath);
filelistTemplate.setData("name_value", res.getName());
filelistTemplate.setData("filepath", cms.getSitePath(res));
if ((cms.getPermissions(cms.getSitePath(res)).getPermissions() & com.opencms.core.I_CmsConstants.C_ACCESS_WRITE) > 0 ) {
filelistTemplate.setData("delete", filelistTemplate.getProcessedDataValue("deleteentry", this));
} else {
filelistTemplate.setData("delete", " ");
}
String title = "";
try {
title = cms.readProperty(cms.getSitePath(res), CmsPropertyDefinition.PROPERTY_TITLE);
}
catch(CmsException e) {
}
if(title == null) {
title = "";
}
filelistTemplate.setData("title_value", title);
}
public Integer getDownGalleryNames(CmsObject cms, CmsXmlLanguageFile lang,
Vector names, Vector values, Hashtable parameters) throws CmsException {
return getGalleryNames(cms, getConfigFile(cms).getDownGalleryPath(), lang, names, values, parameters);
}
/**
* From interface <code>I_CmsFileListUsers</code>.
* <P>
* Collects all files in the chosen download gallery list.
* @param cms The CmsObject.
* @return A vector of folder and file objects.
* @throws Throws CmsException if something goes wrong.
*/
public List getFiles(CmsObject cms) throws CmsException {
I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true);
Vector files = new Vector();
// get the list of filtered files from session
Vector filteredFiles = (Vector)session.getValue("_DOWNLIST_");
int numFiles = filteredFiles.size();
// Get limits for the requested page
String pageText = (String)session.getValue(CmsWorkplaceDefault.C_PARA_PAGE);
if(pageText == null || "".equals(pageText)) {
pageText = "1";
}
int page = new Integer(pageText).intValue();
int from = (page - 1) * CmsWorkplaceDefault.C_DOWNBROWSER_MAXENTRIES;
int to = ((from + CmsWorkplaceDefault.C_DOWNBROWSER_MAXENTRIES) > numFiles) ? numFiles : (from + CmsWorkplaceDefault.C_DOWNBROWSER_MAXENTRIES);
String folder = (String)session.getValue(CmsWorkplaceDefault.C_PARA_FOLDER);
if(folder == null || "".equals(folder)) {
folder = getConfigFile(cms).getDownGalleryPath();
List galleries = cms.getSubFolders(folder);
if(galleries.size() > 0) {
// take the first gallery if none was chosen
folder = cms.getSitePath((CmsResource)galleries.get(0));
}
session.putValue(CmsWorkplaceDefault.C_PARA_FOLDER, folder);
}
// Generate the download list for all files on the selected page
for(int i = from;i < to;i++) {
CmsResource currFile = (CmsResource)filteredFiles.elementAt(i);
files.addElement(currFile);
}
return files;
}
/**
* Internal method for getting a vector of all files that match a given filter
* i.e., <code>filter</code> is a substring of the name or the title
*
* @param cms Cms object for accessing system resources.
* @param folder Folder to look for files.
* @param filter Search pattern that should be used.
* @return Vector of CmsFile objects.
*/
protected Vector getFilteredDownList(CmsObject cms, String folder, String filter)
throws CmsException {
// Get all pictures in the given folder using the cms object
List allFiles = cms.getFilesInFolder(folder);
// Filter the files
Vector filteredFiles = new Vector();
for(int i=0; i<allFiles.size(); i++) {
CmsFile file = (CmsFile)allFiles.get(i);
if (file.getState() != CmsResource.STATE_DELETED) {
String filename = file.getName();
String title = cms.readProperty(cms.getSitePath(file), CmsPropertyDefinition.PROPERTY_TITLE);
boolean filenameFilter = inFilter(filename, filter);
boolean titleFilter = ((title == null) || ("".equals(title))) ? false : inFilter(title, filter);
if (filenameFilter || titleFilter) {
filteredFiles.addElement(file);
}
}
}
return filteredFiles;
}
/**
* Indicates if the results of this class are cacheable.
*
* @param cms CmsObject Object for accessing system resources
* @param templateFile Filename of the template file
* @param elementName Element name of this template in our parent template.
* @param parameters Hashtable with all template class parameters.
* @param templateSelector template section that should be processed.
* @return <EM>true</EM> if cacheable, <EM>false</EM> otherwise.
*/
public boolean isCacheable(CmsObject cms, String templateFile, String elementName,
Hashtable parameters, String templateSelector) {
return false;
}
/**
* From interface <code>I_CmsFileListUsers</code>.
* <P>
* Used to modify the bit pattern for hiding and showing columns in
* the file list.
* @param cms Cms object for accessing system resources.
* @param prefs Old bit pattern.
* @return New modified bit pattern.
* @see I_CmsFileListUsers
*/
public int modifyDisplayedColumns(CmsObject cms, int prefs) {
// not display the following columns
prefs = ((prefs & CmsUserSettings.FILELIST_NAME) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_NAME);
prefs = ((prefs & CmsUserSettings.FILELIST_TITLE) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_TITLE);
prefs = ((prefs & CmsUserSettings.FILELIST_USER_CREATED) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_USER_CREATED);
prefs = ((prefs & CmsWorkplaceDefault.C_FILELIST_GROUP) == 0) ? prefs : (prefs - CmsWorkplaceDefault.C_FILELIST_GROUP);
prefs = ((prefs & CmsUserSettings.FILELIST_PERMISSIONS) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_PERMISSIONS);
prefs = ((prefs & CmsUserSettings.FILELIST_STATE) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_STATE);
prefs = ((prefs & CmsUserSettings.FILELIST_LOCKEDBY) == 0) ? prefs : (prefs - CmsUserSettings.FILELIST_LOCKEDBY);
return prefs;
}
/**
* Used by the workplace "back" button to decide whether the icon should
* be activated or not. A button will use this method if the attribute <code>method="showBackButton"</code>
* is defined in the <code><BUTTON></code> tag.
* <P>
* This method returns <code>false</code> if the currently displayed page is
* the first page.
*
* @param cms CmsObject Object for accessing system resources <em>(not used here)</em>.
* @param lang reference to the currently valid language file <em>(not used here)</em>.
* @param parameters Hashtable containing all user parameters <em>(not used here)</em>.
* @return <code>true</code> if the button should be enabled, <code>false</code> otherwise.
*/
public Boolean showBackButton(CmsObject cms, CmsXmlLanguageFile lang,
Hashtable parameters) {
// Get the current page number
String pageText = (String)parameters.get(CmsWorkplaceDefault.C_PARA_PAGE);
int page = new Integer(pageText).intValue();
return new Boolean(page > 1);
}
/**
* Used by the workplace "next" button to decide whether the icon should
* be activated or not. A button will use this method if the attribute <code>method="showNextButton"</code>
* is defined in the <code><BUTTON></code> tag.
* <P>
* This method returns <code>false</code> if the currently displayed page is
* the last page.
*
* @param cms CmsObject Object for accessing system resources <em>(not used here)</em>.
* @param lang reference to the currently valid language file <em>(not used here)</em>.
* @param parameters Hashtable containing all user parameters <em>(not used here)</em>.
* @return <code>true</code> if the button should be enabled, <code>false</code> otherwise.
*/
public Boolean showNextButton(CmsObject cms, CmsXmlLanguageFile lang,
Hashtable parameters) {
I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true);
// Get the current page number
String pageText = (String)parameters.get(CmsWorkplaceDefault.C_PARA_PAGE);
int page = new Integer(pageText).intValue();
// get the number of pics
int numFiles = ((Integer)session.getValue("numfiles")).intValue();
// Get the maximum page number
int maxpage = ((numFiles - 1) / CmsWorkplaceDefault.C_DOWNBROWSER_MAXENTRIES) + 1;
return new Boolean(page < maxpage);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -