protected function notifyToTalCapSciencesMax() { $capscience_total_score = XpTable::getInstance()->getTotalScore(); $capscience_max_score = sfConfig::get("app_capsciences_max"); $visiteur_id = $this->getVisiteurId(); if ($capscience_total_score > $capscience_max_score) { $message = sprintf("Grace à toi, Cap Sciences a atteint %s XP !!!!!", $capscience_total_score); $this->notifyToVisiteur("Champion", $message); } else { var_dump(sprintf("rien a faire %s < %s", $capscience_total_score, $capscience_max_score)); } }
public function setFirstUniversStatus() { if ($univers_id = sfConfig::get('app_cyou_univers_id', 'CE81341D20E16C61E60DB52BF5F466D1')) { // medaille first medaille to insert $first_medaille = Doctrine_Core::getTable('UniversMedaille')->createQuery('um')->select('um.medaille_id')->leftJoin('um.Medaille m')->where('um.univers_id = ?', $univers_id)->andWhere('m.is_first_medaille = 1')->limit(1)->fetchOne(); if ($first_medaille !== false && $first_medaille->getMedailleId() !== null) { // insert visiteur medaille VisiteurMedailleTable::createVisiteurMedaille($this->getGuid(), $first_medaille->getMedailleId(), $univers_id, $this->getContexteCreationId()); $univers_status = Doctrine_Core::getTable('UniversStatus')->createQuery('us')->where('us.univers_id = ?', $univers_id)->orderBy('level asc')->limit(1)->fetchOne(); if ($univers_status !== false && $univers_status->getGuid() !== null) { $gain_id = null; $expiration_days = 0; if ($univers_status->getGainId() != null) { $gain_id = $univers_status->getGainId(); $expiration_days = $univers_status->getGain()->getExpirationDays(); } VisiteurUniversStatusGainTable::setNewVisiteurUniversStatus($univers_status->getGuid(), $univers_id, $this->getGuid(), $gain_id, $expiration_days, $this->getContexteCreationId()); //LogVisiteTable::createLogVisite($this->getGuid(), '999', $this->getContexteCreationId()); XpTable::createXp(XpTable::TYPO_CONNAISSANCE, $this->getGuid(), '333'); XpTable::createXp(XpTable::TYPO_PLAISIR, $this->getGuid(), '333'); XpTable::createXp(XpTable::TYPO_ECHANGE, $this->getGuid(), '333'); } } } }
private function registerLuaApi(Lua $lua) { // Map getEntity $lua->registerCallback('getEntity', function ($type, $guid) { $objectTable = call_user_func(array($type . 'Table', 'getInstance')); $object = call_user_func(array($objectTable, 'find'), array($guid)); return $object->toArray(); }); // Map sendNotification $lua->registerCallback('sendNotification', function ($type, $dest, $options, $model) { caNotificationsTools::getInstance()->sendNotification($type, $dest, $options, $model); }); // Map sendMail $lua->registerCallback('sendMail', function ($dest, $subject, $message) { sfContext::getInstance()->getMailer()->composeAndSend('*****@*****.**', $dest, $subject, $message); }); // Map createMedailleVisiteur $lua->registerCallback('createVisiteurMedaille', function ($visiteur_id, $medaille_id, $connection = 'insitu') { $medaille = Doctrine_Core::getTable('Medaille')->findOneByGuid($medaille_id); $visiteur_medaille = new VisiteurMedaille(); $visiteur_medaille->setGuid(Guid::generate()); $visiteur_medaille->setMedailleId($medaille_id); $visiteur_medaille->setVisiteurId($visiteur_id); $visiteur_medaille->setConnection($connection); if (!($visiteur_medaille->hasAlreadyMedaille($connection) && $medaille->getIsUnique())) { $visiteur_medaille->save(); } }); // Map date $lua->registerCallback('date', function ($format) { return date($format); }); // Map varDump $lua->registerCallback('varDump', function ($data) { return var_dump($data); }); // Map isBestScoreInteractif $lua->registerCallback('isBestScoreInteractif', function ($logVisiteObj) { $interactif_id = $logVisiteObj['interactif_id']; $log_visite_guid = $logVisiteObj['guid']; $visiteur_id = $logVisiteObj['visiteur_id']; $score = $logVisiteObj['score']; $log_visite_highscore = LogVisiteTable::getInstance()->getHighScoreByInteractif($interactif_id); // $log_visite = Doctrine_Core::getTable('LogVisite')->findOneByGuid($log_visite_guid); if ($score == $log_visite_highscore['highscore']) { return true; } return false; }); // Map isUserBestScoreInteractif $lua->registerCallback('isVisiteurBestScoreInteractif', function ($logVisiteObj) { $interactif_id = $logVisiteObj['interactif_id']; $log_visite_guid = $logVisiteObj['guid']; $visiteur_id = $logVisiteObj['visiteur_id']; $score = $logVisiteObj['score']; //$log_visite = Doctrine_Core::getTable('LogVisite')->findOneByGuid($log_visite_guid); $log_visite_highscore = LogVisiteTable::getInstance()->getVisiteurHighScoreByInteractif($interactif_id, $visiteur_id); if ($score == $log_visite_highscore['highscore'] && $visiteur_id == $log_visite_highscore['visiteur_id']) { return true; } return false; }); // Map nbLogVisiteExposition $lua->registerCallback('nbLogVisiteExposition', function ($exposition_id, $visiteur_id) { $count_log_visite = LogVisiteTable::getInstance()->countLogVisiteByExposition($exposition_id, $visiteur_id); return $count_log_visite; }); // Map nbLogVisiteExposition $lua->registerCallback('hasVisiteMultiPlateforme', function ($logVisiteObj) { $interactif_id = $logVisiteObj['interactif_id']; $visiteur_id = $logVisiteObj['visiteur_id']; $count_log_visite = LogVisiteTable::getInstance()->hasLogVisiteMultiPlateforme($interactif_id, $visiteur_id); return $count_log_visite; }); // Map getTotalXP $lua->registerCallback('getTotalScore', function () { $capscience_total_score = XpTable::getInstance()->getTotalScore(); return $capscience_total_score; }); // Map nbLogVisiteExposition $lua->registerCallback('getTotalScoreByVisiteur', function ($visiteur_id) { $visiteur = Doctrine_Core::getTable('Visiteur')->findOneByGuid($visiteur_id); $visiteur_score = $visiteur->getTotalXp(); return $visiteur_score; }); // Map nbLogVisiteExposition $lua->registerCallback('getTotalScoreByTypologieAndVisiteur', function ($typologie_id, $visiteur_id) { $visiteur_score_by_typlogie = XpTable::getInstance()->getTotalScoreByTypologieAndVisiteur($typologie_id, $visiteur_id); return $visiteur_score_by_typlogie; }); // create new notification $lua->registerCallback('createNotification', function ($visiteur_id, $libelle, $params = array()) { $notif = new Notification(); $notif->setLibelle($libelle); $notif->setVisiteurId($visiteur_id); if (isset($params['visite_id'])) { $notif->setVisiteId($params['visite_id']); } if (isset($params['from_model'])) { $notif->setFromModel($params['from_model']); } if (isset($params['from_model_id'])) { $notif->setFromModelId($params['from_model_id']); } if (isset($params['parameter'])) { $notif->setParameter(json_encode((array) $params['parameter'])); } $notif->save(); }); }