setupLocale(); } /** * @codingStandardsIgnoreEnd */ /** * Menu text. * * @param mixed $language language * * @return string */ function getMenuText($language) { $tpl = $this->make_html_from_tpl(__DIR__ . '/views/admin.getmenutext.tpl', array(DOKU_URL, VBSSO_PRODUCT_ID)); return $tpl . $this->getLang('vbsso_settings'); } /** * Handle user request. * * @return void */ function handle() { global $ID; if (isset($_POST['vbsso_submit'])) { vbsso_save_mediawiki_settings(); //Page content already loaded with previous settings, we have to reload page sharedapi_url_redirect(wl($ID, array('do' => 'admin', 'page' => 'vbsso'), TRUE, '&')); } } /** * Output appropriate html * * @return void */ function html() { global $vbsso_settings, $vbsso_platform_settings; $roles = array_merge(vbsso_get_acl_groups(), array('', 'admin')); ksort($roles, SORT_STRING); $show_vbsso_show_footer[VBSSO_PLATFORM_FOOTER_LINK_SHOW_EVERYWHERE] = ($vbsso_settings[VBSSO_PLATFORM_FOOTER_LINK_PROPERTY]) ? 'checked' : ''; $show_vbsso_show_footer[VBSSO_PLATFORM_FOOTER_LINK_SHOW_NONE] = (!$vbsso_settings[VBSSO_PLATFORM_FOOTER_LINK_PROPERTY]) ? 'checked' : ''; $login_through_vb = ($vbsso_settings[VBSSO_NAMED_EVENT_FIELD_LOGIN_THROUGH_VB_PAGE]) ? 'checked' : ''; $extensions = vbsso_verify_loaded_extensions(); $error_message = ''; if (count($extensions)) { $error_message = $this->make_html_from_tpl(__DIR__ . '/views/admin.htm1.tpl', array(implode(', ', $extensions))); } $footer_options = vbsso_get_platform_footer_link_options(); $disabled = ($vbsso_platform_settings[VBSSO_NAMED_EVENT_FIELD_LOGIN_VBULLETIN_URL]) ? 'disabled="disabled"' : ''; $vbsso_form = $error_message; $params = array($this->getLang('vbsso_settings'), VBSSO_PLATFORM_FOOTER_LINK_DESCRIPTION_HTML, VBSSO_PLATFORM_FOOTER_LINK_PROPERTY . VBSSO_PLATFORM_FOOTER_LINK_SHOW_EVERYWHERE, VBSSO_PLATFORM_FOOTER_LINK_PROPERTY, VBSSO_PLATFORM_FOOTER_LINK_SHOW_EVERYWHERE, $show_vbsso_show_footer[VBSSO_PLATFORM_FOOTER_LINK_SHOW_EVERYWHERE], VBSSO_PLATFORM_FOOTER_LINK_PROPERTY . VBSSO_PLATFORM_FOOTER_LINK_SHOW_EVERYWHERE, $footer_options[1], VBSSO_PLATFORM_FOOTER_LINK_PROPERTY . VBSSO_PLATFORM_FOOTER_LINK_SHOW_NONE, VBSSO_PLATFORM_FOOTER_LINK_PROPERTY, VBSSO_PLATFORM_FOOTER_LINK_SHOW_NONE, $show_vbsso_show_footer[VBSSO_PLATFORM_FOOTER_LINK_SHOW_NONE], VBSSO_PLATFORM_FOOTER_LINK_PROPERTY . VBSSO_PLATFORM_FOOTER_LINK_SHOW_NONE, $footer_options[0], VBSSO_NAMED_EVENT_FIELD_API_KEY, VBSSO_NAMED_EVENT_FIELD_API_KEY_TITLE, VBSSO_NAMED_EVENT_FIELD_API_KEY, VBSSO_NAMED_EVENT_FIELD_API_KEY, $vbsso_settings[VBSSO_NAMED_EVENT_FIELD_API_KEY], $disabled, VBSSO_NAMED_EVENT_FIELD_LISTENER_URL, VBSSO_NAMED_EVENT_FIELD_LISTENER_URL_TITLE, VBSSO_NAMED_EVENT_FIELD_LISTENER_URL, VBSSO_NAMED_EVENT_FIELD_LISTENER_URL, DOKU_URL, VBSSO_PRODUCT_ID, VBSSO_PRODUCT_ID, VBSSO_PRODUCT_ID, VBSSO_NAMED_EVENT_FIELD_LOGIN_THROUGH_VB_PAGE, VBSSO_NAMED_EVENT_FIELD_LOGIN_THROUGH_VB_PAGE, $login_through_vb, VBSSO_NAMED_EVENT_FIELD_LOGIN_THROUGH_VB_PAGE, VBSSO_NAMED_EVENT_FIELD_LOGIN_THROUGH_VB_PAGE_TITLE); $vbsso_form .= $this->make_html_from_tpl(__DIR__ . '/views/admin.html2-1.tpl', $params); //Usergroups Associations if ($vbsso_platform_settings[VBSSO_NAMED_EVENT_FIELD_USERGROUPS_URL]) { $groups = array(); foreach ($roles as $group) { $groups[$group] = $group; } $vb_usergroups = vbsso_get_vb_usergroups(); $vbsso_usergroups_assoc = json_decode($vbsso_settings[VBSSO_NAMED_EVENT_FIELD_USERGROUPS_ASSOC]); $vbsso_form .= $this->make_html_from_tpl(__DIR__ . '/views/admin.html2-2.open.tpl'); foreach ($vb_usergroups as $vb_usergroup) { $gid = $vb_usergroup->usergroupid; $params_select = array (VBSSO_NAMED_EVENT_FIELD_USERGROUPS_ASSOC, $gid, $vb_usergroup->title, VBSSO_NAMED_EVENT_FIELD_USERGROUPS_ASSOC, $gid, VBSSO_NAMED_EVENT_FIELD_USERGROUPS_ASSOC, $gid); $vbsso_form .= $this->make_html_from_tpl(__DIR__ . '/views/admin.html2-2.select.open.tpl', $params_select); foreach ($groups as $group) { $select = ($vbsso_usergroups_assoc && $vbsso_usergroups_assoc->$gid == $group) ? 'selected="selected"' : ''; $vbsso_form .= $this->make_html_from_tpl(__DIR__ . '/views/admin.html2-2.option.tpl', array($group, $select, $group)); } $vbsso_form .= $this->make_html_from_tpl(__DIR__ . '/views/admin.html2-2.select.close.tpl'); } $vbsso_form .= $this->make_html_from_tpl(__DIR__ . '/views/admin.html2-2.close.tpl'); } $vbsso_form .= $this->make_html_from_tpl(__DIR__ . '/views/admin.html2-3.tpl'); if (!is_writable(VBSSO_VBSSO_CONFIG_FILE)) { ptln($this->make_html_from_tpl("./views/admin.html3.tpl", array(VBSSO_VBSSO_CONFIG_FILE))); } if (!is_writable(VBSSO_PLATFORM_CONFIG_FILE)) { ptln($this->make_html_from_tpl("./views/admin.html3.tpl", array(VBSSO_PLATFORM_CONFIG_FILE))); } ptln($vbsso_form); } /** * Output string with html * * @param string $file path to template file * @param array $params array of parametrs to insert in template file * * @return void */ private function make_html_from_tpl($file, $params = array()) { $tpl = file_get_contents($file); foreach ($params as $key => $param) { $search = '[[content-' . $key . ']]'; $tpl = str_replace($search, $param, $tpl); } return $tpl; } }