public function getLoot()
 {
     $loot = Yii::app()->cache->get('creature_' . $this->lootid . '_loot');
     if ($loot === false) {
         $loot = WowDropLoot::loot('creature_loot_template', $this->lootid);
         Yii::app()->cache->set('creature_' . $this->lootid . '_loot', $loot);
     }
     $dataProvider = new CArrayDataProvider($loot, array('keyField' => 'entry'));
     return $dataProvider;
 }
 public function getDisenchantFrom()
 {
     $drop = Yii::app()->cache->get('item_' . $this->entry . '_disenchantFrom');
     if ($drop === false) {
         $drop_de = WowDropLoot::drop('disenchant_loot_template', $this->entry);
         $drop = array();
         if ($drop_de) {
             foreach ($drop_de as $lootid => $drop_info) {
                 $rows = $this->dbConnection->createCommand("\n                            SELECT displayid, entry, name, itemLevel, Quality\n                            FROM item_template\n                            WHERE DisenchantID = {$lootid}")->queryAll();
                 foreach ($rows as $row) {
                     $row['icon'] = Yii::app()->db->createCommand("SELECT icon FROM wow_icons WHERE displayid = {$row['displayid']} LIMIT 1")->queryScalar();
                     $drop[] = array_merge($row, $drop_info);
                 }
             }
         }
         Yii::app()->cache->set('item_' . $this->entry . '_disenchantFrom', $drop);
     }
     $dataProvider = new CArrayDataProvider($drop, array('keyField' => 'entry', 'pagination' => false));
     return $dataProvider;
 }