Tôi đã tạo một loại trang mới cần thứ gì đó để chia nhỏ nội dung. Tôi đã tạo ra một khối strapline mà tôi muốn sử dụng ở 3 nơi trên trang, tuy nhiên tôi muốn tạo ra chỉ có 1 phiên bản của khối strapline và ổ đĩa nội dung đó bằng dữ liệu động.Silverstripe 3.2 khối có thể tái sử dụng
Tôi có sau trong 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;
}
}
Sau đó tôi thêm các trường cms để HomePage.php. Tôi có thể thêm dây giày không có vấn đề ở đó và tất cả chúng đều xuất hiện. Sau đó, trong HomePage.ss tôi có những điều sau
<% include PricesBlock %>
<% include TourStraplineBlock %>
<% include QuickFacts %>
<% include TourStraplineBlock %>
Nhưng sau đó tôi không thể tìm ra đời vào TourStraplineBlock để có được nội dung riêng biệt cho mỗi trong số này. Chắc chắn phải có để tham số hóa bao gồm hoặc không phải tạo nhiều mẫu. Tôi khá mới với Silverstripe dev và tôi đang tìm một quy trình khó khăn để tạo nội dung có thể sử dụng lại.
Chỉnh sửa: Đây là mẫu strapline.ss xử lý việc hiển thị.
<div class="strapline">
<% loop Straplines %>
$Content
<% end_loop%>
</div>
Như bạn có thể đoán, nếu tôi đặt điều này thành hai lần, nó chỉ đơn giản là hiển thị tất cả các đường dây. Tôi muốn làm một cái gì đó như
<% include Strapline?id=1 %>
Sau đó giải mã trong Strapline.ss và đi từ đó.
Chỉnh sửa xin lỗi có 3.2 không phải 3.0. Tôi cho rằng chúng khá giống nhau.
'riêng tĩnh $ db' chắc chắn không giống như Silverstripe 3.0, giống như 3.1 hoặc 3.2. Bạn đang sử dụng phiên bản SS nào? Và bạn có thể hiển thị thêm mã HomePage.php và mẫu bao gồm bạn muốn sửa đổi không? – wmk
Thực hiện một số chỉnh sửa theo yêu cầu @wmk –