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.

Archive /

Our old forums are still available as a read-only archive.

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

Querying Database via a Class function from _config.php

Go to End

4 Posts   1922 Views


Community Member, 37 Posts

15 May 2008 at 9:34pm

I would like to shift the theme selection process to a Page in the CMS.
I have the following;

class Config extends Page {

static $db = array(
'Theme' => 'Text',

function get_current_theme() {
$result = DataObject::get_one('Config');
return $result->Theme;

The function returns the value of Theme if I call $get_current_theme from a template but if I call it from mysite/_config.php using


I get the following errors, which I assume are because I am ahead of the class construction of SS.

Warning: ClassInfo::dataClassesFor() no parents for Config in sapphire\core\ClassInfo.php on line 49

Warning: Invalid argument supplied for foreach() in sapphire\core\ClassInfo.php on line 50

Fatal error: DataObject::buildSQL: Can't find data classes (classes linked to tables) for Config in sapphire\core\model\DataObject.php on line 1334
Can I achieve the same DB query using the SQLQuery function? If so how, I can't work out the syntax from the doco or api pages.


Community Member, 501 Posts

16 May 2008 at 9:41pm

Edited: 16/05/2008 9:44pm

AFAIK you can only do


if you made get_current_theme() a static method.

See for example:

Be aware though that static vars/methods are tied to the class rather than to an instance of it.


Community Member, 37 Posts

17 May 2008 at 8:54am

Thanks for that.
I can get the get_current_theme() code to run, my issue is querying the Config table for the value of Theme.
At the very least what I want to do is "SELECT * FROM Config" and then get the value of Theme from the 1 row which is returned (as I only have one row..)

But how to do it from my Config.php class function without the errors listed on original post?


Community Member, 10 Posts

26 May 2008 at 9:17pm

just wondering if you go this working, cos i would like to be able to select a theme from inside the cms as well...

if you did could you post the code?