使用 Laravel 5 构建的多语言 CMS

安装: 291

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 3

分支: 398

语言:JavaScript

类型:项目

This package is not auto-updated.

Last update: 2024-09-14 18:04:21 UTC


README

Packagist Packagist SensioLabs Insight Scrutinizer

Admintool4 是一个基于 TypiCMS 的模块化多语言内容管理系统,使用 Laravel 5.2 构建。开箱即用即可管理页面、活动、新闻、地点、滑块等。

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 >= 5.5.9
  • OpenSSL PHP 扩展
  • Mbstring PHP 扩展
  • Tokenizer PHP 扩展
  • Memcached 或 Redis

安装

首先安装 Node.jsgulp

  1. 创建一个新项目

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

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

    php artisan admintool:install
    

访问 http://mywebsite.local/admin 并登录。

npm & Gulp

为了处理资源,您需要安装 Node.jsgulp,然后切换到您的网站文件夹并运行以下命令

  1. 根据 gulpfile.js 安装 gulp 包(目录 node_modules

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

    gulp all
    

配置

  1. 在 config/translatable.php 中设置区域设置。
  2. 在 config/app.php 中设置 fallback_locale。
  3. 在 config/typicms.php 中设置 main_locale_in_url 为 true 或 false。
  4. 缓存驱动程序设置为 array,您可以在 .env 文件中将它更改为另一个可标记的缓存系统,如 redis 或 memcached。

模块安装

此示例针对新闻模块。完成这些步骤后,模块将出现在后台管理侧边栏中。如需自定义,请发布

  1. 使用 Composer 安装模块

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

  3. 发布视图和迁移

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

    php artisan migrate
    

模块脚手架

此示例针对一个名为 Cats 的新模块。

  1. 使用 artisan 创建模块

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

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

  4. 迁移数据库

    php artisan migrate
    

现有模块

每个模块都可以发布以供修改和跟踪 git。有关发布模块的更多信息。

页面

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

菜单

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

项目

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

分类

分类包含许多项目。

标签

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

活动

事件有开始和结束日期。

新闻

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

联系

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

合作伙伴

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

文件

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

相册

您可以创建任意多的相册,每个相册有许多文件。相册可以通过多态多对多关系链接到任何模块项目。

用户和角色

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

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

翻译

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

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

网站地图

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

设置

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

历史

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

门面

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

Artisan 命令

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

Admintool4的安装

php artisan admintool:install

在app/config/cache.php中设置缓存键前缀

php artisan cache:prefix yourCachePrefix

此命令由admintool:install触发

初始迁移和种子

php artisan typicms:database

此命令由admintool:install触发

清理public/html目录

php artisan clear-html

发布模块

如果您想修改模块,例如添加一些字段或关系,您不能轻松地做到这一点,因为每个模块都在供应商目录中。每个TypiCMS类都有其空的"Shell Class"。这是一个继承基本类并在整个CMS中使用的空类。当您发布模块时,所有Shell类都会复制到/Modules目录中,您可以在其中轻松覆盖方法和属性。例如,通过运行此命令发布Pages模块

php artisan admintool:publish pages

这将把从/vendor/typicms/pages/src/Shells/Modules/Pages/Shells的所有内容复制过来。

然后为了使这些新类具有优先级,您需要

  1. 将此添加到您的composer.json文件:"TypiCMS\Modules\Pages\Shells": "Modules/Pages/Shells/"
  2. 运行composer dump-autoload

这样,您将能够完全控制模块,同时仍然可以在需要时从主存储库更新模块。

创建模块

您可以轻松地生成模块脚手架,对于名为Cats的模块,运行此命令

php artisan admintool:create cats

##升级说明

请参阅Wiki中的升级说明

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

请参阅CONTRIBUTING获取详细信息。

鸣谢

许可证

Admintool4是一款开源软件,采用MIT许可证