/** * @return Gpf_Data_RecordSet */ public function getThemesNoRpc($panelName, $filterDisabled = false) { $response = new Gpf_Data_RecordSet(); $response->addColumn(Gpf_Desktop_Theme::ID); $response->addColumn(Gpf_Desktop_Theme::NAME); $response->addColumn(Gpf_Desktop_Theme::AUTHOR); $response->addColumn(Gpf_Desktop_Theme::URL); $response->addColumn(Gpf_Desktop_Theme::DESCRIPTION); $response->addColumn(Gpf_Desktop_Theme::THUMBNAIL); $response->addColumn(Gpf_Desktop_Theme::DESKTOP_MODE); $response->addColumn(Gpf_Desktop_Theme::ENABLED); $response->addColumn(Gpf_Desktop_Theme::BUILT_IN); $iterator = new Gpf_Io_DirectoryIterator(Gpf_Paths::getInstance()->getTopTemplatePath() . $panelName, '', false, true); foreach ($iterator as $fullName => $themeId) { if ($themeId == rtrim(Gpf_Paths::DEFAULT_THEME, '/')) { continue; } try { $theme = new Gpf_Desktop_Theme($themeId, $panelName); if ($filterDisabled && !$theme->isEnabled()) { continue; } $response->addRecord($theme->toRecord($response)); } catch (Gpf_Exception $e) { Gpf_Log::error($e->getMessage()); } } return $response; }