0
我正在嘗試與Smarty一起做一些OOP。當我把,例如Smarty中的php函數
$smarty->display('header.tpl');
在一個構造函數,一切正常。但是,當我將這段代碼放入一個函數並在構造中調用函數時,什麼都不會發生。
是否有解決方案,以便我可以在函數中使用代碼然後在函數中調用它?
的init.php代碼:
class init{
public function __construct(){
$smarty = new Smarty();
$smarty->setTemplateDir('templates');
$smarty->setCompileDir('templates_c');
$smarty->setCacheDir('cache');
$smarty->setConfigDir('configs');
//$smarty->testInstall();
$smarty->display('header.tpl');
$smarty->display('content.tpl');
$smarty->display('footer.tpl');
//-----------------------------------
//-----------------------------------
//check url
//-----------------------------------
//-----------------------------------
if(isset($_REQUEST['params']) && $_REQUEST['params']!=''){
$aParams = explode('/', $_REQUEST['params']);
print_r ($aParams);
if(isset($aParams[0])) $this->lang = $aParams[0];
if(isset($aParams[1])) $this->page = $aParams[1];
}
if(!$this->lang) $this->lang = 'nl';
if(!$this->page) $this->page = 'home';
//-----------------------------------
//-----------------------------------
//Functions
//-----------------------------------
//-----------------------------------
$this->buildPage();
$this->buildHeader_Footer();
}
function buildPage(){
require_once('modules/' . $this->page . '/' . $this->page . '.php');
if($this->page == 'home') new home($this->lang, $this->page, $this->action, $this->id, $this->message);
else if($this->page == 'contact') new contact($this->lang, $this->page, $this->action, $this->id, $this->message);
}
function buildHeader_Footer(){
$smarty->display('header.tpl');
$smarty->display('footer.tpl');
}
}
的index.php代碼:
require('smarty/libs/Smarty.class.php');
require_once ('modules/init/init.php');
$init = new init();
我編輯的代碼。我試圖按照您的建議進行更改,但似乎沒有奏效。 – Axll 2013-02-13 18:38:59
我在代碼中看不到'class'構造。另外,正如我所說:** note **'$ this'。 – hek2mgl 2013-02-13 18:40:00
忘記複製最後一次編輯。我會嘗試添加$ this – Axll 2013-02-13 18:46:09