setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die("Connection failed: " . $e->getMessage()); } // Helper functions function generateSlug($string) { $string = strtolower($string); $string = preg_replace('/[^a-z0-9\s-]/', '', $string); $string = preg_replace('/\s+/', '-', trim($string)); $string = preg_replace('/-+/', '-', $string); return trim($string, '-'); } function sanitizeInput($input) { return htmlspecialchars(strip_tags(trim($input)), ENT_QUOTES, 'UTF-8'); } // Initialize variables $message = ''; $messageType = 'success'; $editMode = false; $editData = []; // Check if editing if (isset($_GET['edit']) && is_numeric($_GET['edit'])) { $editMode = true; $stmt = $pdo->prepare("SELECT * FROM com_berita WHERE idberita = ?"); $stmt->execute([$_GET['edit']]); $editData = $stmt->fetch(); if (!$editData) { $message = "Artikel tidak ditemukan!"; $messageType = 'danger'; $editMode = false; } } // Handle form submission if ($_SERVER['REQUEST_METHOD'] === 'POST') { $idutama = !empty($_POST['idutama']) ? (int)$_POST['idutama'] : null; $judulberita = sanitizeInput($_POST['judulberita']); $slugberita = generateSlug($judulberita); $subberita = sanitizeInput($_POST['subberita']); $artikelberita = trim($_POST['artikelberita']); // Keep HTML for content $artikelurl = !empty($_POST['artikelurl']) ? sanitizeInput($_POST['artikelurl']) : null; // Validation if (empty($judulberita) || empty($artikelberita)) { $message = "Judul dan artikel tidak boleh kosong!"; $messageType = 'danger'; } else { try { if ($editMode && isset($_POST['idberita'])) { // Update existing article $stmt = $pdo->prepare("UPDATE com_berita SET idutama = ?, judulberita = ?, slugberita = ?, subberita = ?, artikelberita = ?, artikelurl = ? WHERE idberita = ?"); $stmt->execute([$idutama, $judulberita, $slugberita, $subberita, $artikelberita, $artikelurl, $_POST['idberita']]); $message = "Artikel berhasil diupdate!"; $messageType = 'success'; // Redirect to avoid form resubmission header("Location: " . $_SERVER['PHP_SELF'] . "?updated=1"); exit; } else { // Insert new article $stmt = $pdo->prepare("INSERT INTO com_berita (idutama, judulberita, slugberita, subberita, artikelberita, artikelurl) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$idutama, $judulberita, $slugberita, $subberita, $artikelberita, $artikelurl]); $message = "Artikel berhasil disimpan dengan ID: " . $pdo->lastInsertId(); $messageType = 'success'; // Clear form data $_POST = []; } } catch(PDOException $e) { $message = "Error: " . $e->getMessage(); $messageType = 'danger'; } } } // Handle update success message if (isset($_GET['updated']) && $_GET['updated'] == 1) { $message = "Artikel berhasil diupdate!"; $messageType = 'success'; $editMode = false; } // Get latest 50 articles try { $stmt = $pdo->query("SELECT idberita, idutama, judulberita, slugberita, subberita, artikelurl FROM com_berita ORDER BY idberita DESC LIMIT 50"); $articles = $stmt->fetchAll(); } catch(PDOException $e) { $articles = []; if (empty($message)) { $message = "Error mengambil data artikel: " . $e->getMessage(); $messageType = 'danger'; } } ?> Manajemen Artikel - SWANTE ADI KRISNA

Manajemen Artikel Blog

Slug akan dibuat otomatis dari judul (maks. 200 karakter)
Ringkasan akan ditampilkan di halaman daftar artikel
0 karakter | HTML tags diperbolehkan

50 Artikel Terbaru

Belum Ada Artikel

Mulai tulis artikel pertama Anda menggunakan form di atas

ID ID Utama Judul Slug Sub Berita URL Aksi
' . $article['idutama'] . '' : '-' ?>
Tidak ada ringkasan' ?>
- Edit
CREATE TABLE IF NOT EXISTS `com_berita` (
    `idberita` int(11) NOT NULL AUTO_INCREMENT,
    `idutama` int(11) DEFAULT NULL,
    `judulberita` varchar(200) NOT NULL,
    `slugberita` varchar(200) NOT NULL,
    `subberita` text,
    `artikelberita` text NOT NULL,
    `artikelurl` varchar(200) DEFAULT NULL,
    PRIMARY KEY (`idberita`),
    KEY `idx_idutama` (`idutama`),
    KEY `idx_slug` (`slugberita`),
    UNIQUE KEY `unique_slug` (`slugberita`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;