ATK4 Какова процедура для настройки области администратора? - PullRequest
2 голосов
/ 11 сентября 2011

Я настроил область CRUD в своем файле frontendAPI.php (тестирую мои модели) ... и мне даже удалось ее защитить. Я хотел бы сделать это надлежащим образом ... Я хотел бы создать отдельный каталог / страницу для администраторов. Пожалуйста, сообщите об этом.

1 Ответ

4 голосов
/ 11 сентября 2011

Все еще новичок в этом, но я пытаюсь сделать то же самое для страницы новостей, думаю, что у меня есть входная часть, работающая, но у меня проблемы с CRUD (скоро опубликую вопрос об этом) - у меня есть таблица заполнить данными из RSS-канала (но для начала запустите вручную с помощью CRUD), а затем создайте страницу на внешнем интерфейсе для извлечения деталей, используя представления для форматирования каждого новостного сюжета.

  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, но есть также классы для использования базы данных для получения информации об имени пользователя и пароле, например, для сайта членства - вот основной. // Если вы хотите ограничить доступ к своим страницам, используйте класс BasicAuth $ AUTH = $ this-> добавить ( '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. Когда вы входите в систему, по умолчанию она переходит на страницу / 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');
    

Надеюсь, это поможет.

Trev

...