⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmsdownloadbrowser.java

📁 cms是开源的框架
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        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>&lt;BUTTON&gt;</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>&lt;BUTTON&gt;</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 + -