sdebacker/typicms

此包已弃用且不再维护。作者建议使用 https://github.com/typicms/base 包。

基于 Laravel 4.2 构建的多语言 CMS


README

此仓库已弃用,请使用最新的 TypiCMS

TypiCMS for Laravel 4.2

Join the chat at https://gitter.im/sdebacker/TypiCMS Build Status Latest Stable Version License Scrutinizer Code Quality SensioLabsInsight

TypiCMS 是一个基于 Laravel 4.2 的多语言内容管理系统。使用 Laravel 4.2 构建,使用 Bowergulp 进行资产管理,用户界面使用 Bootstrap 3Less 构建。

目录

特性

URL

此类 URL 由 CMS 管理

模块

  • /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

要求

  • PHP >= 5.4.0
  • MCrypt PHP 扩展
  • Memcached 或 Redis 或 APC

安装

快速安装

  1. 安装 Node.jsBowergulp

  2. 创建一个空的 MySQL 数据库

  3. 创建一个新的项目

    composer create-project sdebacker/typicms mywebsite
    
  4. 进入新创建的文件夹

    cd mywebsite
    
  5. DB 迁移和种子、用户创建、npm 安装、bower 安装和目录权限

    php artisan typicms:install
    
  6. 访问 http://mywebsite.local/admin 并登录。

手动安装

  1. 创建一个空数据库

  2. 下载 TypiCMS

    git clone https://github.com/sdebacker/TypiCMS.git mywebsite
    
  3. 进入新创建的文件夹

    cd mywebsite
    
  4. 使用 Composer 安装依赖项

    composer install
    
  5. 设置新的加密密钥

    php artisan key:generate
    
  6. 在 app/config/cache.php 中更改缓存前缀

    php artisan cache:prefix yourCachePrefix
    
  7. 将 .env.example 重命名为 .env

    mv .env.example .env
    
  8. 在 .env 中填写您的数据库凭据

  9. 迁移和种子数据库

    php artisan migrate --seed
    
  10. 设置权限

    chmod -R 777 app/storage
    chmod -R 777 public/uploads
    
  11. 访问 http://mywebsite.local/admin 并登录

  • 邮箱: admin@example.com
  • 密码: admin

Bower & Gulp

为了处理资产,您需要安装Node.jsBowergulp,然后进入您的网站文件夹并运行以下命令

  1. 根据bower.json安装bower包(目录app/assets/components)

    bower install
    
  2. 根据gulpfile.js安装gulp包(目录node_modules)

    npm install
    
  3. 编译管理员和公共资产

    gulp
    

配置

  1. 在app/config/app.php中设置可用的区域和默认区域
  2. 缓存驱动器设置为memcached。您可以在app/config/cache.php中将它更改为其他可标记的缓存系统,如redis

模块

页面

页面可以嵌套拖放,在拖放时,URI会生成并保存在数据库中。一个页面为每个翻译都有一个路由。

菜单

每个菜单都有可嵌套的条目。一个条目可以链接到一个模块、页面、URI或URL。您可以使用Menus::build('menuname')获取一个HTML格式的菜单。通过填写图标类字段,可以轻松地将图标添加到菜单项中。

项目

项目有分类,项目URL遵循以下模式:/en/projects/category-slug/project-slug

分类

分类有许多项目。

标签

标签与项目链接,并使用Selectize jQuery插件。标签模块有许多多态的多对多关系,因此可以轻松地与其他模块链接。

事件

事件有开始和结束日期。

新闻

简单的新闻模块,带有链接的文件/图片画廊。

联系信息

前端联系表单和后端记录管理。

合作伙伴

合作伙伴有一个标志、网站URL、标题和正文内容。

文件

文件模块允许您上传多个文件。它使用DropzoneJS来上传它们。缩略图会实时生成,使用Croppa

画廊

您可以根据需要创建任意数量的画廊,每个画廊都有多个文件。通过多态的多对多关系,画廊可以链接到任何模块项,目前只有新闻模块已正确设置以支持画廊。

用户和组

Sentry 2用于管理用户、组和权限。可以通过设置面板(/admin/settings)启用用户注册。

区块

区块有助于在视图中显示自定义内容。您可以使用Blocks::build('blockname')获取区块的内容。

翻译

可以通过管理面板(/admin/translations)将翻译存储在数据库中。

您可以在任何地方使用Lang::get('db.Key')trans('db.Key')@lang('db.Key')来调用数据库翻译。

网站地图

路由sitemap.xml以XML格式生成网站地图文件。要将模块添加到网站地图中,请配置app/config/sitemap.php。

设置

通过设置面板更改网站标题和其他选项。设置保存在数据库中。

历史记录

历史记录表记录更改,后端仪表板显示25条最新记录。已记录的操作包括创建更新删除上线下线。除了用户和组之外,所有模块都适用。

门面

拥有自己门面的模块:新闻、活动、项目、地点、合作伙伴、画廊、区块、文件和菜单。

在您的视图中,您可以通过例如News::latest(3)来获取三条最新新闻。检查每个模块存储库中可用的方法。

Artisan命令

命令位于app/TypiCMS/Commands

  • TypiCMS初始化

    php artisan typicms:install
    
  • 在app/config/cache.php中设置缓存键前缀

    php artisan cache:prefix yourCachePrefix
    
  • 初始迁移和种子

    php artisan typicms:database
    

路线图

  • 改进用户界面
  • 将模块作为包实现
  • 构建更多测试

贡献

请随意在master分支上分叉并直接提交pull请求!TypiCMS遵循PSR-2标准。

感谢elvendorjekjek的贡献!

测试

一些管理控制器实际上已经过测试,需要更多测试。

许可证

TypiCMS是一个开源软件,根据MIT许可证授权。