Segue códigos Macêdo:
PostagemDAO:
OBS:
<?php
namespace Vendor\DAO;
use Vendor\Model\Postagem;
use Vendor\DAO\UsuarioDAO;
class PostagemDAO{
private $con;
private $UsuarioDao;
public function __construct($con,$usuarioDao){
$this->con = $con;
$this->usuarioDao = $usuarioDao;
}
public function adiciona(Postagem $postagem, $usuarioId){
$query = "INSERT INTO Postagem (conteudo, data, usuarioId) VALUES (
'".mysql_real_escape_string($postagem->getConteudo())."',
'".mysql_real_escape_string($postagem->getData())."',
'".mysql_real_escape_string($usuarioId)."')";
return mysql_query($query);
}
public function altera(Postagem $postagem){
$query = "UPDATE Postagem SET
conteudo='".mysql_real_escape_string($postagem->getConteudo())."'
WHERE id='".mysql_real_escape_string($postagem->getId())."'";
return mysql_query($query);
}
public function remove($id){
$query = "DELETE FROM Postagem WHERE id = {$id}";
$result = mysql_query($query);
return $result;
}
public function lista($id){
$query = "SELECT * FROM Postagem WHERE usuarioId = {$id} ORDER BY id DESC";
$result = mysql_query($query);
$postagens = array();
while ($postagem = mysql_fetch_object($result,'Vendor\Model\Postagem')) {
$postagem->setData(date("d/m/Y", strtotime($postagem->getData())));
array_push($postagens, $postagem);
}
return $postagens;
}
public function postsPorSemana($usuarioId) {
$query = "SELECT * FROM Postagem WHERE usuarioId = {$usuarioId}";
$result = mysql_query($query);
$postagens = array();
while ($postagem = mysql_fetch_object($result,'Vendor\Model\Postagem')) {
array_push($postagens, $postagem);
}
$numeroDePostagens = sizeof($postagens);
$hoje = new \DateTime(date("Y-m-d"));
$dataDeIngresso = new \dateTime($this->usuarioDao->buscaPorId($usuarioId)->getDataDeIngresso());
$diferenca = ($hoje->diff($dataDeIngresso)->days == 0) ? 1
: ($hoje->diff($dataDeIngresso)->days/7);
return ($numeroDePostagens / $diferenca);
}
}
LoginController:
<?php
namespace Vendor\Controller;
use Vendor\DAO\UsuarioDAO;
use Vendor\DAO\PostagemDAO;
use Vendor\Factory\ConnectionFactory;
use Vendor\Lib\View;
use Vendor\Model\Login;
use Vendor\Model\Usuario;
use Vendor\Lib\Validator;
class LoginController{
private $usuarioDao;
private $postagemDao;
private $login;
private $validator;
public function __construct(){
$con = ConnectionFactory::getConnection();
$this->usuarioDao = new UsuarioDAO($con);
$this->postagemDao = new PostagemDAO($con);
$this->validator = new UsuarioValidator();
}
public function index(){
$view = new View('index','Login');
return $view;
}
public function login(){
$usuario = $this->usuarioDao->login($_POST["email"], $_POST["senha"]);
if($usuario == null) {
$view = new View('index','Login');
$view->viewBag('error','Usuário ou senha inválido.');
return $view;
} else {
Login::logaUsuario($usuario);
header("Location: index.php?c=Index&m=index&usuarioId=".$usuario->getId()."");
}
}
public function logout(){
Login::logout();
header("Location: index.php");
}
public function register(){
$usuario = new Usuario();
$nome = $_POST["nome"];
$email = $_POST["email"];
$senha = $_POST["senha"];
$bio = $_POST["bio"];
$usuario->setNome($nome);
$usuario->setEmail($email);
$usuario->setSenha($senha);
$usuario->setBio($bio);
$view = new View('index','Login');
if($this->validator->validaUsuario($usuario)){
$usuario = $this->usuarioDao->adiciona($usuario);
$view->viewBag('register','Usuario registrado com sucesso!');
}
else{
$view->viewBag('register','nome ou email já existente');
}
return $view;
}
}