0

Video store と Jobet の例に従い、./admin サブディレクトリに管理者インターフェイスを作成しようとしています。ただし、テンプレートを使用したいのですが、新しいテンプレート ディレクトリ (つまり ./admin/templates/) を作成する必要があるかどうか、またはデフォルトのテンプレート (つまり、./templates/default/ で使用される) を使用できるかどうかわかりません。メイン API ?

以下は、ウェブサイトの制御の流れです。

1) /admin/index.php <- /admin/lib/AdminFrontend をインスタンス化します

2) /admin/lib/AdminFrontend <- admin のログインのために /admin/page/index.php を (暗黙的に) 呼び出します。

/admin/page/index.php 内でログイン ページを設定し、defaultTemplate() 関数を呼び出します。

function defaultTemplate(){
    return array('page/login');
}

しかし、「所有者のテンプレートにスポットが見つかりません」というエラーが表示されます。

AdminFrontend 内で addlocation() 関数を使用してルート テンプレート (.template/default/) を追加しようとしましたが、うまくいきません。

$this->addLocation('../', array( 'template' => array('templates'),
   'php' => 'lib' )
)->setParent($this->pathfinder->base_location);

そのため、ログイン テンプレートが見つかりませんが、atk がテンプレートを探している場所や変更方法がわかりません。

Roman の投稿によると、管理者などの新しい API には、セキュリティ上の理由から新しいテンプレート ディレクトリが必要なようです。そのため、通常のユーザーと管理者インターフェースの間でページやテンプレートが共有されることはありません。

in ATK4 フロントエンドとバックエンドで異なるテンプレートを定義できますか?

アドバイスありがとうございます。

4

1 に答える 1

0

確かではありませんが、サブディレクトリ「admin」を addLocation の最初のパラメーターとして次のように追加したいと考えていると思います

 $this->addLocation('admin',array(
                'page'=>array(
                     'page',
                    ),
                'template'=>array(
                    'templates',
                    ),
                ))
        ->setParent($this->pathfinder->base_location);

次に、テンプレートを検索するパスに /admin/templates を追加し、ページを検索するパスに /admin/page を追加します。

管理者のみに使用される別の atkroot の下に atk4 フォルダーを再度インストールすることもできます。ウェブホストによっては、管理ページで admin.yoursite.com などのサブドメインを指すことができますが、ユーザー ページとは完全に分離されていますが、これが実行可能かどうかは、共通のページ、ビュー、モデルが多いかどうかによって異なります。ユーザーと管理者の間で共有されるか、必要なものを管理者フォルダーにコピーするだけでよいか。

于 2012-08-09T13:31:19.593 に答える