2016-03-20 8 views
0

は、(テンプレートで)SilverStripeレイアウトとテンプレート

Test.ss(レイアウトで)

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 
    Templates 
    $Layout 
</body> 
</html> 

Test.ss

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Layout</title> 
</head> 
<body> 
    Layout 
</body> 
</html> 

SilverStripeでの出力以下のコードを考えます:

テンプレート レイアウト

私の質問は、レイアウトのhtmlタグを剥ぎ取っているSilverStripeですか?

+1

が使用されていませんまったく。まずドキュメントをお読みください。 http://www.silverstripe.org/learn/lessons/working-with-multiple-templates –

+1

私はあなたのコードをテストしました。私が得たものはすべて「テンプレート」でした。これは 'templates/Test.ss'ファイルに' $ Layout'がないので、 'templates/Layout/Test.ss'がロードされないので正しいです。私はあなたが 'Templates Layout'の結果をどのように得ているのか理解していません。 – 3dgoo

+0

テンプレート/ Test.ssに$レイアウトがあります。 –

答えて

1

いいえ、SilverStripeはレイアウトテンプレートからhtmlタグを除外しません。あなたのテンプレートにあなたが持っているhtmlはそのまま印刷されます。

だからあなたの例のテンプレートは、次のHTML出力になります:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 
    Templates 
    <!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Layout</title> 
</head> 
<body> 
    Layout 
</body> 
</html> 
</body> 
</html> 

あなたのページのソースを見ることによって、自分自身のためにこれを表示することができます。 ChromeのURLは次のようになりview-source:http://your-website-url

避け、これはメインテンプレートでの世話をされるようlayoutテンプレートでhtmlheadbodyタグを持ちます。

代わりに、あなたのtemplate/layouts/test.ssファイルは次のようになります。これはあなたの出力与えるだろうあなたの元template/test.ss

<p>Layout</p> 

:あなたのケースレイアウト/ Test.ssで

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 
    Templates 
    <p>Layout</p> 
</body> 
</html> 
関連する問題