/** * Main ACP function * @param integer $id * @param string $mode */ public function main($id, $mode) { global $db, $user, $template; global $phpbb_admin_path, $phpEx; $this->link = '<br /><a href="' . append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_item&mode=listitems") . '"><h3>' . $user->lang['RETURN_DKPINDEX'] . '</h3></a>'; $this->LootController = new \bbdkp\controller\loot\Lootcontroller(); $this->RaidController = new \bbdkp\controller\raids\RaidController(); $this->tpl_name = 'dkp/acp_' . $mode; switch ($mode) { case 'additem': // $_POST treatment $submit = isset($_POST['add']) ? true : false; $update = isset($_POST['update']) ? true : false; $delete = isset($_GET['deleteitem']) || isset($_POST['deleteitem']) ? true : false; if ($submit || $update) { if (!check_form_key('additem')) { trigger_error('FORM_INVALID'); } } if ($submit) { $raid_id = request_var('hidden_raid_id', 0); $item_buyers = request_var('item_buyers', array(0 => 0)); $item_value = request_var('item_value', 0.0); $wowhead_id = request_var('wowhead_id', 0); $item_name = utf8_normalize_nfc(request_var('item_name', '', true)); $this->LootController->addloot($raid_id, $item_buyers, $item_value, $item_name, $wowhead_id); $success_message = sprintf($user->lang['ADMIN_ADD_ITEM_SUCCESS'], $item_name, count($item_buyers), $item_value); $this->link = append_sid("{$phpbb_admin_path}index.{$phpEx}", "i=dkp_raid&mode=editraid&" . URI_RAID . "=" . $raid_id); meta_refresh(1, $this->link); trigger_error($success_message . '<br /><a href="' . $this->link . '"><h3>' . $user->lang['RETURN_RAID'] . '</h3></a> ', E_USER_NOTICE); } if ($update) { // get data $item_id = request_var('hidden_item_id', 0); $dkp_id = request_var('hidden_dkp_id', 0); $raid_id = request_var('hidden_raid_id', 0); $item_name = utf8_normalize_nfc(request_var('item_name', '', true)); $item_value = request_var('item_value', 0.0); $itemdecay = request_var('item_decay', 0.0); $item_buyers = request_var('item_buyers', array(0 => 0)); $itemdate = request_var('hidden_raiddate', 0); $wowhead_id = request_var('wowhead_id', 0); $this->LootController->updateloot($item_id, $dkp_id, $raid_id, $item_buyers, $item_value, $item_name, $itemdate, $wowhead_id); $success_message = sprintf($user->lang['ADMIN_UPDATE_ITEM_SUCCESS'], $item_name, is_array($item_buyers) ? implode(', ', $item_buyers) : trim($item_buyers), $item_value); trigger_error($success_message . $this->link, E_USER_NOTICE); } if ($delete) { if (confirm_box(true)) { //retrieve info $old_items = request_var('hidden_old_item', array(0 => array('' => ''))); foreach ($old_items as $item_id => $old_item) { $this->LootController->deleteloot($item_id); } $success_message = sprintf($user->lang['ADMIN_DELETE_ITEM_SUCCESS'], $old_item['item_name'], $old_item['member_name'], $old_item['item_value']); trigger_error($success_message . $this->link, E_USER_NOTICE); } else { $item_id = request_var('hidden_item_id', 0); $dkp_id = request_var('hidden_dkp_id', 0); if ($item_id == 0) { trigger_error($user->lang['ERROR_INVALID_ITEM_PROVIDED'], E_USER_WARNING); } $lootinfo = $this->LootController->getitemdeleteinfo($item_id, $dkp_id); $s_hidden_fields = build_hidden_fields(array('deleteitem' => true, 'hidden_old_item' => $lootinfo[1])); $template->assign_vars(array('S_HIDDEN_FIELDS' => $s_hidden_fields)); confirm_box(false, sprintf($user->lang['CONFIRM_DELETE_ITEM'], $lootinfo[2], $lootinfo[0]), $s_hidden_fields); } } $raid_id = request_var(URI_RAID, 0); $item_id = request_var(URI_ITEM, 0); $this->LootController->displayloot($raid_id, $item_id); $form_key = 'additem'; add_form_key($form_key); $this->page_title = 'ACP_ADDITEM'; break; case 'listitems': if (count($this->games) == 0) { trigger_error($user->lang['ERROR_NOGAMES'], E_USER_WARNING); } $this->listitems(); $this->page_title = 'ACP_LISTITEMS'; break; case 'viewitem': if (isset($_GET['item'])) { $sql = 'SELECT * FROM ' . RAID_ITEMS_TABLE . ' WHERE item_name ' . $db->sql_like_expression($db->any_char . $db->sql_escape(utf8_normalize_nfc(request_var('item', ' ', true))) . $db->any_char); $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $bbdkp_item = $row['item_name']; } $db->sql_freeresult($result); $bbdkp_item = str_replace('<table class="borderless" width="100%" cellspacing="0" cellpadding="0">', " ", $bbdkp_item); $bbdkp_item = str_replace("<table cellpadding='0' border='0' class='borderless'>", "", $bbdkp_item); $template->assign_block_vars('items_row', array('VALUE' => $bbdkp_item)); } $this->page_title = 'ACP_VIEW_ITEM'; break; } }