ATK4设置管理区域的步骤是什么?

时间:2011-09-11 04:49:23

标签: atk4

我在我的frontendAPI.php文件上设置了一个CRUD区域(测试我的模型)......我甚至设法保护它。我想以正确的方式这样做...我想为管理员建立一个单独的目录/页面。请告知此事。

1 个答案:

答案 0 :(得分:4)

还是新的,但是我正在尝试为新闻页面做同样的事情,想想我已经登录部分工作但是CRUD有问题(很快就会发布一个问题) - 我有一张桌子填充来自RSS提要的数据(但将手动填充CRUD开始),然后在前端有一个页面,使用视图提取详细信息以格式化每个新闻故事。

  1. 创建一个名为/ page / Admin
  2. 的新目录
  3. 根据此功能在此处创建新文件,例如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);
        }
    }
    
  4. 在Frontend.php中,您需要启用登录 - 对于仅限管理员访问,BasicAuth可能已足够,但也有类使用数据库来获取用户名和密码信息,例如对于会员网站 - 继承人的基本网站。      //如果您希望限制对页面的访问,请使用BasicAuth类     $ AUTH = $这 - >添加( '基本验证')       - >允许( '演示', '演示')      

  5. 您需要修改Frontend.php以启用可以查看的页面 没有登录

    $auth->allowPage('index');
    $auth->allowPage('news');
    $auth->allowPage('links');
    $auth->allowPage('About');
    if (!$auth->isPageAllowed($this->api->page))
    {
       $auth->check();
    }
    
  6. 而且在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')
        ;
    }
    
  7. 当您登录时,它会默认转到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');
    
  8. 希望有所帮助。

    崔佛