/** * * */ public static function actualUser($userid, $kind = 1) { if ($userid > 1) { $userrepository = MUBoard_Util_Model::getUserRepository(); $where = 'tbl.userid = \'' . DataUtil::formatForStore($userid) . '\''; $user = $userrepository->selectWhere($where); if (count($user) == 1) { $user = $user[0]; $serviceManager = ServiceUtil::getManager(); $entityManager = $serviceManager->getService('doctrine.entitymanager'); if ($kind == 1) { $user->setLastVisit(DateUtil::getDatetime()); } if ($kind == 2) { $user->setNumberPostings($user->getNumberPostings() + 1); } $entityManager->flush(); $rank = $user->getRank(); if (isset($rank)) { $rankid = $rank->getId(); } if (isset($rankid)) { $rankrepository = MUBoard_Util_Model::getRankRepository(); $rank = $rankrepository->selectById($rankid); $rankspecial = $rank->getSpecial(); $rankMaxPostings = $rank->getMaxPostings(); // check if it is a special rank if ($rankspecial == 1) { // nothing to do } else { // is no special rank $numberPostings = $user->getNumberPostings(); if ($numberPostings > $rankMaxPostings) { $where = 'tbl.minPostings <= \'' . DataUtil::formatForStore($numberPostings) . '\''; $where .= ' AND '; $where = 'tbl.maxPostings >= \'' . DataUtil::formatForStore($numberPostings) . '\''; $rank = $rankrepository->selectWhere($where); if ($rank) { $newRank = $rankrepository->selectById($rank[0]['id']); if (count($newRank) == 1) { $user->setRank($newRank); $entityManager->flush(); } } } } } else { $rankrepository = MUBoard_Util_Model::getRankRepository(); $where = 'tbl.minPostings <= 1'; $rank = $rankrepository->selectWhere($where); if ($rank) { $firstRank = $rankrepository->selectById($rank[0]['id']); if (isset($firstRank)) { $user->setRank($firstRank); $entityManager->flush(); } } } } else { $serviceManager = ServiceUtil::getManager(); $entityManager = $serviceManager->getService('doctrine.entitymanager'); $user = new MUBoard_Entity_User(); $user->setLastVisit(DateUtil::getDatetime()); $user->setUserid($userid); $user->setNumberPostings(0); $entityManager->persist($user); $entityManager->flush(); } } }