2012-02-28 52 views
10

我想在opencart中創建自定義頁面。opencart php自定義頁面不使用「信息」功能

我知道我可以在信息部分使用管理區域放置自定義頁面,但是我想要的是指向其他幾個頁面的控制器。

我不完全明白如何做到這一點。

在codeigniter中,你可以創建一個控制器和一個視圖,如果需要的話在路徑文件中設置一些規則,但是我看不到這樣的東西。

會有人介意解釋或指示我一些指示如何做到這一點請。

謝謝

回答

17

說實話很簡單。您需要爲您的文件創建一個控制器,根據文件夾和文件名進行命名。例如common/home.php具有

Class ControllerCommonHome extends Controller 

這是使用index.php?route=common/home訪問並且訪問index()方法。如果你想調用其他方法,例如富,你就需要定義方法

public function foo() { 
    // Code here 
} 

,並會使用的index.php?路徑=通用的/ home/foo的

至於渲染叫它該觀點,這有點棘手。基本上你需要將所有的添加到您的控制器方法的最後

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/new_template_file.tpl')) { 
     $this->template = $this->config->get('config_template') . '/template/common/new_template_file.tpl'; 
    } else { 
     $this->template = 'default/template/common/new_template_file.tpl'; 
    } 

    $this->children = array(
     'common/column_left', 
     'common/column_right', 
     'common/content_top', 
     'common/content_bottom', 
     'common/footer', 
     'common/header' 
    ); 

    $this->response->setOutput($this->render()); 

這會使/catalog/view/theme/your-theme-name/template/common/new_template_file.tpl 如果這個文件不存在,它會嘗試使用相同的路徑在default主題文件夾

我建議你看看幾個控制器和模板來解決這裏的一切來自於正確你的頭,但是這是它是如何工作

+0

可能有些東西缺失,但不知道是什麼。標準文件確實有這樣的結構,但也許有一個地方需要註冊新的擴展或任何需要註冊的地方? – 2013-05-28 03:11:29

+1

如果你正在創建全新的頁面,那麼他們不需要註冊。如果他們是模塊,基本原理是一樣的,但模塊需要在管理員中安裝並設置爲啓用他們的職位等 – 2013-05-28 10:43:32

0

請按此頁我希望更多的使用完整的基本精神。

http://code.tutsplus.com/tutorials/create-a-custom-page-in-opencart--cms-22054

Opencart的使用流行的編程MVC模式建造。另外還有一個元素被添加到名爲「L」的模式 - 語言部分 - 因此在OpenCart中稱爲MVC-L模式。我不會深入討論MVC模式的細節,因爲它是一種非常流行和熟悉的設計模式,我們在其他教程中詳細介紹了它。

相關問題