typicms/base

基于Laravel构建的多语言CMS

维护者

详细信息

github.com/TypiCMS/Base

源代码

问题

资助包维护!
typicms

安装次数: 18,746

依赖关系: 0

建议者: 0

安全性: 0

星标: 1,372

关注者: 72

分支: 399

开放性问题: 7

类型:项目

This package is auto-updated.

Last update: 2024-08-25 17:31:48 UTC


README

Software License Larastan

TypiCMS 是一个模块化多语言内容管理系统,使用 Laravel 构建。开箱即用,您可以管理页面、事件、新闻、地点、菜单、翻译等。

TypiCMS screenshot

目录

功能

URLs

此类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 >= 7.2
  • MySQL 5.7.8
  • BCMath PHP扩展
  • Ctype PHP扩展
  • JSON PHP扩展
  • Mbstring PHP扩展
  • OpenSSL PHP扩展
  • PDO PHP扩展
  • Tokenizer PHP扩展
  • XML PHP扩展

安装

首先安装 Composer

  1. 创建新项目

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

    cd mywebsite
    
  3. 数据库迁移、种子、用户创建、npm安装和目录权限

    php artisan typicms:install
    

注意:如果您使用MariaDB,请在config/typicms.php中将'mariadb'设置为true

转到 http://mywebsite.test/admin 并登录。

资源

使用 Laravel Mix 管理资源。为了处理资源,您需要安装 Node.js,然后转到您的网站文件夹并运行以下命令

  1. 安装npm包(在目录 node_modules 中)

    npm install
    
  2. 编译管理和公共资源

    npm run dev
    

地区配置

  1. 在config/typicms.php中设置地区,该数组的第一个键是主地区,应与config/app.php中定义的地区相同。
  2. 在config/typicms.php中将main_locale_in_url设置为true或false。

模块安装

此示例适用于新闻模块。完成这些步骤后,模块将出现在后台办公室的侧边栏中。如果您需要自定义它,可以发布它

  1. 使用Composer安装模块

    composer require typicms/news
    
  2. TypiCMS\Modules\News\Providers\ModuleServiceProvider::class, 添加到 config/app.php,在 TypiCMS\Modules\Core\Providers\ModuleServiceProvider::class, 之前

  3. 发布视图和迁移

    php artisan vendor:publish
    
  4. 迁移数据库

    php artisan migrate
    

模块脚手架

让我们创建一个名为Cats的模块。

  1. 使用Artisan创建模块

    php artisan typicms:create cats
    
  2. 模块位于 /Modules/Cats,您可以自定义它

  3. TypiCMS\Modules\Cats\Providers\ModuleServiceProvider::class, 添加到 config/app.php,在 TypiCMS\Modules\Core\Providers\ModuleServiceProvider::class, 之前

  4. 迁移数据库

    php artisan migrate
    

可用模块

每个模块都可以发布

页面

页面可以通过拖放进行嵌套,在放置时,会生成并保存到数据库中的URI。每个页面的翻译都有自己的路由。一个页面可以链接到一个模块。一个页面可以有多个部分。

菜单

每个菜单都有可嵌套的条目。一个条目可以链接到一个页面或URL。您可以使用Menus::render('menuname')@menu('menuname')返回一个HTML格式的菜单。

项目

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

标签

标签与项目相关联并使用Selectize插件。标签模块具有多对多多态关系,因此标签可以轻松地链接到任何模块。

事件

事件有开始和结束日期。

新闻

新闻模块。

联系人

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

合作伙伴

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

文件

文件模块允许您上传和组织图像、文档和文件夹。它使用DropzoneJS进行上传过程。由于Croppa,会动态生成缩略图。

如果您想将原始图像存储在Amazon s3等存储服务上,并将裁剪后的图像存储在本地磁盘上,请在您的.env文件中将FILESYSTEM_DRIVER=s3设置为true,并在config/croppa.php中设置'src_dir' => 'filesystem.default.driver''crops_dir' => storage_path('app/public')

用户和角色

可以通过设置面板(/admin/settings)启用用户注册。角色和权限使用spatie/laravel-permission管理。

块很有用,可以在视图中显示自定义内容。您可以使用Blocks::render('blockname')@block('blockname')显示块的内容。

翻译

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

您可以使用标准的Laravel函数从数据库中获取翻译:__('Key')trans('Key')@lang('Key')

网站地图

通过读取项目中可用的所有页面来生成网站地图。URL是/sitemap.xml。

设置

在设置面板中更改网站标题、标志和其他选项。

历史

创建更新删除在线离线操作记录在数据库中。最新记录在后台仪表板中显示。

外观

每个模块都有一个外观,它为您提供对存储库的访问。例如,您可以使用News::latest(3)获取最新三条新闻。检查每个模块存储库中的可用方法。

Artisan命令

命令位于/vendor/typicms/core/src/Commands

TypiCMS安装

php artisan typicms:install

初始迁移和种子

php artisan typicms:database

此命令由typicms:install触发

发布模块

如果您想修改模块,例如添加一些字段或关系,您必须通过运行来发布它

php artisan typicms:publish <modulename>

现在模块位于/Modules目录中。

以下步骤将被执行

  1. 发布页面模块的视图和迁移。
  2. /vendor/typicms/pages/src复制除了视图和迁移之外的所有内容到/Modules/Pages
  3. 运行composer remove typicms/pages

当模块发布时,它将被git跟踪,您可以在/Modules/Modulename目录中做出更改,而不会在运行composer update时丢失更改。

变更日志

有关已更改内容的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

致谢

许可协议

TypiCMS是一个开源软件,根据MIT许可协议许可。