2010-08-26 21 views
2

Je suis très novice à PHP et codeigniter (et smarty aussi).Passer smarty Variables dans un include (avec Codeigniter)

Je suis beaucoup de tutoriels et maintenant je suis confiant avec ma configuration de smarty + CodeIgniter, mais maintenant j'ai cette escenario. Je veux passer quelques variables dans un Smarty inclure afin de montrer que deux chaînes dans include (l'en-tête, les chaînes font partie du titre)

Ceci est 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) 

et mon contrôleur:

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); 
} 

et le fichier Plantilla.tpl (le modèle)

{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> 

Le problème ici est la première ligne sur le dernier fichier (ou du moins je le pense). Je peux mettre une chaîne statique ici ({include file="head.tpl" Titulo="Static Title" NombreModulo="Another one"}) et cela fonctionne, mais ne fonctionne pas avec la façon dont la documentation dit.

Clarifier, ce que je veux accomplir est d'envoyer des variables de chaîne à l'include de smarty à imprimer sur les étiquettes minuscules, à partir du contrôleur.

MISE À JOUR Le code, quand est réglé comme ça, afficher uniquement - - Certains text.com statique

+0

Alors, que s'affiche-t-il lorsque vous avez configuré le code comme ceci? Est-ce que ça laisse juste le titre et le module vide, comme "- - Static text.com"? Ou met-il le nom de la variable littérale là-dedans, comme "$ TituloPagina - $ Modulo - Some Static text.com" – SenorPuerco

+0

Juste édité la question. L'affichage du code "- - Static text.com" seulement – josecortesp

Répondre

3

Eh bien, cette partie est incorrecte:

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

devrait être:

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

merci. C'est difficile à admettre mais c'est une erreur très novice. J'ai eu mes yeux au-dessus du code smarty et je ne pense jamais que l'erreur était dans le code php. Merci, ça marche maintenant – josecortesp

+0

Vous êtes les bienvenus ... ce genre de choses sont facilement négligés. – Mischa