2015-02-10 35 views
-2

因此,我試圖在OpenCart的自定義主題中顯示主頁上的類別。home.tpl中的OpenCart變量

在header.tpl中,您可以使用變量作爲$categories等fort,但是當我想在home.tpl文件中使用這些變量時,它說它不存在。

有沒有辦法讓這些變量在home.tpl文件中工作?我在header.tpl中找不到任何包含可找到所有這些變量的PHP文件的行。

+1

變量通常會傳遞給模板函數,因此您需要在發生此情況的代碼中找到一部分代碼 – VeeeneX 2015-02-10 13:01:37

+0

你知道我在哪裏可以找到這個嗎? header.tpl可以在這裏找到:https://shrib.com/NrCB6c8S – Stef 2015-02-10 13:10:08

+0

Bondye有一個答案。我剛纔向你們解釋了這些東西是如何工作的,所以將來它會更容易。 – VeeeneX 2015-02-10 13:11:53

回答

2

你需要尋找到header.tpl的控制器稱爲header.php在那裏,你可以找到在哪裏categories分配(line 93 to 124

這部分進入home.phpon line 18

粘貼現在部分變量categories可用。

+0

好,這對我來說很清楚。 但是我的home.php與github頁面的home.php看起來很不一樣。 礦可以在這裏找到:https://shrib.com/QFbz8goq 那麼我現在需要粘貼這個代碼? – Stef 2015-02-10 16:26:49

+0

我猜''setOutput'之前。我將它粘貼在'$ this-> data ['heading_title'] = $ this-> config-> get('config_title');' – 2015-02-11 08:16:18

+0

後面粘貼了它,但是當我現在拿到頁面時,頁面沒有任何錯誤。 這是我的home.php現在:https://shrib.com/Ro3NReqs – Stef 2015-02-11 16:43:48

1

(1)在common/header.php @ class ControllerCommonHeader搜索該構建類別陣列,在我的項目(V 1.5.5.1)的代碼片段我有它像

$this->data['categories'] = array(); 
 

 
$categories = $this->model_catalog_category->getCategories(0); 
 

 
foreach ($categories as $category) { 
 

 
...

(2) 將該代碼片段複製到common/home.php @ class ControllerCommonHome @ function index(),現在可以在home.tpl中使用它

+0

那麼,最好是使用設置的東西,而不是設置新的變量。 – VeeeneX 2015-02-10 13:20:02

+0

@VeeeneX但我們不能在** home.tpl **中直接使用** $ categories **,因爲它沒有在** home.tpl控制器**中定義,所以我認爲我應該複製代碼,對? – 2015-02-10 13:25:13

+0

我的意思是這個問題是關於什麼的?可能是我以錯誤的方式理解了你的評論 – 2015-02-10 13:28:20