在包含中传递smarty变量(使用Codeigniter)

时间:2010-08-26 15:29:41

标签: php codeigniter smarty

我是php和codeigniter的新手(也很聪明)。

我遵循了很多教程,现在我对我的smarty + CodeIgniter配置很有信心,但现在我有了这个方案。我想将一些变量传递给smarty include,以便在include中只显示两个字符串(标题,字符串是标题的一部分)

这是include(header.tpl):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{$Titulo} - {$NombreModulo} - Some Static text.com</title>
<link rel="stylesheet" type="text/css" media="screen" href="/sitio/contenido/css/Style.css" />
{literal}
<script type="text/javascript" src="/sitio/contenido/js/jquery-1.4.2.min.js" ></script>
<script type="text/javascript" charset="utf-8">
{/literal}
(some code omitted)

和我的控制员:

function index()
{
    //$this->load->view('welcome_message');
    $this->load->library('smarty_parser');
    $datos = array (
    'texto' => 'String de prueba',
    'elapsed_time',1500,
    'TituloPagina','Inicio',
    'Modulo','Dashboard'
    );
    $this->smarty_parser->parse('plantilla.tpl', $datos);
}

和文件Plantilla.tpl(模板)

{include file="head.tpl" Titulo=$TituloPagina NombreModulo=$Modulo }
<div id="cuerpo">
{include file="sidebars/dashboard.tpl"}
</div>
<div id="contenido"> {$texto} </div>
<!-- fin del contenido -->

</div>
<div id="footer"> </div>
</body></html>

这里的问题是最后一个文件的第一行(或者至少我认为是这样)。我可以在这里放置一个静态字符串({include file="head.tpl" Titulo="Static Title" NombreModulo="Another one"})并且它可以工作,但不能用文档说的方式工作。

澄清,我想要完成的是将一些字符串变量发送到smarty包含,以便从控制器打印在tittle标签上。

更新代码,如果设置如下,只显示 - - Some static text.com

1 个答案:

答案 0 :(得分:3)

嗯,这部分不正确:

$datos = array (
'texto' => 'String de prueba',
'elapsed_time',1500,
'TituloPagina','Inicio',
'Modulo','Dashboard'
);

应该是:

$datos = array (
'texto' => 'String de prueba',
'elapsed_time' => 1500,
'TituloPagina' => 'Inicio',
'Modulo' => 'Dashboard'
);