如何在ATK中跨API使用模板?

时间:2012-08-06 03:04:51

标签: php frameworks atk4

我已经关注了视频商店和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?

感谢您的建议。

1 个答案:

答案 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,但它与用户页面完全分开,但这是否可行取决于你是否有很多公共页面,视图和模型将在用户和管理员之间共享,或者你是否很高兴将您需要的文件复制到管理文件夹中。