Пример #1
0
 /**
  * @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;
 }