0

CakePHP でカスタム テーマを作成したいと考えています。すべてのメニュー リンクを含む CakePHP ディレクトリ構造のどこにブロックを保存できますか? からファイルを取得するにはどうすればよいView\Themed\MyTheme\Layouts\default.ctpですか?

4

3 に答える 3

1

要素を使用するか(ナビゲーション バーがすべてのビューに表示される場合)、ビュー ブロックを使用します(ナビゲーション バーが一部のビューにのみ表示される場合)。

あなたの default.ctp ファイルでは、あなたはただ行うでしょう..

echo $this->element('navbar');

Views/Elements/navbar.ctp を Views/Layouts/default.ctp にレンダリングします (デフォルトのレイアウトを使用している場合)。

于 2013-01-12T13:19:35.623 に答える
0

下に置くだけ/App/Views/Layoutsです。どこでも使いたいなら、それを呼んでくださいdefault.ctp、それは自動的に使われます。それ以外の場合は、別の名前を付けてから、コントローラーで次のようにします。

public function some_action() {
    $this->layout = 'mylayout';
}

これはsome_action、デフォルトの代わりにレイアウトを使用して表示されます。

于 2013-01-12T11:37:33.430 に答える
0

アクセスするView\Themed\MyTheme\Layouts\default.ctpには: (Cake 2.1+) では、使用するテーマを Cake に次のように指定する必要があります。

public $theme = 'MyTheme';
// or override in an action:
$this->theme = 'MyTheme';

それで:

$this->layout = 'default';

を参照しますView\Themed\MyTheme\Layouts\default.ctp

Cake が要求されたビュー ファイルを で見つけられない場合MyTheme、それを見つけるために にフォールバックしapp/Viewます。

このようにして、必要に応じてテーマのビューをオーバーライドできます。

したがって、メニューを に配置するとView/Elements/menu.ctp、すべてのテーマがアクセスできるようになります。を上書きしたい場合は、内MyThemeに を作成するだけです。Elements/menu.ctpMyTheme

思い出すと、プロセスは以前のバージョンの Cake とは少し異なります。

于 2013-01-12T13:18:46.403 に答える