我正在使用php框架laravel和我想要实现的短代码。
有没有人建议如何实现用户可以将其插入到页面或博客文章中的短代码。
例如,假设我希望有一个包含一些图像的图片库的短代码,比如
gallery=id
然后展示那个特定的画廊。当然,我有画廊模型和图片库&图像表。
我的第一个想法是,我必须扫描页面/帖子的内容,寻找短代码,当我找到一个特定的短代码,然后呢?我要插入什么来代替它?
我无法插入循环遍历库并生成输出的php代码。我想最好的方法是运行一个函数,返回我插入的完整html代码,而不是短代码。
可以从函数返回视图并将结果插入页面/post中吗?
发布于 2017-01-19 21:10:24
为了明确起见,我假设您希望将其插入到存储在db或其他文件中的内容块中,而不是在您退出的视图文件中。
假设您希望将文本插入视图中以供显示,则可以允许内容创建者使用模板格式,如带有服务器端回调/帮助器/部分(在视图中)的胡子(系统%29)格式,以动态内容填充您自己的自定义标记(在本例中为图库链接)。
要点
Blade::directive
:https://www.laravel.com/docs/5.3/blade#service-injection。第二是不必要的,但强烈建议,但#1应该被认为接近宗教。
更新:正如其他答案所指出的,Laravel内置的模板刀片,具有此功能,所以坚持它的格式和功能。
下面是我的建议(在伪laravel/php中):
$content['blade_markedup_content' => 'here is my new gallery: @gallery(1)']
中。@preprocess()
,使用<p>@preprocess($blade_markedup_content)</p>
代替原始<p>{{$blade_markedup_content}}</p>
。@preprocess()
指令的相应回调函数中$my_compiler = new BladeCompiler();
@gallery(1)
中放入的类似的blade_markedup_content
@preprocess()
返回$my_compiler->compileString($blade_markedup_content)
;
@preprocess($blade_markedup_content)
中解析和替换字符串。https://stackoverflow.com/questions/41751722
复制相似问题