/** * Test a style by attempting to load and display it for the user. * This is used when a user is trying to demo a style. * * @param int $iId ID of the style. * @return bool TRUE if style can be loaded, FALSE if not. */ public function testStyle($iId = null) { $sWhere = ''; if ($iId === null) { $sWhere = 't.is_default = 1 AND s.is_default = 1'; } else { $sWhere = 's.style_id = ' . (int) $iId; } $aTheme = Phpfox_Database::instance()->select('s.style_id, s.parent_id AS style_parent_id, s.folder AS style_folder_name, t.folder AS theme_folder_name, t.parent_id AS theme_parent_id')->from(Phpfox::getT('theme_style'), 's')->join(Phpfox::getT('theme'), 't', 't.theme_id = s.theme_id')->where($sWhere)->execute('getRow'); if (!isset($aTheme['style_id'])) { return false; } $this->_sThemeFolder = $aTheme['theme_folder_name']; $this->_sStyleFolder = $aTheme['style_folder_name']; if ($aTheme['style_parent_id'] > 0) { $aStyleExtend = Phpfox_Database::instance()->select('folder AS parent_style_folder')->from(Phpfox::getT('theme_style'))->where('style_id = ' . $aTheme['style_parent_id'])->execute('getRow'); if (isset($aStyleExtend['parent_style_folder'])) { $aTheme['parent_style_folder'] = $aStyleExtend['parent_style_folder']; } } if ($aTheme['theme_parent_id'] > 0) { $aThemeExtend = Phpfox_Database::instance()->select('folder AS parent_theme_folder')->from(Phpfox::getT('theme'))->where('theme_id = ' . $aTheme['theme_parent_id'])->execute('getRow'); if (isset($aThemeExtend['parent_theme_folder'])) { $aTheme['parent_theme_folder'] = $aThemeExtend['parent_theme_folder']; } } $this->_aTheme = $aTheme; $this->_bIsTestMode = true; self::$_sStaticThemeFolder = $this->_sThemeFolder; return true; }