404
This commit is contained in:
parent
649064caeb
commit
777450559e
@ -16,7 +16,7 @@ class ApkController extends Controller {
|
|||||||
$apk = $this->apkService->getBySlug($params['slug']);
|
$apk = $this->apkService->getBySlug($params['slug']);
|
||||||
if (!$apk) {
|
if (!$apk) {
|
||||||
header("HTTP/1.0 404 Not Found");
|
header("HTTP/1.0 404 Not Found");
|
||||||
echo "APK Not Found";
|
$this->view("404");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ class ApkController extends Controller {
|
|||||||
|
|
||||||
if (!$apk) {
|
if (!$apk) {
|
||||||
header("HTTP/1.0 404 Not Found");
|
header("HTTP/1.0 404 Not Found");
|
||||||
echo "APK Not Found";
|
$this->view("404");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,10 @@ class HomeController extends Controller {
|
|||||||
$apk = $stmt->fetch();
|
$apk = $stmt->fetch();
|
||||||
|
|
||||||
if (!$apk) {
|
if (!$apk) {
|
||||||
$this->redirect('/');
|
if (ob_get_level() > 0) ob_clean();
|
||||||
|
header("HTTP/1.0 404 Not Found");
|
||||||
|
$this->view('404');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store referral code if present specifically for this APK or take from global session
|
// Store referral code if present specifically for this APK or take from global session
|
||||||
@ -57,7 +60,10 @@ class HomeController extends Controller {
|
|||||||
$apk = $stmt->fetch();
|
$apk = $stmt->fetch();
|
||||||
|
|
||||||
if (!$apk) {
|
if (!$apk) {
|
||||||
$this->redirect('/');
|
if (ob_get_level() > 0) ob_clean();
|
||||||
|
header("HTTP/1.0 404 Not Found");
|
||||||
|
$this->view('404');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Increment download count
|
// Increment download count
|
||||||
|
|||||||
@ -45,7 +45,11 @@ class Router {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle 404
|
||||||
|
if (ob_get_level() > 0) {
|
||||||
|
ob_clean();
|
||||||
|
}
|
||||||
header("HTTP/1.0 404 Not Found");
|
header("HTTP/1.0 404 Not Found");
|
||||||
echo "404 Not Found";
|
require __DIR__ . "/../../views/404.php";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BIN
assets/pasted-20260225-013211-6b3583b9.jpg
Normal file
BIN
assets/pasted-20260225-013211-6b3583b9.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
27
lang/en.php
27
lang/en.php
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
return [
|
return array (
|
||||||
'home' => 'Home',
|
'home' => 'Home',
|
||||||
'search' => 'Search',
|
'search' => 'Search',
|
||||||
'search_placeholder' => 'Search for apps and games...',
|
'search_placeholder' => 'Search for apps and games...',
|
||||||
@ -37,8 +37,6 @@ return [
|
|||||||
'manage_categories' => 'Manage Categories',
|
'manage_categories' => 'Manage Categories',
|
||||||
'manage_withdrawals' => 'Manage Withdrawals',
|
'manage_withdrawals' => 'Manage Withdrawals',
|
||||||
'general_settings' => 'General Settings',
|
'general_settings' => 'General Settings',
|
||||||
|
|
||||||
// Footer
|
|
||||||
'footer_about' => 'is your premier source for professional APK downloads, offering the latest and safest Android applications and games.',
|
'footer_about' => 'is your premier source for professional APK downloads, offering the latest and safest Android applications and games.',
|
||||||
'popular' => 'Popular',
|
'popular' => 'Popular',
|
||||||
'top_games' => 'Top Games',
|
'top_games' => 'Top Games',
|
||||||
@ -52,8 +50,6 @@ return [
|
|||||||
'subscribe_text' => 'Stay updated with the latest APK releases.',
|
'subscribe_text' => 'Stay updated with the latest APK releases.',
|
||||||
'email_placeholder' => 'Your email address',
|
'email_placeholder' => 'Your email address',
|
||||||
'all_rights_reserved' => 'All rights reserved.',
|
'all_rights_reserved' => 'All rights reserved.',
|
||||||
|
|
||||||
// Home
|
|
||||||
'hero_title' => 'Download the Best <span class="text-success">Android APKs</span> Professionally',
|
'hero_title' => 'Download the Best <span class="text-success">Android APKs</span> Professionally',
|
||||||
'hero_subtitle' => 'Fast, safe, and secure downloads for your favorite mobile apps and games. No registration required to browse.',
|
'hero_subtitle' => 'Fast, safe, and secure downloads for your favorite mobile apps and games. No registration required to browse.',
|
||||||
'explore_apps' => 'Explore Apps',
|
'explore_apps' => 'Explore Apps',
|
||||||
@ -63,8 +59,6 @@ return [
|
|||||||
'referral_journey_text' => 'Earn <b>Rp 500</b> for every download via your link. Join our community and share your favorite APKs.',
|
'referral_journey_text' => 'Earn <b>Rp 500</b> for every download via your link. Join our community and share your favorite APKs.',
|
||||||
'get_started' => 'Get Started',
|
'get_started' => 'Get Started',
|
||||||
'home_title_suffix' => ' - Professional APK Download Portal',
|
'home_title_suffix' => ' - Professional APK Download Portal',
|
||||||
|
|
||||||
// APK Detail
|
|
||||||
'official_version_text' => 'Official and original version. Verified safe for Android device.',
|
'official_version_text' => 'Official and original version. Verified safe for Android device.',
|
||||||
'downloads' => 'Downloads',
|
'downloads' => 'Downloads',
|
||||||
'verified_safe' => 'Verified Safe',
|
'verified_safe' => 'Verified Safe',
|
||||||
@ -92,12 +86,10 @@ return [
|
|||||||
'apk_detail_title' => 'Download %s %s - %s',
|
'apk_detail_title' => 'Download %s %s - %s',
|
||||||
'apk_detail_meta_desc' => 'Download %s %s APK for free. %s',
|
'apk_detail_meta_desc' => 'Download %s %s APK for free. %s',
|
||||||
'apk_detail_meta_keywords' => '%s, %s apk, download %s',
|
'apk_detail_meta_keywords' => '%s, %s apk, download %s',
|
||||||
|
|
||||||
// Auth
|
|
||||||
'login_title' => 'Login to ApkNusa',
|
'login_title' => 'Login to ApkNusa',
|
||||||
'username' => 'Username',
|
'username' => 'Username',
|
||||||
'password' => 'Password',
|
'password' => 'Password',
|
||||||
'dont_have_account' => "Don't have an account?",
|
'dont_have_account' => 'Don\'t have an account?',
|
||||||
'register_here' => 'Register here',
|
'register_here' => 'Register here',
|
||||||
'register_title' => 'Register for ApkNusa',
|
'register_title' => 'Register for ApkNusa',
|
||||||
'confirm_password' => 'Confirm Password',
|
'confirm_password' => 'Confirm Password',
|
||||||
@ -108,8 +100,6 @@ return [
|
|||||||
'error_invalid_login' => 'Invalid username or password',
|
'error_invalid_login' => 'Invalid username or password',
|
||||||
'error_password_mismatch' => 'Passwords do not match',
|
'error_password_mismatch' => 'Passwords do not match',
|
||||||
'error_username_exists' => 'Username already exists',
|
'error_username_exists' => 'Username already exists',
|
||||||
|
|
||||||
// Profile
|
|
||||||
'member_since' => 'Member since',
|
'member_since' => 'Member since',
|
||||||
'points' => 'Points',
|
'points' => 'Points',
|
||||||
'referrals' => 'Referrals',
|
'referrals' => 'Referrals',
|
||||||
@ -135,12 +125,8 @@ return [
|
|||||||
'error_min_withdraw' => 'Minimum withdrawal is Rp 10.000',
|
'error_min_withdraw' => 'Minimum withdrawal is Rp 10.000',
|
||||||
'error_insufficient_balance' => 'Insufficient balance',
|
'error_insufficient_balance' => 'Insufficient balance',
|
||||||
'success_withdraw_submitted' => 'Withdrawal request submitted successfully',
|
'success_withdraw_submitted' => 'Withdrawal request submitted successfully',
|
||||||
|
|
||||||
// SEO Defaults
|
|
||||||
'meta_description_default' => 'Download Professional APKs.',
|
'meta_description_default' => 'Download Professional APKs.',
|
||||||
'meta_keywords_default' => 'apk, android, download',
|
'meta_keywords_default' => 'apk, android, download',
|
||||||
|
|
||||||
// Help Center
|
|
||||||
'help_center_title' => 'Help Center',
|
'help_center_title' => 'Help Center',
|
||||||
'faq_title' => 'Frequently Asked Questions',
|
'faq_title' => 'Frequently Asked Questions',
|
||||||
'faq_q1' => 'How to download APK from our site?',
|
'faq_q1' => 'How to download APK from our site?',
|
||||||
@ -152,12 +138,11 @@ return [
|
|||||||
'contact_us' => 'Contact Us',
|
'contact_us' => 'Contact Us',
|
||||||
'contact_text' => 'Still have questions? Our support team is here to help you.',
|
'contact_text' => 'Still have questions? Our support team is here to help you.',
|
||||||
'send_email' => 'Send Email',
|
'send_email' => 'Send Email',
|
||||||
|
|
||||||
// Privacy Policy
|
|
||||||
'privacy_policy_title' => 'Privacy Policy',
|
'privacy_policy_title' => 'Privacy Policy',
|
||||||
'privacy_policy_content' => '<h3>1. Information We Collect</h3><p>We collect information that you provide directly to us, such as when you create an account, participate in our referral program, or communicate with us.</p><h3>2. How We Use Information</h3><p>We use the information we collect to provide, maintain, and improve our services, including processing your referral earnings and withdrawal requests.</p><h3>3. Data Security</h3><p>We take reasonable measures to help protect information about you from loss, theft, misuse and unauthorized access.</p>',
|
'privacy_policy_content' => '<h3>1. Information We Collect</h3><p>We collect information that you provide directly to us, such as when you create an account, participate in our referral program, or communicate with us.</p><h3>2. How We Use Information</h3><p>We use the information we collect to provide, maintain, and improve our services, including processing your referral earnings and withdrawal requests.</p><h3>3. Data Security</h3><p>We take reasonable measures to help protect information about you from loss, theft, misuse and unauthorized access.</p>',
|
||||||
|
|
||||||
// Terms of Service
|
|
||||||
'terms_of_service_title' => 'Terms of Service',
|
'terms_of_service_title' => 'Terms of Service',
|
||||||
'terms_of_service_content' => '<h3>1. Acceptance of Terms</h3><p>By accessing or using our website, you agree to be bound by these terms of service.</p><h3>2. User Conduct</h3><p>You agree not to use the website for any unlawful purpose or in any way that could damage, disable, or impair the website.</p><h3>3. Referral Program</h3><p>Abuse of the referral program, including but not limited to self-referrals or using bots, will result in account suspension and forfeiture of earnings.</p>',
|
'terms_of_service_content' => '<h3>1. Acceptance of Terms</h3><p>By accessing or using our website, you agree to be bound by these terms of service.</p><h3>2. User Conduct</h3><p>You agree not to use the website for any unlawful purpose or in any way that could damage, disable, or impair the website.</p><h3>3. Referral Program</h3><p>Abuse of the referral program, including but not limited to self-referrals or using bots, will result in account suspension and forfeiture of earnings.</p>',
|
||||||
];
|
'404_title' => 'Page Not Found',
|
||||||
|
'404_text' => 'The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.',
|
||||||
|
'back_to_home' => 'Back to Home',
|
||||||
|
);
|
||||||
|
|||||||
27
lang/id.php
27
lang/id.php
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
return [
|
return array (
|
||||||
'home' => 'Beranda',
|
'home' => 'Beranda',
|
||||||
'search' => 'Cari',
|
'search' => 'Cari',
|
||||||
'search_placeholder' => 'Cari aplikasi dan game...',
|
'search_placeholder' => 'Cari aplikasi dan game...',
|
||||||
@ -37,8 +37,6 @@ return [
|
|||||||
'manage_categories' => 'Kelola Kategori',
|
'manage_categories' => 'Kelola Kategori',
|
||||||
'manage_withdrawals' => 'Kelola Penarikan',
|
'manage_withdrawals' => 'Kelola Penarikan',
|
||||||
'general_settings' => 'Pengaturan Umum',
|
'general_settings' => 'Pengaturan Umum',
|
||||||
|
|
||||||
// Footer
|
|
||||||
'footer_about' => 'adalah sumber utama Anda untuk unduhan APK profesional, menawarkan aplikasi dan game Android terbaru dan teraman.',
|
'footer_about' => 'adalah sumber utama Anda untuk unduhan APK profesional, menawarkan aplikasi dan game Android terbaru dan teraman.',
|
||||||
'popular' => 'Populer',
|
'popular' => 'Populer',
|
||||||
'top_games' => 'Game Teratas',
|
'top_games' => 'Game Teratas',
|
||||||
@ -52,8 +50,6 @@ return [
|
|||||||
'subscribe_text' => 'Tetap update dengan rilis APK terbaru.',
|
'subscribe_text' => 'Tetap update dengan rilis APK terbaru.',
|
||||||
'email_placeholder' => 'Alamat email Anda',
|
'email_placeholder' => 'Alamat email Anda',
|
||||||
'all_rights_reserved' => 'Hak cipta dilindungi undang-undang.',
|
'all_rights_reserved' => 'Hak cipta dilindungi undang-undang.',
|
||||||
|
|
||||||
// Home
|
|
||||||
'hero_title' => 'Unduh <span class="text-success">APK Android</span> Terbaik Secara Profesional',
|
'hero_title' => 'Unduh <span class="text-success">APK Android</span> Terbaik Secara Profesional',
|
||||||
'hero_subtitle' => 'Unduhan cepat, aman, dan terpercaya untuk aplikasi dan game seluler favorit Anda. Tanpa perlu registrasi untuk menjelajah.',
|
'hero_subtitle' => 'Unduhan cepat, aman, dan terpercaya untuk aplikasi dan game seluler favorit Anda. Tanpa perlu registrasi untuk menjelajah.',
|
||||||
'explore_apps' => 'Jelajahi Aplikasi',
|
'explore_apps' => 'Jelajahi Aplikasi',
|
||||||
@ -63,8 +59,6 @@ return [
|
|||||||
'referral_journey_text' => 'Dapatkan <b>Rp 500</b> untuk setiap unduhan melalui link Anda. Bergabunglah dengan komunitas kami dan bagikan APK favorit Anda.',
|
'referral_journey_text' => 'Dapatkan <b>Rp 500</b> untuk setiap unduhan melalui link Anda. Bergabunglah dengan komunitas kami dan bagikan APK favorit Anda.',
|
||||||
'get_started' => 'Mulai Sekarang',
|
'get_started' => 'Mulai Sekarang',
|
||||||
'home_title_suffix' => ' - Portal Unduh APK Profesional',
|
'home_title_suffix' => ' - Portal Unduh APK Profesional',
|
||||||
|
|
||||||
// APK Detail
|
|
||||||
'official_version_text' => 'Versi resmi dan asli. Diverifikasi aman untuk perangkat Android.',
|
'official_version_text' => 'Versi resmi dan asli. Diverifikasi aman untuk perangkat Android.',
|
||||||
'downloads' => 'Unduhan',
|
'downloads' => 'Unduhan',
|
||||||
'verified_safe' => 'Terverifikasi Aman',
|
'verified_safe' => 'Terverifikasi Aman',
|
||||||
@ -92,12 +86,10 @@ return [
|
|||||||
'apk_detail_title' => 'Unduh %s %s - %s',
|
'apk_detail_title' => 'Unduh %s %s - %s',
|
||||||
'apk_detail_meta_desc' => 'Unduh APK %s %s secara gratis. %s',
|
'apk_detail_meta_desc' => 'Unduh APK %s %s secara gratis. %s',
|
||||||
'apk_detail_meta_keywords' => '%s, %s apk, unduh %s',
|
'apk_detail_meta_keywords' => '%s, %s apk, unduh %s',
|
||||||
|
|
||||||
// Auth
|
|
||||||
'login_title' => 'Masuk ke ApkNusa',
|
'login_title' => 'Masuk ke ApkNusa',
|
||||||
'username' => 'Username',
|
'username' => 'Username',
|
||||||
'password' => 'Kata Sandi',
|
'password' => 'Kata Sandi',
|
||||||
'dont_have_account' => "Belum punya akun?",
|
'dont_have_account' => 'Belum punya akun?',
|
||||||
'register_here' => 'Daftar di sini',
|
'register_here' => 'Daftar di sini',
|
||||||
'register_title' => 'Daftar di ApkNusa',
|
'register_title' => 'Daftar di ApkNusa',
|
||||||
'confirm_password' => 'Konfirmasi Kata Sandi',
|
'confirm_password' => 'Konfirmasi Kata Sandi',
|
||||||
@ -108,8 +100,6 @@ return [
|
|||||||
'error_invalid_login' => 'Username atau kata sandi salah',
|
'error_invalid_login' => 'Username atau kata sandi salah',
|
||||||
'error_password_mismatch' => 'Kata sandi tidak cocok',
|
'error_password_mismatch' => 'Kata sandi tidak cocok',
|
||||||
'error_username_exists' => 'Username sudah terdaftar',
|
'error_username_exists' => 'Username sudah terdaftar',
|
||||||
|
|
||||||
// Profile
|
|
||||||
'member_since' => 'Anggota sejak',
|
'member_since' => 'Anggota sejak',
|
||||||
'points' => 'Poin',
|
'points' => 'Poin',
|
||||||
'referrals' => 'Referral',
|
'referrals' => 'Referral',
|
||||||
@ -135,12 +125,8 @@ return [
|
|||||||
'error_min_withdraw' => 'Penarikan minimum adalah Rp 10.000',
|
'error_min_withdraw' => 'Penarikan minimum adalah Rp 10.000',
|
||||||
'error_insufficient_balance' => 'Saldo tidak mencukupi',
|
'error_insufficient_balance' => 'Saldo tidak mencukupi',
|
||||||
'success_withdraw_submitted' => 'Permintaan penarikan berhasil diajukan',
|
'success_withdraw_submitted' => 'Permintaan penarikan berhasil diajukan',
|
||||||
|
|
||||||
// SEO Defaults
|
|
||||||
'meta_description_default' => 'Unduh APK Profesional.',
|
'meta_description_default' => 'Unduh APK Profesional.',
|
||||||
'meta_keywords_default' => 'apk, android, unduh',
|
'meta_keywords_default' => 'apk, android, unduh',
|
||||||
|
|
||||||
// Help Center
|
|
||||||
'help_center_title' => 'Pusat Bantuan',
|
'help_center_title' => 'Pusat Bantuan',
|
||||||
'faq_title' => 'Pertanyaan yang Sering Diajukan',
|
'faq_title' => 'Pertanyaan yang Sering Diajukan',
|
||||||
'faq_q1' => 'Bagaimana cara mengunduh APK dari situs kami?',
|
'faq_q1' => 'Bagaimana cara mengunduh APK dari situs kami?',
|
||||||
@ -152,12 +138,11 @@ return [
|
|||||||
'contact_us' => 'Hubungi Kami',
|
'contact_us' => 'Hubungi Kami',
|
||||||
'contact_text' => 'Masih punya pertanyaan? Tim dukungan kami siap membantu Anda.',
|
'contact_text' => 'Masih punya pertanyaan? Tim dukungan kami siap membantu Anda.',
|
||||||
'send_email' => 'Kirim Email',
|
'send_email' => 'Kirim Email',
|
||||||
|
|
||||||
// Privacy Policy
|
|
||||||
'privacy_policy_title' => 'Kebijakan Privasi',
|
'privacy_policy_title' => 'Kebijakan Privasi',
|
||||||
'privacy_policy_content' => '<h3>1. Informasi yang Kami Kumpulkan</h3><p>Kami mengumpulkan informasi yang Anda berikan langsung kepada kami, seperti saat Anda membuat akun, berpartisipasi dalam program referral kami, atau berkomunikasi dengan kami.</p><h3>2. Bagaimana Kami Menggunakan Informasi</h3><p>Kami menggunakan informasi yang kami kumpulkan untuk menyediakan, memelihara, dan meningkatkan layanan kami, termasuk memproses pendapatan referral dan permintaan penarikan Anda.</p><h3>3. Data Security</h3><p>Kami mengambil langkah-langkah yang wajar untuk membantu melindungi informasi tentang Anda dari kehilangan, pencurian, penyalahgunaan, dan akses yang tidak sah.</p>',
|
'privacy_policy_content' => '<h3>1. Informasi yang Kami Kumpulkan</h3><p>Kami mengumpulkan informasi yang Anda berikan langsung kepada kami, seperti saat Anda membuat akun, berpartisipasi dalam program referral kami, atau berkomunikasi dengan kami.</p><h3>2. Bagaimana Kami Menggunakan Informasi</h3><p>Kami menggunakan informasi yang kami kumpulkan untuk menyediakan, memelihara, dan meningkatkan layanan kami, termasuk memproses pendapatan referral dan permintaan penarikan Anda.</p><h3>3. Data Security</h3><p>Kami mengambil langkah-langkah yang wajar untuk membantu melindungi informasi tentang Anda dari kehilangan, pencurian, penyalahgunaan, dan akses yang tidak sah.</p>',
|
||||||
|
|
||||||
// Terms of Service
|
|
||||||
'terms_of_service_title' => 'Ketentuan Layanan',
|
'terms_of_service_title' => 'Ketentuan Layanan',
|
||||||
'terms_of_service_content' => '<h3>1. Penerimaan Ketentuan</h3><p>Dengan mengakses atau menggunakan situs web kami, Anda setuju untuk terikat oleh ketentuan layanan ini.</p><h3>2. Perilaku Pengguna</h3><p>Anda setuju untuk tidak menggunakan situs web untuk tujuan yang melanggar hukum atau dengan cara apa pun yang dapat merusak, melumpuhkan, atau mengganggu situs web.</p><h3>3. Program Referral</h3><p>Penyalahgunaan program referral, termasuk namun tidak terbatas pada referral diri sendiri atau menggunakan bot, akan mengakibatkan penangguhan akun dan penghapusan pendapatan.</p>',
|
'terms_of_service_content' => '<h3>1. Penerimaan Ketentuan</h3><p>Dengan mengakses atau menggunakan situs web kami, Anda setuju untuk terikat oleh ketentuan layanan ini.</p><h3>2. Perilaku Pengguna</h3><p>Anda setuju untuk tidak menggunakan situs web untuk tujuan yang melanggar hukum atau dengan cara apa pun yang dapat merusak, melumpuhkan, atau mengganggu situs web.</p><h3>3. Program Referral</h3><p>Penyalahgunaan program referral, termasuk namun tidak terbatas pada referral diri sendiri atau menggunakan bot, akan mengakibatkan penangguhan akun dan penghapusan pendapatan.</p>',
|
||||||
];
|
'404_title' => 'Halaman Tidak Ditemukan',
|
||||||
|
'404_text' => 'Halaman yang Anda cari mungkin telah dihapus, namanya diubah, atau sementara tidak tersedia.',
|
||||||
|
'back_to_home' => 'Kembali ke Beranda',
|
||||||
|
);
|
||||||
|
|||||||
76
views/404.php
Normal file
76
views/404.php
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<?php include 'header.php'; ?>
|
||||||
|
|
||||||
|
<div class="container overflow-hidden">
|
||||||
|
<div class="row min-vh-100 align-items-center justify-content-center">
|
||||||
|
<div class="col-md-10 col-lg-8 text-center position-relative">
|
||||||
|
<!-- Large Decorative background 404 -->
|
||||||
|
<div class="position-absolute top-50 start-50 translate-middle z-0 opacity-5 d-none d-md-block" style="font-size: 20rem; font-weight: 900; letter-spacing: -0.5rem; pointer-events: none; user-select: none;">
|
||||||
|
404
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="position-relative z-1 py-5">
|
||||||
|
<div class="mb-5 floating-animation">
|
||||||
|
<!-- Custom SVG Illustration instead of icons for better reliability -->
|
||||||
|
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg" class="mx-auto shadow-sm p-4 rounded-circle bg-white border border-light">
|
||||||
|
<path d="M100 0C44.7715 0 0 44.7715 0 100C0 155.228 44.7715 200 100 200C155.228 200 200 155.228 200 100C200 44.7715 155.228 0 100 0ZM100 185C53.0558 185 15 146.944 15 100C15 53.0558 53.0558 15 100 15C146.944 15 185 53.0558 185 100C185 146.944 146.944 185 100 185Z" fill="#00C853" fill-opacity="0.1"/>
|
||||||
|
<circle cx="100" cy="100" r="70" fill="#00C853" fill-opacity="0.05"/>
|
||||||
|
<path d="M100 60V110" stroke="#00C853" stroke-width="12" stroke-linecap="round"/>
|
||||||
|
<circle cx="100" cy="135" r="8" fill="#00C853"/>
|
||||||
|
<path d="M60 85L50 95M140 85L150 95" stroke="#00C853" stroke-width="8" stroke-linecap="round"/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h1 class="display-3 fw-bold mb-3 text-dark"><?php echo __('404_title'); ?></h1>
|
||||||
|
<p class="text-muted fs-5 mb-5 max-width-600 mx-auto px-3">
|
||||||
|
<?php echo __('404_text'); ?>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="d-flex flex-column flex-sm-row gap-3 justify-content-center align-items-center mb-5 px-3">
|
||||||
|
<a href="/" class="btn btn-success btn-lg rounded-pill px-5 py-3 shadow-sm hover-lift d-flex align-items-center w-100 w-sm-auto">
|
||||||
|
<i class="bi bi-house-door-fill me-2"></i>
|
||||||
|
<span class="fw-bold"><?php echo __('back_to_home'); ?></span>
|
||||||
|
</a>
|
||||||
|
<button onclick="window.history.back()" class="btn btn-outline-dark btn-lg rounded-pill px-5 py-3 hover-lift d-flex align-items-center w-100 w-sm-auto">
|
||||||
|
<i class="bi bi-arrow-left me-2"></i>
|
||||||
|
<span class="fw-bold"><?php echo __('Kembali', 'Kembali'); ?></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-5 p-4 bg-white rounded-5 shadow-sm border border-light-subtle max-width-500 mx-auto mx-3">
|
||||||
|
<p class="text-muted small fw-medium mb-3"><?php echo __('search_placeholder'); ?></p>
|
||||||
|
<form action="/" method="GET">
|
||||||
|
<div class="input-group bg-light rounded-pill p-1 border">
|
||||||
|
<span class="input-group-text bg-transparent border-0 ps-3">
|
||||||
|
<i class="bi bi-search text-muted small"></i>
|
||||||
|
</span>
|
||||||
|
<input type="text" name="search" class="form-control bg-transparent border-0 py-2 fs-6" placeholder="<?php echo __('search', 'Search...'); ?>">
|
||||||
|
<button class="btn btn-success rounded-pill px-4 fw-bold" type="submit"><?php echo __('search'); ?></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.max-width-600 {
|
||||||
|
max-width: 600px;
|
||||||
|
}
|
||||||
|
.max-width-500 {
|
||||||
|
max-width: 500px;
|
||||||
|
}
|
||||||
|
.bg-light {
|
||||||
|
background-color: #f8f9fa !important;
|
||||||
|
}
|
||||||
|
.shadow-sm {
|
||||||
|
box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important;
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.display-3 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<?php include 'footer.php'; ?>
|
||||||
Loading…
x
Reference in New Issue
Block a user