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

📄 cmslinkbrowser.java

📁 cms是开源的框架
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * @throws CmsException
     */

    public Integer getLinkGalleryNames(CmsObject cms, CmsXmlLanguageFile lang,
            Vector names, Vector values, Hashtable parameters) throws CmsException {
        int ret = -1;
        I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true);

        // which folder is the gallery?
        String chosenFolder = (String)parameters.get(CmsWorkplaceDefault.C_PARA_FOLDER);
        if(chosenFolder == null) {
            chosenFolder = (String)session.getValue(CmsWorkplaceDefault.C_PARA_FOLDER);
        }
        if(chosenFolder == null) {
            chosenFolder = "";
        }
        List folders = cms.getSubFolders(CmsWorkplaceDefault.C_VFS_GALLERY_EXTERNALLINKS);
        int numFolders = folders.size();
        for(int i = 0;i < numFolders;i++) {
            CmsResource currFolder = (CmsResource)folders.get(i);
            String name = currFolder.getName();
            if(chosenFolder.equals(cms.getSitePath(currFolder))) {
                ret = i;
            }
            values.addElement(cms.getSitePath(currFolder));
            names.addElement(name);
        }
        return new Integer(ret);
    }

    /**
     * Checks, if the given filename matches the filter.
     * @param filename filename to be checked.
     * @param filter filter to be checked.
     * @return <code>true</code> if the filename matches the filter, <code>false</code> otherwise.
     */

    private boolean inFilter(String name, String filter) {
        String compareName = name.toLowerCase();
        String compareFilter = filter.toLowerCase();
        if("".equals(compareFilter) || (compareName.indexOf(compareFilter) != -1)) {
            return true;
        }
        else {
            return false;
        }
    }

    /**
     * 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;
    }

    /**
     * User method to generate an URL for the pics folder.
     * <P>
     * All pictures should reside in the docroot of the webserver for
     * performance reasons. This folder can be mounted into the OpenCms system to
     * make it accessible for the OpenCms explorer.
     * <P>
     * The path to the docroot can be set in the workplace ini.
     *
     * @param cms CmsObject Object for accessing system resources.
     * @param tagcontent Unused in this special case of a user method. Can be ignored.
     * @param doc Reference to the A_CmsXmlContent object of the initiating XLM document <em>(not used here)</em>.
     * @param userObj Hashtable with parameters <em>(not used here)</em>.
     * @return String with the pics URL.
     * @throws CmsException
     */

    public Object linkList(CmsObject cms, String tagcontent, A_CmsXmlContent doc,
            Object userObj) throws CmsException {
        I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true);
        Hashtable parameters = (Hashtable)userObj;
        CmsXmlWpTemplateFile xmlTemplateDocument = (CmsXmlWpTemplateFile)doc;
        StringBuffer result = new StringBuffer();
        String pageText = (String)parameters.get(CmsWorkplaceDefault.C_PARA_PAGE);

        // Filter the links
        Vector filteredLinks = (Vector)parameters.get("_LINKLIST_");
        int numLinks = filteredLinks.size();

        // Get limits for the requested page
        int page = new Integer(pageText).intValue();
        int from = (page - 1) * CmsWorkplaceDefault.C_PICBROWSER_MAXIMAGES;
        int to = ((from + CmsWorkplaceDefault.C_PICBROWSER_MAXIMAGES) > numLinks) ? numLinks : (from + CmsWorkplaceDefault.C_PICBROWSER_MAXIMAGES);
        String folder = (String)parameters.get(CmsWorkplaceDefault.C_PARA_FOLDER);
        if(folder == null) {
            folder = (String)session.getValue(CmsWorkplaceDefault.C_PARA_FOLDER);
        }
        if(folder == null || "".equals(folder)) {
            folder = CmsWorkplaceDefault.C_VFS_GALLERY_EXTERNALLINKS;
            parameters.put(CmsWorkplaceDefault.C_PARA_FOLDER, folder);
        }

        String linkUrl = CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getServletUrl() + folder;

        // Generate the link list for all links on the selected page
        for(int i = from;i < to;i++) {
            CmsFile file = cms.readFile(cms.getSitePath((CmsFile)filteredLinks.elementAt(i)));
            String filename = file.getName();
            String title = cms.readProperty(cms.getSitePath(file), CmsPropertyDefinition.PROPERTY_TITLE);

            // If no "Title" property is given, the title will be set to the filename
            // without its postfix
            int dotIndex = filename.lastIndexOf(".");
            if(title == null) {
                if(dotIndex > 0) {
                    title = filename.substring(0, dotIndex);
                }
                else {
                    title = filename;
                }
            }

            // Set all datablocks for the current picture list entry
            xmlTemplateDocument.setData("linksource", linkUrl + file.getName());
            xmlTemplateDocument.setData("filename", cms.getSitePath(file));
            xmlTemplateDocument.setData("title", title);
            xmlTemplateDocument.setData("linktext", filename);
            xmlTemplateDocument.setData("url", new String(file.getContents()));

            // look if the onclick event must be set
            String paraSetOnClick = (String)session.getValue("linkBrowser_for_ext_nav");
            String setOnClick = "";
            if ("true".equals(paraSetOnClick)){
                setOnClick = xmlTemplateDocument.getProcessedDataValue("clickentry");
            }
            xmlTemplateDocument.setData("toclickornot", setOnClick);
            result.append(xmlTemplateDocument.getProcessedDataValue("linklistentry", this, userObj));
        }
        return result.toString();
    }

    /**
     * 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) {

        // Get the current page number
        String pageText = (String)parameters.get(CmsWorkplaceDefault.C_PARA_PAGE);
        int page = new Integer(pageText).intValue();

        // get the number of links
        Vector filteredLinks = (Vector)parameters.get("_LINKLIST_");
        int numLinks = filteredLinks.size();

        // Get the maximum page number
        int maxpage = ((numLinks - 1) / CmsWorkplaceDefault.C_PICBROWSER_MAXIMAGES) + 1;
        return new Boolean(page < maxpage);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -