网址收藏夹

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、功能说明:<br> <br> 1、用于DVBBS7.0的网上网址收藏夹,将网址存入本收藏夹后无论你走到哪儿,只要能上网,只要能上这个论坛,就能使用你收藏的网址<br> 2、本版为IE导入版,除现了个人网址收藏(支持分组),网址、分组共享/查看功能外,还加入了实用的IE导入功能<br> 3、本插件最大的特点是将主程序与界面分离,不用去修改DVBBS的模版设定,以后ADRX提供的插件基本上均会使用此模式,而且每个文件前均会加上"X_"字符以资识别,分便安装与谢载<br> 4、下一版本将提供管理功能(结合迷城浪子的插件管理器,以提供更多的自由设定),分布日期未定,敬请期待<br> <br> 二、文件说明:<br> <br> X_URL.asp --> 主执行文件<br> X_URLSTYLE.asp --> 界面风格定义文件<br> X_ImpUrl_Char.asp --> 用于导入IE收藏的函数文件<br> X_ImUrl_upload.asp --> 用于导入IE收藏的上传界面<br> X_ImUrl_upfile.asp --> 用于导入IE收藏的上传主文件<br> X_FavUrl.mdb --> 数据库<br> <br> 三、安装说明:<br> <br> 本插件为绿色插件,但为了安全起见,使用前还是强烈要求您进行备份,否则后果自负,与本人无关<br> <br> 调试平台为DVBBS7.0 SMS与DVBBS7.0版 (发布日期2003年1月14日17:00),基本上DV7.0版本应该均可与之兼容 本插件为绿色插件,安装非常简单: 1、将所有".asp"文件COPY到你的论坛根目录 2、将FavUrl.mdb数据库COPY到你的数据库目录(默认为data目录,如要更改,请打开X_URL.asp文件,编辑第19行) 3、此数据库未做防下载处理,如需要,请自行解决^_^ 四、备注说明: 1、使用过程中如发现问题请到青年社区(http://youths.biz01.net/bbs)网络版提出,QQ及MSN拒答,谢谢^_^ 2、有好的想法请直接加我QQ或MSN(请说明来意)^_^ 3、本插件版权为青年社区(http://youths.biz01.net/bbs)ADRX所有,请尊重我的劳动,谢谢!! 4、你可自由使用及修改,但修改后请发送一份COPY给我,版权归ADRX及修改者所有,请加我QQ或MSN,谢谢^_^ 5、特别感谢asials兄弟为我提供了IE导入中数据抽取的方法,还有在开发过程中帮忙TEST的朋友,谢谢大家啦!!^_^
绝对能看能用的C#代码 using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace NetAddressCollector { public class CDataAccess : IDataAccess { #region IDataAccess 成员 private ArrayList _classList; public ArrayList ClassList { get { return _classList; } } private ArrayList _addressList; public ArrayList AddressList { get { return _addressList; } } private bool _isDirty = false; public bool IsDirty { get { return _isDirty; } } public void LoadData() { _classList = new ArrayList(); _addressList = new ArrayList(); string content = CFileOperation.ReadFile(CConst.DATAFILE); if (content.Length < 1) return; string[] ss1 = content.Split(new string[] { CConst.SPLITOR_CLASS_HTTP }, StringSplitOptions.RemoveEmptyEntries); string classString = ss1[0]; string httpString = ss1[1]; string[] ss2 = classString.Split(new string[] { CConst.SPLITOR_CLASS_ITEM }, StringSplitOptions.RemoveEmptyEntries); foreach (string s in ss2) _classList.Add(new CClass(s)); string[] ss3 = httpString.Split(new string[] { CConst.SPLITOR_HTTP_ITEM }, StringSplitOptions.RemoveEmptyEntries); foreach (string s in ss3) { string[] ss4 = s.Split(new string[] { CConst.SPLITOR_HTTP_DETAIL }, StringSplitOptions.RemoveEmptyEntries); foreach (CClass c in _classList) { if (c.Name == ss4[0]) { _addressList.Add(new CAddress(c, ss4[1], ss4[2], ss4[3])); break; } } } _isDirty = false; } public void SaveData() { StringBuilder sbClass = new StringBuilder(); foreach (CClass c in _classList) sbClass.Append(string.Format("{0}{1}", CConst.SPLITOR_CLASS_ITEM, c.Name)); StringBuilder sbContent = sbClass.Append(CConst.SPLITOR_CLASS_HTTP); StringBuilder sbHttp = new StringBuilder(); foreach (CAddress http in _addressList) sbHttp.Append(string.Format("{0}{1}", CConst.SPLITOR_HTTP_ITEM, http.ToString())); sbContent.Append(sbHttp); CFileOperation.WriteFile(CConst.DATAFILE, sbContent.ToString()); _isDirty = false; } public bool ExistClass(CClass httpClass) { foreach (CClass c in _classList) { if (c.Name == httpClass.Name) return true; } return false; } public bool ExistHttp(CAddress http) { foreach (CAddress addr in _addressList) { if (addr.Name == http.Name && addr.Name == http.Http) return true; } return false; } public void AddClass(string className) { CClass c = new CClass(className); AddClass(c); } public void AddClass(CClass httpClass) { _classList.Add(httpClass); _isDirty = true; } public void RemoveClass(CClass httpClass) { for (int i = _addressList.Count - 1; i >= 0; i--) { CAddress http = (CAddress)_addressList[i]; if (http.HttpClass.Name == httpClass.Name) RemoveHttp(http); } _classList.Remove(httpClass); _isDirty = true; } public void AddHttp(CClass httpClass, string name, string http, string remark) { CAddress addr = new CAddress(httpClass, name, http, remark); AddHttp(addr); } public void AddHttp(CAddress http) { _addressList.Add(http); _isDirty = true; } public void RemoveHttp(CAddress http) { _addressList.Remove(http); _isDirty = true; } #endregion } }
实现收藏夹功能的过程可以使用MVC设计模式,使代码更加模块化和易于维护。 1. Model层:创建一个收藏夹的类,用于存储用户的收藏夹信息,包括收藏夹的名称、收藏夹中的网址等。 2. View层:创建一个网页,用于展示用户的收藏夹列表和收藏夹详情,包括收藏夹名称、网址、添加和删除收藏夹等操作。 3. Controller层:创建一个控制器类,用于处理收藏夹的增删改查等操作。在用户点击添加收藏夹或删除收藏夹时,控制器类接收用户请求并调用Model层的方法进行数据处理,然后再返回结果给View层进行展示。 具体实现过程如下: 1. 创建一个收藏夹的类,用于存储收藏夹信息。 ``` public class Favorite { private String name; // 收藏夹名称 private List<String> urls; // 收藏夹中的网址 // 构造函数 public Favorite(String name, List<String> urls) { this.name = name; this.urls = urls; } // getter和setter方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public List<String> getUrls() { return urls; } public void setUrls(List<String> urls) { this.urls = urls; } } ``` 2. 创建一个网页,用于展示用户的收藏夹列表和收藏夹详情。在网页中,用户可以添加收藏夹、删除收藏夹、添加网址、删除网址等操作。 3. 创建一个控制器类FavoriteController,用于处理用户的请求并调用Model层的方法进行数据处理。在控制器类中,可以定义添加收藏夹、删除收藏夹、添加网址、删除网址等方法。 ``` @Controller @RequestMapping("/favorite") public class FavoriteController { @Autowired private FavoriteService favoriteService; // 添加收藏夹 @PostMapping("/add") public String addFavorite(Favorite favorite) { favoriteService.addFavorite(favorite); return "redirect:/favorite/list"; } // 删除收藏夹 @PostMapping("/delete") public String deleteFavorite(String name) { favoriteService.deleteFavorite(name); return "redirect:/favorite/list"; } // 添加网址 @PostMapping("/addUrl") public String addUrl(String name, String url) { favoriteService.addUrl(name, url); return "redirect:/favorite/detail?name=" + name; } // 删除网址 @PostMapping("/deleteUrl") public String deleteUrl(String name, String url) { favoriteService.deleteUrl(name, url); return "redirect:/favorite/detail?name=" + name; } // 查询收藏夹列表 @GetMapping("/list") public String listFavorites(Model model) { List<Favorite> favorites = favoriteService.listFavorites(); model.addAttribute("favorites", favorites); return "favorite/list"; } // 查询收藏夹详情 @GetMapping("/detail") public String getFavorite(String name, Model model) { Favorite favorite = favoriteService.getFavorite(name); model.addAttribute("favorite", favorite); return "favorite/detail"; } } ``` 4. 创建一个Service层,用于封装数据处理的方法。在Service层中,可以定义添加收藏夹、删除收藏夹、添加网址、删除网址等方法,并调用DAO层的方法进行数据访问。 ``` @Service public class FavoriteService { @Autowired private FavoriteDao favoriteDao; // 添加收藏夹 public void addFavorite(Favorite favorite) { favoriteDao.addFavorite(favorite); } // 删除收藏夹 public void deleteFavorite(String name) { favoriteDao.deleteFavorite(name); } // 添加网址 public void addUrl(String name, String url) { favoriteDao.addUrl(name, url); } // 删除网址 public void deleteUrl(String name, String url) { favoriteDao.deleteUrl(name, url); } // 查询收藏夹列表 public List<Favorite> listFavorites() { return favoriteDao.listFavorites(); } // 查询收藏夹详情 public Favorite getFavorite(String name) { return favoriteDao.getFavorite(name); } } ``` 5. 创建一个DAO层,用于进行数据访问。在DAO层中,可以定义添加收藏夹、删除收藏夹、添加网址、删除网址等方法,并访问数据库进行数据操作。 ``` @Repository public class FavoriteDao { // 添加收藏夹 public void addFavorite(Favorite favorite) { // TODO: 添加收藏夹到数据库 } // 删除收藏夹 public void deleteFavorite(String name) { // TODO: 从数据库中删除收藏夹 } // 添加网址 public void addUrl(String name, String url) { // TODO: 在数据库中添加网址到指定收藏夹 } // 删除网址 public void deleteUrl(String name, String url) { // TODO: 在数据库中删除指定收藏夹中的指定网址 } // 查询收藏夹列表 public List<Favorite> listFavorites() { // TODO: 从数据库中查询所有收藏夹信息 return null; } // 查询收藏夹详情 public Favorite getFavorite(String name) { // TODO: 从数据库中查询指定收藏夹的信息 return null; } } ``` 以上就是使用MVC设计模式实现收藏夹功能的过程。需要注意的是,在实际开发中,需要根据具体业务需求进行代码的实现和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值