在Smarty上使用多页的最佳方式

9 php smarty

这是在多个页面中使用smarty的最有效方法吗?:

if(empty($_GET[page])) {
 $template="home.tpl";
 $smarty->assign('pagename', ' - Home');
}else {
$page = $_GET["page"];
switch ($page) {
        case "home":
            $template="home.tpl";
             $smarty->assign('pagename', ' - Home');
            break;
        case "contact":
            $template="contact.tpl";
            $smarty->assign('pagename', ' - Contact us');
            break;
        case "verify":
            $template="verify.tpl";
            $smarty->assign('pagename', ' - Verify your account');
            break;
        default:
            $template="404.tpl";
            break;
    }

}

$smarty->assign('sitename', $sitename);
$smarty->display($template);
Run Code Online (Sandbox Code Playgroud)

如果我有"登录"和"用户区"以及所有内容怎么办?我怎样才能使他们各自干净利落?

Dui*_*oot 3

是的,

也许您可以将 $page 变量更新为以下内容:

<?php
$page = isset($_GET['page']) ? $_GET['page'] : '';
?>
Run Code Online (Sandbox Code Playgroud)

但是使用前端控制器更改页面的方式是好方法。您可以进行一些升级...我的工作流程;

  1. 显示index.html 文件并在前端控制器中加载该index.htm 文件中的其他TPL/HTML 文件。

就像是:

$content = "";
$page = isset($_GET['page']) ? $_GET['page'] : '';

// FRONTCONTROLLER
switch ($page) {
    case 'stack':
        require_once('includes/stack.php');
        $content = getContent();
        break;

    case 'overflow': 
        require_once('includes/overflow.php');
        $content = "overflow....";
        break;

    default:
        $content = "blalala";
        break;
}

$smarty->assign('page', $page);
$smarty->assign('content', $content);
$smarty->display('index.htm');
Run Code Online (Sandbox Code Playgroud)