您的位置:首页 > 其它

[经验]创建支持多地区的分站功能

2013-04-23 17:34 246 查看
最近在做一个多地区分站的网站,但做了很久就没有写出来,于是迫不及待的寻找解决方案,大致确立了2种实现方式:

1.开发一个分站的功能

2.单独做一个网站

感觉工作量很大,于是搁浅了,一次偶然看到一篇文章:扩展网站支持多地区分站,基于OPS.CMS(原文地址:http://blog.ops.cc/webtech/sabvm.html)

我感觉他的实现思路比较好,通过字典的方式,以下是它实现的方法代码:

引文:

2.编写支持分站的代码

我们创建一个新的类型文件,并存放到网站的/App_Code/目录下,在网站编译过程中会被自动编译成程序集.我们通过一个实例来说明:

code:0345.cc

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using Ops.Xml;

public class QtEduController:Ops.Cms.Web.Mvc.CmsController
{
private static SettingFile file = new SettingFile(AppDomain.CurrentDomain.BaseDirectory + "config/label.conf");
public static void InitRoute(RouteCollection rt)
{
rt.MapRoute("SubSchool",
"{area}/",
new { controller = "QtEdu", action = "SchoolIndex" },
new { area = "^[a-zA-z]{2}$" }
);
}

public string SchoolIndex(string area)
{
if (file.Contains(area))
{
return base.RenderTemplate("/default/school", new
{
name=file[area],
area=area
});
}
else
{
return base.Category(area, 1);
}
}

}


通过继承Ops.Cms.Web.Mvc.CmsController类,我们可以使用模版功能,可以调用其包括的文档,分类,搜索等页面呈现功能. 我们使用了内置的一个字典文件,这个文件的路径为:/config/label.conf

3.添加字典

登陆系统后台,在高级管理->视图管理->文件管理中,选择字典文件,并编辑

在settings节点中添加一些区域项,添加完的文件如下:

<?xml version="1.0" encoding="utf-8"?>

<settings>

<add key="cc">禅城</add>

<add key="gz">广州</add>

<add key="sz">深圳</add>

<add key="zh">珠海</add>

<add key="dg">东莞</add>

</settings>


4.编辑视图

编辑我们指定的视图,将要呈现的内容表示出来.

文章同时给出了一个地址供我们查看:

地址:www.xmwebs.com/gz/ www.xmwebs.com/sz/

他山之石,可以攻玉.真的很有道理,我在基础上做出了一个非常灵活的多地区分站功能,感兴趣的朋友可以和我QQ联系:188867734
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: