有使用过TP5的一定对这个界面不陌生,因为这是框架自带的跳转方法(success,error)界面,但是出于业务需求我们往往需要对这个界面进行美化修改,本文就说明一下如何修改TP5.1框架中的默认跳转页面、修改自动跳转时间、修改全局默认跳转时间
首先我们打开框架目录中的config/app.php,这个文件存放着框架应用配置,在app.php末尾部分可以找到这样两个配置项:
// 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => Env::get('think_path') . 'tpl/dispatch_jump.tpl',
'dispatch_error_tmpl' => Env::get('think_path') . 'tpl/dispatch_jump.tpl',
可以发现tpl/dispatch_jump.tpl就是success和error跳转方法的模板文件跳转位置,如果需要完全自定义自己的跳转模板可以将路径改为自己的模版文件位置,如果想在原有基础修改的话我们需要打开框架目录中thinkphp/tpl/dispatch_jump.tpl,打开后便可修改默认的跳转页面,我这里仅对div部分做了简单的修改,修改后代码如下:
<div class="text-center" style="margin-top: 250px;"><div class="system-message"><?php switch ($code) {?><?php case 1:?><img src="/static/images/success.png" alt="success" style="width: 300px;"><p class="success"><?php echo(strip_tags($msg));?></p><?php break;?><?php case 0:?><img src="/static/images/error.png" alt="error" style="width: 300px;"><p class="error"><?php echo(strip_tags($msg));?></p><?php break;?><?php } ?><p class="detail"></p><h4 class="jump">页面自动 <b><a id="href" href="<?php echo($url);?>">跳转</a></b> 等待时间: <b id="wait"><?php echo($wait);?></b></h4></div>
</div>
再次使用success/error方法看下效果:
至此就成功的修改了默认跳转模板,在这个模版中我们可以看到控制自动跳转时间的参数为$wait,这个参数的位置我们可以打开thinkphp/library/traits/controller/jump.php,我们可以在这里找到success和error两个方法:
protected function success($msg = '', $url = null, $data = '', $wait = 3, array $header = [])
protected function error($msg = '', $url = null, $data = '', $wait = 3, array $header = [])
根据方法所需参数,很轻易就可以知道如想要想修改自动跳转时间可以设置方法第四个参数,例如这样就可以设置自动跳转时间为10秒:
return $this->error('请先登录管理员账号','index/index/login','',10);
但是往往不需要我们在每次跳转时都设置这个参数,我们只需要修改默认的全局自动跳转时间即可,只需修改thinkphp/library/traits/controller/jump.php中的success/error的默认参数即可,例如想将默认全局自动跳转时间设置为5秒的话这样即可实现:
protected function success($msg = '', $url = null, $data = '', $wait = 5, array $header = [])
protected function error($msg = '', $url = null, $data = '', $wait = 5, array $header = [])