将博CMS论坛

注册

 

发新话题 回复该主题

【二次开发】给友情链接增加所属频道功能 [复制链接]

1#
首先感谢老大的将博系统,二次开发很方便。嘎嘎。
原因:

目前友情链接只能是首页的友情链接。频道页面如果需要友情链接的话,就难堪了。

步骤:
[经过老大的意见,已经做了调整,下面的步骤已经更新了,放心使用,绝对无毒不反弹]

1.在数据库的友情链接表 jcms_normal_link 增加下面频道编号频道名称两个字段:[ChannelID] [int]  NOT NULL DEFAULT ('0') ,
[ChannelName] [nvarchar] (50) NOT NULL DEFAULT ('网站首页') ,
用于绑定我们网站的频道,网站后台有在线执行sql,sql语句不懂得话可以自己百度

2.在后台找到 link_list.aspx ,link_edit.aspx ,link_edit.aspx.cs
做如下改造
      a.在link_list.aspx页面,找到如下代码,并增加下面行2,17这两行代码
  1.         <th scope="col" width="*">网站地址</th>
  2.         <th scope="col" style="width:80px;">所属频道</th>
  3.         <th scope="col" style="width:60px;">权重</th>
  4.         <th scope="col" style="width:80px;">类型</th>
  5.         <th scope="col" style="width:50px;">状态</th>
  6.         <th scope="col" style="width:50px;">操作</th>
  7.         </tr>
  8.         </thead>
  9. <tbody>
  10.         {#foreach $T.table as record}
  11.         <tr>
  12.                 <td align="center"><input class="checkbox" name="selectID" type="checkbox" value='{$T.record.id}' />
  13.                 </td>
  14.                 <td align="center">{$T.record.id}</td>
  15.                 <td align="left">{$T.record.title}</td>
  16.                 <td align="left">{$T.record.url}</td>
  17.         <td align="center">{$T.record.channelname}</td>
复制代码
b.在link_edit.aspx适当位置插入下面代码
  1. <tr>
  2.       <th> 所属频道</th>
  3.       <td align="left"><asp:DropDownList ID="ddlChannel" runat="server"> </asp:DropDownList></td>
  4. </tr>
复制代码
c.在link_edit.aspx.cs页面找到如下代码,并增加行2,3,10,11这四行代码
  1. id = Str2Str(q("id"));
  2. getLinkDropDownList(ref ddlChannel);
  3. string linkChannelName = ddlChannel.Items.FindByValue(ddlChannel.SelectedValue).Text;
  4. doh.Reset();
  5. JumboTCMS.DBUtility.WebFormHandler wh = new JumboTCMS.DBUtility.WebFormHandler(doh, "jcms_normal_link", btnSave);
  6. wh.AddBind(txtTitle, "Title", true);
  7. wh.AddBind(txtUrl, "Url", true);
  8. wh.AddBind(txtImg, "ImgPath", true);
  9. wh.AddBind(txtInfo, "Info", true);
  10. wh.AddBind(ddlChannel, "ChannelID", false);
  11. wh.AddBind(ref linkChannelName, "ChannelName", true);
  12. wh.AddBind(txtOrderNum, "OrderNum", false);
复制代码
3.在项目JumboTCMS.UIAdminCenter.cs页面找到如下代码并增加下面的代码
  1. /// <summary>
  2. /// 编辑友情链接时,向所属频道DropDownList中添加内容
  3. /// </summary>
  4. /// <param name="ddlChannel">频道名称</param>
  5. protected void getLinkDropDownList(ref DropDownList ddlChannel)
  6. {
  7.        if (!Page.IsPostBack)
  8.        {                
  9.            doh.Reset();
  10.            doh.SqlCmd = "SELECT [ID],[Title] FROM [jcms_normal_channel] where [ClassDepth]>0 ORDER BY id ASC";
  11.            DataTable dtChannel = doh.GetDataTable();
  12.            ddlChannel.Items.Clear();
  13.            ddlChannel.Items.Add(new ListItem("网站首页", "网站首页"));
  14.            for (int i = 0; i < dtChannel.Rows.Count; i++)
  15.            {
  16.                ddlChannel.Items.Add(new ListItem(dtChannel.Rows[i]["Title"].ToString(), dtChannel.Rows[i]["id"].ToString()));
  17.            }
  18.            dtChannel.Clear();
  19.            dtChannel.Dispose();
  20.   }
  21. }
复制代码
4.在项目JumboTCMS.WebFile右键发布一下。刷新页面查看效果。收摊!

写的不好,有错误的地方请各位提出,斧正。
tip:谢谢老大
最后编辑weiyezh 最后编辑于 2013-01-22 19:19:32
分享 转发
TOP
2#

带两张效果图片

列表页面



编辑链接页面

最后编辑weiyezh 最后编辑于 2013-01-21 18:09:58
TOP
3#

很好  开始写心得了,顶一下
TOP
4#

不过最好绑定频道ID 因为。。。。按你上述的代码,你要是后续改动了频道名称,那么之前属于这个频道的友情链接就无法再编辑了(会报错)
TOP
5#

有道理,还是老大考虑周到。
TOP
6#

其实完善的话,还需要在友情链接列表页面增加一个检索的功能,要不有请链接太多了,要修改也不好弄。得一个个去找。
我说的对吗,老大。
TOP
7#

完善无极限,框架打地基
TOP
8#

4楼问题,已经做了修改。
TOP
发新话题 回复该主题