基于 Laravel 开发的自带前后端主题模板的 CMS 系统 —— WebEd

项目简介

昨天学院君给大家介绍了一款简单的模块化 CMS 系统 Borgert,提到其不足之一是没有什么可用的前端模板,后续开发成本较高,那么仿照最近流行的《河神》风格,咱们书接上文,继续来给大家说说基于 Laravel 框架开发的 CMS 那些事,今天要介绍的这个 CMS 说巧不巧,正好有一点弥补了 Borgert 没有前端模板的不足,有着自己完备的主题功能。接下来的时间,我们就来扒一扒今天的这个主角 —— WebEd CMS,同样是基于最新的 Laravel 5.4 框架,WebEd CMS 具有以下特性:

  • 模块化扩展包
  • 使用 Elfinder 管理文件
  • 权限系统(ACL)
  • 拖拽式菜单管理系统
  • 数据库缓存
  • 主题 & 插件管理系统
  • 钩子系统 (动作钩子、过滤器钩子)
  • 还可以管理页面、区块、 联系表单、Google Analytics、自定义字段等功能…

代码仓库

安装步骤

我们可以通过 Composer 安装 WebEd:

composer create-project --prefer-dist sgsoft-studio/webed webed

然后进入项目根目录,在 .env 中配置好数据库信息后,执行以下命令完成项目初始化工作:

composer dump-autoload
php artisan cms:install

上面第二条命令会有一些交互提示,按照自己的喜好进行设置即可:

如果使用的是 Valet 开发环境,在项目根目录下执行 valet link 之后就可以在浏览器中通过 webed.dev 访问站点了,此时访问会提示需要设置主题:

You need to active a theme

我们可以通过 php artisan theme:list 查看已安装主题:

这个主题是系统自带的,如果需要的话,你也可以自己去创建自己的主题(操作细节参考官方文档),这里我们激活这个默认主题即可:

php artisan theme:enable triangle

如果运行过程中报错:

Missing required module: webed-blog

则需要去安装这个模块,进行以下命令行操作来完成安装:

cd plugins/
git clone https://github.com/webed-plugins/blog.git
cd ../
php artisan plugin:install webed-blog
php artisan plugin:enable webed-blog

再次运行上述 theme:enable 即可。

接下来再次访问首页,还是不行,提示我们要去后台设置默认页面,我们通过 webed.dev/admincp 访问站点后台,使用上面命令行创建的用户登录之后,进入后台管理页面:

仍然是一个类 AdminLTE 风格的后台,可以看到 WebEd 的后台功能相对 Borgert 要更加丰富。言归正传,我们到后台来的目的是创建一个页面并将其作为首页,首先我们创建一个页面:

保存之后创建一个菜单(Menu)与改页面关联:

保存之后,到 Configuration->Settings 下设置默认首页:

这时访问前台首页还是报错,原因是我们还需要设置页面底部区块内容,创建一个新的页面,注意 TEMPLATES 设置为 Footer custom fields

保存之后,我们来到 Configuration->Theme Option 设置主题:

保存之后,就可以访问站点首页了:

至于为什么没有出现我们编辑的页面内容,感兴趣的同学可以研究下,算是留给你们的家庭作业吧~,毕竟学而不思则罔嘛。

WebEd 的功能相对比较完善了,有独立的模块、插件和主题扩展开发功能以满足更多需求,更多细节可参考官方文档。不过个人感觉 Elfinder 文件管理系统算是个鸡肋了,这么丑的 UI 也是醉醉的,我反正不愿意用这种工具,更何况对现代分布式文件系统而言,也无用武之地。

学院君 has written 716 articles

资深PHP工程师,Laravel学院院长

35 thoughts on “基于 Laravel 开发的自带前后端主题模板的 CMS 系统 —— WebEd

        1. 丁梦涛 says:

          SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘webed_test.we_posts’ doesn’t exist (SQL: select `we_posts`.`title`, `we_posts`.`slug`, `we_posts`.`id`, `we_posts`.`thumbnail`, `we_view_trackers`.`count` as `view_count` from `we_posts` left join `we_view_trackers` on `we_posts`.`id` = `we_view_trackers`.`entity_id` where `we_view_trackers`.`entity` = webed-blog.posts and `we_posts`.`status` = 1 and `we_posts`.`deleted_at` is null order by `view_count` desc limit 5) (View: E:\wamp\www\webed\themes\newstv\resources\views\front\errors\404.blade.php)

          1. 丁梦涛 says:

            研究了一下,最终明白了原因,两种执行方式,先下载插件blog,上面有git的命令,这里不再赘述,第一种命令行执行:
            先执行:
            php artisan plugin:enable webed-blog
            php artisan plugin:install webed-blog
            再执行:
            php artisan theme:enable newstv
            php artisan theme:install newstv
            第二种是在后台 服务器域名/admincp 执行:
            登陆进去你已经安装的webed后台之后,点击Plugins,点击blog后面的active,之后再点击install,都成功之后,再点击左侧菜单栏的Themes,依然是先点active,再点install,然后就完成了,访问前端页面 服务器域名/home 就会出现newstv为主题的blog页面啦,查看数据库表的话变成24张表了。

  1. 丁梦涛 says:

    提示:Missing required module: webed-blog
    执行如下:
    php artisan plugin:install webed-log
    php artisan plugin:enable webed-log
    php artisan theme:install newstv
    php artisan plugin:enable webed-log

      1. 丁梦涛 says:

        如果运行 php artisan plugin:list列表里面是不是为空,去这个网址(https://github.com/webed-plugins)下载相关插件,并放在webed的plugins目录下,再次执行上面的命令会出现你添加的插件,应该会解决你的问题

发表评论

标记为*的字段是必填项(邮箱地址不会被公开)

你可以使用这些HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>