2012-05-11 3 views
1

У меня проблема аналогичную описанной на проблеме SilverStripe: [http://www.silverstripe.org/dataobjectmanager-module-forum/show/19853][1]SilverStripe: DataObject на выходе Siteconfig в шаблоне

У меня есть рабочий DataObject, который в основном предоставляет Title, Caption и Image. Это файл has_many, который должен содержать ползунок в выводе шаблона.

Часть CMS выполнена, что означает, что я могу добавить несколько слайдов из вкладки в SiteConfig. Только вывод в шаблоне не будет выглядеть.

Для кодов я использую:

SingleSlide расширяет DataObject:

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' 
    ))); 

Все осталось сделать, это быть в состоянии получить выход из здесь в шаблоне. Любая помощь будет замечательной!

С уважением,

Kay

ответ

1

Вы можете добавить функцию к классу Page_Controller в page.php, например, как показано ниже

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

Затем в файле сс, вы можете использовать что-то вроде следующие:

<% 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 для работы с тем, что вы необходимость.