2

私はfrontendAPI.phpファイルにCRUD領域を設定しました(モデルをテストしています)...そしてそれを保護することさえできました。これを適切な方法で実行したいと思います...管理者用に別のディレクトリ/ページを作成したいと思います。これについてアドバイスしてください。

4

1 に答える 1

4

これはまだ新しいですが、ニュースページでも同じことをしようとしています。ログイン部分は機能していると思いますが、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-> add('BasicAuth')-> allow('demo'、'demo');

  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');
    

お役に立てば幸いです。

トレブ

于 2011-09-11T14:30:02.190 に答える