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

📄 bbsapplication.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    private void initBgsounds() {        try {            List<MusicModel> musics = MusicAction.getMusics();            _bgsounds = new ArrayList<SelectItem>();            for (MusicModel music : musics) {                _bgsounds.add(new SelectItem(music.getNum(), music.getTitle() + "/"                         + music.getSinger()));            }        } catch (Exception e) {            Elog.log("BBSApplication:initBgsounds:" + e.getMessage());        }    }        /**     * 重新载入BBS背景音乐列表     */    public void reloadBgsounds() {        initBgsounds();    }        /**     * 获得BBS主题信息中可用的所有背景音乐列表     * @return bgsounds     */    public List<SelectItem> getBgsounds() {        if (_bgsounds == null) {            reloadBgsounds();        }        return _bgsounds;    }        // -------------------------------------------------- BBS authenticator page        /**     * 以下初始化BBS页面文件的授权设置,相关类 biz.tbuy.common.Auth,     * 该方法获取BBS文件/WEB-INF/config/bbs/auth.xml中的授权信息,然后将其加入     * ComApplication中的authOper中,由authOper统一授权过滤     * 该BBS的权限访问配置文件位于 WEB-INF/config/bbs/auth.xml     */    private void initAuths() {        System.out.println("------Configure:auths(BBS)");        String authPath = getComApplication().getServletContextPath() +                 BBSGroups.PATH_AUTH;        Auth auth = new Auth(authPath);        getComApplication().getAuthOper().getAuths().putAll(auth.getAuths());    }        // -------------------------------------------------- BBS zones and forums        /**     * 载入专区及讨论区信息,及其相应的权限设置信息,并设置专区与讨论区的对应关系。     * 1.该方法载入zoneId与zone  forumId与forum的对应关系<br>     * 2.载入zoneId与zone的AuthModel  forumId与forum的AuthModel的对应关系<br>     * 3.载入zoneId与forums的对应关系     * 4.将zone与forum组织为SelectItemGroup     */    private void initZonsAndForums() {        System.out.println("---------------Configure(BBS):initZonesAndForums");        try {            _zonesMap = new LinkedHashMap<Integer, ZoneModel>();            _forumsMap = new LinkedHashMap<Integer, ForumModel>();            _zonesAuthMap = new HashMap<Integer, AuthModel>();            _forumsAuthMap = new HashMap<Integer, AuthModel>();            _forumsGroup = new LinkedHashMap<Integer, List<ForumModel>>();            _forums = new ArrayList<SelectItemGroup>();            List<ZoneModel> zones = ZoneAction.getZones();            if (zones != null && !zones.isEmpty()) {                for (ZoneModel zone : zones) {                    _zonesMap.put(zone.getNum(), zone);                    AuthModel auth = AuthAction.getAuthByZoneId(zone.getNum());                    if (auth != null) {                        _zonesAuthMap.put(zone.getNum(), auth);                    }                    List<ForumModel> forums = ForumAction.getForumsByZone(zone);                    if (forums != null && !forums.isEmpty()) {                        _forumsGroup.put(zone.getNum(), forums);                        for (ForumModel forum : forums) {                            _forumsMap.put(forum.getNum(), forum);                            AuthModel forumAuth = AuthAction.getAuthByForumId(forum.getNum());                            if (forumAuth != null) {                                _forumsAuthMap.put(forum.getNum(), forumAuth);                            }                        }                    }                }            }            // 组织SelectItemGroup            Set<Integer> keys = _zonesMap.keySet();            if (keys != null && !keys.isEmpty()) {                for (Integer key : keys) {                    ZoneModel zone = _zonesMap.get(key);                    SelectItemGroup zoneG = new SelectItemGroup(zone.getName());                    List<ForumModel> theForums = _forumsGroup.get(zone.getNum());                    if (theForums != null && !theForums.isEmpty()) {                        SelectItem[] items = new SelectItem[theForums.size()];                        int n = 0;                        for (ForumModel forum : theForums) {                            items[n] = new SelectItem(forum.getNum(), forum.getName());                            n++;                        }                        zoneG.setSelectItems(items);                        _forums.add(zoneG);                    }                }            }            // 输出测试            Set<Integer> outZoneKeys = _zonesMap.keySet();            System.out.println("-----zonesMap and AuthMap and Groups");            for (Integer key : outZoneKeys) {                System.out.println("zone:" + _zonesMap.get(key).getName());                System.out.println("auth:" + _zonesAuthMap.get(key));                List<ForumModel> outForums = _forumsGroup.get(key);                if (outForums != null && !outForums.isEmpty()) {                    for (ForumModel forum : outForums) {                        System.out.println("Gforum:" + forum.getName());                    }                 }            }            Set<Integer> outForumKeys = _forumsMap.keySet();            System.out.println("-----forumsMap and AuthMap");            if (outForumKeys != null && !outForumKeys.isEmpty()) {                for (Integer key : outForumKeys) {                    System.out.println("forum:" + _forumsMap.get(key).getName());                    System.out.println("auth:" + _forumsAuthMap.get(key));                }            }        } catch (Exception e) {            Elog.log("BBSApplication:initZonsAndForums:" + e.getMessage());        }    }        /**     * 重新载入专区及讨论区的信息,该方法还重新载入各专区及各讨论区的权限配置信息     * @see #getZonesMap     * @see #getForumsMap     * @see #getZonesAuthMap     * @see #getForumsAuthMap     */    public void reloadZonsAndForums() {        initZonsAndForums();    }        /**     * 获取专区列表,Map类型,获取数据:<br>     * zonesMap.get("zoneId") -> ZoneModel     * @return zonesMap     */    public Map<Integer, ZoneModel> getZonesMap() {        if (_zonesMap == null || _zonesMap.isEmpty()) {            reloadZonsAndForums();        }        return _zonesMap;    }        /**     * 获取讨论区列表,Map类型,获取数据:<br>     * forumsMap.get("forumId") -> ForumModel     * @return forumsMap      */    public Map<Integer, ForumModel> getForumsMap() {        if (_forumsMap == null || _forumsMap.isEmpty()) {            reloadZonsAndForums();        }        return _forumsMap;    }        /**     * 获取专区的权限设置类型Map,这样获取数据<br>     * zonesAuthMap.get("zoneId") -> 相应专区的权限设置,AuthModel     * @return zonesAuthMap;     */    public Map<Integer, AuthModel> getZonesAuthMap() {        return _zonesAuthMap;    }        /**     * 获取讨论区的权限设置类型Map, 这样获取数据<br>     * forumsAuthMap.get("forumId") -> 相应讨论区的权限设置,AuthModel     * @return forumsAuthMap     */    public Map<Integer, AuthModel> getForumsAuthMap() {        return _forumsAuthMap;    }        /**     * 获取讨论区列表,该列表按zoneId分组,通过key(zoneId)可获得该专区下的讨论区     * 列表,for example:<br>     * forumsGroup.get("zoneId") -> List<ForumModel>专区列表     * @return forumsGroup     */    public Map<Integer, List<ForumModel>> getForumsGroup() {        if (_forumsGroup == null || _forumsGroup.isEmpty()) {            reloadZonsAndForums();        }        return _forumsGroup;    }        /**     * 该方法用于获取讨论区信息,返回以SelectItemGroup的形式     * @return forums     */    public List<SelectItemGroup> getForums() {        if (_forums == null || _forums.isEmpty()) {            reloadZonsAndForums();        }        return _forums;    }        // -------------------------------------------------- BBS article info        /**     * 载入BBS的文章信息,如文章总数,主题总数,今日贴数,今日主题数     */    private void initArticleInfo() {        try {            _articleInfo = new ArticleInfo();            _articleInfo.loadInfo();        } catch (Exception e) {            Elog.log("BBSApplication:initArticleInfo:" + e.getMessage());        }            }        /**     * 重新载入BBS的文章信息,该方法重新载入BBS的主题总数,文章总数,     * 今天贴数。。。等等     */    public void reloadArticleInfo() {        initArticleInfo();    }        /**     * 获取BBS的文章信息     * @return articleInfo     */    public ArticleInfo getArticleInfo() {        if (_articleInfo == null) {            reloadArticleInfo();        }        return _articleInfo;    }        // -------------------------------------------------- BBS topic types info        /**     * 获取主题类型信息,从主题类型中获得该主题的相关信息数组<br/>     * topicTypes.get("主题类型") -> 相应的主题类型信息数组result[4]<br>     * result[0] -> 所需权限值<br/>     * result[1] -> 相应图标<br/>     * result[2] -> 描述文字<br/>     * @return     */    public Map<Integer, String[]> getTopicTypes() {        _topicTypes = BBSGroups.TOPIC_TYPE;        return _topicTypes;    }        /**     * 获取BBS主题类型,并以SelectItems的形式返回     * @return typeItems     */    public List<SelectItem> getTopicTypesForItems() {        if (_topicTypesForItems == null) {            _topicTypesForItems = new ArrayList<SelectItem>(6);            Map<Integer, String[]> topicTypes = getTopicTypes();            Set<Integer> keys = topicTypes.keySet();            for (Integer key : keys) {                String[] type = topicTypes.get(key);                _topicTypesForItems.add(new SelectItem(key, type[2]));            }        }        return _topicTypesForItems;    }        // -------------------------------------------------- BBS get user power        /**     * 通过给定的visitor获取该用户的最高权限值,最高可为admin权限,最低为访客权限<br/>     * 依次为:admin -> user -> guest     * @param visitor     * @return power     */    public int getPower(Visitor visitor) {        if (!visitor.isLogin()) return BBSGroups.POWER_GUEST;        if (getComApplication().isAdmin(visitor.getUser().getId())) {            return BBSGroups.POWER_ADMIN;        } else {            return BBSGroups.POWER_USER;        }    }        /**     * 通过给定的visitor及forum获取该用户的相对于该forum的最高权限值,     * 最高为admin、最低为Guest,依次为:admin -> master -> user -> guest     * @param visitor     * @param forum     * @return power     */    public int getPower(Visitor visitor, ForumModel forum) {        if (!visitor.isLogin()) return BBSGroups.POWER_GUEST;        int power = getPower(visitor);        int power2 = BBSGroups.POWER_GUEST;        if (isMaster(visitor.getUser().getId(), forum.getNum())) {            power2 = BBSGroups.POWER_MASTER;        }        return power > power2 ? power : power2;    }        /**     * 通过给定的visitor及topic获取该用户对于该topic的最高权限,最高权限可为admin<br>     * 依次为 admin -> master -> author(topic) -> user -> guest     * @param visitor     * @param topic     * @return power     */    public int getPower(Visitor visitor, TopicModel topic) {        if (!visitor.isLogin()) return BBSGroups.POWER_GUEST;        ForumModel forum = getForumsMap().get(topic.getByForum());        int power = getPower(visitor, forum);        int power2 = BBSGroups.POWER_GUEST;        if (visitor.getUser().getId().equals(topic.getByUser())) {            power2 = BBSGroups.POWER_AUTHOR;        }        return power > power2 ? power : power2;    }        /**     * 通过给定的visitor及topic及reply获取该用户对于该reply的最高权限,最高权限可为     * admin<br>依次为:admin -> master -> author(reply) -> user ->guest     * @param visitor     * @param topic     * @param reply     * @return power     */    public int getPower(Visitor visitor, TopicModel topic, ReplyModel reply) {        if (!visitor.isLogin()) return BBSGroups.POWER_GUEST;        ForumModel forum = getForumsMap().get(topic.getByForum());        int power = getPower(visitor, forum);        int power2 = BBSGroups.POWER_GUEST;        if (visitor.getUser().getId().equals(reply.getByUser())) {            power2 = BBSGroups.POWER_AUTHOR;        }        return power > power2 ? power : power2;    }}

⌨️ 快捷键说明

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