menu 文章
基于Typecho的社区系统1
开心就好

想法

作为一款轻量级的博客程序,却有着超乎想象的灵活性。而刚好自己也通过TP写过类似社区的程序,只不过感觉太臃肿繁复了……
那为何不已Typecho为框架做个社区呢?

可行性

Typecho功能都是由路由解析伪路径,把解析结果导向Widget,通过Widget来完成具体的功能。
其中路由表是可以配置的,并且可以动态地增加Widget则继承自一个超类TypechoWidget,根据需要编写就可以了。
想要新增功能的话,只需要在原来的路由表上新增一个指定到自定义的Widget的路由即可实现

验证

具体是否可行,通过插件来进行了简单的验证:
在插件中通过Helper::addRoute(array('name'=>'login','url'=>'/login','widget'=>'Widget_Test','action'=>'render'))新增了一个路由

  • name: 路由名称
  • url: 路由地址
  • widget: 组件名称
  • action: 组件动作

var/Widget目录下新建一个Test.php文件:

class Widget_Test extends Typecho_Widget{
    public function render(){
        echo 'test';
    }
}

启用插件后,通过http://siteUrl/login地址访问,看到页面输出:test
这样做完全没有问题!!!

新增功能

既然没有问题,那就可以考虑怎么来实现社区的功能了:

  • 用户登录:实现用户在前台登录
  • 用户注册:实现用户在前台注册
  • 帐号激活:激活用户帐号,改变用户权限
  • 用户中心:用户信息展示
  • 用户主题:发布的主题列表
  • 用户回复:发布的回复列表
  • 用户收藏:用户收藏的主题/节点
  • 用户设置:个人资料设置
  • 消息提醒:@/回复以及其他消息提醒
  • 用户积分:用户积分/积分日志
  • 忘记密码:修改密码
  • 发布主题:用户发布/修改主题
  • ……

根据功能需要,将会在原有表中新增字段,并增加的几个表:

  • creditslog:积分日志表
  • favorites:用户收藏表
  • messages:消息表
  • verifies:验证表

未完待续……

2015-10-14 share
已有 9 条评论

评论已关闭

主题色
强调色
登录
用户名/邮箱不能为空
密码不能为空
用户名不能为空
邮箱不能为空
登录密码不能为空
验证码不能为空

或者使用其他方式登录