public function run() { $c = $this->get_controller(); if (!$c->_prep()) { return $c->forward('index', 'index', NULL, array('error' => 'problem loading game')); } elseif (!$c->view->target) { $params = array('error' => 'Cannot find target'); return $c->forward('run', NULL, NULL, $params); } $pid = $c->view->player->identity(); $gid = $c->view->target->identity(); $params = array('group_id' => $gid, 'player' => $pid); $k = Ultimatum_Model_Ultplayergroupknowledge::getInstance()->findOne($params); if ($k->isSaved()) { $c->view->scan = $k; } else { $param = array('error' => 'strange, what group ' . $gid . '?'); $c->forward('run', NULL, NULL, $param); } }
/** * */ public function gameviewstoreAction() { $game_id = $this->_getParam('game'); $game = Ultimatum_Model_Ultgames::getInstance()->get($game_id); $player_ids = $game->player_ids(); $player_group_ids = array_values(Ultimatum_Model_Ultgamegroups::getInstance()->player_group_ids($player_ids, TRUE)); $scanned_group_ids = array_keys(Ultimatum_Model_Ultplayergroupknowledge::getInstance()->last_scans_for_player($player_ids, TRUE)); $group_ids = array_merge($player_group_ids, $scanned_group_ids); array_unique($group_ids); $find_params = array('id' => array($group_ids, 'in')); $groups = Ultimatum_Model_Ultgroups::getInstance()->find($find_params); $out = array(); foreach ($groups as $group) { $data = $group->toArray(); $data['size'] = $group->size_in_game($game_id); $data['title'] = $group->get_title(); $out[] = $data; } $this->_store('id', $out); }