/** * Action pour la création. * * @return array */ public function createAction() { $oForm = new \Commun\Form\ZoneForm(); //new \Commun\Form\ZoneForm($this->getServiceLocator()); $oRequest = $this->getRequest(); $oFiltre = new \Commun\Filter\ZoneFilter(); $oForm->setInputFilter($oFiltre->getInputFilter()); if ($oRequest->isPost()) { $oEntite = new \Commun\Model\Zone(); $oForm->setData($oRequest->getPost()); if ($oForm->isValid()) { $oEntite->exchangeArray($oForm->getData()); $this->getTableZone()->insert($oEntite); $this->flashMessenger()->addMessage($this->_getServTranslator()->translate("La zone a été créé avec succès."), 'success'); return $this->redirect()->toRoute('backend-zone-list'); } } // Pour optimiser le rendu $oViewModel = new ViewModel(); $oViewModel->setTemplate('backend/zone/create'); return $oViewModel->setVariables(array('form' => $oForm)); }
/** * Extrait les information de la guilde des donnes de battlnet et et les transforme en objet utilisable de notre coté. * @param type $aDataZoneBnet * @return \Core\Model\Zone * @throws Exception */ public static function extraitZoneDepuisBnetZone($aDataZoneBnet) { if (!isset($aDataZoneBnet)) { throw new \Exception("Les datas pour l'extraction de zone issues de bnet ne peuvent être vide."); } $oZone = new \Commun\Model\Zone(); $oZone->setIdZone($aDataZoneBnet['id']); $oZone->setNom($aDataZoneBnet['name']); $oZone->setIsDonjon($aDataZoneBnet['isDungeon']); $oZone->setIsRaid($aDataZoneBnet['isRaid']); $oZone->setLvlMax($aDataZoneBnet['advisedMinLevel']); $oZone->setLvlMin($aDataZoneBnet['advisedMaxLevel']); $oZone->setPatch($aDataZoneBnet['patch']); $oZone->setModeDifficulte($aDataZoneBnet['availableModes']); $aTaille = explode('-', $aDataZoneBnet['numPlayers']); if (count($aTaille) == 1) { $iTailleMin = $iTailleMax = $aDataZoneBnet['numPlayers']; } else { $iTailleMin = $aTaille[0]; $iTailleMax = $aTaille[1]; } $oZone->setTailleMin($iTailleMin); $oZone->setTailleMax($iTailleMax); return $oZone; }