redooor/redminportal

RedminPortal 是一个用于内容管理和电子商务网站的的后台管理工具。

v0.58.0 2023-10-30 11:19 UTC

README

alt text

RedminPortal by Redooor

一个作为内容管理和电子商务网站的后台管理工具的 Laravel 5 包。您可以使用它添加、编辑和删除类别、产品、促销等。提供用户界面来管理用户和组。

RedminPortal 当前支持 Laravel 5.8。请参阅兼容性

目录

  1. 兼容性
  2. 模型和功能
  3. 用户安装指南
  4. 贡献者安装指南
  5. 测试
  6. 版本控制
  7. 贡献
  8. 创建者
  9. 许可证
  10. 使用的第三方库
  11. 变更日志
  12. 升级指南

#兼容性

开发重点将是支持 Laravel 版本 5.8 的分支 0.58。

分支 v0.1、0.2、0.3 和 0.4 的开发已停止。请升级到后续版本。

重要提示

版本 >=0.3.2 和 >=0.2.2 可能 由于 UserPricelist 的更改而破坏您的前端。请参阅 UPGRADE.md 了解升级说明。

版本 0.58 与版本 0.3 兼容。

版本 0.3 与版本 0.2 兼容。

版本 0.3 和 0.2 与版本 0.1 兼容性 有限。请参阅 UPGRADE.md

从 v0.1 升级?

我们包括了一些数据库迁移来将数据库升级到支持 v0.2/v0.3/v0.58。但是,请自行承担风险。升级脚本未经过充分测试,可能不完整。如果您发现缺少某些内容,请通过问题票据向我们报告。我们也欢迎任何贡献。

请参阅 UPGRADE.md 了解升级说明。

模型和功能

用户管理

  • 用户
  • 邮件列表

内容管理

  • 公告
  • 页面
  • 作品集
  • 帖子
  • 促销

在线商店(实体产品)

  • 套餐
  • 类别
  • 优惠券
  • 订单
  • 产品(现在支持变体)

会员订阅(数字产品)

  • 套餐
  • 类别
  • 优惠券
  • 媒体
  • 会员
  • 模块
  • ModuleMediaMembership
  • 订单
  • 购买 (已弃用,由订单替代)
  • 价格表

多态

  • 图像
  • 修订(新功能!现在跟踪订单更改)
  • 标签
  • 翻译

特质

  • 可允许的
  • 可修订的

  • 文件
  • 体积
  • 重量
  • Imagine
  • Redminportal(在 blade 模板中用作别名)

助手

  • RHelper
  • RImage (已由 Classes/Imagine 替代,保留以支持向后兼容)

门面

  • Redminportal

可下载的报告

  1. 购买和邮件列表的可下载 CSV 报告。

翻译选项

类别、模块、媒体、产品、促销和作品集中有翻译选项。

您可以在路径下的翻译配置文件中添加更多语言

vendor\redooor\redminportal\src\config\translation.php

或者如果您已将其发布到根目录

root\config\packages\redooor\redminportal\translation.php

要使用它,获取模型的翻译并使用 json_decode 将内容转换为对象,如下所示

foreach ($product->translations as $translation) {
    $lang = $translation->lang;
    $translated = json_decode($translation->content);
    var_dump($translated->name, $translated->short_description, $translated->long_description);
}

用户安装指南

您可以使用以下命令安装 Laravel 版本 5.8

composer create-project laravel/laravel myproject 5.8.*
  1. 将 Redminportal 添加到新 Laravel 应用的 composer.json 的 "require" 部分。如下所示

     "require": {
         "laravel/framework": "5.8.*",
         "redooor/redminportal": "0.58.[*|specify a version]"
     },
    

    注意

    建议指定小版本(例如 0.58.0),以便更好地控制。尽管我们尽量保持与旧版本的最大兼容性,但每个版本都添加了许多更改,因此有时可能会破坏您的前端代码。

  2. 然后在终端中运行 php composer update [--prefer-dist]

    使用 --prefer-dist 仅包含必需的文件(即排除测试)。

  3. 现在,编辑您的 [root]\config\app.php 提供者和别名数组如下

     'providers' => array(
         Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
         ... omitted ...
         
         // Add this line
         Redooor\Redminportal\RedminportalServiceProvider::class,
     ),
    
  4. 然后在终端中运行 php composer dump-autoload

  5. 在终端中运行以下命令以执行 Redminportal 的数据库迁移

     php artisan vendor:publish --provider="Redooor\Redminportal\RedminportalServiceProvider" --tag="migrations" [--force]
    
     php artisan migrate --path=/database/migrations/vendor/redooor/redminportal
    

    注意:使用 --force 将会覆盖现有文件

  6. 在终端中运行以下命令以使用初始管理员用户名和密码填充数据库

     php artisan db:seed --class="RedminSeeder"
     
     Username/password: admin@admin.com/admin
    
  7. 通过在终端中运行以下命令发布包资源

     php artisan vendor:publish --provider="Redooor\Redminportal\RedminportalServiceProvider" --tag="public" [--force]
    

    注意:使用 --force 将会覆盖现有文件

  8. 通过在终端中运行以下命令发布包配置

     php artisan vendor:publish --provider="Redooor\Redminportal\RedminportalServiceProvider" --tag="config" [--force]
    

    注意:使用 --force 将会覆盖现有文件

    重要

    该包将在您的 auth 配置中附加必要的守卫和提供者。如果您已添加名为 redminguard 的守卫和名为 redminprovider 的提供者,它们将被包的设置所替换。

    如果您打算使用自己的 auth 配置,但希望使用 Redminportal 进行身份验证,您需要在您的 auth 配置中添加以下守卫

    'defaults' => [
        'guard' => 'web', // or it could be 'redminguard'
        'passwords' => 'redminpasswords',
    ],
    
    'guards' => [
        'redminguard' => [
            'driver' => 'session',
            'provider' => 'redminprovider',
        ],
        'web' => [
            'driver' => 'session',
            'provider' => 'redminprovider',
        ],
    ],
    
    'providers' => [
        'redminprovider' => [
            'driver' => 'eloquent',
            'model' => Redooor\Redminportal\App\Models\User::class,
        ],
    ],
    
    'passwords' => [
        'redminpasswords' => [
            'provider' => 'redminprovider',
            'email' => 'auth.emails.password',
            'table' => 'password_resets',
            'expire' => 60,
        ],
    ],
    
  9. 可选:通过在终端中运行以下命令发布包视图

    只有当您想在不修改源代码的情况下修改 Redminportal 视图时才这样做。

     php artisan vendor:publish --provider="Redooor\Redminportal\RedminportalServiceProvider" --tag="views" [--force]
    

    注意:使用 --force 将会覆盖现有文件

贡献者安装指南

建议贡献者使用 Laravel Homestead 进行开发,因为它将为所有人提供相同的发展环境。有关 Laravel Homestead 的更多信息,请参阅 这里

对于 Mac 用户,您可能想尝试 Laravel Herd

  1. 使用 此指南 安装 Laravel 5.8。我们将称此为 [root]。

您可以使用以下命令安装 Laravel 版本 5.8

composer create-project laravel/laravel myproject 5.8.*
  1. 在 [root] 文件夹内创建一个名为 "packages" 的文件夹。

  2. 将 Redooor\Redminportal 仓库克隆到 [root]\packages\redooor\redminportal 文件夹。

  3. 打开终端,cd 到 [root]\packages\redooor\redminportal 文件夹,然后运行

    composer update --prefer-dist -vvv --profile

  4. 然后将 Redooor\Redminportal 源添加到 [root] 的 composer.json 中的 "autoload" 部分,如下所示

     "autoload": {
         "classmap": [
             "database"
         ],
         "psr-4": {
             "App\\": "app/",
             "Redooor\\Redminportal\\": "packages/redooor/redminportal/src"
         }
     },
    
  5. 然后 cd 到 [root] 文件夹并运行

    composer update --prefer-dist -vvv --profile --no-dev

    注意:[root] 的 phpunit 依赖项将与包的 phpunit 冲突。"--no-dev" 确保它不会在 [root] 上安装。您还可以选择从 [root] 的 composer.json 中的 "require" 移除 phpunit。

  6. 现在,编辑您的 [root]\config\app.php 提供者和别名数组如下

     'providers' => array(
         Illuminate\Foundation\Providers\ArtisanServiceProvider::class,
         ... omitted ...
         
         // Add this line
         Redooor\Redminportal\RedminportalServiceProvider::class,
     ),
    
  7. 在 [root] 文件夹内运行以下命令以执行 Redminportal 的数据库迁移

     php artisan vendor:publish --provider="Redooor\Redminportal\RedminportalServiceProvider" --tag="migrations" [--force]
    
     php artisan migrate --path=/database/migrations/vendor/redooor/redminportal
    

    注意:使用 --force 将会覆盖现有文件

  8. 在终端中运行以下命令以使用初始管理员用户名和密码填充数据库

     php artisan db:seed --class="RedminSeeder"
     
     Username/password: admin@admin.com/admin
    
  9. 通过在终端中运行以下命令发布包资源

    php artisan vendor:publish --provider="Redooor\Redminportal\RedminportalServiceProvider" --tag="public" [--force]
    

    注意:使用 --force 将会覆盖现有文件

  10. 通过在终端中运行以下命令发布包配置

    php artisan vendor:publish --provider="Redooor\Redminportal\RedminportalServiceProvider" --tag="config" [--force]
    

    注意:使用 --force 将会覆盖现有文件

  11. 可选:通过在终端中运行以下命令发布包视图

    只有当您想在不修改源代码的情况下修改 Redminportal 视图时才这样做。

    php artisan vendor:publish --provider="Redooor\Redminportal\RedminportalServiceProvider" --tag="views" [--force]
    

    注意:使用 --force 将会覆盖现有文件

安装 Grunt 和 Bower 依赖项

  1. 您需要安装 nodejs
  2. cd 到 packages/redooor/redminportal
  3. 运行 npm install
  4. 运行 bower install
  5. 要构建所有资源,运行 grunt
  6. 要仅编译 less css,运行 grunt less-compile

测试

  • 在 packages\redooor\redminportal 文件夹中运行

      composer update --prefer-dist -vvv --profile
      
      vendor/bin/phpunit
    

    注意:如果在运行完整测试时内存不足,请尝试按子文件夹运行测试。

      vendor/bin/phpunit tests/models/
      
      vendor/bin/phpunit tests/controllers/
      
      vendor/bin/phpunit tests/relationships/
    
      ./vendor/bin/phpunit --testsuite "suite1","suite2"
      
      ./vendor/bin/phpunit --testsuite "suite3","suite4"
    

版本控制

为了提高发布周期的透明度并努力保持向后兼容性,Redooor RedminPortal 将尽可能遵循 语义化版本控制指南

贡献

感谢您考虑为 RedminPortal 贡献。在提交之前,请花些时间阅读 CONTRIBUTING.md 文档。

创建者

Andrews Ang

许可证

RedminPortal 是开源软件,根据 MIT 许可证 许可。

使用的第三方库

变更日志

请参阅CHANGELOG.md

升级指南

请参阅UPGRADE.md