2012-04-25 118 views
8

我是Yii Framework的新手,並且創建了一個基於模塊的CRM。 使用不同的教程,我能夠創建自己的主題,但現在我陷入了一個困境。yii框架中的主題和佈局

在我的主題,上<nav>離開<nav>保持整個應用程序的相同,直到用戶登錄。這就是爲什麼我做了我的main.php的一部分,但在那裏的登錄頁面沒有按鈕顯示,只是簡單登錄表格與2 textfields

如何在使用自定義主題的應用程序中實現此表單?

我試圖在該特定操作中定義佈局但未成功。任何幫助,將不勝感激。

+1

請詳細說明,並展示一些代碼,我也許能夠給你的想法,但我並不清楚地瞭解這個問題。 – ddinchev 2012-04-25 10:50:35

+0

這個問題與代碼無關,因爲yii框架中的佈局是由main.php文件中的文件夾結構和單個數組索引創建的。我只是想知道,有什麼方法可以爲一個頁面使用不同的主題? – 2012-04-25 10:55:36

回答

13

爲您的視圖使用自定義佈局是正確的選擇。 您可以在控制器操作中或在視圖中設置佈局。

$this->layout = "//layouts/mylayout"; 

注意,默認佈局column1.phpcolumn2.php也使用main.php佈局文件。

+0

我已經試過這個,但沒有運氣.... – 2012-04-25 11:35:08

+0

你的輸出是什麼? a)只是「原始」的內容? - >找不到佈局文件。 b)沒有明顯的變化? - >佈局沒有得到應用。 Yii使用哪個版本? – schmunk 2012-04-25 12:42:18

+1

是的內容是以原始格式顯示,你是正確的錯誤是在路徑我已經使用佈局,而不是佈局。謝謝你的幫助。 – 2012-04-25 12:51:26

7

試着一步一步來:

  1. 創建新主題

    您可以創建一個新的主題,將其添加到目錄 Application_Root /主題

    查看主題/經典目錄以獲得目錄結構的概念。 重要文件(在此階段)是: - Application_Root /主題/視圖/佈局/ main.php

  2. 自定義您的主題內容

    複製的CSS,圖像,js文件等的正確的目錄並根據你的喜好更改main.php文件。例如,如果你的main.php說

    <鏈接HREF = 「CSS/mystyle.css」 相對= 「樣式」 >

    然後,你將有一個文件 Application_Root/CSS/mystyle.css

  3. 創建內容佔位符。

    在你的main.php中的某個地方,會有一個動態文本的佔位符,由它指定。

    <?php echo $ content; ? >

  4. 告訴yii使用主題。 通過在最後一行(包含右括號)之前添加以下行來更改文件Application_Root/protected/config/main.php

    '主題'=> 'surveyhub'

  5. 創建佈局佔位符。

    創建一個HTML段,將寫入main.php的$ contents部分。將其稱爲例如one_column.php。因此文件路徑將爲Application_Root/themes/views/layouts/one_column.php在該文件中,您希望放置動態文本的位置創建一個佔位符。

    <?php echo $ content; ? >

  6. 告訴Yii中使用的佈局。

    在文件Application_Root /保護/組件/ Controller.php這樣,添加或修改佈局變量如下:

    公共$佈局= '//佈局/ one_column.php';

  7. 刷新頁面