Files
2024-02-12 22:54:20 -05:00

68 lines
1.8 KiB
PHP

<?php
namespace Modules\MenuPlus\Repositories;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Modules\ExtraSettings\Entities\Setting;
use Modules\MenuPlus\Entities\Meta;
class MetaRepository
{
public function add($id, $name, $value) {
$setting = Meta::where('element_id', $id)->where('meta_name', $name)->first();
if (!$setting) {
if (is_array($value)) {
$value = json_encode($value);
}
Meta::create([
'element_id' => $id,
'meta_name' => $name,
'meta_value' => $value
]);
}
}
public function update($id, $name, $value, $create = true) {
$setting = Meta::where('element_id', $id)->where('meta_name', $name)->first();
if ($setting) {
if (is_array($value)) {
$value = json_encode($value);
}
$setting->meta_value = $value;
$setting->update();
}
else {
if ($create) {
$this->add($id, $name, $value);
}
}
}
public function getValue($id, $name, $default = null, $convert = false) {
$setting = Meta::where('element_id', $id)->where('meta_name', $name)->first();
if ($setting) {
if ($convert) {
$value = json_encode($setting->value);
if (json_last_error() === JSON_ERROR_NONE) {
return $value;
}
}
return $setting->meta_value;
}
return $default;
}
public function delete($id, $name) {
$setting = Meta::where('element_id', $id)->where('name', $name)->first();
if ($setting) {
$setting->delete();
}
}
}