Exemple #1
0
 /**
  *
  *
  */
 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();
         }
     }
 }