dnabeast / tusk
创建一个插件文件,用于将字符串中的文本替换为任何PHP或HTML代码
1.0.3
2022-05-26 02:28 UTC
Requires
- illuminate/support: ^5.0|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- phpunit/phpunit: ^9.3
This package is not auto-updated.
Last update: 2024-09-26 13:15:06 UTC
README
问题
您的用户需要使用CMS功能将一段代码注入到基本字符串中。您希望他们能够设置Google地图或数据库中的文本,但又不希望他们能够运行代码。
解决方案
设置他们的代码,并允许他们在文本字符串中引用它。
安装
将依赖项添加到您的项目中
composer require DNABeast/tusk
Laravel 5.2
更新composer后,将ServiceProvider添加到config/app.php中的providers数组中
DNABeast\Tusk\TuskServiceProvider::class,
将Plugin/lib目录添加到您的App目录中,以包含插件文件。
您可能需要清除视图缓存
php artisan view:clear
使用方法
在blade文件中,将您的字符串放在tusk指令内。
@tusk('Your string [[- map -]]. Rest of String')
这将创建一个名为App\Plugins的map.php文件。如果该文件已存在,则不会发生任何操作。
如果您的map.php文件如下所示
<?php echo '<iframe>Map</iframe>'; ?>
blade文件将替换 [[- map -]] 并输出
Your string <iframe>Map</iframe>. Rest of String
用例
-
您的用户可以更新他们的联系页面,并使用基本文本,但您不希望允许iframe。您仍然可以允许他们输入 [[- googlemap -]] 以注入嵌入地图所需的Google地图HTML代码。
-
您有可以从数据库中生成链接列表的代码。您还有允许用户更新内容的网站基本页面,他们可以通过简单地输入 [[- linklist -]] 来包括列表代码,而无需访问实际代码。
潜在陷阱
您的插件文件可以是纯HTML,但如果它包含PHP,则需要echo结果。如果您返回它,则不会显示。例如。
<?php
$x = 34+65;
return $x; // <- This wont work. You must echo it.
?>