$dir = opendir("components"); if ($dir) { while (($fname = readdir($dir)) !== false) { if ($fname[0] != '.' && is_dir('components/' . $fname)) { // load class definition require_once "components/{$fname}/{$fname}.php"; $available_components[] = $fname; } } } $page = new Page(); // Load data layout data from storage class $storage = new $storage_class(array($CONF['configs']['current'], $_GET['page'])); $storage->loadData(); foreach ($storage->getPageData() as $name => $val) { $page->setPropertyValue($name, $val); } // open the template file associated with requested page $filename = $CONF['themes']['base_folder'] . '/' . $CONF['themes']['current'] . '/' . $page->getPropertyValue('template'); if (!file_exists($filename)) { $CONF['themes']['current'] = 'default'; $filename = $CONF['themes']['base_folder'] . '/' . $CONF['themes']['current'] . '/' . $page->getPropertyValue('template'); } $xtpl = new XTemplate($filename); // create all the components from loaded data // and load associated datasources foreach ($storage->getComponentsData() as $comp_data) { $comp_class = $comp_data['type']; $c = new $comp_class(); $CACHE = array(); foreach ($comp_data as $name => $val) {