コンテンツを分割するために何か必要な新しいページタイプを作成しました。私はページの3か所で使いたいストラップラインブロックを作成しましたが、ストラップブロックの1バージョンのみを作成し、その内容をダイナミックデータでドライブしたいと考えています。Silverstripe 3.2再利用可能なブロック
私はその後、私はHomePage.phpにCMSフィールドを追加Straplines.php
class Straplines extends DataObject{
private static $db = array(
'Title'=>'Text',
'Content'=>'HTMLText',
'SortOrder'=>'Int'
);
private static $has_one = array(
'Parent'=>'Page'
);
private static $default_sort = 'SortOrder';
public function getCMSFields(){
$fields = parent::getCMSFields();
$fields->addFieldToTab("Root.Main", new HtmlEditorField('Content','Content'));
$fields->addFieldToTab("Root.Main", new TextField('Title','Title'));
return $fields;
}
}
に次きました。私はそこに問題のないストラップラインを追加することができ、それらはすべて表示されます。 はその後HomePage.ssに私は、次の
<% include PricesBlock %>
<% include TourStraplineBlock %>
<% include QuickFacts %>
<% include TourStraplineBlock %>
を持っているしかし、私は、これらのそれぞれに別々のコンテンツを取得するために離れてTourStraplineBlockで把握することはできません。 includeをパラメータ化したり、複数のテンプレートを作成したりする必要はありません。私はSilverstripeの開発者にとって新しく、再利用可能なコンテンツを作成するのは難しいプロセスであると感じています。
編集:これは表示を処理するstrapline.ssテンプレートです。
<div class="strapline">
<% loop Straplines %>
$Content
<% end_loop%>
</div>
おそらく私がこれを2回入力すると、すべてのストラップラインが表示されます。私は何かをしたいです
<% include Strapline?id=1 %>
それを解読してそこから行ってください。
編集ありがとうございます。3.2 not 3.0。私は彼らがかなり似ていると思った。
「private static $ db」は、Silverstripe 3.0とよく似ていません(3.1,3.2など)。どのバージョンのSSを使用していますか? HomePage.phpのコードと変更したいインクルードテンプレートをさらに表示できますか? – wmk
リクエストに応じて編集しました@wmk –