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

📄 bbsapplication.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的,如有技术问题请与本人联系! * */package biz.tbuy.bbs;import biz.tbuy.common.pool.ProxyConn;import biz.tbuy.common.logs.Elog;import biz.tbuy.bbs.bean.BaseBean;import biz.tbuy.common.Auth;import biz.tbuy.common.Visitor;import biz.tbuy.share.XmlOper;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.Set;import javax.faces.model.SelectItem;import javax.faces.model.SelectItemGroup;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.NodeList;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b> * <a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b> * <a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> *  * 用于BBS的全局信息,版主列表,专区列表,讨论区列表 */public class BBSApplication extends BaseBean{        // BBS display    private boolean _face;           // 是否启用自定义头像    private boolean _bgsound;        // 是否启用主题背景音乐    private boolean _signable;       // 是否启用个性签名    private boolean _rss;            // 是否启用文章订阅    private boolean _articleSearch;  // 是否启用文章搜索    private boolean _showArticleInfo;// 是否显示文章信息    private boolean _showMemberInfo; // 是否显示会员信息    private boolean _showFriendLink; // 是否显示友情链接        // 版主、用户组、bgsound    private Map<Integer, List<String>> _masters;        // 管理“版主”信息的HashMap    private Map<String, Map<String, String>> _groups;   // 包含BBS的用户组信息    private List<SelectItem> _bgsounds;                   // BBS主题可用的背景音乐列表        // 以下几个是一起初始化及reload的    private Map<Integer, ZoneModel> _zonesMap;          // BBS的所有专区Map    private Map<Integer, ForumModel>_forumsMap;         // BBS的讨论区Map    private Map<Integer, AuthModel> _zonesAuthMap;      // 专区所对应的权限类型    private Map<Integer, AuthModel> _forumsAuthMap;     // 讨论区所对应的权限类型    private Map<Integer, List<ForumModel>> _forumsGroup;// 讨论区列表,key为zoneId     private List<SelectItemGroup> _forums;              // 包含BBS的讨论区列表        // BBS的文章信息    private ArticleInfo _articleInfo;        // 文章类型    private Map<Integer, String[]> _topicTypes;    private List<SelectItem> _topicTypesForItems;        /** Creates a new instance of BBSApplication */    public BBSApplication() {}        // -------------------------------------------------- BBSApplication init        /**     * 关于BBSApplication的初始化     * .载入BBS displays开关配置     * .载入BBS版主信息     * .载入BBS的用户组信息     * .载入BBS主题可用的背景音乐列表     * .载入BBS的授权验证信息     * .载入专区及讨论区列表信息     * .载入BBS的文章信息     * .载入BBS主题类型配置信息     */    public void init() {        initConfigs();        initMasters();        initGroups();        initBgsounds();        initAuths();        initZonsAndForums();        initArticleInfo();    }        // -------------------------------------------------- BBS display        private void initConfigs() {        out("---------------load:bbs displays");        BBSConfigOper configOper = new BBSConfigOper();        Map<String, Boolean> displays = configOper.loadDisplay();        _face = displays.get("face");        _bgsound = displays.get("bgsound");        _signable = displays.get("signable");        _rss = displays.get("rss");        _articleSearch = displays.get("articleSearch");        _showArticleInfo = displays.get("showArticleInfo");        _showMemberInfo = displays.get("showMemberInfo");        _showFriendLink = displays.get("showFriendLink");        out("face:" + _face);        out("bgsound:" + _bgsound);        out("signable:" + _signable);        out("rss:" + _rss);        out("articleSearch:" + _articleSearch);        out("showArticleInfo:" + _showArticleInfo);        out("showMemberInfo:" + _showMemberInfo);        out("showFriendLink:" + _showFriendLink);    }        /**     * 重新载入BBS displays信息     * @see biz.tbuy.bbs.BBSConfigOper#loadDisplay     */    public void reloadConfigs() {        initConfigs();    }        /** 是否开启自定义头像 */    public boolean isFace() {        return _face;    }        /** 是否启用主题背景音乐 */    public boolean isBgsound() {        return _bgsound;    }        /** 是否启用个性签名 */    public boolean isSignable() {        return _signable;    }        /** 是否启用文章订阅 */    public boolean isRss() {        return _rss;    }        /** 是否启用文章搜索 */    public boolean isArticleSearch() {        return _articleSearch;    }        /** 是否显示文章信息 */    public boolean isShowArticleInfo() {        return _showArticleInfo;    }        /** 是否显示会员信息 */    public boolean isShowMemberInfo() {        return _showMemberInfo;    }        /** 是否显示友情链接 */    public boolean isShowFriendLink() {        return _showFriendLink;    }        // -------------------------------------------------- BBS masters        /**     * 以下关于版主信息的实始化、获取、reload<br>     * 该方法用于获取BBS的"master"版主信息列表,HashMap类型,key为相应讨论区的id,     * value为list类型的版主集合,获取数据:<br>     * masters.get("forumId") -> ArrayList master列表     * @return _masters     */    public Map<Integer, List<String>> getMasters() {        if (_masters == null) {            reloadMasters();        }        return _masters;    }        /**     * 初始化版主列表信息,将版主信息设置为map类型<br>     * masters格式:masters<forumId,List<userId>>;     */     public void initMasters() {        System.out.println("---------------Configure(BBS):initMasters");        try {            _masters = new HashMap<Integer, List<String>>();            String sql = "select * from master";            ProxyConn myConn = getConn();            try {                PreparedStatement ps = myConn.prepareStatement(sql);                ResultSet rs = ps.executeQuery();                while (rs.next()) {                    int forumId = rs.getInt("m_byForum");                    String userId = rs.getString("m_user");                    // 选检查该版主是否已经添加                    if (!_masters.containsKey(forumId)) {                        List<String> fMasters = new ArrayList<String>();                        fMasters.add(userId);                        _masters.put(forumId, fMasters);                    } else {                        List<String> fMasters = _masters.get(forumId);                        if (!fMasters.contains(userId)) {                            fMasters.add(userId);                        }                    }                }            } catch (SQLException sqle) {                Elog.log("BBSApplication.initMasters()/" + sqle.getMessage());            } finally {                myConn.close();            }            Set<Integer> keys = _masters.keySet();            for (Integer key : keys) {                System.out.print("forum:" + key);                List<String> masters = _masters.get(key);                for (String master : masters) {                    System.out.print(":" + master);                }            }        } catch (Exception e) {            Elog.log("载入版主信息出错!");        }    }        /**     * 重新装载版主列表信息     */     public void reloadMasters() {        initMasters();    }       /**     * 判断用户是否该特定讨论区的版主     * @param userId 需要判断是否为版主的用户id     * @param forumId 讨论区的id     * @return true 如果用户userId是该讨论区forumId的版主。否则返回false     */     public boolean isMaster(String userId, int forumId) {        List<String> tMasters = null;        try {            tMasters = this.getMasters().get(forumId);        } catch (Exception e) {            Elog.debug("BBSApplication:isMaster:" + e.getMessage());        }        if (tMasters != null) {            return tMasters.contains(userId) ? true : false;        }        return false;    }        /**     * 判断用户是否为版主身份,该方法只判断是否为版主,而不     * 考滤是否为特点讨论区的版主     * @param userId 用户的id     * @return true 如果用户身分为版主,否则返回false     */     public boolean isMaster(String userId) {        Set<Integer> forums = null;        try {            forums = this.getMasters().keySet();        } catch (Exception e) {            Elog.debug("BBSApplication:isMaster:" + e.getMessage());        }        if (forums != null) {            for (Integer forumId : forums) {                if (isMaster(userId, forumId)) return true;            }        }        return false;    }        // -------------------------------------------------- BBS groups        /**     * 关于BBS用户组的初始化及reload<br>     * 该方法主要用于加载BBS的用户组相关信息     */    private void initGroups() {        try {            System.out.println("---------------Configure(BBS):groups");            _groups = new LinkedHashMap<String, Map<String, String>>();            String appConfig = getComApplication().                    getServletContextPath() + BBSGroups.PATH_APPCONFIG;            Document doc = XmlOper.getDocument(appConfig);            Element root = doc.getDocumentElement();            Element groupsE = (Element)root.getElementsByTagName("groups").item(0);            NodeList groups = groupsE.getElementsByTagName("group");            int len = groups.getLength();            for (int i = 0; i < len; i++) {                Element group = (Element) groups.item(i);                String name = group.getElementsByTagName("name").item(0).                        getTextContent().trim();                String label = group.getElementsByTagName("label").item(0).                        getTextContent().trim();                String value = group.getElementsByTagName("value").item(0).                        getTextContent().trim();                Map<String, String> obj = new HashMap<String, String>(3);                obj.put("id", name);                obj.put("label", label);                obj.put("value", value);                _groups.put(name, obj);                System.out.println("group:" +                         obj.get("id") + ":" +                         obj.get("label") + ":" +                         obj.get("value"));            }        } catch (Exception e) {            Elog.log("Exception:BBSApplication:initGroups:" + e.getMessage());        }    }        /**     * 重新载入BBS的用户组信息。     */    public void reloadGroups() {        initGroups();    }        /**     * 返回当前BBS系统所使用的用户组信息,groups为HashMap类型,<br/>     * 内容格式如下:<br/>     * groups.get(id)取得特定用户组group     * 由group可获得id,label,value for example: <br/>     * group.get("id")<br/>     * group.get("label")<br/>     * group.get("value")<br/>     * @return groups     */    public Map<String, Map<String, String>> getGroups() {        return _groups;    }        // -------------------------------------------------- BBS bgsound        /**     * 载入BBS主题可用的背景音乐列表信息     */

⌨️ 快捷键说明

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