/** * main acp function * @param integer $id * @param string $mode */ public function main($id, $mode) { global $user, $config, $template, $db, $phpbb_admin_path, $phpEx; $this->tpl_name = 'dkp/acp_' . $mode; $this->link = '<br /><a href="' . append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_recruit&mode=listrecruit") . '"><h3>' . $user->lang['RETURN_RECLIST'] . '</h3></a>'; $this->apply_installed = false; $plugin_versioninfo = (array) parent::get_plugin_info(request_var('versioncheck_force', false)); if (isset($plugin_versioninfo['apply'])) { $this->apply_installed = true; } $guild_id = request_var(URI_GUILD, 1); $Guild = new \bbdkp\controller\guilds\Guilds(); $guildlist = $Guild->guildlist(1); foreach ($guildlist as $g) { $template->assign_block_vars('guild_row', array('VALUE' => $g['id'], 'SELECTED' => $guild_id == $g['id'] ? ' selected="selected"' : '', 'OPTION' => !empty($g['name']) ? $g['name'] : '(None)')); } $Guild->guildid = $guild_id; $Guild->Getguild(); $template->assign_vars(array('APPLY_INSTALLED' => $this->apply_installed ? 1 : 0, 'GUILD_EMBLEM' => $Guild->emblempath, 'U_VIEW_GUILD' => append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_guild&mode=editguild&" . URI_GUILD . '=' . $Guild->guildid), 'U_ADDRECRUIT' => append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_recruit&mode=addrecruit&" . URI_GUILD . '=' . $Guild->guildid), 'U_RECRUITLIST' => append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_recruit&mode=listrecruit&" . URI_GUILD . '=' . $Guild->guildid), 'U_EDITRECRUIT' => append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_recruit&mode=editrecruit"), 'U_LIST_GUILD' => append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_guild&mode=listguilds"))); switch ($mode) { /*************************************** * List recruitments ***************************************/ case 'listrecruit': $this->BuildTemplateListRecruits($guild_id); break; /************************************* * Add recruit *************************************/ /************************************* * Add recruit *************************************/ case 'addrecruit': $recruit = new \bbdkp\controller\guilds\Recruitment(); $recruit->setGuildId($Guild->guildid); $recruit->setLastUpdate($this->time); $add = isset($_POST['add']) ? true : false; $update = isset($_POST['update']) ? true : false; $action = request_var('action', ''); if ($this->apply_installed) { //if apply is installed then fetch list of templates $result = $db->sql_query('SELECT * FROM ' . APPTEMPLATELIST_TABLE); $templates = array(); while ($row = $db->sql_fetchrow($result)) { $templates[$row['template_id']] = $row['template_name']; } $db->sql_freeresult($result); } if ($action == 'delete') { $recruit->id = request_var('id', 0); $recruit->get($recruit->id); $recruit->delete(); $success_message = sprintf($user->lang['ADMIN_DELETE_RECRUITMENT_SUCCESS'], $recruit->id); trigger_error($success_message . $this->link, E_USER_WARNING); } elseif ($action == 'edit') { $recruit->id = request_var('id', 0); $recruit->get($recruit->id); $template->assign_vars(array('S_UPDATE' => true, 'RECRUIT_ID' => $recruit->id, 'RECSTATUS' => $recruit->getStatus() == '1' ? 'checked="checked"' : '', 'RECRUIT_STATUS' => $recruit->getStatus() == '1' ? $user->lang['RECRUIT_OPEN'] : $user->lang['RECRUIT_CLOSED'], 'NUMPOSITIONS' => $recruit->getPositions(), 'APPLICANTS' => $recruit->getApplicants(), 'RECRUIT_LEVEL' => $recruit->getLevel(), 'APPLICANTS' => $recruit->getApplicants(), 'NOTE' => $recruit->getNote())); } else { //add $template->assign_vars(array('RECSTATUS' => 'checked="checked"', 'S_ADD' => true, 'NUMPOSITIONS' => '1', 'RECRUIT_LEVEL' => $Guild->min_armory)); } if ($this->apply_installed) { foreach ($templates as $template_id => $value) { $template->assign_block_vars('applytemplates_row', array('VALUE' => $template_id, 'SELECTED' => $template_id == $recruit->getApplytemplateid() ? ' selected="selected"' : '', 'OPTION' => $value)); } } if ($add || $update) { if (!check_form_key('addrecruit')) { trigger_error('FORM_INVALID'); } $recruit->id = request_var('hidden_recruit_id', 0); $recruit->role_id = request_var('role', 0); $recruit->setClassId(request_var('class_id', 0)); $recruit->setPositions(request_var('numpositions', 0)); $recruit->setApplicants(request_var('applicants', 0)); $recruit->setStatus(request_var('recruitstatus', '') == 'on' ? 1 : 0); $recruit->setLevel(request_var('recruit_level', 0)); $recruit->setNote(utf8_normalize_nfc(request_var('note', '', true))); $recruit->setApplytemplateid(request_var('applytemplateid', 1)); } if ($add) { $recruit->Make(); $success_message = sprintf($user->lang['ADMIN_ADD_RECRUITMENT_SUCCESS'], $recruit->id); trigger_error($success_message . $this->link, E_USER_NOTICE); } elseif ($update) { $recruit->update(); $success_message = sprintf($user->lang['ADMIN_UPDATE_RECRUITMENT_SUCCESS'], $recruit->id); trigger_error($success_message . $this->link, E_USER_NOTICE); } else { $this->BuildDropDowns($Guild, $recruit); } $form_key = 'addrecruit'; add_form_key($form_key); $this->page_title = $user->lang['ACP_ADDRECRUITS']; break; default: $this->page_title = 'ACP_DKP_MAINPAGE'; $success_message = 'Error'; trigger_error($success_message . $this->link, E_USER_WARNING); } }