2014-02-07 161 views
0

有没有一种方法来动态设置文件包含?当我尝试时,我收到一条错误消息(请参阅下文)。例如利用这个模板:Smarty动态模板包括

/templates/main.tpl

<!DOCTYPE html> 
<html> 
    <head> 
     <title>My Title</title> 
    </head> 
    <body> 
     {include file='$file'} 
    </body> 
</html> 

这PHP代码:

<?php 
switch($page){ 
    case "page1": 
     $file = "/templates/page1.tpl"; 
     break; 
    case "page2": 
     $file = "/templates/page2.tpl"; 
     break; 
    case "page3": 
     $file = "/templates/page3.tpl"; 
     break; 
} 
$smarty->assign("file", $file); 
$smarty->display("/templates/main.tpl"); 

的Smarty然后抛出这个错误对我说:

无法在'/templates/main.tpl'中加载模板文件'$ file'

有没有一种方法来动态设置在该位置使用的模板?

回答

4

好吧我想通了!

Smarty不喜欢变量周围的引号。因此,{include file='$file'}变成{include file=$file}