如何通过编码器点火器中动态内容的构造函数动态包含头文件


How to include header file dynamically through constructor for dynamic content in codeigniter

嗨,我遇到了一个必须回显动态元的问题 特定网页的说明和元关键字。我已经包括了 头文件到构造函数中,它包含一个代码,该代码具有 通过会话更改语言选项。

我有一个名为 content 的表,其中包含页面的内容和 还有 2 列(元关键字,元描述)。我希望他们 动态显示在我获取页面 ID 的每个页面上。

以下是到目前为止的代码:请帮助

这是控制器:

public function __construct(){
$this->load->model('home_m');
$data['query'] = $this->home_m->seo($id);
$this->load->view('site/include/head', $data);
$header = $this->header();
$this->load->view('site/include/header', $header);
}
public function header(){        
        $site_setting = $this->home_m->getRow('general',array('gen_id' => 1));
        $data['site_setting'] = $site_setting;
        $header_links="select * from ".PRE_FIX."header_links";
        $data['header_links'] = $this->home_m->getCustomRecords($header_links);
$this->set_language();
if ( $site_setting->language == 1){
            $language = "english";
        } else {
            $language = "french";
        }
        if ( $this->session->userdata("setLanguage") != ""   ) {
            $language = $this->session->userdata("setLanguage");
        }
        $data['language'] = $language;
         return $data;
    }

现在例如:我想在以下页面显示标题元关键字和元描述,即虚拟主机。

public function webhosting(){
$this->set_language();
$language =  $this->session->userdata("setLanguage");
$get_plans = "Select * from gdn_planstesting where page='webhosting'";
$data['get_plans'] = $this->home_m->getCustomRecords($get_plans);
$this->load->view('site/webhosting', $data);
$this->load->view('site/include/footer',$data);
}

这是模型:

public function getCustomRecords($customQuery)
    {
        $recordSet = $this->db->query($customQuery);
        return $recordSet->result();
    }
function seo($id){
$query = $this->db->query("SELECT * FROM gdn_planstesting WHERE planstestingid='$id'");
return $query->result_array();
    }

这是视图:

foreach($get_plans as $pl) {
    $pid = $pl->planstestingid;
    $pname = $pl->planname;
    $planStatus=$pl->plan_status;
}
foreach($query as $value){
echo $query->id;
}
**This is the header file :**
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="" />
    <meta name="keywords" content="">
    <link rel="stylesheet" href="<?php echo base_url();?>assets/front/css/style.css" type="text/css">
    <link rel="stylesheet" href="<?php echo base_url();?>assets/front/css/bootstrap.css" type="text/css">
    <link rel="stylesheet" href="<?php echo base_url();?>assets/front/css/font-awesome.css" type="text/css">
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,300,700' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Oswald:400,300,700' rel='stylesheet' type='text/css'>
    <title>Your title</title>
    </head>
    <body>
        <header>
            <div class="container-fluid headertop">
            <!-- <div class="container-fluid"> -->
                <div class="container">
                    <div class="row">
    <?php
        if($language == "english"){
            $lang1 = "class='active'";
            $lang2 = "";
        } else {
            $lang1 = "";
            $lang2 = "class='active'";
        }?>
            </div>
                </div>
            </div>
        </header>

我终于通过执行以下代码解决了该问题:虽然它不是动态的,但满足了我的要求。谢谢@dnapierata的帮助。没有你的帮助,我不可能做到这一点,相信我。

public function header(){    
    $ur = $this->uri->segment(1);
   // echo $ur;
        $site_setting = $this->home_m->getRow('general',array('gen_id' => 1));
        $data['site_setting'] = $site_setting;
        $header_links="select * from ".PRE_FIX."header_links";
        $data['header_links'] = $this->home_m->getCustomRecords($header_links);

        $this->set_language();
        if ( $site_setting->language == 1){
            $language = "english";
        } else {
            $language = "french";
        }
        if ( $this->session->userdata("setLanguage") != ""   ) {
            $language = $this->session->userdata("setLanguage");
        }
        $data['language'] = $language;


       if($ur != 'resellerhosting' || $ur != 'businesshosting' || $ur != 'webhosting' || $ur != 'domain' || $ur != 'aboutus' || $ur != 'contactus'){
        $this->set_language();

        $language =  $this->session->userdata("setLanguage");
//echo "select * from ".PRE_FIX."content where page_name='$ur' and content_language = '".$language."'";
        $ss="select * from ".PRE_FIX."content where page_name='$ur' and content_language = '".$language."'";
        $data['ss'] = $this->home_m->getCustomRecords($ss);
}
if($ur == 'resellerhosting' || $ur == 'businesshosting' || $ur == 'webhosting' || $ur == 'domain' || $ur == 'aboutus' || $ur == 'contactus' || $ur == ''){

//echo "select * from ".PRE_FIX."planstesting where page='$ur'";
        $sd="select * from ".PRE_FIX."planstesting where page='$ur'";
        $data['sk'] = $this->home_m->getCustomRecords($sd);
}

控制器header方法中,您必须首先调用模型,该模型应查询数据库以获取所需的元信息。

控制器:

public function __construct(){
    $this->load->model('home_m');
    $header = $this->header();
    $this->load->view('site/include/header', $header);
}
public function header(){        
    $site_setting = $this->home_m->getRow('general',array('gen_id' => 1));
    $data['site_setting'] = $site_setting;
    $header_links="select * from ".PRE_FIX."header_links";
    $data['header_links'] = $this->home_m->getCustomRecords($header_links);
    $this->set_language();
    if ( $site_setting->language == 1){
        $language = "english";
    } else {
        $language = "french";
    }
    if ( $this->session->userdata("setLanguage") != "" ) {
        $language = $this->session->userdata("setLanguage");
    }
    $data['language'] = $language;
    //Get the meta information from the model
    $data['meta'] = $this->home_m->seo($this->uri->segment(1), $this->input->get($id));
    return $data;
}

$this->router->method简单地返回为此控制器调用的方法,我们可以使用它来确定要从哪个表中进行选择。

型:

public function getCustomRecords($customQuery){
    $recordSet = $this->db->query($customQuery);
    return $recordSet->result();
}
function seo($table, $id){
    $query = $this->db->query("SELECT * FROM $table WHERE $table"."_id='$id'");
    return $query->row();
}

获得信息后,可以在sites/include/header视图中输出它。

标题视图:

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="<?php echo $meta->metadescription; ?>" />
    <meta name="keywords" content="<?php echo $meta->metakeywords; ?>">
    <link rel="stylesheet" href="<?php echo base_url();?>assets/front/css/style.css" type="text/css">
    <link rel="stylesheet" href="<?php echo base_url();?>assets/front/css/bootstrap.css" type="text/css">
    <link rel="stylesheet" href="<?php echo base_url();?>assets/front/css/font-awesome.css" type="text/css">
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,300,700' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Oswald:400,300,700' rel='stylesheet' type='text/css'>
    <title>Your title</title>
    </head>
    <body>
        <header>
            <div class="container-fluid headertop">
            <!-- <div class="container-fluid"> -->
                <div class="container">
                    <div class="row">
    <?php
        if($language == "english"){
            $lang1 = "class='active'";
            $lang2 = "";
        } else {
            $lang1 = "";
            $lang2 = "class='active'";
        }?>
            </div>
                </div>
            </div>
        </header>