_theme; } if (strlen($theme)==0) { $theme="bootstrap"; } /* Sooner or later the parent will be removed, because all output will * be done by the new view classes. */ class UI extends UI_Default { /** * Create a view from a class in the given theme * * This method will check for a class file in the theme directory * and returns an instance of it. * * @param string $theme theme * @param string $class name of view class * @param array $params parameter passed to constructor of view class * @return object an object of a class implementing the view */ static function factory($theme, $class='', $params=array()) { /* {{{ */ global $settings, $session; if(!$class) { $class = 'Bootstrap'; $classname = "SeedDMS_Bootstrap_Style"; } else { $classname = "SeedDMS_View_".$class; } $filename = "../views/".$theme."/class.".$class.".php"; if(file_exists($filename)) { require($filename); $view = new $classname($params, $theme); /* Set some configuration parameters */ $view->setParam('refferer', $_SERVER['REQUEST_URI']); $view->setParam('class', $class); $view->setParam('session', $session); $view->setParam('settings', $settings); $view->setParam('sitename', $settings->_siteName); $view->setParam('rootfolderid', $settings->_rootFolderID); $view->setParam('disableselfedit', $settings->_disableSelfEdit); $view->setParam('enableusersview', $settings->_enableUsersView); $view->setParam('enablecalendar', $settings->_enableCalendar); $view->setParam('calendardefaultview', $settings->_calendarDefaultView); $view->setParam('enablefullsearch', $settings->_enableFullSearch); $view->setParam('enablehelp', $settings->_enableHelp); $view->setParam('enablelargefileupload', $settings->_enableLargeFileUpload); $view->setParam('printdisclaimer', $settings->_printDisclaimer); $view->setParam('footnote', $settings->_footNote); $view->setParam('logfileenable', $settings->_logFileEnable); $view->setParam('expandfoldertree', $settings->_expandFolderTree); $view->setParam('enablefoldertree', $settings->_enableFolderTree); $view->setParam('enablelanguageselector', $settings->_enableLanguageSelector); $view->setParam('enableclipboard', $settings->_enableClipboard); $view->setParam('workflowmode', $settings->_workflowMode); $view->setParam('partitionsize', (int) $settings->_partitionSize); $view->setParam('maxuploadsize', (int) $settings->_maxUploadSize); $view->setParam('showmissingtranslations', $settings->_showMissingTranslations); $view->setParam('defaultsearchmethod', $settings->_defaultSearchMethod); $view->setParam('cachedir', $settings->_cacheDir); return $view; } return null; } /* }}} */ static function getStyles() { /* {{{ */ global $settings; $themes = array(); $path = $settings->_rootDir . "views/"; $handle = opendir($path); while ($entry = readdir($handle) ) { if ($entry == ".." || $entry == ".") continue; else if (is_dir($path . $entry) || is_link($path . $entry)) array_push($themes, $entry); } closedir($handle); return $themes; } /* }}} */ static function exitError($pagetitle, $error) { global $theme; $tmp = 'ErrorDlg'; $view = UI::factory($theme, $tmp); $view->exitError($pagetitle, $error); } } ?>