plein de modifs :O

This commit is contained in:
2019-03-03 20:53:57 +01:00
parent c2e310e5d9
commit 1800118247
23 changed files with 486 additions and 199 deletions

View File

@ -14,6 +14,8 @@ class Author {
private $job;
private $role = "ROLE_USER";
public function __construct(){}
public function getId() {
@ -36,6 +38,10 @@ class Author {
return $this->job;
}
public function getRole() {
return $this->role;
}
public function setId($id) {
$this->id = $id;
}
@ -45,13 +51,21 @@ class Author {
}
public function setPassword($password) {
$this->password = \password_hash($password, PASSWORD_DEFAULT);
$this->password = password_hash($password, PASSWORD_DEFAULT);
}
public function setHashedPassword($password) {
$this->password = $password;
}
public function setJob($job) {
$this->job = $job;
}
public function setRole($role) {
$this->role = $role;
}
@ -60,11 +74,13 @@ class Author {
public static function fromArray($array) {
if($array == false) return null;
$au = new Self();
$au->setId($array["id"]);
$au->setUsername($array["username"]);
$au->setPassword($array["password"]);
$au->setHashedPassword($array["password"]);
$au->setJob($array["job"]);
$au->setRole($array["role"]);
return $au;
}
@ -88,16 +104,33 @@ class Author {
return Author::fromArray(Functions::connect()->query("SELECT * FROM users WHERE id=" . $id)->fetch());
}
public static function getByUsername(String $username) {
$query = "SELECT * FROM users WHERE username=:username";
$prepared = Functions::connect()->prepare($query);
$prepared->bindValue(":username", $username);
$prepared->execute();
return Author::fromArray($prepared->fetch());
}
public static function add(Author $author) {
$query = "INSERT INTO author (id, username, password, job)
VALUES (NULL, ':username', ':password', ':job');";
$query = "INSERT INTO users (id, username, password, job, role)
VALUES (NULL, :username, :password, :job, :role);";
$username = $author->getUsername();
$password = $author->getPassword();
$job = $author->getJob();
$role = $author->getRole();
$pdo = Functions::connect();
$prepared = $pdo->prepare($query);
$prepared->bindParam(":username", $author->getUsername());
$prepared->bindParam(":password", $author->getPassword());
$prepared->bindParam(":job", $author->getjob());
$prepared->bindParam(":username", $username);
$prepared->bindParam(":password", $password);
$prepared->bindParam(":job", $job);
$prepared->bindParam(":role", $role);
$prepared->execute();
// var_dump($prepared->errorInfo());
// die;
return Author::list(true, 1)[0];
}
public static function remove(Author $author) {

View File

@ -69,7 +69,8 @@ class Post {
}
public function getCategory() {
return Category::get($this->category);
if($this->category != null) return Category::get($this->category);
else return null;
}
public function getAuthor() {
@ -87,10 +88,14 @@ class Post {
public function getTags() {
$temp = array();
if ($this->tags == null) return $temp;
/** @var int $tag */
foreach ($this->tags as $tag) {
// var_dump($tag);
// die;
$temp[] = Tag::get($tag);
}
return $temp;
// die;
return array_unique($temp, SORT_REGULAR);
}
@ -129,7 +134,7 @@ class Post {
* @param boolean $recent sort by most recent or not
* @param integer $limit limit the number of result
*
* @return array(Post)
* @return Post[]
*/
public static function list($recent = true, $limit = 100) {
@ -219,32 +224,42 @@ class Post {
*
*/
public static function add(Post $post) {
$query = "INSERT INTO posts (id, title, content, categorie, author, dt)
VALUES (NULL, ':title', ':content', ':category', ':author', ':dt');";
$query = "INSERT INTO posts (id, title, content, category, author, dt)
VALUES (NULL, :title, :content, :category, :author, :dt);";
$title = $post->getTitle());
$content = $post->getContent());
$category = $post->getCategory()->getId(), PDO::PARAM_INT);
$author = $post->getAuthor()->getId(), PDO::PARAM_INT);
$dt = (new DateTime())->format("d/m/Y h:i:s"));
$title = $post->getTitle();
$content = $post->getContent();
$category = $post->getCategory()->getId();
$author = $post->getAuthor()->getId();
$dt = (new DateTime())->format("d/m/Y h:i:s");
$pdo = Functions::connect();
$prepared = $pdo->prepare($query);
$prepared->bindParam(":title", $post->getTitle());
$prepared->bindParam(":content", $post->getContent());
$prepared->bindParam(":category", $post->getCategory()->getId(), PDO::PARAM_INT);
$prepared->bindParam(":author", $post->getAuthor()->getId(), PDO::PARAM_INT);
$prepared->bindParam(":dt", (new DateTime())->format("d/m/Y h:i:s"));
$prepared->bindValue(":title", $title);
$prepared->bindValue(":content", $content);
$prepared->bindValue(":category", $category, PDO::PARAM_INT);
$prepared->bindValue(":author", $author, PDO::PARAM_INT);
$prepared->bindValue(":dt", $dt);
var_dump($prepared->execute(array(
":title" => $post->getTitle(),
":content" => $post->getContent(),
":category" => $post->getCategory()->getId(),
":author" => $post->getAuthor()->getId(),
":dt" => (new DateTime())->format("d/m/Y h:i:s"),
)));
var_dump("t");
$prepared->execute();
$p = Post::list(true, 1)[0]->getId();
$tags = $post->getTags();
var_dump($tags);
if(count($tags) >= 1) {
$q = "INSERT INTO post_tag (post_id, tag) VALUES ( :post , :tag )";
$prepared = $pdo->prepare($q);
$prepared->bindValue(":post", $p);
foreach ($tags as $tg) {
$id = $tg->getId();
$prepared->bindValue(":tag", $id);
$prepared->execute();
}
}
// var_dump($prepared->errorInfo());
}
@ -272,14 +287,39 @@ class Post {
*
*/
public static function update(Post $post) {
Functions::connect()->prepare("UPDATE posts SET title=':title', content=':content', category=':category', author=':author', dt=':dt' WHERE id=:id")->execute(array(
":title" => $post->getTitle(),
":content" => $post->getContent(),
":categorie" => $post->getCategorie(),
":author" => $post->getAuthor(),
":dt" => $post->getDt(),
":id" => $post->getId()
));
$title = $post->getTitle();
$content = $post->getContent();
$category = $post->getCategory()->getId();
$author = $post->getAuthor()->getId();
$dt = $post->getDateTime();
$id = $post->getid();
$pdo = Functions::connect();
$prepared = $pdo->prepare("UPDATE posts SET title=:title, content=:content, category=:category, author=:author, dt=:dt WHERE id=:id");
$prepared->bindValue(":title", $title);
$prepared->bindValue(":content", $content);
$prepared->bindValue(":category", $category, PDO::PARAM_INT);
$prepared->bindValue(":author", $author, PDO::PARAM_INT);
$prepared->bindValue(":dt", $dt);
$prepared->bindValue(":id", $id);
$prepared->execute();
$tags = $post->getTags();
if(count($tags) >= 1) {
$pdo->exec("DELETE FROM post_tag WHERE post_id=" . $id);
$q = "INSERT INTO post_tag (post_id, tag) VALUES ( :post , :tag )";
$prepared = $pdo->prepare($q);
$prepared->bindValue(":post", $id);
foreach ($tags as $tg) {
$id = $tg->getId();
$prepared->bindValue(":tag", $id);
$prepared->execute();
}
}
}
}

View File

@ -15,6 +15,7 @@ class Tag {
public function __construct() {}
public static function fromArray($array) {
if($array == false) return false;
$tag = new Tag();
$tag->setId($array["id"]);
$tag->setName($array["name"]);
@ -27,7 +28,7 @@ class Tag {
* @param boolean $recent sort by most recent of less recent
* @param int $limit
*
* @return Categorie[]
* @return Tag[]
*/
public static function list($recent = true, $limit = 100) {
$sort = $recent ? "DESC" : "ASC";
@ -49,6 +50,23 @@ class Tag {
return Tag::fromArray(Functions::connect()->query("SELECT * FROM tag WHERE id=" . $id)->fetch());
}
public static function getByName(String $name) {
$query = "SELECT * FROM tag WHERE name=:name LIMIT 1";
$prepared = Functions::connect()->prepare($query);
$prepared->bindValue(":name", $name, PDO::PARAM_STR);
// $prepared->fetch();
// $q = Functions::connect()->query("SELECT * FROM tag WHERE name=\"" . $name . "\"");
// if(!$q) return false;
$prepared->execute();
$res = $prepared->fetch(PDO::FETCH_ASSOC);
// var_dump($res);
return Tag::fromArray($res);
// var_dump($name);
// var_dump($prepared->fetch());
// var_dump($prepared->errorCode());
// die;
}
/**
* Undocumented function
*
@ -62,10 +80,11 @@ class Tag {
// var_dump($tag);
$name = $tag->getName();
$pdo = Functions::connect();
$prepared = $pdo->prepare($query);
$prepared->execute(array(":name" => $tag->getName()));
$prepared->execute(array(":name" => $name));
return Tag::list(true, 1)[0];
}
@ -108,5 +127,6 @@ class Tag {
}
public function setId($id) {
$this->id = $id;
return $this;
}
}