mirror of
https://code.castopod.org/adaures/castopod
synced 2025-04-23 01:01:20 +00:00
63 lines
1.2 KiB
PHP
63 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Plugins\Manifest;
|
|
|
|
use Override;
|
|
|
|
/**
|
|
* @property Field[] $general
|
|
* @property Field[] $podcast
|
|
* @property Field[] $episode
|
|
*/
|
|
class Settings extends ManifestObject
|
|
{
|
|
protected const VALIDATION_RULES = [
|
|
'general' => 'permit_empty|is_list',
|
|
'podcast' => 'permit_empty|is_list',
|
|
'episode' => 'permit_empty|is_list',
|
|
];
|
|
|
|
/**
|
|
* @var array<string,array{string}|string>
|
|
*/
|
|
protected const CASTS = [
|
|
'general' => [Field::class],
|
|
'podcast' => [Field::class],
|
|
'episode' => [Field::class],
|
|
];
|
|
|
|
/**
|
|
* @var Field[]
|
|
*/
|
|
protected array $general = [];
|
|
|
|
/**
|
|
* @var Field[]
|
|
*/
|
|
protected array $podcast = [];
|
|
|
|
/**
|
|
* @var Field[]
|
|
*/
|
|
protected array $episode = [];
|
|
|
|
#[Override]
|
|
public function loadData(array $data): void
|
|
{
|
|
$newData = [];
|
|
foreach ($data as $key => $fields) {
|
|
$newFields = [];
|
|
foreach ($fields as $fieldKey => $field) {
|
|
$field['key'] = $fieldKey;
|
|
$newFields[] = $field;
|
|
}
|
|
|
|
$newData[$key] = $newFields;
|
|
}
|
|
|
|
parent::loadData($newData);
|
|
}
|
|
}
|