Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba

SS3 - Accessing SiteConfig values in Widget class


Go to End
Reply


2 Posts   628 Views

Avatar
Fraser

Community Member, 47 Posts

17 September 2012 at 1:10pm

I'm having issues getting hold of values stored in my SiteConfig from within my widget class. I searched around and found people suggesting I should be able to access the config through SiteConfig::current_site_config() but when I try and implement this, I get an error:

Parse error: syntax error, unexpected '(', expecting ',' or ';' in /...../widgets_facebookFeed/FacebookFeedWidget.php on line 3

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

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

	function getCMSFields(){
		return new FieldList(
			new TextField("FacebookURL", "Facebook URL")
		);
	}
	
	function getFacebookURL(){
		$output = new ArrayList();
		$output->push(
			new ArrayData(
				array(
					"FacebookURL" => $this->URL
				)
			)
		);
		return $output;
	}
}

What am I doing wrong here?

Avatar
jak

Community Member, 46 Posts

18 September 2012 at 7:46am

The Problem is this line:

static $thisConfig = SiteConfig::current_site_config();

In PHP, it is not possible to initialize a static constant with the result of a function call (i.e. you are not allowed to call a function there). You will have to set the default value in some other way (or at a different point in your code).