public static function ItemClasses($JSONP)
 {
     $Result = Items::ItemSubClass(null, null, false, true);
     $JSONArray = [];
     foreach ($Result as $Key => $Value) {
         $ClassArray = [];
         $ClassArray['class'] = $Key;
         $ClassArray['name'] = Items::ItemClass($Key)['translation'];
         $ClassArray['subclasses'] = [];
         foreach ($Value as $SKey => $SValue) {
             $ClassArray['subclasses'][] = ['subclass' => $SValue['subclass'], "name" => $SValue['translation']];
         }
         $JSONArray[] = $ClassArray;
     }
     parent::Encode($JSONArray, $JSONP, 'classes');
 }
 public static function GetAllItems($Offset)
 {
     global $FCCore;
     $Result = array();
     $Statement = Items::$WConnection->prepare('
         SELECT
             it.*,
             LOWER(fi.iconname) as icon
         FROM
             item_template it
         LEFT JOIN ' . $FCCore['Database']['database'] . '.freedomcore_icons fi ON
             it.displayid = fi.id
         ORDER BY it.ItemLevel DESC
         LIMIT 50 OFFSET ' . $Offset . '
     ');
     $Statement->execute();
     $Result['item_list'] = $Statement->fetchAll(PDO::FETCH_ASSOC);
     for ($i = 0; $i < 1; $i++) {
         $Result['category_data'] = array('name' => Items::ItemClass($Result['item_list'][$i]['class']));
     }
     $Index = 0;
     foreach ($Result['item_list'] as $Item) {
         $Result['item_list'][$Index]['subclass'] = Items::ItemSubClass($Item['class'], $Item['subclass']);
         $Result['item_list'][$Index]['class'] = Items::ItemClass($Item['class']);
         $Index++;
     }
     return array('count' => Items::SelectCount('item_template'), 'items' => $Result);
 }
 private static function SearchForItems($ItemName)
 {
     global $FCCore;
     $Statement = Search::$WConnection->prepare('
       SELECT
       *,
       LOWER(fi.iconname) as icon
         FROM
           item_template it
         LEFT JOIN ' . $FCCore['Database']['database'] . '.freedomcore_icons fi ON
             it.displayid = fi.id
         WHERE name LIKE ?
         ORDER BY it.ItemLevel DESC');
     $Statement->execute(array('%' . $ItemName . '%'));
     $Result = $Statement->fetchAll(PDO::FETCH_ASSOC);
     if (empty($Result)) {
         return false;
     } else {
         $Index = 0;
         foreach ($Result as $Item) {
             $Result[$Index]['subclass'] = Items::ItemSubClass($Item['class'], $Item['subclass']);
             $Result[$Index]['class'] = Items::ItemClass($Item['class']);
             $Index++;
         }
         return $Result;
     }
 }
 private static function GetItemArrayData($ItemArray)
 {
     global $FCCore;
     $SQL = 'SELECT
             it.entry,
             it.class,
             it.subclass,
             it.name,
             it.displayid,
             it.Quality,
             it.BuyPrice,
             it.SellPrice,
             it.bonding,
             it.RequiredLevel,
             it.InventoryType,
             LOWER(fi.iconname) as icon
         FROM
             item_template it
         LEFT JOIN ' . $FCCore['Database']['database'] . '.freedomcore_icons fi ON
             it.displayid = fi.id
         WHERE
             entry IN (' . $ItemArray . ')';
     $Statement = Zones::$WConnection->prepare($SQL);
     $Statement->execute();
     $Result = $Statement->fetchAll(PDO::FETCH_ASSOC);
     $ArrayIndex = 0;
     foreach ($Result as $Item) {
         $Result[$ArrayIndex]['subclass'] = Items::ItemSubClass($Item['class'], $Item['subclass']);
         $Result[$ArrayIndex]['class'] = Items::ItemClass($Item['class']);
         $Result[$ArrayIndex]['BuyPrice'] = Text::MoneyToCoins($Item['BuyPrice']);
         $Result[$ArrayIndex]['SellPrice'] = Text::MoneyToCoins($Item['SellPrice']);
         $Result[$ArrayIndex]['bond_translation'] = Items::BondTranslation($Item['bonding']);
         $Result[$ArrayIndex]['it_translation'] = Items::InventoryTypeTranslation($Item['InventoryType']);
         $ArrayIndex++;
     }
     return $Result;
 }