Blade模板引擎

balde模板引擎,提取自laravel,适用于cmlphp

安装

使用composer安装

composer require linhecheng/cmlphp-ext-blade

使用

一般性标签参考官方文档。

官方文档: http://laravel.com/docs/5.1/blade

cmlphp中定制的模板标签

设置插件挂载点

  1. @hook(test)

格式化日期时间

  1. @datetime($time|Y-m-d H:i:s)

获取get、post、request请求参数

  1. @get(key)、@post(key)、@request(key)

获取配置文件配置项

  1. @config(key1.key2)

获取语言包配置项

  1. @lang(key1.key2)

根据url_model配置项,生成相应的url(如果是在子目录自动处理)

  1. @url(Index/index)
  2. 生成的地址可能是
  3. /index.php/Index/index
  4. /Index/index.html
  5. /index.php?r=/Index/index
  6. subdir/Index/index.html
  7. subdir/index.php/Index/index
  8. ...

生成表单令牌

  1. @token

输出静态文件目录基地址

  1. @public
  2. 生成的地址如:
  3. http://baidu.com/index.php 生成 /
  4. http://baidu.com/public/index.php 生成/public/
  5. http://baidu.com/subdir/public/ 生成/subdir/public/
  6. 修改配置`static__path` => 'http://img.attach.com/' 生成http://img.attach.com/

生成指静态文件基础目录的路径即入口文件所在目录(自动处理项目部署在二级三级目录的问题),如果是存放在cdn/单独服务器有独立域名 ,只要修改配置文件的static__path配置项为相应地址即可

静态文件管理

  1. @assert(xxx)
在模板中输出静态文件的地址使用@assert命令,如有静态文件web/Resuorce/js/1.js 则在模板中使用 @assert( web/js/1.js)当我们开启debug时,使用assert框架会启用一个简单的文件服务器。此时我们在模板中的标签{{assert web/js/1.js}}会替换成 Blade模板引擎  - 图1,类似这样的地址,修改文件内容时实时生效。当关闭debug时生成的地址则是相对于 @public标签指向的目录。当我们设置static__path站点根目录/public时 {{assert web/js/1.js}}生成的地址则为http://mysite/public/web/js/1.js。此时public目录中并没有这个静态文件,静态文件是存在于应用目录下的 Resource中,此时我们要使用静态资源管理工具去管理静态资源目录,点击查看静态资源管理

模板中判断有无某个模块的权限

使用模板标签@acl(xxx)

  1. @acl(user/add)
  2. 我有添加用户的权限
  3. @endacl
  4. @acl(user/add)
  5. 我有添加用户的权限
  6. @else
  7. 我没有添加用户的权限
  8. @endacl

@urldeper标签

参考常见问题

自定义一个模板标签.

  1. \Cml\View::getEngine('blade')->addRule('pp', function($pp) {
  2. return 'ddd'.$pp.'dddd';
  3. });

原文: http://doc.cmlphp.com/devintro/view/blade模板引擎.html