我在我的frontendAPI.php文件上设置了一个CRUD区域(测试我的模型)......我甚至设法保护它。我想以正确的方式这样做...我想为管理员建立一个单独的目录/页面。请告知此事。
答案 0 :(得分:4)
还是新的,但是我正在尝试为新闻页面做同样的事情,想想我已经登录部分工作但是CRUD有问题(很快就会发布一个问题) - 我有一张桌子填充来自RSS提要的数据(但将手动填充CRUD开始),然后在前端有一个页面,使用视图提取详细信息以格式化每个新闻故事。
根据此功能在此处创建新文件,例如news.php包含
class page_admin_news extends Page {
function init(){
parent::init();
$p=$this;
$crud=$p->add('CRUD');
$g=$crud->setModel('News');
if($crud->grid)
$crud->grid->addPaginator(30);
}
}
在Frontend.php中,您需要启用登录 - 对于仅限管理员访问,BasicAuth可能已足够,但也有类使用数据库来获取用户名和密码信息,例如对于会员网站 - 继承人的基本网站。 //如果您希望限制对页面的访问,请使用BasicAuth类 $ AUTH = $这 - >添加( '基本验证') - >允许( '演示', '演示')
您需要修改Frontend.php以启用可以查看的页面 没有登录
$auth->allowPage('index');
$auth->allowPage('news');
$auth->allowPage('links');
$auth->allowPage('About');
if (!$auth->isPageAllowed($this->api->page))
{
$auth->check();
}
而且在Frontend.php中,如果登录,则需要创建一个不同的菜单。注意登录和注销页面实际上并不存在。
if ($auth->isLoggedIn())
{
$this->add('Menu',null,'Menu')
->addMenuitem('News','admin_news')
->addMenuitem('logout')
;
} else {
$this->add('Menu',null,'Menu')
->addMenuitem('News','news')
->addMenuitem('Links','links')
->addMenuItem('About')
->addMenuItem('Login')
;
}
当您登录时,它会默认转到page / index.php,因此如果您希望它在登录时重定向到特定页面,那么您可以将其添加到page / index.php
class page_index extends Page {
function init(){
parent::init();
$p=$this;
if($this->api->auth->isLoggedIn())
$this->api->redirect('admin_news');
希望有所帮助。
崔佛