使用 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

学院君

学院君 has written 548 articles

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