我創建了一個自定義的ModelAdmin
這樣的:SilverStripe動態的ModelAdmin URL和標題不工作
class CompanyAdmin extends ModelAdmin {
// private static $menu_title = 'Companies';
// private static $url_segment = 'companies';
private static $managed_models = 'Company';
private static $menu_icon = 'mysite/images/icons/company-icon.png';
}
在上面的代碼中,我註釋掉的靜態屬性$menu_title
和$url_segment
,因爲我想他們是動態的(即這些屬性應該取決於域名)。
爲此,我創建這樣一個擴展名:
class CompanyMenu extends LeftAndMainExtension {
public function init() {
$id = 'Company';
$title = $_SERVER["HTTP_HOST"] == "login.example.com" ? "Companies" : "Profile";
$link = $_SERVER["HTTP_HOST"] == "login.example.com" ? "admin/companies" : "admin/profile";
CMSMenu::add_menu_item($id, $title, $link);
}
}
在_config.php
我添加以下代碼以激活延伸:
LeftAndMain::add_extension('CompanyMenu');
問題
所有這些代碼使得CMS中的菜單正確但是:
- 在
ModelAdmin
中定義的圖標不來 - 一旦點擊菜單,我會得到「未找到」彈出窗口。
如果我取消註釋CompanyAdmin
中的兩行並在_config.php
中註釋擴展代碼一切正常。
我在哪裏做錯了?