| Current Path : /var/www/html/dynaweb-cms-v1/app/Models/Backend/ |
| Current File : /var/www/html/dynaweb-cms-v1/app/Models/Backend/ThemeSetting.php |
<?php
namespace App\Models\Backend;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Attributes\Table;
use Illuminate\Database\Eloquent\Model;
#[Table('theme_settings', key: 'setting_id')]
#[Fillable([
'setting_rule_id',
'setting_param_name',
'setting_param_type',
'setting_param_value',
'setting_param_default',
])]
class ThemeSetting extends Model
{
public $timestamps = false;
public static function settingArray(): array
{
$result = [];
$settings = self::all();
foreach ($settings as $s) {
if ($s->setting_param_type === 'unit') {
$json = json_decode($s->setting_param_value);
$def = json_decode($s->setting_param_default);
$result[$s->setting_rule_id][$s->setting_param_name] = [
'type' => 'unit',
'value' => $json->value ?? $def->value,
'unit' => $json->unit ?? $def->unit,
];
} else {
$val = $s->setting_param_value ?: $s->setting_param_default;
$result[$s->setting_rule_id][$s->setting_param_name] = $val;
}
}
return $result;
}
public function rule()
{
return $this->belongsTo(ThemeRule::class, 'setting_rule_id', 'rule_id');
}
}