我已经关注了视频商店和Jobet示例,我正在尝试创建一个管理员 ./admin子目录中的接口。但是,我想使用模板,我不确定是否需要创建一个新的模板目录,即./admin/templates/或者我可以使用默认模板,即./templates/default/由主要API?
以下是网站的控制流程:
1)/admin/index.php< - instantiates / admin / lib / AdminFrontend
2)/ admin / lib / AdminFrontend< - 使用/admin/page/index.php(隐式)登录管理员。
在/admin/page/index.php里面,它设置一个登录页面并调用defaultTemplate()函数:
function defaultTemplate(){
return array('page/login');
}
但是,我收到错误“在所有者的模板中找不到Spot”。
我尝试使用AdminFrontend中的addlocation()函数添加根模板(.template / default /),但我无法使其工作。
$this->addLocation('../', array( 'template' => array('templates'),
'php' => 'lib' )
)->setParent($this->pathfinder->base_location);
因此找不到登录模板,但我不确定atk在哪里寻找模板或我如何更改它。
从罗马的帖子看来,似乎任何新的API,例如admin,出于安全原因需要一个新的模板目录,因此普通用户和管理界面之间不共享页面/模板。
in ATK4 Can I define a different template from frontend to back end?
感谢您的建议。
答案 0 :(得分:0)
不确定但是您认为您可能想要将子目录'admin'添加为addLocation的第一个参数
$this->addLocation('admin',array(
'page'=>array(
'page',
),
'template'=>array(
'templates',
),
))
->setParent($this->pathfinder->base_location);
然后将/ admin / templates添加到搜索模板的路径和/ admin / page到它搜索页面的路径。
您也可以在另一个仅用于管理员的atkroot下再次安装atk4文件夹。根据您的webhost,您可以指定子域,例如管理员页面上的admin.yoursite.com,但它与用户页面完全分开,但这是否可行取决于你是否有很多公共页面,视图和模型将在用户和管理员之间共享,或者你是否很高兴将您需要的文件复制到管理文件夹中。