68 lines
1.1 KiB
PHP
68 lines
1.1 KiB
PHP
/**
|
|
* Lädt alle Kommentare eines Autors.
|
|
*
|
|
* @param string $author E-Mail-Adresse des Autors
|
|
*
|
|
* @return Comment[]
|
|
*/
|
|
public function getCommentsByAuthor($author)
|
|
{
|
|
try {
|
|
$db = $this->getConnection();
|
|
|
|
$sql = "
|
|
SELECT
|
|
id,
|
|
article_id,
|
|
CASE
|
|
WHEN parent_comment_id IS NULL THEN NULL
|
|
WHEN parent_comment_id = '' THEN NULL
|
|
WHEN parent_comment_id = 0 THEN NULL
|
|
ELSE parent_comment_id
|
|
END AS parent_comment_id,
|
|
author,
|
|
content,
|
|
created
|
|
FROM comments
|
|
WHERE author = :author
|
|
ORDER BY created DESC
|
|
";
|
|
|
|
$command = $db->prepare($sql);
|
|
|
|
$command->execute([
|
|
":author" => $author
|
|
]);
|
|
|
|
$comments = [];
|
|
|
|
while ($row = $command->fetch(PDO::FETCH_ASSOC)) {
|
|
$parentCommentId = null;
|
|
|
|
if (
|
|
isset($row["parent_comment_id"])
|
|
&& $row["parent_comment_id"] !== null
|
|
&& $row["parent_comment_id"] !== ""
|
|
&& intval($row["parent_comment_id"]) !== 0
|
|
) {
|
|
$parentCommentId = intval($row["parent_comment_id"]);
|
|
}
|
|
|
|
$comments[] = new Comment(
|
|
intval($row["id"]),
|
|
intval($row["article_id"]),
|
|
$parentCommentId,
|
|
$row["author"],
|
|
$row["content"],
|
|
$row["created"]
|
|
);
|
|
}
|
|
|
|
return $comments;
|
|
|
|
} catch (PDOException $e) {
|
|
throw new RuntimeException(
|
|
"Kommentare konnten nicht geladen werden."
|
|
);
|
|
}
|
|
} |