asgardcms / block
一个模块,用于创建可以在网站上任何位置显示的小型内容块。
Requires
- php: >=5.6.4
- composer/installers: ~1.0
- idavoll/core-module: ~3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.7
- fzaninotto/faker: ~1.5
- orchestra/testbench: 3.5.*
- phpunit/phpunit: ~6.3
README
安装
下载
您可以使用以下命令安装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模块都遵守语义版本化。