1

次のコマンドを使用して、ウィジェットクラスのsiteconfig値にアクセスしようとしています。

<?php
class FacebookFeedWidget extends Widget{
    static $title = "";
    static $cmsTitle = "Facebook Feed Widget";
    static $description = "This widget shows the Facebook feed";
    static $doSiteConfig = DataObject::get_one('SiteConfig'); 

    static $db = array(
        "FacebookURL" => "Text"
    );

    static $defaults = array(
        "FacebookURL" => $doSiteConfig->FacebookURL
    );

    function getCMSFields(){
        return new FieldList(
            new TextField("FacebookURL", "Facebook URL")
        );
    }

    function getFacebookURL(){
        $output = new ArrayList();
        $output->push(
            new ArrayData(
                array(
                    "FacebookURL" => $this->FacebookURL
                )
            )
        );
        return $output;
    }
}

しかし、エラーが発生しています:解析エラー:構文エラー、予期しない'('、予期しない'、'または';' / ...... / widgets_facebookFeed/FacebookFeedWidget.phpの8行目

私はここで何が間違っているのですか?

4

1 に答える 1

4

あなたはこのようなことをすることはできません:

static $defaults = array(
    "FacebookURL" => $doSiteConfig->FacebookURL
);

しかし、幸いなことに、$ defaultsを取得してオブジェクトに設定する関数polulateDefaultsがあるので、それにフックすることができます。

public function populateDefaults() {
    parent::populateDefaults();
    $this->FacebookURL = SiteConfig::current_site_config()->FacebookURL;
}
于 2012-09-22T13:01:13.213 に答える