• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

AAC Znote error auction char when will load items name

roriscrave

Advanced OT User
Joined
Dec 7, 2011
Messages
1,188
Solutions
34
Reaction score
200
When will load items name in auction char system, return error:

1590926678868.png
itemlistparser.php
PHP:
<?php
/* Returns a PHP array $id => 'name'
     $items = getItemList();
     echo $items[2160]; // Returns 'Crystal Coin'
*/

function getItemList() {  
    return parseItems();
}

function getItemById($id) {
    $items = parseItems();
    if(isset($items[$id])) {
        return $items[$id];
    }
    return false;
}

function parseItems() {
    $file = Config('server_path') . '/data/items/items.xml';
    if (file_exists($file)) {
        $itemList = array();
        $items = simplexml_load_file($file);
        // Create our parsed item list
        foreach ($items->children() as $item) {
            if ($item['id'] && $item['name'] != NULL) {
                $itemList[(int)$item['id']] = (string)$item['name'];
            }
        }
        return $itemList;
    }
    return $file;
}
?>
market.php:
PHP:
<?php require_once 'engine/init.php'; include 'layout/overall/header.php';
$server = $config['shop']['imageServer'];
$imageType = $config['shop']['imageType'];
$items = getItemList();
$compare = &$_GET['compare'];
// If we failed to load items.xml, a string is returned (not an array)
// with the attempted loaded file path.
// So if $items is not an array, send an error message, include the footer and ignore rest of this page.
if (is_array($items) === false):
    ?>
    <h1>Marketplace</h1>
    <p>Failed to load item list.</p>
    <p>Attempted to load this file: <?php echo $items; ?></p>
    <p>Configure correct 'server_path' in config.php.</p>
    <p>If the path is correct, make sure your web user has access to read it.</p>
    <?php
    include 'layout/overall/footer.php';
    die();
endif;
// If you are not comparing any items, present the list.
if (!$compare) {
    $cache = new Cache('engine/cache/market');
    $cache->setExpiration(60);
    if ($cache->hasExpired()) {
        $offers = array(
            'wts' => mysql_select_multi("SELECT `mo`.`id`, `mo`.`itemtype` AS `item_id`, `mo`.`amount`, `mo`.`price`, `mo`.`created`, `mo`.`anonymous`, `p`.`name` AS `player_name` FROM `market_offers` AS `mo` INNER JOIN `players` AS `p` ON `mo`.`player_id`=`p`.`id` WHERE `mo`.`sale` = '1'  ORDER BY `mo`.`created` DESC;"),
            'wtb' => mysql_select_multi("SELECT `mo`.`id`, `mo`.`itemtype` AS `item_id`, `mo`.`amount`, `mo`.`price`, `mo`.`created`, `mo`.`anonymous`, `p`.`name` AS `player_name` FROM `market_offers` AS `mo` INNER JOIN `players` AS `p` ON `mo`.`player_id`=`p`.`id` WHERE `mo`.`sale` = '0'  ORDER BY `mo`.`created` DESC;")
        );
        $cache->setContent($offers);
        $cache->save();
    } else {
        $offers = $cache->load();
    }
    ?>
    <h1>Marketplace</h1>
    <p>You can buy and sell items by clicking on the <a target="_BLANK" href="http://znote.eu/images/depotmarket.jpg">market in depot.</a> <br>To sell an item: Place item inside your depot, click on market, search for your item and sell it.</p>
    <form action="" class="market_item_search">
        <label for="compareSearch">Item search:</label>
        <input type="text" id="compareSearch" name="compare">
        <input type="submit" value="Search">
    </form>
    <h2>WTS: Want to sell</h2>
    <table class="table tbl-hover">
        <tr class="yellow">
            <td>Item name</td>
            <td>Item</td>
            <td>Count</td>
            <td>Price for 1</td>
            <td>Added</td>
            <td>By</td>
            <td>Compare</td>
        </tr>
        <?php
        foreach (($offers['wts'] ? $offers['wts'] : array()) as $o) {
        ?>
        <tr>
            <td><?php echo (isset($items[$o['item_id']])) ? $items[$o['item_id']] : $o['item_id']; ?></td>
            <td><img src="<?php echo "http://".$server."/".$o['item_id'].".".$imageType; ?>" alt="Item Image"></td>
            <td><?php echo $o['amount']; ?></td>
            <td><?php echo number_format($o['price'], 0, "", " "); ?></td>
            <td><?php echo getClock($o['created'], true, true); ?></td>
            <td><?php echo ($o['anonymous'] == 1) ? 'Anonymous' : "<a target='_BLANK' href='characterprofile.php?name=".$o['player_name']."'>".$o['player_name']."</a>"; ?></td>
            <td><a href="?compare=<?php echo $o['item_id']; ?>"><button>Compare</button></a></td>
        </tr>
        <?php
        }
        ?>
    </table>
    <h2>WTB: Want to buy</h2>
    <table class="table tbl-hover">
        <tr class="yellow">
            <td>Item name</td>
            <td>Item</td>
            <td>Count</td>
            <td>Price for 1</td>
            <td>Added</td>
            <td>By</td>
            <td>Compare</td>
        </tr>
        <?php
        foreach (($offers['wtb'] ? $offers['wtb'] : array()) as $o) {
        ?>
        <tr>
            <td><?php echo (isset($items[$o['item_id']])) ? $items[$o['item_id']] : $o['item_id']; ?></td>
            <td><img src="<?php echo "http://".$server."/".$o['item_id'].".".$imageType; ?>" alt="Item Image"></td>
            <td><?php echo $o['amount']; ?></td>
            <td><?php echo number_format($o['price'], 0, "", " "); ?></td>
            <td><?php echo getClock($o['created'], true, true); ?></td>
            <td><?php echo ($o['anonymous'] == 1) ? 'Anonymous' : "<a target='_BLANK' href='characterprofile.php?name=".$o['player_name']."'>".$o['player_name']."</a>"; ?></td>
            <td><a href="?compare=<?php echo $o['item_id']; ?>"><button>Compare</button></a></td>
        </tr>
        <?php
        }
        ?>
    </table>
    <?php
} else {
    // Else You want to compare price
    $compare = ((int)$compare > 0) ? (int)$compare : getValue($compare);
    $condition = "`itemtype`='$compare'";
    if (is_string($compare)) {
        $query = array();
        foreach ($items as $id => $name) {
            if (strpos(strtolower($name), stripslashes(strtolower($compare))) !== false) {
                $query[] = $id;
            }
        }
        $condition = (!empty($query)) ? "`itemtype` IN (". implode(',', $query) .")" : false;
    }
   
    // First list active bids
    if ($condition === false) {
        $offers = array();
        $historyOffers = array();
    } else {
        $offers = mysql_select_multi("SELECT `mo`.`id`, `mo`.`sale`, `mo`.`itemtype` AS `item_id`, `mo`.`amount`, `mo`.`price`, `mo`.`created`, `mo`.`anonymous`, `p`.`name` AS `player_name` FROM `market_offers` AS `mo` INNER JOIN `players` AS `p` ON `mo`.`player_id`=`p`.`id` WHERE `mo`.$condition ORDER BY `mo`.`price` ASC;");
        $historyOffers = mysql_select_multi("SELECT `id`, `itemtype` AS `item_id`, `amount`, `price`, `inserted`, `expires_at` FROM `market_history` WHERE $condition AND `state`='255' ORDER BY `price` ASC;");
    }
    $buylist = false;
    // Markup
    $itemname = (isset($items[$compare])) ? $items[$compare] : $compare;
    if (!is_string($compare)) echo "<h1>Comparing item: ". $itemname ."</h1>";
    else echo "<h1>Search: ". stripslashes($compare) ."</h1>";
    ?>
    <a href="market.php"><button>Go back</button></a>
    <h2>Active offers</h2>
    <table class="table tbl-hover">
        <tr class="yellow">
            <td>Item name</td>
            <td>Item</td>
            <td>Count</td>
            <td>Price for 1</td>
            <td>Added</td>
            <td>By</td>
        </tr>
        <?php
        foreach (($offers ? $offers : array()) as $o) {
            $wtb = false;
            if ($o['sale'] == 0) {
                $wtb = true;
                if ($buylist === false) $buylist = array();
                $buylist[] = $o;
            } else {
                ?>
                <tr>
                    <td><?php echo (isset($items[$o['item_id']])) ? $items[$o['item_id']] : $o['item_id']; ?></td>
                    <td><img src="<?php echo "http://".$server."/".$o['item_id'].".".$imageType; ?>" alt="Item Image"></td>
                    <td><?php echo $o['amount']; ?></td>
                    <td><?php echo number_format($o['price'], 0, "", " "); ?></td>
                    <td><?php echo getClock($o['created'], true, true); ?></td>
                    <td><?php echo ($o['anonymous'] == 1) ? 'Anonymous' : "<a target='_BLANK' href='characterprofile.php?name=".$o['player_name']."'>".$o['player_name']."</a>"; ?></td>
                </tr>
                <?php
            }
        }
        ?>
    </table>
    <?php
    if ($buylist !== false) {
        ?>
        <h2>Want to buy:</h2>
        <table class="table tbl-hover">
            <tr class="yellow">
                <td>Item name</td>
                <td>Item</td>
                <td>Count</td>
                <td>Price for 1</td>
                <td>Added</td>
                <td>By</td>
            </tr>
            <?php
            foreach ($buylist as $o) {
                ?>
                <tr>
                    <td><?php echo (isset($items[$o['item_id']])) ? $items[$o['item_id']] : $o['item_id']; ?></td>
                    <td><img src="<?php echo "http://".$server."/".$o['item_id'].".".$imageType; ?>" alt="Item Image"></td>
                    <td><?php echo $o['amount']; ?></td>
                    <td><?php echo number_format($o['price'], 0, "", " "); ?></td>
                    <td><?php echo getClock($o['created'], true, true); ?></td>
                    <td><?php echo ($o['anonymous'] == 1) ? 'Anonymous' : "<a target='_BLANK' href='characterprofile.php?name=".$o['player_name']."'>".$o['player_name']."</a>"; ?></td>
                </tr>
                <?php
            }
            ?>
        </table>
        <?php
    }
    ?>
    <h2>Old purchased offers</h2>
    <table class="table tbl-hover">
        <tr class="yellow">
            <td>Item name</td>
            <td>Item</td>
            <td>Count</td>
            <td>Price for 1</td>
            <td>Offer sold</td>
        </tr>
        <?php
        foreach (($historyOffers ? $historyOffers : array()) as $o) {
        ?>
        <tr>
            <td><?php echo (isset($items[$o['item_id']])) ? $items[$o['item_id']] : $o['item_id']; ?></td>
            <td><img src="<?php echo "http://".$server."/".$o['item_id'].".".$imageType; ?>" alt="Item Image"></td>
            <td><?php echo $o['amount']; ?></td>
            <td><?php echo number_format($o['price'], 0, "", " "); ?></td>
            <td><?php echo getClock($o['inserted'], true, true); ?></td>
        </tr>
        <?php
        }
        ?>
    </table>
    <?php
}
include 'layout/overall/footer.php'; ?>
 
Back
Top