> ------------------------------------------------------------------------------ See main.inc.php for release information ASE_AIP : classe to manage plugin admin pages --------------------------------------------------------------------------- */ include_once('ase_root.class.inc.php'); include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCTables.class.inc.php'); include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCTabSheet.class.inc.php'); include_once(PHPWG_PLUGINS_PATH.'GrumPluginClasses/classes/GPCRequestBuilder.class.inc.php'); include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); class ASE_AIP extends ASE_root { protected $tabsheet; protected $modules; public function __construct($prefixeTable, $filelocation) { parent::__construct($prefixeTable, $filelocation); $this->loadConfig(); $this->configForTemplate(); $this->initRequest(); $this->initEvents(); $this->tabsheet = new tabsheet(); $this->tabsheet->add('search', l10n('ase_search'), $this->getAdminLink()."-search"); $this->tabsheet->add('config', l10n('ase_config'), $this->getAdminLink()."-config"); } public function __destruct() { unset($this->tabsheet); parent::__destruct(); } /** * initialize events call for the plugin */ public function initEvents() { parent::initEvents(); if($_GET['tab']=='search') { // load request builder JS only on the search page GPCRequestBuilder::loadJSandCSS(); } add_event_handler('loc_end_page_header', array(&$this->css, 'applyCSS')); GPCCss::applyGpcCss(); } /** * display the administration page */ public function manage() { global $template; $this->initRequest(); $template->set_filename('plugin_admin_content', dirname(__FILE__)."/admin/ase_admin.tpl"); switch($_GET['tab']) { case 'search': $this->displaySearch(); break; case 'config': $this->displayConfig(); break; } $this->tabsheet->select($_GET['tab']); $this->tabsheet->assign(); $selected_tab=$this->tabsheet->get_selected(); $template->assign($this->tabsheet->get_titlename(), "[".$selected_tab['caption']."]"); $template_plugin["ASE_VERSION"] = "".$this->getPluginName()." ".l10n('ase_release').ASE_VERSION; $template_plugin["ASE_PAGE"] = $_GET['tab']; $template_plugin["ASE_TITLE"] = ""; $template->assign('plugin', $template_plugin); $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); } /** * if empty, initialize the $_REQUEST var * * if not empty, check validity for the request values * */ private function initRequest() { //initialise $REQUEST values if not defined if(!isset($_REQUEST['errcode'])) $_REQUEST['errcode']=''; if(!isset($_GET['tab'])) { $_GET['tab']="search"; } if(!($_GET['tab']!="search" or $_GET['tab']!="config" )) $_GET['tab']="search"; } /** * display the search page * */ protected function displaySearch() { global $template; GPCCore::addHeaderCSS('categorySelector', 'plugins/GrumPluginClasses/css/categorySelector_'.$template->get_themeconf('name').'.css'); GPCCore::addHeaderCSS('tagSelector', 'plugins/GrumPluginClasses/css/tagSelector_'.$template->get_themeconf('name').'.css'); $template->set_filename('body_page', dirname($this->getFileLocation()).'/admin/ase_search.tpl'); $template->assign('ase_search_page', GPCRequestBuilder::displaySearchPage()); $template->assign_var_from_handle('ASE_BODY_PAGE', 'body_page'); } /** * display the config page * */ protected function displayConfig() { global $template; $this->modules=GPCRequestBuilder::getRegistered(); $this->updateConfig(); $this->configForTemplate(); $template->set_filename('body_page', dirname($this->getFileLocation()).'/admin/ase_config.tpl'); $cfgTabsheet = new GPCTabSheet('configTabsheet', $this->tabsheet->get_titlename(), 'tabsheet2 gcBorder', 'itabcfg'); $cfgTabsheet->add('gallery', l10n('ase_gallery_integration'), '', true, "cm.displayTab('gallery');"); $cfgTabsheet->add('keyword', l10n('ase_keyword_module'), '', false, "cm.displayTab('keyword');"); $cfgTabsheet->assign(); foreach($this->modules as $key=>$val) { $this->modules[$key]=array( 'name' => l10n($val['name']), 'id' => $val['name'], 'accessible' => in_array($val['name'], $this->config['ase_publicAccess_allowedPlugins']) ); } $datas=Array( 'urlRequest' => $this->getAdminLink('ajax'), 'modules' => $this->modules ); $template->assign('datas', $datas); $template->assign_var_from_handle('ASE_BODY_PAGE', 'body_page'); } /** * update config values */ protected function updateConfig() { global $infos; if(!isset($_POST) or count($_POST)==0) return(false); if(isset($_POST['fPAActive']) and $_POST['fPAActive']=='on') { $this->config['ase_publicAccess_active']=true; } else { $this->config['ase_publicAccess_active']=false; } if(isset($_POST['fPAApplyLimits']) and $_POST['fPAApplyLimits']=='on') { $this->config['ase_publicAccess_applyLimits']=true; } else { $this->config['ase_publicAccess_applyLimits']=false; } if(isset($_POST['fKMinLength'])) $this->config['ase_keyword_minLength']=$_POST['fKMinLength']; if(isset($_POST['fPALimits'])) $this->config['ase_publicAccess_limits']=$_POST['fPALimits']; $this->config['ase_publicAccess_allowedPlugins']=array(); foreach($this->modules as $key=>$val) { if(isset($_POST['fModule'.$val['name']]) and $_POST['fModule'.$val['name']]=='on') $this->config['ase_publicAccess_allowedPlugins'][]=$val['name']; } if($this->saveConfig()) { $this->displayResult(l10n('ase_config_saved'), true); return(true); } return(false); } } //class ?>