Beispiel #1
0
 function getItemTypeExtraInfo($itemtypedata)
 {
     global $vbphrase;
     $return = array();
     $itemtypes = array();
     $itemtypeids = explode(',', $itemtypedata['options']['itemtypeids']);
     if (count($itemtypeids)) {
         foreach ($itemtypeids as $itemtypeid) {
             if (!isset($itemtypes[$itemtypeid])) {
                 $itemtypes[$itemtypeid] = array('itemtype' => newItemType($itemtypeid), 'count' => 1);
             } else {
                 $itemtypes[$itemtypeid]['count']++;
             }
         }
         foreach ($itemtypes as $itemtypeid => $info) {
             $itemtype_obj =& $info['itemtype'];
             if ($itemtype_obj) {
                 $itemtype_obj->getExtraInfo();
                 $itemtype = $itemtype_obj->data;
                 $return[] = "<strong>{$itemtype['name']}</strong>" . iif($info['count'] > 1, " x<strong style=\"color:red;\">{$info['count']}</strong>") . iif($itemtype['options_processed_list'], "<ul>{$itemtype['options_processed_list']}</ul>");
             }
         }
     }
     return $return;
 }
Beispiel #2
0
            print_label_row($vbphrase['kbank_exp_base_duration']);
            print_select_row($vbphrase['kbank_item_duration'], 'duration', $durations);
        } else {
            print_radio_row('Item NEVER expires', 'forever', array(1 => 'Yes', 0 => 'No'), 0);
            print_time_row('Expire Date<dfn>Only work if select NO in "Item NEVER expires"</dfn>', 'exp', $item['expire_time'], false);
        }
        print_radio_row('Add Another Item', 'addmore', array(2 => 'Yes, with the same options (ItemType/Auction)', 1 => 'Yes', 0 => 'No'), 2);
        print_submit_row($vbphrase['add'], 0);
    }
    print_cp_footer();
}
if ($_GET['do'] == "do_item_update") {
    $vbulletin->input->clean_array_gpc('p', array('auction' => TYPE_UINT, 'auction_exp' => TYPE_ARRAY, 'itemid' => TYPE_UINT, 'item' => TYPE_ARRAY, 'quantity' => TYPE_UINT, 'forever' => TYPE_UINT, 'exp' => TYPE_ARRAY, 'duration' => TYPE_INT, 'delete' => TYPE_UINT, 'addmore' => TYPE_UINT));
    $item = $vbulletin->GPC['item'];
    $item['options'] = array();
    $itemtype_obj = newItemType($item['type']);
    $itemtype = $itemtype_obj->data;
    if ($vbulletin->GPC['itemid']) {
        $edit = true;
        $item_obj =& newItem($vbulletin->GPC['itemid']);
        if (!$item_obj) {
            print_stop_message('kbank_no_permission');
        }
        $item_tmp = $item_obj->data;
        $item['options'] = $item_tmp['options'];
        if ($vbulletin->GPC['delete']) {
            if ($item_obj) {
                $vbulletin->db->query_write("\n\t\t\t\t\tUPDATE `" . TABLE_PREFIX . "kbank_items`\n\t\t\t\t\tSET status = " . KBANK_ITEM_DELETED . "\n\t\t\t\t\tWHERE itemid = {$vbulletin->GPC[itemid]}");
                logkBankAction('admin_item_delete', $vbulletin->GPC['itemid']);
                //Fix auction notices issue 30-12-2008
                updateWarningItem();
Beispiel #3
0
                    }
                }
            }
        }
    }
    if (count($manufactures) > 1) {
        //more than 1 available
        $account_info = buildAccountChooser($manufactures);
    }
    eval('$tmp = "' . fetch_template('kbank_template_produce') . '";');
    eval(standard_error($tmp, '', false));
}
if ($_GET['do'] == 'do_produce') {
    $processed = true;
    $vbulletin->input->clean_array_gpc('p', array('itemtypeid' => TYPE_UINT, 'item' => TYPE_ARRAY, 'receiver' => TYPE_NOHTML, 'quantity' => TYPE_UINT, 'exp' => TYPE_ARRAY, 'duration' => TYPE_UINT));
    $itemtype_obj =& newItemType($vbulletin->GPC['itemtypeid']);
    if (!$itemtype_obj) {
        print_no_permission();
    }
    $itemtype_obj->getExtraInfo();
    $itemtype = $itemtype_obj->data;
    if (!in_array($userinfo['userid'], $itemtype['manufactureids'])) {
        print_no_permission();
    }
    $item = $vbulletin->GPC['item'];
    $item['type'] = $vbulletin->GPC['itemtypeid'];
    $item['userid'] = $userinfo['userid'];
    $item['creator'] = $userinfo['userid'];
    $item['create_time'] = TIMENOW;
    $item['status'] = KBANK_ITEM_SELLING;
    if ($itemtype_obj->options['use_duration']) {
Beispiel #4
0
function findItemsToWork($userids, $work = false, $allstatus = false, $query_hook = false)
{
    global $vbulletin, $kbank_active_items;
    if (!$vbulletin->kbank['itemEnabled']) {
        return false;
    }
    $didsomething = false;
    $userids_query = array();
    if ($query_hook['force']) {
        $userids_query[] = -1;
    }
    if (is_numeric($userids)) {
        $userids = array($userids);
    }
    if (is_array($userids)) {
        foreach ($userids as $userid) {
            if ($allstatus) {
                unset($kbank_active_items[$userid]);
            }
            if (is_numeric($userid) and $userid > 0 and !isset($kbank_active_items[$userid]) and !in_array($userid, $userids_query)) {
                $userids_query[] = intval($userid);
                $kbank_active_items[$userid] = array();
            }
        }
    }
    if (count($userids_query) > 0) {
        $items = $vbulletin->db->query_read("\n\t\t\tSELECT \n\t\t\t\titems.*\n\t\t\t\t,user.username AS username\n\t\t\t" . iif($query_hook['fulljoin'], $query_hook['fulljoin'], "FROM `" . TABLE_PREFIX . "kbank_items` AS items\n\t\t\t\t{$query_hook['join']}\n\t\t\t\tLEFT JOIN `" . TABLE_PREFIX . "user` AS user ON (user.userid = items.userid)") . "\n\t\t\tWHERE (\n\t\t\t\t" . iif($query_hook['idcheckfield'] !== false, iif($query_hook['idcheckfield'], $query_hook['idcheckfield'], 'items.userid') . " in (" . implode(',', $userids_query) . ")") . "\n\t\t\t\t{$query_hook['where']}\n\t\t\t\t)\n\t\t\t\tAND items.status > " . iif(!$allstatus, KBANK_ITEM_AVAILABLE, KBANK_ITEM_DELETED) . "\n\t\t\t\tAND (items.expire_time > " . TIMENOW . "\n\t\t\t\t\tOR items.expire_time < 0)\n\t\t\tORDER BY items.userid ASC, items.type ASC, items.expire_time DESC\n\t\t");
        DEVDEBUG('[kBank Item] findItemsToWorks query the database');
        $itemdatas = array();
        $itemtypeids = array();
        while ($itemdata = $vbulletin->db->fetch_array($items)) {
            $itemdatas[] = $itemdata;
            $itemtypeids[] = $itemdata['type'];
        }
        $vbulletin->db->free_result($items);
        unset($item);
        //Prepare itemtypes
        newItemType($itemtypeids, false, true);
        //Load items
        $userids2sort = array();
        foreach ($itemdatas as $itemdata) {
            $item =& newItem($itemdata['itemid'], $itemdata);
            $kbank_active_items[$itemdata['userid']][$itemdata['itemid']] = $item;
            if (!in_array($itemdata['userid'], $userids2sort)) {
                $userids2sort[] = $itemdata['userid'];
            }
        }
        //sorting
        foreach ($userids2sort as $userid) {
            if ($userid != -1 and is_array($kbank_active_items[$userid])) {
                usort($kbank_active_items[$userid], 'findItemsToWork_cmp');
                if (count($kbank_active_items[$userid]) > 1) {
                    //fix itemid, only work if more than 1 item
                    $items = array();
                    foreach ($kbank_active_items[$userid] as $item) {
                        if ($item) {
                            $items[$item->data['itemid']] = $item;
                        }
                    }
                    $kbank_active_items[$userid] = $items;
                }
            }
        }
    }
    if ($work) {
        foreach ($userids as $userid) {
            if (findItemToWork($userid)) {
                $didsomething = true;
            }
        }
    }
    return $didsomething;
}
Beispiel #5
0
 function Item($itemdata)
 {
     //create item
     global $vbulletin;
     $this->data = $itemdata;
     if (!is_array($this->data['options'])) {
         $this->data['options'] = unserialize($this->data['options']);
     }
     //load itemtype
     if (!($this->itemtype = newItemType($this->data['type']))) {
         trigger_error("Unable to load ItemType #{$this->data['type']}}", E_USER_ERROR);
     }
     $this->itemtypedata =& $this->itemtype->data;
     if ($this->itemtype->options['use_duration'] and !$this->data['options']['duration']) {
         $this->data['options']['duration'] = $vbulletin->kbank['ItemDurationStep'];
         //manually adjust duration if missing
     }
     //Setup variable for later use
     $this->vars = array_keys($this->getVars_use());
     $this->errors = '';
     //Contain errors message
     $this->skip = false;
     $this->priority = 5;
     //Default priority for each item is 5
 }