예제 #1
0
 public function onlineAction()
 {
     $ip = $_SERVER['REMOTE_ADDR'];
     $date = new \DateTime();
     $em = $this->getDoctrine()->getManager();
     $user_ip = $em->getRepository('NewsMainBundle:Online')->findOneBy(array('user_ip' => $ip));
     if (!$user_ip) {
         $last_visit = new Online();
         $last_visit->setUserIp($ip);
         $last_visit->setLastVisit($date);
         $em->persist($last_visit);
         $em->flush();
     } else {
         $user_ip->setLastVisit($date);
         $em->flush();
     }
     $offline = $this->getDoctrine()->getRepository('NewsMainBundle:Online')->deleteUsersOfflineFromDb();
     $online = $this->getDoctrine()->getRepository('NewsMainBundle:OnLine')->getUsersOnline();
     if ($online) {
         $count_users_online = count($online);
     } else {
         $count_users_online = 0;
     }
     return $this->render('NewsMainBundle:Default:online.html.twig', array('count_users_online' => $count_users_online));
 }