Fix ini
This commit is contained in:
parent
5a3eb14edc
commit
b535a47db4
@ -6,36 +6,15 @@ use App\Core\Controller;
|
||||
use App\Services\ApkService;
|
||||
|
||||
class HomeController extends Controller {
|
||||
protected $apkService;
|
||||
|
||||
public function __construct() {
|
||||
$this->apkService = new ApkService();
|
||||
}
|
||||
|
||||
|
||||
public function index() {
|
||||
$db = db_pdo();
|
||||
$category = $_GET['category'] ?? null;
|
||||
$search = $_GET['search'] ?? null;
|
||||
|
||||
// Store global referral code if present
|
||||
if (isset($_GET['ref'])) {
|
||||
$_SESSION['global_ref'] = $_GET['ref'];
|
||||
}
|
||||
|
||||
$sql = "SELECT * FROM apks WHERE status = 'published'";
|
||||
$params = [];
|
||||
$apkService = new ApkService();
|
||||
$apks = $apkService->getAllApks($category, $search);
|
||||
|
||||
if ($category) {
|
||||
$sql .= " AND category_id = (SELECT id FROM categories WHERE slug = ?)";
|
||||
$params[] = $category;
|
||||
}
|
||||
|
||||
$sql .= " ORDER BY display_order ASC, created_at DESC LIMIT 12";
|
||||
|
||||
$stmt = $db->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$apks = $stmt->fetchAll();
|
||||
|
||||
return $this->view('home', [
|
||||
$this->view('home', [
|
||||
'apks' => $apks,
|
||||
'title' => get_setting('site_name', 'ApkNusa') . __('home_title_suffix')
|
||||
]);
|
||||
@ -57,14 +36,9 @@ class HomeController extends Controller {
|
||||
$_SESSION['ref_download_' . $apk['id']] = $_GET['ref'];
|
||||
}
|
||||
|
||||
$siteName = get_setting('site_name', 'ApkNusa');
|
||||
$description = substr(strip_tags($apk['description']), 0, 150) . '...';
|
||||
|
||||
$this->view('apk_detail', [
|
||||
'apk' => $apk,
|
||||
'title' => sprintf(__('apk_detail_title'), $apk['title'], $apk['version'], $siteName),
|
||||
'meta_description' => sprintf(__('apk_detail_meta_desc'), $apk['title'], $apk['version'], $description),
|
||||
'meta_keywords' => sprintf(__('apk_detail_meta_keywords'), $apk['title'], $apk['title'], $apk['title'])
|
||||
'title' => $apk['title'] . ' - ' . get_setting('site_name', 'ApkNusa')
|
||||
]);
|
||||
}
|
||||
|
||||
@ -79,43 +53,49 @@ class HomeController extends Controller {
|
||||
$this->redirect('/');
|
||||
}
|
||||
|
||||
// Check for referral earnings
|
||||
// Try specific APK referral first, then global referral
|
||||
$ref_code = $_SESSION['ref_download_' . $apk['id']] ?? ($_SESSION['global_ref'] ?? null);
|
||||
|
||||
if ($ref_code) {
|
||||
$stmt = $db->prepare("SELECT id FROM users WHERE referral_code = ?");
|
||||
// Increment download count
|
||||
$stmt = $db->prepare("UPDATE apks SET total_downloads = total_downloads + 1 WHERE id = ?");
|
||||
$stmt->execute([$apk['id']]);
|
||||
|
||||
// Referral logic
|
||||
$ref_key = 'ref_download_' . $apk['id'];
|
||||
if (isset($_SESSION['ref_download_' . $apk['id']])) {
|
||||
$ref_code = $_SESSION['ref_download_' . $apk['id']];
|
||||
|
||||
// Find the user who owns this referral code
|
||||
$stmt = $db->prepare("SELECT * FROM users WHERE referral_code = ?");
|
||||
$stmt->execute([$ref_code]);
|
||||
$referrer = $stmt->fetch();
|
||||
|
||||
if ($referrer) {
|
||||
$referrer_id = $referrer['id'];
|
||||
$ip = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
// Check if this IP already earned for this APK today (prevent abuse)
|
||||
$stmt = $db->prepare("SELECT id FROM referral_downloads WHERE referrer_id = ? AND apk_id = ? AND ip_address = ? AND created_at > DATE_SUB(NOW(), INTERVAL 1 DAY)");
|
||||
$stmt->execute([$referrer_id, $apk['id'], $ip]);
|
||||
|
||||
if (!$stmt->fetch()) {
|
||||
// Credit 500 IDR
|
||||
$stmt = $db->prepare("UPDATE users SET balance = balance + 500 WHERE id = ?");
|
||||
$stmt->execute([$referrer_id]);
|
||||
|
||||
// Log download
|
||||
$stmt = $db->prepare("INSERT INTO referral_downloads (referrer_id, apk_id, ip_address, amount) VALUES (?, ?, ?, 500)");
|
||||
$stmt->execute([$referrer_id, $apk['id'], $ip]);
|
||||
}
|
||||
// Award points/money to referrer
|
||||
// For example, 100 rupiah per download
|
||||
$stmt = $db->prepare("UPDATE users SET balance = balance + 100 WHERE id = ?");
|
||||
$stmt->execute([$referrer['id']]);
|
||||
}
|
||||
// Clear session specific to this APK, but maybe keep global_ref?
|
||||
// The user might download other APKs too.
|
||||
unset($_SESSION['ref_download_' . $apk['id']]);
|
||||
|
||||
unset($_SESSION[$ref_key]);
|
||||
}
|
||||
|
||||
// Increment total downloads
|
||||
$stmt = $db->prepare("UPDATE apks SET total_downloads = total_downloads + 1 WHERE id = ?");
|
||||
$stmt->execute([$apk['id']]);
|
||||
header('Location: ' . $apk['download_url']);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Redirect to actual file
|
||||
$this->redirect($apk['download_url']);
|
||||
public function helpCenter() {
|
||||
$this->view('help_center', [
|
||||
'title' => __('help_center') . ' - ' . get_setting('site_name', 'ApkNusa')
|
||||
]);
|
||||
}
|
||||
|
||||
public function privacyPolicy() {
|
||||
$this->view('privacy_policy', [
|
||||
'title' => __('privacy_policy') . ' - ' . get_setting('site_name', 'ApkNusa')
|
||||
]);
|
||||
}
|
||||
|
||||
public function termsOfService() {
|
||||
$this->view('terms_of_service', [
|
||||
'title' => __('terms_of_service') . ' - ' . get_setting('site_name', 'ApkNusa')
|
||||
]);
|
||||
}
|
||||
}
|
||||
@ -12,7 +12,7 @@ class ApkService {
|
||||
}
|
||||
|
||||
public function getLatest($limit = 10) {
|
||||
$stmt = $this->db->prepare("SELECT * FROM apks WHERE status = 'published' ORDER BY created_at DESC LIMIT :limit");
|
||||
$stmt = $this->db->prepare("SELECT * FROM apks WHERE status = 'published' ORDER BY display_order ASC, created_at DESC LIMIT :limit");
|
||||
$stmt->bindValue(':limit', (int)$limit, \PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
return $stmt->fetchAll();
|
||||
@ -24,9 +24,30 @@ class ApkService {
|
||||
return $stmt->fetch();
|
||||
}
|
||||
|
||||
public function getAllApks() {
|
||||
$stmt = $this->db->prepare("SELECT * FROM apks ORDER BY created_at DESC");
|
||||
$stmt->execute();
|
||||
public function getAllApks($category_slug = null, $search = null) {
|
||||
$query = "SELECT a.* FROM apks a";
|
||||
$params = [];
|
||||
$where = [];
|
||||
|
||||
if ($category_slug) {
|
||||
$query .= " JOIN categories c ON a.category_id = c.id";
|
||||
$where[] = "c.slug = :category_slug";
|
||||
$params['category_slug'] = $category_slug;
|
||||
}
|
||||
|
||||
if ($search) {
|
||||
$where[] = "a.title LIKE :search";
|
||||
$params['search'] = "%$search%";
|
||||
}
|
||||
|
||||
if (!empty($where)) {
|
||||
$query .= " WHERE " . implode(" AND ", $where);
|
||||
}
|
||||
|
||||
$query .= " ORDER BY a.display_order ASC, a.created_at DESC";
|
||||
|
||||
$stmt = $this->db->prepare($query);
|
||||
$stmt->execute($params);
|
||||
return $stmt->fetchAll();
|
||||
}
|
||||
|
||||
|
||||
BIN
assets/uploads/icons/699e34c63c00e.jpg
Normal file
BIN
assets/uploads/icons/699e34c63c00e.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@ -46,6 +46,11 @@ $router->get('/', 'HomeController@index');
|
||||
$router->get('/apk/:slug', 'HomeController@apkDetail');
|
||||
$router->get('/download/:slug', 'HomeController@download');
|
||||
|
||||
// Static Pages
|
||||
$router->get('/help-center', 'HomeController@helpCenter');
|
||||
$router->get('/privacy-policy', 'HomeController@privacyPolicy');
|
||||
$router->get('/terms-of-service', 'HomeController@termsOfService');
|
||||
|
||||
// Auth
|
||||
$router->get('/login', 'AuthController@loginForm');
|
||||
$router->post('/login', 'AuthController@login');
|
||||
@ -86,4 +91,4 @@ $router->get('/admin/withdrawals', 'AdminController@withdrawals');
|
||||
$router->get('/admin/withdrawals/approve/:id', 'AdminController@approveWithdrawal');
|
||||
$router->get('/admin/withdrawals/reject/:id', 'AdminController@rejectWithdrawal');
|
||||
|
||||
$router->dispatch();
|
||||
$router->dispatch();
|
||||
21
lang/en.php
21
lang/en.php
@ -134,4 +134,25 @@ return [
|
||||
// SEO Defaults
|
||||
'meta_description_default' => 'Download Professional APKs.',
|
||||
'meta_keywords_default' => 'apk, android, download',
|
||||
|
||||
// Help Center
|
||||
'help_center_title' => 'Help Center',
|
||||
'faq_title' => 'Frequently Asked Questions',
|
||||
'faq_q1' => 'How to download APK from our site?',
|
||||
'faq_a1' => 'Simply browse for the app you want, click on it, and then click the green "Download Now" button. Your download will start immediately.',
|
||||
'faq_q2' => 'Are the APKs safe?',
|
||||
'faq_a2' => 'Yes, all our APKs are sourced from original developers and verified to be safe and clean from any malware.',
|
||||
'faq_q3' => 'How does the referral program work?',
|
||||
'faq_a3' => 'Register for an account, copy your referral link from an APK page or your profile, and share it. You will earn Rp 500 for every unique download made through your link.',
|
||||
'contact_us' => 'Contact Us',
|
||||
'contact_text' => 'Still have questions? Our support team is here to help you.',
|
||||
'send_email' => 'Send Email',
|
||||
|
||||
// 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>',
|
||||
|
||||
// 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>',
|
||||
];
|
||||
21
lang/id.php
21
lang/id.php
@ -134,4 +134,25 @@ return [
|
||||
// SEO Defaults
|
||||
'meta_description_default' => 'Unduh APK Profesional.',
|
||||
'meta_keywords_default' => 'apk, android, unduh',
|
||||
|
||||
// Help Center
|
||||
'help_center_title' => 'Pusat Bantuan',
|
||||
'faq_title' => 'Pertanyaan yang Sering Diajukan',
|
||||
'faq_q1' => 'Bagaimana cara mengunduh APK dari situs kami?',
|
||||
'faq_a1' => 'Cukup cari aplikasi yang Anda inginkan, klik aplikasi tersebut, lalu klik tombol hijau "Unduh Sekarang". Unduhan Anda akan segera dimulai.',
|
||||
'faq_q2' => 'Apakah APK di sini aman?',
|
||||
'faq_a2' => 'Ya, semua APK kami bersumber dari pengembang asli dan diverifikasi aman serta bersih dari malware.',
|
||||
'faq_q3' => 'Bagaimana cara kerja program referral?',
|
||||
'faq_a3' => 'Daftar akun, salin link referral Anda dari halaman APK atau profil Anda, dan bagikan. Anda akan mendapatkan Rp 500 untuk setiap unduhan unik yang dilakukan melalui link Anda.',
|
||||
'contact_us' => 'Hubungi Kami',
|
||||
'contact_text' => 'Masih punya pertanyaan? Tim dukungan kami siap membantu Anda.',
|
||||
'send_email' => 'Kirim Email',
|
||||
|
||||
// Privacy Policy
|
||||
'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. Keamanan Data</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_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>',
|
||||
];
|
||||
@ -8,6 +8,11 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="reorderAlert" class="alert alert-success alert-dismissible fade show" style="display: none;" role="alert">
|
||||
Order updated successfully!
|
||||
<button type="button" class="btn-close" onclick="this.parentElement.style.display='none'"></button>
|
||||
</div>
|
||||
|
||||
<div class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold text-primary">APK List (Drag to Reorder)</h6>
|
||||
@ -90,6 +95,7 @@
|
||||
onEnd: function (evt) {
|
||||
const rows = el.querySelectorAll('tr');
|
||||
const order = Array.from(rows).map(row => row.dataset.id);
|
||||
const alertBox = document.getElementById('reorderAlert');
|
||||
|
||||
fetch('/admin/apks/reorder', {
|
||||
method: 'POST',
|
||||
@ -98,11 +104,22 @@
|
||||
},
|
||||
body: 'order[]=' + order.join('&order[]=')
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(response => {
|
||||
if (!response.ok) throw new Error('Network response was not ok');
|
||||
return response.json();
|
||||
})
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
console.log('Order updated');
|
||||
alertBox.style.display = 'block';
|
||||
setTimeout(() => {
|
||||
alertBox.style.display = 'none';
|
||||
}, 3000);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
alert('Failed to update order. Please check your connection.');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@ -18,17 +18,17 @@
|
||||
<div class="col-6 col-lg-2">
|
||||
<h6 class="fw-bold mb-3"><?php echo __('popular'); ?></h6>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="#" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('top_games'); ?></a></li>
|
||||
<li><a href="#" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('top_apps'); ?></a></li>
|
||||
<li><a href="#" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('new_releases'); ?></a></li>
|
||||
<li><a href="/" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('top_games'); ?></a></li>
|
||||
<li><a href="/" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('top_apps'); ?></a></li>
|
||||
<li><a href="/" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('new_releases'); ?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 col-lg-2">
|
||||
<h6 class="fw-bold mb-3"><?php echo __('resources'); ?></h6>
|
||||
<ul class="list-unstyled">
|
||||
<li><a href="#" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('support_center'); ?></a></li>
|
||||
<li><a href="#" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('terms_of_service'); ?></a></li>
|
||||
<li><a href="#" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('privacy_policy'); ?></a></li>
|
||||
<li><a href="/help-center" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('support_center'); ?></a></li>
|
||||
<li><a href="/terms-of-service" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('terms_of_service'); ?></a></li>
|
||||
<li><a href="/privacy-policy" class="text-muted text-decoration-none py-1 d-block small"><?php echo __('privacy_policy'); ?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
@ -60,4 +60,4 @@
|
||||
<script src="/assets/js/main.js"></script>
|
||||
<?php echo get_setting('body_js'); ?>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
71
views/help_center.php
Normal file
71
views/help_center.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php include 'header.php'; ?>
|
||||
|
||||
<section class="py-5 bg-light">
|
||||
<div class="container py-lg-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb mb-4">
|
||||
<li class="breadcrumb-item"><a href="/" class="text-decoration-none text-success"><?php echo __('home'); ?></a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page"><?php echo __('support_center'); ?></li>
|
||||
</ol>
|
||||
</nav>
|
||||
<h1 class="fw-bold mb-4"><?php echo __('help_center_title'); ?></h1>
|
||||
|
||||
<div class="bg-white p-4 p-md-5 rounded-4 shadow-sm">
|
||||
<div class="mb-5">
|
||||
<h4 class="fw-bold mb-3"><?php echo __('faq_title'); ?></h4>
|
||||
<div class="accordion accordion-flush" id="faqAccordion">
|
||||
<div class="accordion-item border-bottom">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq1">
|
||||
<?php echo __('faq_q1'); ?>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq1" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">
|
||||
<?php echo __('faq_a1'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-bottom">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq2">
|
||||
<?php echo __('faq_q2'); ?>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq2" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">
|
||||
<?php echo __('faq_a2'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item border-bottom">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button" data-bs-toggle="collapse" data-bs-target="#faq3">
|
||||
<?php echo __('faq_q3'); ?>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="faq3" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
|
||||
<div class="accordion-body text-muted">
|
||||
<?php echo __('faq_a3'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 class="fw-bold mb-3"><?php echo __('contact_us'); ?></h4>
|
||||
<p class="text-muted mb-4"><?php echo __('contact_text'); ?></p>
|
||||
<a href="mailto:<?php echo get_setting('contact_email', 'support@example.com'); ?>" class="btn btn-success px-4 py-2 rounded-pill">
|
||||
<i class="bi bi-envelope me-2"></i> <?php echo __('send_email'); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
23
views/privacy_policy.php
Normal file
23
views/privacy_policy.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php include 'header.php'; ?>
|
||||
|
||||
<section class="py-5 bg-light">
|
||||
<div class="container py-lg-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb mb-4">
|
||||
<li class="breadcrumb-item"><a href="/" class="text-decoration-none text-success"><?php echo __('home'); ?></a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page"><?php echo __('privacy_policy'); ?></li>
|
||||
</ol>
|
||||
</nav>
|
||||
<h1 class="fw-bold mb-4"><?php echo __('privacy_policy_title'); ?></h1>
|
||||
|
||||
<div class="bg-white p-4 p-md-5 rounded-4 shadow-sm content-text">
|
||||
<?php echo __('privacy_policy_content'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
23
views/terms_of_service.php
Normal file
23
views/terms_of_service.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php include 'header.php'; ?>
|
||||
|
||||
<section class="py-5 bg-light">
|
||||
<div class="container py-lg-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8">
|
||||
<nav aria-label="breadcrumb">
|
||||
<ol class="breadcrumb mb-4">
|
||||
<li class="breadcrumb-item"><a href="/" class="text-decoration-none text-success"><?php echo __('home'); ?></a></li>
|
||||
<li class="breadcrumb-item active" aria-current="page"><?php echo __('terms_of_service'); ?></li>
|
||||
</ol>
|
||||
</nav>
|
||||
<h1 class="fw-bold mb-4"><?php echo __('terms_of_service_title'); ?></h1>
|
||||
|
||||
<div class="bg-white p-4 p-md-5 rounded-4 shadow-sm content-text">
|
||||
<?php echo __('terms_of_service_content'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php include 'footer.php'; ?>
|
||||
Loading…
x
Reference in New Issue
Block a user