1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
<?php
namespace Login\LoginBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Login\LoginBundle\Entity\Users;
use Login\LoginBundle\Modals\Login;
class DefaultController extends Controller {
public function indexAction(Request $request) {
$session = $this->getRequest()->getSession();
$em = $this->getDoctrine()->getEntityManager();
$repository = $em->getRepository('LoginLoginBundle:Users');
if ($request->getMethod() == 'POST') {
$session->clear();
$username = $request->get('username');
$password = sha1($request->get('password'));
$remember = $request->get('remember');
$user = $repository->findOneBy(array('userName' => $username, 'password' => $password));
if ($user) {
if ($remember == 'remember-me') {
$login = new Login();
$login->setUsername($username);
$login->setPassword($password);
$session->set('login', $login);
}
return $this->render('LoginLoginBundle:Default:welcome.html.twig', array('name' => $user->getFirstName()));
} else {
return $this->render('LoginLoginBundle:Default:login.html.twig', array('name' => 'Login Error'));
}
} else {
if ($session->has('login')) {
$login = $session->get('login');
$username = $login->getUsername();
$password = $login->getPassword();
$user = $repository->findOneBy(array('userName' => $username, 'password' => $password));
if ($user) {
$page = $request->get('page');
$count_per_page = 50;
$total_count = $this->getTotalCountries();
$total_pages=ceil($total_count/$count_per_page);
if(!is_numeric($page)){
$page=1;
}
else{
$page=floor($page);
}
if($total_count<=$count_per_page){
$page=1;
}
if(($page*$count_per_page)>$total_count){
$page=$total_pages;
}
$offset=0;
if($page>1){
$offset = $count_per_page * ($page-1);
}
$em = $this->getDoctrine()->getEntityManager();
$ctryQuery = $em->createQueryBuilder()
->select('c')
->from('LoginLoginBundle:Country', 'c')
->setFirstResult($offset)
->setMaxResults($count_per_page);
$ctryFinalQuery = $ctryQuery->getQuery();
$countries = $ctryFinalQuery->getArrayResult();
return $this->render('LoginLoginBundle:Default:welcome.html.twig', array('name' => $user->getFirstName(),'countries'=>$countries,'total_pages'=>$total_pages,'current_page'=> $page));
}
}
return $this->render('LoginLoginBundle:Default:login.html.twig');
}
}
public function getTotalCountries() {
$em = $this->getDoctrine()->getEntityManager();
$countQuery = $em->createQueryBuilder()
->select('Count(c)')
->from('LoginLoginBundle:Country', 'c');
$finalQuery = $countQuery->getQuery();
$total = $finalQuery->getSingleScalarResult();
return $total;
}
public function signupAction(Request $request) {
if ($request->getMethod() == 'POST') {
$username = $request->get('username');
$firstname = $request->get('firstname');
$password = $request->get('password');
$user = new Users();
$user->setFirstName($firstname);
$user->setPassword(sha1($password));
$user->setUserName($username);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($user);
$em->flush();
}
return $this->render('LoginLoginBundle:Default:signup.html.twig');
}
public function logoutAction(Request $request) {
$session = $this->getRequest()->getSession();
$session->clear();
return $this->render('LoginLoginBundle:Default:login.html.twig');
}
} |
Partager