我使用codeigniter 2.x.我需要的是從視圖文件/views/home.php
的內部將值插入到config/template.php
的數組中。在視圖文件中擴展Codeigniter中的自定義配置陣列
我已經創建了一個自定義配置文件application/config/template.php
:
$config['site_name'] = "Sitename";
$config['site_lang'] = "En-en";
$config['page_name'] = "Pagename";
$config['css_page'] = "default";
$config['alias'] = "";
$config['head_meta'] = array(
'description' => 'description',
'keywords' => 'meta, keywords',
'stylesheets' => array(
'template.css'
),
'scripts' => array(
'jquery.js',
'template.js'
),
'charset' => 'UTF-8'
);
$config['sidebars'] = array();
然後,我用application/views/template/template.php
作爲我的主要HTML佈局,在此,一開始我有一個文件application/views/template/includes/inc-tpl-cfg.php
其全球化的模板我的配置成一個文件與數組,所以我可以訪問他們更容易一點。下面是inc-tpl-cfg.php
的內容:
<?php
// No direct acces to this file
if (!defined('BASEPATH')) exit('No direct script access allowed');
/* Template configuration needs to be defined to make them accessible in the whole template */
$cfg_template = array(
'sitename' => $this->config->item('site_name'),
'sitelang' => $this->config->item('site_lang'),
'pagename' => $this->config->item('page_name'),
'csspage' => $this->config->item('css_page'),
'charset' => $this->config->item('charset','head_meta'),
'description' => $this->config->item('description','head_meta'),
'keywords' => $this->config->item('keywords','head_meta'),
'stylesheets' => $this->config->item('stylesheets','head_meta'),
'scripts' => $this->config->item('scripts','head_meta'),
'sidebars' => $this->config->item('sidebars')
);
/* Template variables */
$cfg_assetsUrl = base_url() . 'assets';
// If pagename exists than concatenate it with a sitename, else output only sitename
if(!empty($cfg_template['pagename'])){
$title = $cfg_template['pagename'] . ' - ' . $cfg_template['sitename'];
}else{
$title = $cfg_template['sitename'];
}
在我的主模板佈局一部分是塊與側邊欄:
<div id="tpl-sidebar">
<?php foreach($cfg_template['sidebars'] as $sidebar):?>
<?php $this->load->view('modules/'. $sidebar);?>
<?php endforeach ;?>
</div>
,最後,它加載一個application/views/home.php
入內applications/views/template/template.php
具體div
塊。這是一個/views/home.php
:
<?php
// No direct acces to this file
if (!defined('BASEPATH')) exit('No direct script access allowed');
// Page configuration
$this->config->set_item('page_name','Homepage');
$this->config->set_item('css_page','home');
$this->config->set_item('alias','home');
?>
<p>
WELCOME BLABLABLA
</p>
</h3>
有一個部分,其中i可以定義/從config/template.php
覆蓋一個默認值和使用特定的那些對於每個視圖。所以我的問題是,我怎麼能擴大一個$config[sidebar]
陣列在這個視圖文件插入一些新的項目,例如:recent.php
,rss.php
等...?
對不起,有一個很大的代碼。
在此先感謝。
是什麼讓你相信這是可能的?只是爲了探究或者你真的做了一些研究? – hakre 2012-08-12 15:22:05
@hakra對於愚蠢的問題感到抱歉,但我真的很困惑這個問題,我用'php數組插入值'等類似的東西搜索了一下,但是不能得到它。你認爲這是不可能的?或者只是指着我正確的方向,所以我可以繼續尋找一些線索?謝謝 – aspirinemaga 2012-08-12 15:31:31