使用 Laravel 快速构建网站系列 —— 内容管理系统:TypiCMS

TypiCMS

1、简介

TypiCMS 是一个基于 Laravel 5 构建的、支持多语言的内容管理系统(CMS)。

2、GitHub

https://github.com/TypiCMS/Base

3、功能特性

URL

由TypiCMS管理站点URL: 模块
  • /en/events/slug-in-english
  • /fr/evenements/slug-en-francais
页面
  • /en/parent-pages-slug-en/subpage-slug-en/page-slug-en
  • /fr/parent-pages-slug-fr/subpage-slug-fr/page-slug-fr

4、系统要求

  • PHP >= 5.5.9
  • PHP OpenSSL扩展
  • PHP Mbstring扩展
  • PHP Tokenizer扩展
  • Memcache或Redis

5、安装&配置

安装

首先安装Node.jsBowergulp 创建新项目:
composer create-project typicms/base mywebsite
进入新安装的项目目录:
cd mywebsite
数据库迁移和填充,用户创建,npm安装,bower安装和目前权限:
php artisan typicms:install
在浏览器中访问 http://mywebsite.local/admin并登录

npm,Bower&Gulp

为了管理assets,需要安装Node.js、Bower和gulp,然后进入站点根目录运行如下命令: 1)基于bower.json安装bower包(安装到app/assets/components):
bower install
2)基于gulpfile.js安装gulp包(安装到node_modules):
npm install
3)编译后端和前端资源:
gulp

配置

  • 在配置文件config/translatable.php中设置本地语言
  • 在配置文件config/app.php中设置fallback_locale
  • 在配置文件config/typicms.php中设置main_locale_in_urltruefalse
  • 缓存驱动被设置到数组中,你可以在.env文件中将其切换为其它缓存系统如redismemcache

模块安装

本例是一个News模块,经过下面的操作后,该模块将会出现在后台的工具栏中。 1)使用composer安装模块:
composer require typicms/news
2)在TypiCMS\Modules\Core\Providers\ModuleProvider::class之前追加服务提供者TypiCMS\Modules\News\Providers\ModuleProvider::classconfig/app.php 3)发布视图和迁移:
php artisan vendor:publish
4)运行迁移
php artisan migrate

6、模块

页面(Pages)

页面模块可以通过拖放进行嵌套组合。拖放完成后对应URL会生成并保存到数据库。每个页面的翻译版都有其独立的路由。页面可以被链接到模块。

菜单(Menus)

每个菜单都包含可嵌套的实体,一个实体可以被链接到指定页面或URL,你可以通过Menus::build('menuname')返回HTML格式的菜单。

项目(Projects)

项目模块有分类,项目URL遵循这一模式: /en/projects/category-slug/project-slug

分类(Categories)

分类包含多个项目

标签(Tags)

标签被链接到项目并使用jQuery插件Selectize。标签模块支持多对多的多态关联,所以可以轻松链接到其它模块。

事件(Events)

事件有开始和结束日期。

新闻(News)

可以链接到文件/图片的简单新闻模块。

联系(Contacts)

前端联系表单和后台信息管理

合作者(Partners)

合作者模块提供Logo、网站URL、标题和简介功能。

文件(Files)

文件模块使用 DropzoneJS实现上传操作,允许你同时上传多个文件,上传过程中使用 Croppa生成缩略图。

相册(Galleries)

你可以随心所欲的创建相册,每个相册包含多个文件,相册可以通过多态的多对对关联链接到任何模块。

用户(Users)

用户注册可以通过设置面板(/admin/settings)启用。

区块(Blocks)

区块在显示自定义内容时很有用,你可以通过Blocks::build('blockname')获取指定区块内容。

翻译(Translations)

翻译通过后台面板(/admin/translations)存放到数据库。你可以通过Lang::get('db.Key'), trans('db.Key')@lang('db.Key')在任何地方调用数据库中的翻译。

站点地图(Sitemap)

站点地图是一个XML格式的文件——sitemap.xml,可以通过配置app/config/sitemap.php添加模块到站点地图。

设置(Settings)

修改站点标题,或者其他选项可以通过后台设置面板。站点设置也是保存到数据库中。

历史(History)

数据库中记录created, updated, deleted, onlineoffline动作日志。后面面板显示最新的25条记录。

7、门面

每个模块都提供了一个门面以便访问,比如你可以通过News::latest(3)获取最新三条新闻。

8、Artisan命令

Artisan命令位于app/TypiCMS/Commands。下面列出一些TypiCMS提供的一些命令: 安装TypicalCMS:
php artisan typicms:install
app/config/cache.php中设置缓存键前缀:
php artisan cache:prefix yourCachePrefix
初始化迁移和填充:
php artisan typicms:database
清除目录public/html
php artisan clear-html

上一篇: 使用 Laravel 快速构建网站系列 —— 内容管理系统:October

下一篇: 基于 Laravel 5.5 的内容管理和 API 服务系统 —— LaraCMS