ATK4 设置管理区域的程序是什么?

标签 atk4

我在我的 frontendAPI.php 文件上设置了一个 CRUD 区域(测试我的模型)...我什至设法保护它。我想以正确的方式执行此操作...我想为管理员建立一个单独的目录/页面。请就此提出建议。

最佳答案

这仍然是新的,但我正在尝试对新闻页面做同样的事情,我认为我已经让登录部分正常工作,但在 CRUD 方面遇到了问题(很快就会发布一个问题)-我有一张 table 填充来自 rss feed 的数据(但首先将手动填充 CRUD),然后在前端有一个页面,使用 View 格式化每个新闻故事来提取详细信息。

  1. 创建一个名为/page/Admin 的新目录
  2. 根据函数创建一个新文件,例如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);
        }
    }
    
  3. 在 Frontend.php 中,您需要启用登录 - 对于仅限管理员访问,BasicAuth 可能就足够了,但还有一些类可以使用数据库来获取用户名和密码信息,例如对于成员(member)网站 - 这是基本的。 //如果您希望限制对页面的访问,请使用 BasicAuth 类 $auth=$this->add('BasicAuth') ->允许('演示','演示') ;

  4. 需要修改Frontend.php,使页面可以查看 无需登录

    $auth->allowPage('index');
    $auth->allowPage('news');
    $auth->allowPage('links');
    $auth->allowPage('About');
    if (!$auth->isPageAllowed($this->api->page))
    {
       $auth->check();
    }
    
  5. 而且在 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')
        ;
    }
    
  6. 当您登录时,默认情况下会转到 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/

相关文章:

mysql - ATK4 如何将 OneToMany retion 与 multiselect 一起使用?

jquery-ui-datepicker - ATK4 Form datePicker - 默认状态为 'opened' ,可以更改吗?

mysql - 敏捷工具包 ATK4 DSQL 中 SQL 'BETWEEN' 和 'IN' 的 WHERE 等效项

php - 处理数据库中重复错误的正确方法是什么

atk4 - 如何从atk4中的一个按钮执行多个js Action

mysql - atk4 数据库表 ID

database - 我如何将数据库表与 ATK 中的模型相关联?

atk4 - 我如何访问页面中的 session 变量

atk4 - 如何更改 CRUD "add"按钮名称?