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, Ed, biapar, Willr, Ingo, swaiba

DataObject on Page but Not on Security Page

Go to End

3 Posts   833 Views


Community Member, 545 Posts

16 September 2009 at 7:00am

I have a DataObject attached to the Page Controller and a Custom Function to check it Exists in the Template, however it looks like Extra Dataobjects don't get attached to the CMS login pages and as such Generates an Error for a Malformed SQL query. Whats the BEst way to resolve this?

This is the Query in my Page Controller

function LifeStyleShot() {
		$result = DataObject::get("ExtraPageImages","Category = 'Lifestyle' AND PageID=".$this->ID);
		if($result) {
			return $result;
		else {
			$backup = DataObject::get("ExtraPageImages","Category = 'Lifestyle' AND PageID=".$this->ParentID);
			if($backup) {
				return $backup;
			else {
				return false;

The Template Code on the looks like this:

<% if LifeStyleShot %>	
	<% control LifeStyleShot %>
		<img id="lifestyle" src="$Attachment.URL" width="960" height="401" alt="lifestle" />
	<% end_control %>
<% else %>
	<img id="lifestyle" src="themes/loverschoice/img/lifestyle2.jpg" width="960" height="401" alt="lifestle" />
<% end_if %>


Forum Moderator, 5523 Posts

16 September 2009 at 2:19pm

Try wrapping the template code with <% if ClassName = Security %><% else %><!-- DO CODE --><% end_if %> or you could check for the actual ID. <% if ID %><!-- DO CODE --><% end_if %> or you can put that in your PHP code at the top - if(!$this->ID) return false;


Community Member, 545 Posts

17 September 2009 at 12:07pm

Thanks willr,

The Security Page has an ID of -1 out of curiosity do all the sapphire "utility" pages have negative ID's I can't find them in the Site Tree Table