summaryrefslogtreecommitdiff
path: root/plugins/note/init.php
blob: 65f7e04e90a85e135d3ccdd48034010b6f969465 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
class Note extends Plugin {

	function about() {
		return array(null,
			"Adds support for setting article notes",
			"fox");
	}

	function init($host) {
		$host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
	}

	function get_js() {
		return file_get_contents(__DIR__ . "/note.js");
	}

	function get_css() {
		return file_get_contents(__DIR__ . "/note.css");
	}

	function hook_article_button($line) {
		return "<i class='material-icons' onclick=\"Plugins.Note.edit(".$line["id"].")\"
			style='cursor : pointer' title=\"".__('Edit article note')."\">note</i>";
	}

	function edit() : void {
		$id = clean($_REQUEST['id']);

		$sth = $this->pdo->prepare("SELECT note FROM ttrss_user_entries WHERE
			ref_id = ? AND owner_uid = ?");
		$sth->execute([$id, $_SESSION['uid']]);

		if ($row = $sth->fetch()) {

			$note = $row['note'];

			print \Controls\hidden_tag("id", $id);
			print \Controls\pluginhandler_tags($this, "setnote");

			?>
			<textarea dojoType='dijit.form.SimpleTextarea'
				style='font-size : 12px; width : 98%; height: 100px;'
				name='note'><?= $note ?></textarea>
			<?php
		}
		?>
		<footer class='text-center'>
			<?= \Controls\submit_tag(__('Save')) ?>
			<?= \Controls\cancel_dialog_tag(__('Cancel')) ?>
		</footer>
		<?php
	}

	function setNote() : void {
		$id = (int)clean($_REQUEST["id"]);
		$note = clean($_REQUEST["note"]);

		$sth = $this->pdo->prepare("UPDATE ttrss_user_entries SET note = ?
			WHERE ref_id = ? AND owner_uid = ?");
		$sth->execute([$note, $id, $_SESSION['uid']]);

		print json_encode(["id" => $id, "note" => $note]);
	}

	function api_version() {
		return 2;
	}

}