Ejemplo n.º 1
0
 /**
  * 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;
 }