2.配置 HelloWorldLeftAndMain.php

如果你還沒有讓我們簡單地啟動這個檔案:

class HelloWorldLeftAndMain extends LeftAndMain {

}

配置

你應該做的第一件事是定義將用於訪問介面的 $url_segment,以及將出現在管理面板的側面導航選單中的標題($menu_title):

private static $url_segment = 'helloworld';
private static $menu_title  = 'Hello World';

以下配置變數是可選的,本指南中未使用:

private static $menu_icon   = 'helloworld/path/to/my/icon.png';
private static $url_rule    = '/$Action/$ID/$OtherID';

新增樣式表和 Javascript

LeftAndMain 允許你覆蓋它的父節點中的 init 方法,我們可以使用它來為我們的介面要求特定的檔案。毫無疑問,你應該始終需要一個 CSS 樣式表來設定使用者介面的元素樣式。

作為提示,建議永遠不要依賴 CMS 提供的 CSS 類,因為這些可能會隨時更改,恕不另行通知,隨後會破壞 UI 的外觀(例如,3.*4.*已經完全改變了因此,你在 3.*中依賴的任何 CSS 類都需要重新設定以轉換為 4.*

所以我們新增我們的 helloworld/css/styles.css 檔案:

public function init() {
    parent::init();

    Requirements::css('helloworld/css/styles.css');
    //Requirements::javascript('helloworld/javascript/script.min.js');
}

我們不需要此示例的任何 Javascript 功能,但在上面我已經包含了如何使用 Requirements 類新增 Javascript 檔案。

之後你可以採用你曾經習慣的事情來處理像 $allowed_actionsPage_Controller,但是有一個明顯的區別,但是

不能覆蓋 index()

相反,index() 被假定為 HelloWorldLeftAndMain_Content.ss,從那裡,它需要通過模板函式處理索引顯示(參見下面的示例)

完整的程式碼

class HelloWorldLeftAndMain extends LeftAndMain {
    private static $url_segment = 'helloworld';
    private static $menu_title  = 'Hello World';
    private static $allowed_actions = array(
        'some_action'
    );

    public function init() {
        parent::init();

        Requirements::css('helloworld/css/styles.css');
        //Requirements::javascript('helloworld/javascript/script.min.js');
    }

    public function Hello($who=null) {
        if (!$who) {
            $who = 'World';
        }

        return "Hello " . htmlentities($who);
    } 
}