$pdo->query("SELECT COUNT(DISTINCT province) FROM learning_resources WHERE status = 'approved'")->fetchColumn() ?: 77, 'districts' => $pdo->query("SELECT COUNT(DISTINCT district) FROM learning_resources WHERE status = 'approved'")->fetchColumn() ?: 928, 'subdistricts' => $pdo->query("SELECT COUNT(DISTINCT sub_district) FROM learning_resources WHERE status = 'approved'")->fetchColumn() ?: 7255, 'resources' => $pdo->query("SELECT COUNT(*) FROM learning_resources WHERE status = 'approved'")->fetchColumn(), 'activities' => $pdo->query("SELECT COUNT(*) FROM featured_activities")->fetchColumn(), 'visitors' => isset($visitor_count) ? number_format($visitor_count) : '0' ]; // ตัด "สาขา" นำหน้าออกเพื่อรวม group ที่เก็บข้อมูลต่างรูปแบบกัน function dashNormWisdom(string $s): string { $s = trim($s); return (mb_substr($s, 0, 4, 'UTF-8') === 'สาขา') ? trim(mb_substr($s, 4, null, 'UTF-8')) : $s; } // Query chart details $wisdom_query = $pdo->query("SELECT wisdom_branch, COUNT(*) as count FROM learning_resources WHERE status = 'approved' AND wisdom_branch IS NOT NULL AND wisdom_branch != '' GROUP BY wisdom_branch ORDER BY count DESC")->fetchAll(); // Merge สาขาที่ซ้ำกันเนื่องจากมี/ไม่มีคำว่า "สาขา" นำหน้า $wisdom_merged = []; foreach ($wisdom_query as $row) { $label = dashNormWisdom($row['wisdom_branch']); $wisdom_merged[$label] = ($wisdom_merged[$label] ?? 0) + (int)$row['count']; } arsort($wisdom_merged); $wisdom_labels = array_keys($wisdom_merged); $wisdom_values = array_values($wisdom_merged); $type_query = $pdo->query("SELECT type, COUNT(*) as count FROM learning_resources WHERE status = 'approved' AND type IS NOT NULL AND type != '' GROUP BY type ORDER BY count DESC")->fetchAll(); $type_labels = array_column($type_query, 'type'); $type_values = array_map('intval', array_column($type_query, 'count')); $subject_query = $pdo->query("SELECT subject, COUNT(*) as count FROM learning_resources WHERE status = 'approved' AND subject IS NOT NULL AND subject != '' GROUP BY subject ORDER BY count DESC")->fetchAll(); $subject_labels = array_column($subject_query, 'subject'); $subject_values = array_map('intval', array_column($subject_query, 'count')); // Query region statistics $geo_names = [ 1 => 'ภาคเหนือ', 2 => 'ภาคตะวันออกเฉียงเหนือ', 3 => 'ภาคตะวันออก', 4 => 'ภาคกลาง', 5 => 'ภาคใต้' ]; $regions_data = array_fill_keys(array_values($geo_names), 0); $geo_query = $pdo->query("SELECT geo, COUNT(*) as count FROM learning_resources WHERE status = 'approved' GROUP BY geo")->fetchAll(); foreach ($geo_query as $row) { $g_val = $row['geo'] !== null ? (int)$row['geo'] : 0; if (isset($geo_names[$g_val])) { $regions_data[$geo_names[$g_val]] = (int)$row['count']; } } $grand_total_resources = $stats['resources']; // Query homepage activities — ใช้รายการที่แอดมินเลือกไว้ใน system_settings.homepage_activity_ids // ถ้ายังไม่ได้เลือกหรือลบไปจนหมด ให้ fallback เป็น 9 รายการล่าสุดที่อนุมัติแล้ว $homepage_ids_csv = $settings['homepage_activity_ids'] ?? ''; $homepage_ids = array_filter(array_map('intval', explode(',', $homepage_ids_csv))); if (!empty($homepage_ids)) { $place = implode(',', array_fill(0, count($homepage_ids), '?')); $stmt = $pdo->prepare(" SELECT * FROM featured_activities WHERE id IN ($place) AND status = 'approved' ORDER BY id DESC LIMIT 12 "); $stmt->execute($homepage_ids); $activities = $stmt->fetchAll(); } else { // ไม่มีรายการเด่นที่แอดมินเลือกไว้ → แสดงกิจกรรมที่เพิ่มเข้าระบบล่าสุด $activities = $pdo->query(" SELECT * FROM featured_activities WHERE status = 'approved' ORDER BY id DESC LIMIT 12 ")->fetchAll(); } ?>

จังหวัด

อำเภอ

ตำบล

แหล่งเรียนรู้

กิจกรรม

จำนวนผู้เข้าชม

จำนวนแหล่งเรียนรู้แยกตามภาค

'ภาคเหนือ', 'en' => 'Northern Region', 'color' => 'bg-indigo-500', 'bg' => 'bg-indigo-50/40', 'border' => 'border-indigo-100/50', 'text' => 'text-indigo-600', 'count' => $regions_data['ภาคเหนือ']], ['name' => 'ภาคตะวันออกเฉียงเหนือ', 'en' => 'Northeastern Region', 'color' => 'bg-amber-500', 'bg' => 'bg-amber-50/40', 'border' => 'border-amber-100/50', 'text' => 'text-amber-600', 'count' => $regions_data['ภาคตะวันออกเฉียงเหนือ']], ['name' => 'ภาคตะวันออก', 'en' => 'Eastern Region', 'color' => 'bg-emerald-500', 'bg' => 'bg-emerald-50/40', 'border' => 'border-emerald-100/50', 'text' => 'text-emerald-600', 'count' => $regions_data['ภาคตะวันออก']], ['name' => 'ภาคกลาง', 'en' => 'Central Region', 'color' => 'bg-sky-500', 'bg' => 'bg-sky-50/40', 'border' => 'border-sky-100/50', 'text' => 'text-sky-600', 'count' => $regions_data['ภาคกลาง']], ['name' => 'ภาคใต้', 'en' => 'Southern Region', 'color' => 'bg-rose-500', 'bg' => 'bg-rose-50/40', 'border' => 'border-rose-100/50', 'text' => 'text-rose-600', 'count' => $regions_data['ภาคใต้']], ['name' => 'ภาพรวม', 'en' => 'Total Overview', 'color' => 'bg-[#6a5acd]', 'bg' => 'bg-purple-50/50', 'border' => 'border-purple-200/50', 'text' => 'text-[#6a5acd]', 'count' => $grand_total_resources] ]; ?>

แห่ง

สาขาภูมิปัญญาท้องถิ่น

สาระการเรียนรู้

ประเภทแหล่งเรียนรู้

กิจกรรมเด่น

$act['title'] ?? '', 'poster' => activity_image_url($act['poster_url'] ?? ''), 'type' => ($act['activity_type'] === 'อื่นๆ' && !empty($act['activity_type_other'])) ? 'อื่นๆ (' . $act['activity_type_other'] . ')' : ($act['activity_type'] ?? ''), 'date' => format_activity_date($act), 'time' => format_activity_time($act), 'location' => $act['location'] ?? '', 'province' => $act['province'] ?? '', 'district' => $act['district'] ?? '', 'sub_district' => $act['sub_district'] ?? '', 'target_group' => $act['target_group'] ?? '', 'target_count' => $act['target_count'] ?? '', 'participant_count' => $act['participant_count'] ?? '', 'description' => $act['description'] ?? '', 'link_url' => $act['link_url'] ?? '', ]; ?>
<?php echo htmlspecialchars($act['title']); ?>

·
คน

ขณะนี้ยังไม่มีข้อมูลกิจกรรมที่น่าสนใจในระบบ