aimeos/ai-cms-grapesjs

Aimeos GrapesJS CMS 扩展

安装次数: 72,830

依赖关系: 2

建议者: 0

安全性: 0

星标: 22

关注者: 6

分支: 20

公开问题: 2

类型:aimeos-extension


README

Aimeos logo

Aimeos GrapesJS CMS

Build Status Coverage Status Scrutinizer Code Quality License

Aimeos GrapesJS CMS 扩展提供了一种简单易用但功能强大的页面编辑器,用于创建基于可扩展组件的内容页面。

安装

与每个 Aimeos 扩展一样,最简单的方法是通过 composer 安装。如果您还没有安装 composer,您可以在命令行中执行此字符串以下载它

php -r "readfile('https://getcomposer.org.cn/installer');" | php -- --filename=composer

要将扩展添加到基于 composer 的安装中,请执行以下命令

composer req "aimeos/ai-cms-grapesjs"

这些命令将安装 Aimeos 扩展到扩展目录中,并在您执行数据库迁移后即可使用

Aimeos CMS

集成

Laravel

首先,您必须在 Laravel 应用程序的根目录 中执行此命令以创建所需的新页面表

php artisan aimeos:setup

然后,您需要在您的 config/shop.php 中取消注释 page 部分,并将 cms/page 添加到组件列表中,如果尚未添加。将 cms/page 添加到所有您希望显示 CMS 内容的页面中,例如:

'catalog-home' => [ 'cms/page','locale/select','basket/mini','catalog/tree','catalog/search','catalog/home' ],

要显示 CMS 页面 URL 的内容,您必须将以下内容添加到 Laravel 应用程序的 ./routes/web.php 文件的末尾

Route::match(['GET', 'POST'], '{path?}', '\Aimeos\Shop\Controller\PageController@indexAction')
    ->name('aimeos_page')->where( 'path', '.*' );

在多语言设置中,您应该在路由中添加 locale 作为参数

Route::match(['GET', 'POST'], '{locale}/{path?}', '\Aimeos\Shop\Controller\PageController@indexAction')
    ->name('aimeos_page')->where( 'path', '.*' );

在使用多供应商设置时,请使用以下这些替代方案之一

// prefix: yourdomain.com/vendor1
Route::group(['prefix' => '{site}', 'middleware' => ['web']], function () {
    Route::match(['GET', 'POST'], '{path?}', '\Aimeos\Shop\Controller\PageController@indexAction')
        ->name('aimeos_page')->where( 'path', '.*' )->where( ['site' => '[a-z0-9\-]+'] );
});

// subdomain: vendor1.yourdomain.com
Route::group(['domain' => '{site}.yourdomain.com', 'middleware' => ['web']], function () {
    Route::match(['GET', 'POST'], '{path?}', '\Aimeos\Shop\Controller\PageController@indexAction')
        ->name('aimeos_page')->where( 'path', '.*' )->where( ['site' => '[a-z0-9\-]+'] );
});

// custom domain: vendor1.com
Route::group(['domain' => '{site}', 'middleware' => ['web']], function () {
    Route::match(['GET', 'POST'], '{path?}', '\Aimeos\Shop\Controller\PageController@indexAction')
        ->name('aimeos_page')->where( 'path', '.*' )->where( ['site' => '[a-z0-9\.\-]+'] );
});

这将为所有尚未匹配的 URL 添加一个 "捕获所有" 路由,因此请确保不要在那一行之后放置路由,因为它们将不再被使用!

ReCAPTCHA 集成

使用 Google reCAPTCHA v3(不可见 CAPTCHA)在 CMS 页面中的所有表单中,您需要将此配置合并到您的 ./config/shop.php 中(Laravel)

[
    'resource' => [
        'recaptcha' => [
            'secretkey' => '...',
            'sitekey' => '...'
        ]
    ],
    'client' => [
        'html' => [
            'cms' => [
                'page' => [
                    'decorators' => [
                        'local' => [
                            'Recaptcha' => 'Recaptcha'
                        ]
                    ],
                ]
            ]
        ]
    ]
]

secretkeysitekey 在您的 Google 账户 中生成。确保您也将所有域名添加到允许的域名列表中!

潜在问题

带联系表单的页面已过期

由于潜在的安全风险,当使用联系表单时,您不得登录到管理后端。否则,您将收到一个 "419 页面过期" 错误页面。因此,在发送联系请求之前,请确保您已从管理后端注销。