From 7ef208fc1ae5a24d7b3cd2e22e969285fbf7262a Mon Sep 17 00:00:00 2001 From: cflip <36554078+cflip@users.noreply.github.com> Date: Sun, 21 Mar 2021 17:29:58 -0600 Subject: Add additional classes and functions --- model/Post.php | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 model/Post.php (limited to 'model/Post.php') diff --git a/model/Post.php b/model/Post.php new file mode 100644 index 0000000..bcaff29 --- /dev/null +++ b/model/Post.php @@ -0,0 +1,82 @@ +id = $id; + $this->content = $row['post_content']; + $this->date = $row['post_date']; + + $this->thread = new Thread(); + $this->thread->get_from_database($row['post_thread'], $dbc); + + $this->author = new User(); + $this->author->get_by_id($row['post_author'], $dbc); + } + } + + mysqli_free_result($result); + } + + function display_content() { + echo '
#' . $this->id . ' Posted by ' . $this->author->name . ' on ' . date('m/d/Y g:ia', strtotime($this->date)) . '
'; + + $post_content = $this->content; + + // $post_content = preg_replace_callback('/>#\d+/', function($matches) use($thread_id, $dbc) { + // return add_quote($dbc, $thread_id, $matches); + // }, $post_content); + + // Replace YouTube URLs with embedded YouTube videos. + $post_content = preg_replace( + "/\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i", + '
', $post_content); + // Replace Image URLs with embedded images. + $post_content = preg_replace('@\b(http(s)?://)([^\s]*?(?:\.[a-z\d?=/_-]+)+(?:\.jpg|\.png|\.gif))(?![^<]*?(?:|/?>))@i', 'http$2://$3', $post_content); + // Replace other URLs with links. + $post_content = preg_replace('@\b(http(s)?://)([^\s]*?(?:\.[a-z\d?=/_-]+)+)(?![^<]*?(?:|/?>))@i', '$0', $post_content); + + echo $post_content; + } +} + +function get_all_posts($dbc) { + $sql = "SELECT post_id FROM posts"; + $result = mysqli_query($dbc, $sql); + + if (!$result) { + echo 'Failed to get posts: ' . mysqli_error($dbc); + } + + $posts = array(); + + if (mysqli_num_rows($result) == 0) { + } else { + while ($row = mysqli_fetch_assoc($result)) { + $post = new Post(); + $post->get_from_database($row['post_id'], $dbc); + array_push($posts, $post); + } + } + + mysqli_free_result($result); + return $posts; +} \ No newline at end of file -- cgit v1.2.3