2012-05-11 71 views
1

Siteconfig輸出I對silverstripe問題所描述的類似的問題:[http://www.silverstripe.org/dataobjectmanager-module-forum/show/19853][1]Silverstripe:數據對象在模板

我有一個工作的數據對象,主要是提供標題,標題和圖像。 這在has_many中進行,它應該在模板輸出中提供一個滑塊。

CMS部分全部完成,這意味着我可以從SiteConfig中的選項卡添加多個「幻燈片」。 只有模板中的輸出看起來不會發生。

對於碼我用:

SingleSlide擴展數據對象:

public function getCMSFields_forPopup() 
{ 
    return new FieldSet(
     new ImageUploadField('SlideImg', 'Afbeelding van slide'), 
     new TextField('SlideTitle'), 
     new TextField('SlideCaption'), 
     new SimpleSiteTree('SlideLinkID') 
    ); 
} 

在SiteConfigOverride

$fields->addFieldToTab('Root.SliderA', new ComplexTableField(
     $this->owner, 'SliderA', 'SingleASlide', 
     array('SlideImg' => 'Afbeelding van slide', 'SlideTitle' => 'Titel van Slide', 'SlideCaption' => 'Tekst bij slide', 'SlideLink.Title' => 'Link naar pagina' 
    ))); 

所有剩下要做的就是能夠從得到的輸出在這裏模板中。 任何幫助將是偉大的!

問候,

回答

1

可以在page.php文件添加函數到Page_Controller類如下面

class Page_Controller extends ContentController { 
    ... 
     function SingleSlideList() { 
     return DataObject::get('SingleSlide'); 
     } 
    ... 
} 

然後在您的SS文件,你可以使用類似如下:

<% control SingleSlideList %> 
    <div class="Image"><% control SlideImg %><% control CroppedImage(880,493) %><img src="$BaseHref$Filename.XML" height="$Height" width="$Width"><% end_control %><% end_control %></div> 
    <div class="Content"> 
     <h2>$SlideTitle</h2> 
     <p>$SlideCaption</p> 
     <p><a href="$SlideLinkID.Link">my link</a></p> 
    </div> 
<% end_control %> 

您需要更改html以與您需要。