【问题标题】:SilverStripe page field do not workSilverStripe 页面字段不起作用
【发布时间】:2018-02-23 22:37:08
【问题描述】:

我在我的模块页面字段中进行了编辑。所有工作都没有错误,但是当我转到应该看到超链接的页面时,它只会显示给我

我的 ImageBlock.php 类 ImageBlock 扩展块

{
    private static $db = array( 'WebsiteLinkHyper' => 'VarChar'); // THIS IS ADDED BY ME
    private static $many_many = array(
        'Images' => 'Image'

    );

    private static $many_many_extraFields = array(
        'Images' => array('SortOrder' => 'Int')
    );

    public function getCMSFields()
    {
        $fields = parent::getCMSFields();

        $uploadField = null;
        if (class_exists('SortableUploadField')) {
            $uploadField = SortableUploadField::create('Images', _t('ImageBlock.IMAGES', 'Images'));
        } else {
            $uploadField = UploadField::create('Images', _t('ImageBlock.IMAGES', 'Images'));
        }

        $fields->addFieldToTab('Root.Main', $uploadField);
        $fields->addFieldToTab('Root.Main', TextField::create('WebsiteLinkHyper', 'Link'));// THIS IS ADDED BY ME
        $this->extend('updateCMSFields', $fields);
        return $fields;
    }

}

我的 imageBlock.ss

<% loop $Images.Sort('SortOrder') %>
<a href="$WebsiteLinkHyper"> //THIS IS ADDED
<figure>
    $Tag
    <figcaption>$Title</figcaption>
</figure>
</a>
<% end_loop %>

管理面板中的所有内容都可以正常工作,但是当我转到页面时,我会看到我的内容块,但是当我单击查看页面源时,我会看到像这样的空 href > &lt;a href=""&gt;

我做错了什么?

【问题讨论】:

    标签: php html silverstripe


    【解决方案1】:

    看起来您正在循环图像并在该循环中添加您的$WebsiteLinkHyper,因此 SilverStripe 将尝试访问您的图像而不是您的块上的该属性。尝试提高范围级别:

    <% loop $Images.Sort('SortOrder') %>
        <a href="{$Up.WebsiteLinkHyper}"> //THIS IS ADDED
        ...
    <% end_loop %>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多