有人可以帮我解决这段代码。
我的模板设置如下:
system / core / Loader.php:
public function template($view, $vars = array(), $return = FALSE)
{
$template = $this->view('includes/header', array(), $return);
$template = $this->view('includes/navigation', array(), $return);
$template .= $this->view($view, $vars, $return);
$template .= $this->view('includes/footer', array(), $return);
if ($return)
{
return $template;
}
}
它完美无缺,但当我尝试显示动态标题时,它不想显示标题。我想因为数据传递给content_home而不是传递给includes / header:
我的控制员:
public function home() {
$this->load->model("model_get");
$data["page_title"] = "Home Page";
$data["results"] = ($this->model_get->getData("home"));
$this->load->template("content_home",$data);
}
包括/ header.php文件
<title><?php echo (isset($page_title)) ? $page_title : 'Default title text'; ?> </title>
任何想法如何解决?
谢谢:)
答案 0 :(得分:1)
我以更简单的方式实现了动态标题:
<强>控制器:强>
$data['header_data'] = array('title'=>'Foo bar');
$data['page'] = "login";
$this->load->view('template', $data);
查看 - template.php
$this->load->view('includes/header', $header_data);
$this->load->view('pages/'.$page);
$this->load->view('footer');
我们在视图中有两个文件夹 - 包含和页面。 包括文件夹:header.php,footer.php(等等) pages文件夹:login.php,profile.php(etc ..)
<强>视图/包括/ header.php文件强>
<!DOCTYPE html>
<html>
<head>
<title><?=$title?></title>
</head>
...
这样,您可以使用相同的模板加载所有页面。您也可以发送标题以外的数据!
答案 1 :(得分:0)
在您的视图文件夹中创建一个这样的模板文件,
我们称之为template_web.php
<?php
// the preset view files for your template
$this->load->view('includes/header');
$this->load->view('includes/navigation');
// in this example we will have our content view files in a folder called 'web'
$templatefolder = 'web/';
// this is where you can pass in 'content' view files that are unique for the page
// this example has 3 placeholders you can put as many as you need
if(isset($content01))
$this->load->view($templatefolder.$content01);
if(isset($content02))
$this->load->view($templatefolder.$content02);
if(isset($content03))
$this->load->view($templatefolder.$content03);
// preset template footer file
$this->load->view('includes/footer');
现在你的控制器方法
// data you want to pass to your header
$data['page_title'] = 'Awesome Home Page';
// other data
$data['bigbagofdata'] = $this->bigBagOf->awesomeData ;
// the name of the view files
$data['content01'] = 'homepage';
$data['content02'] = 'homepage_banner';
// your template
$this->load->view( 'template_web', $data );
数据可以传递给任何视图文件。并且很容易以这种方式设置不同的模板。
答案 2 :(得分:0)
尝试
$template = $this->view('includes/header', $view, $return);
而不是
$template = $this->view('includes/header', array(), $return);
答案 3 :(得分:0)
如果您想在标题视图中访问$data["page_title"]
变量,那么您应该将其传递到标题视图中:
更改此行:
$template = $this->view('includes/header', array(), $return);
到
$template = $this->view('includes/header', $vars, $return);
答案 4 :(得分:0)
我认为MrMarchello找到了真正的问题。问题是没有将$ data变量传递给header。
$data['title'] = "Edit User";
$this->load->view('template/header', $data);
$this->load->view('user/edit_member', $data);
$this->load->view('template/footer');
希望这对你有所帮助。
答案 5 :(得分:0)
在配置文件中添加以下参数:
$config['pageTitle'] = 'Book Store';
在模板页面中:
<title><?=$this->config->config["pageTitle"]?></title>
在您喜欢的任何页面中更改此配置:
$this->config->config["pageTitle"] = $detail[0]['Title'];
每次您都可以轻松更改标题。