【问题标题】:Silverstripe: Dataobject in Siteconfig output in templateSilverstripe:模板中 Siteconfig 输出中的数据对象
【发布时间】:2012-05-20 02:01:52
【问题描述】:

我有一个与 silverstripe 问题类似的问题:[http://www.silverstripe.org/dataobjectmanager-module-forum/show/19853][1]

我有一个工作数据对象,主要提供标题、标题和图像。 这包含在 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'
    )));

剩下要做的就是能够从模板中的此处获取输出。 任何帮助都会很棒!

问候,

【问题讨论】:

    标签: has-many silverstripe data-objects


    【解决方案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 以使用您需要的内容。

    【讨论】:

      猜你喜欢
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      相关资源
      最近更新 更多