prepare("INSERT INTO notes (title, content, owner_id) VALUES (?, ?, ?)"); $stmt->execute([$_POST['title'], $_POST['content'], $user_id]); } if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['share_note'])) { $n_id = $_POST['note_id']; $share = $_POST['share_target']; // 'user_1' $parts = explode('_', $share); $stmt = $pdo->prepare("INSERT INTO note_shares (note_id, share_type, share_id) VALUES (?, ?, ?)"); $stmt->execute([$n_id, $parts[0], $parts[1]]); $n = query("SELECT title FROM notes WHERE id=?", [$n_id])->fetch(); $msg = "A note '{$n['title']}' has been shared with you."; if($parts[0] === 'user') notify_user($parts[1], $msg); else notify_group($parts[1], $msg); } // Fetch Notes $user_groups = get_user_groups($user_id); $my_group_ids = array_column($user_groups, 'id'); $group_in = implode(',', array_fill(0, count($my_group_ids), '?')) ?: '0'; $sql = "SELECT n.*, (n.owner_id = ?) as is_mine FROM notes n LEFT JOIN note_shares ns ON n.id = ns.note_id WHERE n.owner_id = ? OR (ns.share_type='user' AND ns.share_id = ?) OR (ns.share_type='group' AND ns.share_id IN ($group_in)) GROUP BY n.id ORDER BY n.created_at DESC"; $params = array_merge([$user_id, $user_id, $user_id], $my_group_ids); $stmt = $pdo->prepare($sql); $stmt->execute($params); $notes = $stmt->fetchAll(); $all_users = query("SELECT id, username FROM users WHERE id != ?", [$user_id])->fetchAll(); $all_groups = query("SELECT * FROM groups")->fetchAll(); ?>

Markdown Notes

Create Note

My Notes

Shared' : '' ?>

No notes written yet.