feat: complete modern PHP tire showcase, calculator, comparison, guide and admin platform
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
// includes/db.php
|
||||
class TireStore {
|
||||
private static $file = __DIR__ . '/../data/store.json';
|
||||
|
||||
public static function getData() {
|
||||
if (!file_exists(self::$file)) {
|
||||
require_once __DIR__ . '/../data/init.php';
|
||||
}
|
||||
$json = file_get_contents(self::$file);
|
||||
return json_decode($json, true) ?: [];
|
||||
}
|
||||
|
||||
public static function saveData($data) {
|
||||
return file_put_contents(self::$file, json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
|
||||
}
|
||||
|
||||
public static function getTires() {
|
||||
$data = self::getData();
|
||||
return $data['tires'] ?? [];
|
||||
}
|
||||
|
||||
public static function getTireById($id) {
|
||||
$tires = self::getTires();
|
||||
foreach ($tires as $tire) {
|
||||
if ($tire['id'] === $id) {
|
||||
return $tire;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static function getBrands() {
|
||||
$data = self::getData();
|
||||
return $data['brands'] ?? [];
|
||||
}
|
||||
|
||||
public static function getArticles() {
|
||||
$data = self::getData();
|
||||
return $data['articles'] ?? [];
|
||||
}
|
||||
|
||||
public static function getPressureGuide() {
|
||||
$data = self::getData();
|
||||
return $data['pressure_guide'] ?? [];
|
||||
}
|
||||
|
||||
public static function getConsultations() {
|
||||
$data = self::getData();
|
||||
return $data['consultations'] ?? [];
|
||||
}
|
||||
|
||||
public static function addConsultation($entry) {
|
||||
$data = self::getData();
|
||||
$entry['id'] = 'CNS-' . (count($data['consultations'] ?? []) + 101);
|
||||
$entry['created_at'] = date('Y-m-d H:i');
|
||||
$entry['status'] = 'جدید';
|
||||
$data['consultations'][] = $entry;
|
||||
self::saveData($data);
|
||||
return $entry;
|
||||
}
|
||||
|
||||
public static function addTire($tire) {
|
||||
$data = self::getData();
|
||||
$data['tires'][] = $tire;
|
||||
self::saveData($data);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function updateTire($id, $updatedFields) {
|
||||
$data = self::getData();
|
||||
foreach ($data['tires'] as &$tire) {
|
||||
if ($tire['id'] === $id) {
|
||||
$tire = array_merge($tire, $updatedFields);
|
||||
self::saveData($data);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function deleteTire($id) {
|
||||
$data = self::getData();
|
||||
$data['tires'] = array_values(array_filter($data['tires'], function($t) use ($id) {
|
||||
return $t['id'] !== $id;
|
||||
}));
|
||||
return self::saveData($data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user