X-Git-Url: https://disinclined.org/git/?a=blobdiff_plain;f=model%2Fnote.php;fp=model%2Fnote.php;h=01338be29f03aec67d2537f68b94452abe5d2985;hb=4db3a80e869ec8b8c3e0c3f8401c8df12ff5c553;hp=0000000000000000000000000000000000000000;hpb=7c68050a90dac5eec6b27f895deb9aeabf49cd47;p=dylansserver.git
diff --git a/model/note.php b/model/note.php
new file mode 100644
index 0000000..01338be
--- /dev/null
+++ b/model/note.php
@@ -0,0 +1,124 @@
+comments_enabled = true;
+ }
+ $url = htmlspecialchars($_SERVER['REQUEST_URI']);
+ if (isset($_GET['verify'])) {
+ $url = substr($url, 0, (strlen($url)-6));
+ }
+ $this->url = $url;
+ $sql = "SELECT title, date_posted, text, id
+ FROM notes WHERE url = ?";
+ $result = $this->query($sql, "s",
+ $_GET['note']);
+ if ($result) {
+ $entry = $result[0];
+ $this->id = $entry["id"];
+ $this->title = $entry["title"];
+ $date_posted = explode("-", $entry["date_posted"]);
+ $this->year_posted = $date_posted[0];
+ $this->month_posted = $date_posted[1];
+ $datetime_posted = explode(' ', $date_posted[2]);
+ $this->day_posted = $datetime_posted[0];
+ $this->text = $entry["text"];
+ } else {
+ throw new notFound();
+ }
+ $sql = "SELECT COUNT(*) FROM comments
+ WHERE note = $this->id";
+ $result = $this->db->query($sql);
+ $result = $result->fetch_array();
+ $this->number_of_comments = $result[0];
+ if (isset($_GET['verify'])) {
+ $this->verify();
+ }
+ }
+
+ public function display() {
+ require_once("view/note.php");
+ }
+
+ public function verify() {
+ if (!isset($_POST['captcha'])) {
+ require_once('includes/recaptchalib.php');
+ echo "
";
+ $resp = recaptcha_check_answer ($this->recaptcha_privatekey,
+ $_SERVER["REMOTE_ADDR"],
+ $_POST["recaptcha_challenge_field"],
+ $_POST["recaptcha_response_field"]);
+ if (!$resp->is_valid) {
+ $this->failed_captcha = true;
+ }
+ }
+ if (isset($_POST['captcha']) || $resp->is_valid) {
+ $sql = ("INSERT INTO comments (date_posted, author,
+ text, note)
+ VALUES(NOW(), ?, ?, ?)");
+ $stmt = $this->db->prepare($sql);
+ // Checks are needed here (no blank text,
+ // and a default author needs to be set
+ // for no-javascript users.
+ $stmt->bind_param('sss',
+ $_POST['name'],
+ $_POST['text'],
+ $this->id);
+ $stmt->execute();
+ }
+ }
+
+ public function display_comment_link() {
+ if ($this->number_of_comments > 0) {
+ $anchor_text = "comments($this->number_of_comments)/";
+ } else {
+ $anchor_text = "comment?";
+ }
+ if (substr($this->url, (strlen($this->url)-1), strlen($this->url)) == '/') {
+ $url = $this->url . 'comments/';
+ } else {
+ $url = $this->url . '/comments/';
+ }
+ echo "$anchor_text";
+ }
+
+ public function display_comments() {
+ echo "
" . htmlspecialchars($author) . "
"; + echo "