Esempio n. 1
0
 /**
  * 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&amp;mode=editraid&amp;" . 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;
     }
 }