我在我的 frontendAPI.php 文件上设置了一个 CRUD 区域(测试我的模型)...我什至设法保护它。我想以正确的方式执行此操作...我想为管理员建立一个单独的目录/页面。请就此提出建议。
最佳答案
这仍然是新的,但我正在尝试对新闻页面做同样的事情,我认为我已经让登录部分正常工作,但在 CRUD 方面遇到了问题(很快就会发布一个问题)-我有一张 table 填充来自 rss feed 的数据(但首先将手动填充 CRUD),然后在前端有一个页面,使用 View 格式化每个新闻故事来提取详细信息。
- 创建一个名为/page/Admin 的新目录
根据函数创建一个新文件,例如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 可能就足够了,但还有一些类可以使用数据库来获取用户名和密码信息,例如对于成员(member)网站 - 这是基本的。 //如果您希望限制对页面的访问,请使用 BasicAuth 类 $auth=$this->add('BasicAuth') ->允许('演示','演示') ;
需要修改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');
希望有帮助。
特雷夫
关于ATK4 设置管理区域的程序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7376352/