修复DTcms可设置多个默认站点问题

Hailin 发表于 2016-05-02 09:52:12 来源于CMS插件网 评论 0 点击 969
摘要:其实这个并不能称之为漏洞之类的,因为实际应用中,并不影响使用;应该属于程序的逻辑错误吧,只是小编爱较真,所以觉得有需要的,就继续往下看,如果觉得没必要的请绕过

其实这个并不能称之为漏洞之类的,因为实际应用中,并不影响使用;应该属于程序的逻辑错误吧,只是小编爱较真,所以觉得有需要的,就继续往下看,如果觉得没必要的请绕过...

12.jpg

好吧,我们闲话也不多说,就直接进入主题

1、进入“DTcms.DAL”项目中,修改“channel_site.cs”文件,添加一个更新默认站点的方法“UpDefault”;

13.jpg

/// <summary>
/// 更新数据不为默认
/// </summary>
public void UpDefault(SqlConnection conn, SqlTransaction trans)
{
    StringBuilder strSql = new StringBuilder();
    strSql.Append("update " + databaseprefix + "channel_site set is_default=0 where is_default=1");
    DbHelperSQL.ExecuteSql(conn, trans, strSql.ToString());
}

2、在“ Add()”方法中添加如下代码

//判断当前是否为默认,如果是,取消其它默认数据
if (model.is_default > 0)
{
    UpDefault(conn, trans);
}

14.jpg

3、在“ Update()”方法中添加如下代码

//判断当前是否为默认,如果是,取消其它默认数据
if (model.is_default > 0)
{
    UpDefault(conn, trans);
}

15.jpg

到此我们已经修复完成了,试试吧...

热门资讯