Php 如何在codeigniter temaplate中放入变量
我有一个看法:Php 如何在codeigniter temaplate中放入变量,php,codeigniter,templates,Php,Codeigniter,Templates,我有一个看法: public function index() { $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); if ($lang == "fr"){ $this->smarty->display('excel.tpl'); } else{ $this->smarty->display('excel_eng.tpl'); }
public function index()
{
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if ($lang == "fr"){
$this->smarty->display('excel.tpl');
}
else{
$this->smarty->display('excel_eng.tpl');
}
}
我的模板:
<div class="fullscreen background" id="landing-page-image">
{include 'components/menu.tpl'}
</div>
{include'components/menu.tpl'}
我想根据语言更换一个组件
怎么做?您可以这样做:
excel.tpl:
<div class="fullscreen background" id="landing-page-image">
{include 'components/menu.tpl'}
</div>
<div class="fullscreen background" id="landing-page-image">
{include 'components/menu_eng.tpl'}
</div>
...
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
$smarty->assign('lang' , $lang); // passing lang to templates
....
<div class="fullscreen background" id="landing-page-image">
{include 'components/menu_$lang.tpl'}
</div>
HTML代码:
<div class="fullscreen background" id="landing-page-image">
{include 'components/menu.tpl'}
</div>
<div class="fullscreen background" id="landing-page-image">
{include 'components/menu_eng.tpl'}
</div>
...
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
$smarty->assign('lang' , $lang); // passing lang to templates
....
<div class="fullscreen background" id="landing-page-image">
{include 'components/menu_$lang.tpl'}
</div>
{include'组件/菜单$lang.tpl'}
1.这里的第一个选项是加载语言变量并为它们提供公共模板:
$lang = 'en';//your default language
$available_langs = array('en', 'fr'); //your set of languages
$browser_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (in_array($browser_lang, $available_langs)) {
$lang = $browser_lang; //set language according to browser
}
//assumed you keep your language variables in /app/language/lang_en.php
require_once(APPPATH.'language/lang_'.$lang.'.php');
$this->smarty->assign('lang_vars', $lang_vars);
lang_en.php的示例:
<?php
$lang_vars = array(
'some_var_1'=>'Some string',
'some_var_2'=>'Another string',
);
但这被认为是不好的做法,因为您需要支持和更改两组模板。如何将变量放入{include'components/variable here'}??当您从一开始就使用不同的模板时,为什么要传递变量?