Files
2026-09-15 10:35:56 +08:00

38 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace Esun\MultiLocaleTranslation\Model;
class BlogPostFields
{
public const FIELDS = [
'name' => ['label' => 'Post Name', 'is_html' => false],
'short_description' => ['label' => 'Short Description', 'is_html' => true],
'post_content' => ['label' => 'Content', 'is_html' => true],
'meta_title' => ['label' => 'Meta Title', 'is_html' => false],
'meta_keywords' => ['label' => 'Meta Keywords', 'is_html' => false],
'meta_description' => ['label' => 'Meta Description', 'is_html' => false],
];
public static function codes(): array
{
return array_keys(self::FIELDS);
}
public static function baseValue(string $field, mixed $value): string
{
$value = is_string($value) ? $value : (string)($value ?? '');
if (!in_array($field, ['meta_title', 'meta_keywords', 'meta_description'], true)) {
return $value;
}
$decoded = json_decode($value, true);
if (json_last_error() !== JSON_ERROR_NONE || !is_array($decoded)) {
return $value;
}
return (string)($decoded[0] ?? $decoded['0'] ?? '');
}
}