[ Mini Kiebo ]
Server: Windows NT AKFAR_SERVER 10.0 build 26200 (Windows 10) AMD64
Path:
D:
/
xampp
/
htdocs
/
campus_repo
/
src
/
[
Home
]
File: document.php
<?php require_once __DIR__ . '/Database.php'; class Document { // Buat dokumen baru public static function create($data) { $pdo = Database::getConnection(); $stmt = $pdo->prepare(" INSERT INTO documents (title, authors, abstract, keywords, year, type, file_path, mime_type, size_bytes, uploader_id, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "); return $stmt->execute([ $data['title'], $data['authors'], $data['abstract'], $data['keywords'], $data['year'], $data['type'], $data['file_path'], $data['mime_type'], $data['size_bytes'], $data['uploader_id'], 'submitted' // default status ]); } // Cari dokumen berdasarkan ID public static function find($id) { $pdo = Database::getConnection(); $stmt = $pdo->prepare(" SELECT d.*, u.name AS uploader_name FROM documents d JOIN users u ON d.uploader_id = u.id WHERE d.id = ? "); $stmt->execute([$id]); return $stmt->fetch(); } // Ambil semua dokumen public static function all() { $pdo = Database::getConnection(); $stmt = $pdo->query(" SELECT d.*, u.name AS uploader_name FROM documents d JOIN users u ON d.uploader_id = u.id ORDER BY d.created_at DESC "); return $stmt->fetchAll(); } // Update status dokumen public static function updateStatus($id, $status) { $pdo = Database::getConnection(); $stmt = $pdo->prepare("UPDATE documents SET status=?, updated_at=NOW() WHERE id=?"); return $stmt->execute([$status, $id]); } // Cari dokumen berdasarkan kata kunci (judul, penulis, keywords) public static function search($q) { $pdo = Database::getConnection(); $stmt = $pdo->prepare(" SELECT d.*, u.name AS uploader_name FROM documents d JOIN users u ON d.uploader_id = u.id WHERE d.title LIKE ? OR d.authors LIKE ? OR d.keywords LIKE ? ORDER BY d.created_at DESC "); $stmt->execute(['%'.$q.'%', '%'.$q.'%', '%'.$q.'%']); return $stmt->fetchAll(); } }