【发布时间】:2016-07-28 05:59:03
【问题描述】:
我创建了一个自定义ModelAdmin,如下所示:
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 中的扩展代码,一切正常。
我哪里做错了?
【问题讨论】:
标签: php silverstripe