asgardcms/block

一个模块,用于创建可以在网站上任何位置显示的小型内容块。

安装数: 5,979

依赖者: 0

建议者: 0

安全: 0

星标: 12

关注者: 7

分支: 18

开放问题: 1

类型:asgard-module

3.0.0 2017-10-04 08:16 UTC

README

Latest Version Software License Quality Sblock SensioLabs Insight CodeClimate Total Downloads Slack

安装

下载

您可以使用以下命令安装Block模块,这将允许您对模块进行项目编辑。

php artisan asgard:download:module asgardcms/block --migrations

Composer

您可以使用composer安装Block模块

$ composer require asgardcms/block

然后运行以下命令安装数据库表

$ php artisan module:migrate Block

权限

在后台GUI中,转到用户 > 角色 > 管理员。然后权限选项卡,为管理员角色分配block模块的权限。

文档

这是一个非常简单的模块,用于创建可重用的内容块。内容块在管理界面中创建。您给它一个名称和内容。

之后,您可以使用以下代码获取块的内容

{!! Block::get('block-name') !!}

每个块还接收一个短代码,可以用作上述代码的替代。短代码如下:[[BLOCK(block-name)]]
如果您想允许用户在WYSIWYG编辑器(页面或博客文章正文)的内容中重用和输入块,这非常有用。

如果您想在您的应用程序中使用短代码,您需要注册负责解析响应并将短代码替换为实际块内容的RenderBlock中间件。可以通过编辑app/Http/Kernel.php文件并在$middlewareGroups web组中添加\Modules\Block\Http\Middleware\RenderBlock::class来实现全局(这样,block短代码将自动在前端的所有web路由上替换)。

 
<?php
    // app/Http/Kernel.php
    ...
    protected $middlewareGroups = [
        'web' => [
            ...
            \Modules\Block\Http\Middleware\RenderBlock::class,
        ]
    ...
}

这种方法有一些缺点,特别是每个响应在返回给用户之前都会解析并搜索短代码,这可能会稍微减慢您的应用程序。如果您知道在整个应用程序中不需要使用短代码,则可以将中间件有选择地应用于应用程序中的某些路由或路由组。

<?php
    // Modules/YourModule/Http/frontendRoutes.php
    ...
    // middleware will be applied to this specific route
    $router->get('your-url', 'YourController@method')
        ->middleware(\Modules\Block\Http\Middleware\RenderBlock::class);
    ...
    // middleware will be applied to whole group
    $router->group(['middleware' => \Modules\Block\Http\Middleware\RenderBlock::class], function(Router $router) {
        $router->get('your-url', 'YourController@method');
        ...
    });
    ...
?>

请记住,通过允许用户在任何地方放置块/短代码,您正在创建一个潜在的安全问题,因此请谨慎使用此功能。

钩子

钩子是特殊事件,允许您更改在存储到数据库之前存储的数据。

BlockIsCreating

在创建块之前触发。

BlockIsUpdating

在更新块之前触发。

BlockContentIsRendering

在块体显示时触发。

资源

信息

所有AsgardCMS模块都遵守语义版本化