ThinkPHP框架下成功、錯誤模板頁面修改

somehow1002發表於2017-08-25

一、ThinkPHP3.2環境下

預設的模板路徑為TP目錄下的 ThinkPHP/Tpl/dispatch_jump.tpl檔案。

修改配置檔案

在應用目錄下的/Common/Conf/config.php中新增

/* 錯誤頁面模板 */
    'TMPL_ACTION_ERROR'     =>  'Public/dispatch_jump', // 預設錯誤跳轉對應的模板檔案'
    'TMPL_ACTION_SUCCESS'   =>  'Public/dispatch_jump', // 預設成功跳轉對應的模板檔案'
    //'TMPL_EXCEPTION_FILE'   =>  'Public/exception.html',// 異常頁面的模板檔案

新增模板

然後在應用前臺或後臺中新增新的模板檔案(dispatch_jump.html)。

舉個例子

在我的環境中,前臺的修改是在/Home/View/Public目錄下,新增dispatch_jump.html檔案。
dispatch_jump.html內容如下:

<html lang="zh-CN">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>跳轉提示</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style type="text/css">
            *{box-sizing:border-box;margin:0;padding:0;font-family:Lantinghei SC,Open Sans,Arial,Hiragino Sans GB,Microsoft YaHei,"微軟雅黑",STHeiti,WenQuanYi Micro Hei,SimSun,sans-serif;-webkit-font-smoothing:antialiased}
            body{padding:70px 0;background:#edf1f4;font-weight:400;font-size:1pc;-webkit-text-size-adjust:none;color:#333}
            a{outline:0;color:#3498db;text-decoration:none;cursor:pointer}
            .system-message{margin:20px 5%;padding:40px 20px;background:#fff;box-shadow:1px 1px 1px hsla(0,0%,39%,.1);text-align:center}
            .system-message h1{margin:0;margin-bottom:9pt;color:#444;font-weight:400;font-size:40px}
            .system-message .jump,.system-message .image{margin:20px 0;padding:0;padding:10px 0;font-weight:400}
            .system-message .jump{font-size:14px}
            .system-message .jump a{color:#333}
            .system-message p{font-size:9pt;line-height:20px}
            .system-message .btn{display:inline-block;margin-right:10px;width:138px;height:2pc;border:1px solid #44a0e8;border-radius:30px;color:#44a0e8;text-align:center;font-size:1pc;line-height:2pc;margin-bottom:5px;}
            .success .btn{border-color:#69bf4e;color:#69bf4e}
            .error .btn{border-color:#ff8992;color:#ff8992}
            .info .btn{border-color:#3498db;color:#3498db}
            .copyright p{width:100%;color:#919191;text-align:center;font-size:10px}
            .system-message .btn-grey{border-color:#bbb;color:#bbb}
            .clearfix:after{clear:both;display:block;visibility:hidden;height:0;content:"."}
            @media (max-width:768px){body {padding:20px 0;}}
            @media (max-width:480px){.system-message h1{font-size:30px;}}
        </style>
    </head>
    <body>
        <div class="system-message error">
            <?php 
                if(isset($message)){
            ?>
            <div class="image">
                <img src="http://cdn.demo.fastadmin.net/assets/img/success.svg" alt="" width="150" />
            </div>
            <h1>
            <?php
                echo $message;
                }else{
            ?>
             <div class="image">
                <img src="http://cdn.demo.fastadmin.net/assets/img/error.svg" alt="" width="150" />
            </div>
            <h1>
            <?php
                echo $error;
            }?></h1>
            <p class="jump">
                頁面將在 <span id="wait"><?php echo($waitSecond); ?></span><!-- <span id="wait">3</span>  -->秒後自動<a id="href" href="<?php echo($jumpUrl); ?>">跳轉</a>
            </p>
            <p class="clearfix">
                <a href="javascript:history.go(-1);" class="btn btn-grey">返回上一步</a>
                <a href="<?php echo($jumpUrl); ?>" class="btn btn-primary">立即跳轉</a>
            </p>
        </div>
        <script type="text/javascript">
            (function () {
                var wait = document.getElementById('wait'),
                        href = document.getElementById('href').href;
                var interval = setInterval(function () {
                    var time = --wait.innerHTML;
                    if (time <= 0) {
                        location.href = href;
                        clearInterval(interval);
                    }
                }, 1000);
            })();
        </script>
    </body>
</html>

二、ThinkPHP5.0環境下

思路基本和TP3一致

修改配置檔案

在你的配置檔案中,新增模板檔案路徑

'dispatch_success_tmpl'     =>  THINK_PATH . 'tpl' . DS . 'my_dispatch_jump.tpl',
'dispatch_error_tmpl'       =>  THINK_PATH . 'tpl' . DS . 'my_dispatch_jump.tpl',
//'exception_tmpl'          =>  THINK_PATH . 'tpl' . DS . 'my_think_exception.tpl',

我使用的是預設的路徑,但是新增了一個新的模板檔案’my_dispatch_jump.tpl’

新增新模板到配置路徑下

將’my_dispatch_jump.tpl’新增到預設模板路徑/thinkphp/tpl路徑下

模板例子

TP5.0的模板和TP3.2只有些許不同,這裡同樣給出我的模板

<html lang="zh-CN">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>跳轉提示</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style type="text/css">
            *{box-sizing:border-box;margin:0;padding:0;font-family:Lantinghei SC,Open Sans,Arial,Hiragino Sans GB,Microsoft YaHei,"微軟雅黑",STHeiti,WenQuanYi Micro Hei,SimSun,sans-serif;-webkit-font-smoothing:antialiased}
            body{padding:70px 0;background:#edf1f4;font-weight:400;font-size:1pc;-webkit-text-size-adjust:none;color:#333}
            a{outline:0;color:#3498db;text-decoration:none;cursor:pointer}
            .system-message{margin:20px 5%;padding:40px 20px;background:#fff;box-shadow:1px 1px 1px hsla(0,0%,39%,.1);text-align:center}
            .system-message h1{margin:0;margin-bottom:9pt;color:#444;font-weight:400;font-size:40px}
            .system-message .jump,.system-message .image{margin:20px 0;padding:0;padding:10px 0;font-weight:400}
            .system-message .jump{font-size:14px}
            .system-message .jump a{color:#333}
            .system-message p{font-size:9pt;line-height:20px}
            .system-message .btn{display:inline-block;margin-right:10px;width:138px;height:2pc;border:1px solid #44a0e8;border-radius:30px;color:#44a0e8;text-align:center;font-size:1pc;line-height:2pc;margin-bottom:5px;}
            .success .btn{border-color:#69bf4e;color:#69bf4e}
            .error .btn{border-color:#ff8992;color:#ff8992}
            .info .btn{border-color:#3498db;color:#3498db}
            .copyright p{width:100%;color:#919191;text-align:center;font-size:10px}
            .system-message .btn-grey{border-color:#bbb;color:#bbb}
            .clearfix:after{clear:both;display:block;visibility:hidden;height:0;content:"."}
            @media (max-width:768px){body {padding:20px 0;}}
            @media (max-width:480px){.system-message h1{font-size:30px;}}
        </style>
    </head>
    <body>
        <div class="system-message">
            <?php 
                switch ($code){
                    case 1:
            ?>
            <div class="image">
                <img src="http://cdn.demo.fastadmin.net/assets/img/success.svg" alt="" width="150" />
            </div>
            <h1>
            <?php
                        echo (strip_tags($msg));
                        break;
                    case 0:
            ?>
             <div class="image">
                <img src="http://cdn.demo.fastadmin.net/assets/img/error.svg" alt="" width="150" />
            </div>
            <h1>
            <?php
                        echo (strip_tags($msg));
                        break;
                }
            ?>
            </h1>
            <p class="jump">
                頁面將在 <span id="wait"><?php echo($wait); ?></span><!-- <span id="wait">3</span>  -->秒後自動<a id="href" href="<?php echo($url); ?>">跳轉</a>
            </p>
            <p class="clearfix">
                <a href="javascript:history.go(-1);" class="btn btn-grey">返回上一步</a>
                <a href="<?php echo($url); ?>" class="btn btn-primary">立即跳轉</a>
            </p>
        </div>
        <script type="text/javascript">
            (function () {
                var wait = document.getElementById('wait'),
                        href = document.getElementById('href').href;
                var interval = setInterval(function () {
                    var time = --wait.innerHTML;
                    if (time <= 0) {
                        location.href = href;
                        clearInterval(interval);
                    }
                }, 1000);
            })();
        </script>
    </body>
</html>

相關文章